diff --git a/README.md b/README.md index 95ff04736d..fc98373efd 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![NuGet Download](https://img.shields.io/nuget/dt/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) [![MyGet (with prereleases)](https://img.shields.io/myget/abp-nightly/vpre/Volo.Abp.Core.svg?style=flat-square)](https://docs.abp.io/en/abp/latest/Nightly-Builds) -This project is the next generation of the [ASP.NET Boilerplate](https://aspnetboilerplate.com/) web application framework. See [the announcement](https://abp.io/blog/abp/Abp-vNext-Announcement). +This project is the next generation of the [ASP.NET Boilerplate](https://aspnetboilerplate.com/) web application framework. See [the announcement](https://blog.abp.io/abp/Abp-vNext-Announcement). See the official [web site (abp.io)](https://abp.io/) for more information. @@ -21,7 +21,7 @@ See the documentation. #### Pre Requirements -- Visual Studio 2019 16.1.0+ +- Visual Studio 2019 16.3.0+ #### Framework diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/pt-BR.json new file mode 100644 index 0000000000..a85f7d5bcc --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/pt-BR.json @@ -0,0 +1,13 @@ +{ + "culture": "pt-BR", + "texts": { + "Account": "Conta", + "Welcome": "Bem-vindo", + "UseOneOfTheFollowingLinksToContinue": "Use um dos seguintes links para continuar", + "FrameworkHomePage": "Página inicial do Framework", + "FrameworkDocumentation": " Documentação do Framework", + "OfficialBlog": "Blog oficial", + "CommercialHomePage": "Página inicial comercial", + "CommercialSupportWebSite": "Site de suporte comercial" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pt-BR.json new file mode 100644 index 0000000000..1dc69524e1 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pt-BR.json @@ -0,0 +1,60 @@ +{ + "culture": "pt-BR", + "texts": { + "Permission:NpmPackages": "Pacotes NPM", + "Permission:NugetPackages": "Pacotes Nuget", + "Permission:Maintenance": "Manutenção", + "Permission:Maintain": "Manter", + "Permission:ClearCaches": "Limpar caches", + "Permission:Modules": "Módulos", + "Permission:Packages": "Pacotes", + "Permission:Edit": "Editar", + "Permission:Delete": "Excluir", + "Permission:Create": "Criar", + "Menu:Packages": "Pacotes", + "NpmPackageDeletionWarningMessage": "Este pacote NPM será excluído. Você confirma isso?", + "NugetPackageDeletionWarningMessage": "Este pacote Nuget será excluído. Você confirma isso?", + "ModuleDeletionWarningMessage": "Este módulo será excluído. Você confirma isso?", + "Name": "Nome", + "DisplayName": "Mostrar nome", + "ShortDescription": "Breve descrição", + "NameFilter": "Nome", + "CreationTime": "Hora da criação", + "IsPro": "É profissional", + "EfCoreConfigureMethodName": "Configurar nome do método", + "IsProFilter": "É profissional", + "ApplicationType": "Tipo de aplicativo", + "Target": "Objetivo", + "TargetFilter": "Objetivo", + "ModuleClass": "Classe do módulo", + "NugetPackageTarget.DomainShared": "Domínio compartilhado", + "NugetPackageTarget.Domain": "Domínio", + "NugetPackageTarget.Application": "Aplicativo", + "NugetPackageTarget.ApplicationContracts": "Contratos de aplicativos", + "NugetPackageTarget.HttpApi": "Http Api", + "NugetPackageTarget.HttpApiClient": "Cliente HTTP da API", + "NugetPackageTarget.Web": "Web", + "NugetPackageTarget.EntityFrameworkCore": "EntityFramework Core", + "NugetPackageTarget.MongoDB": "MongoDB", + "Edit": "Editar", + "Delete": "Excluir", + "Refresh": "Atualizar", + "NpmPackages": "Pacotes NPM", + "NugetPackages": "Pacotes Nuget", + "NpmPackageCount": "Contagem de pacotes NPM", + "NugetPackageCount": "Contagem de pacotes Nuget", + "Module": "Módulos", + "ModuleInfo": "Informações do módulo", + "CreateANpmPackage": "Criar um pacote NPM", + "CreateAModule": "Criar um módulo", + "CreateANugetPackage": "Criar um pacote Nuget", + "AddNew": "Adicionar novo", + "PackageAlreadyExist{0}": "\"{0}\" o pacote já foi adicionado.", + "ClearCache": "Limpar cache", + "SuccessfullyCleared": "Limpo com sucesso", + "Menu:NpmPackages": "Pacotes NPM", + "Menu:Modules": "Módulos", + "Menu:Maintenance": "Manutenção", + "Menu:NugetPackages": "Pacotes Nuget" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json new file mode 100644 index 0000000000..a95bb9a874 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json @@ -0,0 +1,31 @@ +{ + "culture": "pt-BR", + "texts": { + "Volo.AbpIo.Domain:010004": "Número máximo de membros atingido!", + "Volo.AbpIo.Domain:010005": "Número máximo de proprietários atingido!", + "Volo.AbpIo.Domain:010006": "Este usuário já é proprietário desta organização!", + "Volo.AbpIo.Domain:010007": "Este usuário já é desenvolvedor desta organização!", + "Volo.AbpIo.Domain:010008": "A contagem permitida de desenvolvedores não pode ser inferior à contagem atual de desenvolvedores!", + "Volo.AbpIo.Domain:010009": "A contagem permitida de desenvolvedores não pode ser inferior a 0!", + "Volo.AbpIo.Domain:010010": "A contagem máxima de endereços mac foi excedida!", + "Volo.AbpIo.Domain:010011": "A licença pessoal não pode ter mais de um desenvolvedor!", + "Volo.AbpIo.Domain:010012": "A licença não pode ser estendida um mês após a expiração da licença!", + "Volo.AbpIo.Domain:020001": "Não foi possível excluir este pacote NPM porque \"{NugetPackages}\" Os pacotes Nuget dependem deste pacote.", + "Volo.AbpIo.Domain:020002": "Não foi possível excluir este pacote NPM porque \"{Modules}\" Módulos estão usando este pacote.", + "Volo.AbpIo.Domain:020003": "Não foi possível excluir este pacote NPM porque \"{Modules}\" Módulos estão usando este pacote e \"{NugetPackages}\" Os pacotes Nuget dependem deste pacote.", + "Volo.AbpIo.Domain:020004": "Não foi possível excluir este pacote Nuget porque \"{Modules}\" Módulos estão usando este pacote.", + "WantToLearn?": "Quer aprender?", + "ReadyToGetStarted?": "Pronto para começar?", + "JoinOurCommunity": "Participe da nossa comunidade", + "GetStartedUpper": "INICIAR", + "ForkMeOnGitHub": "Bifurque-me no GitHub", + "Features": "Recursos", + "GetStarted": "Introdução", + "Documents": "Documentos", + "Community": "Comunidade", + "ContributionGuide": "Guia de contribuição", + "Blog": "Blog", + "Commercial": "Comercial", + "SeeDocuments": "Ver documentos" + } +} diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/pt-BR.json new file mode 100644 index 0000000000..2012b4c128 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/pt-BR.json @@ -0,0 +1,5 @@ +{ + "culture": "pt-BR", + "texts": { + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 3785288f0b..d4eca0b7e6 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -21,6 +21,10 @@ "Modules": "Modules", "LicenseExtendMessage": "Your license end date is extended to {0}", "LicenseUpgradeMessage": "Your license is upgraded to {0}", - "LicenseAddDeveloperMessage": "{0} developers added to your license" + "LicenseAddDeveloperMessage": "{0} developers added to your license" , + "Volo.AbpIo.Commercial:010004": "Can not find the specified user! The user must have already registered.", + "MyOrganizations": "My organizations", + "ApiKey": "API key", + "UserNameNotFound": "There is no user with username {0}" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json new file mode 100644 index 0000000000..e9133491f4 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json @@ -0,0 +1,30 @@ +{ + "culture": "pt-BR", + "texts": { + "OrganizationManagement": "Gerenciamento da organização", + "OrganizationList": "Lista de organização", + "Volo.AbpIo.Commercial:010003": "Você não é proprietário desta organização!", + "OrganizationNotFoundMessage": "Nenhuma organização encontrada!", + "DeveloperCount": "Número de desenvolvedores", + "Owners": "Proprietários", + "AddMember": "Adicionar membro", + "AddOwner": "Adicionar proprietário", + "AddDeveloper": "Adicionar desenvolvedor", + "UserName": "Nome de usuário", + "Name": "Nome", + "EmailAddress": "Endereço de email", + "Developers": "Desenvolvedores", + "LicenseType": "Tipo de licença", + "Manage": "Gerenciar", + "StartDate": "Data de início", + "EndDate": "Data final", + "Modules": "Módulos", + "LicenseExtendMessage": "A data de término da sua licença foi estendida para {0}", + "LicenseUpgradeMessage": "Sua licença foi atualizada para {0}", + "LicenseAddDeveloperMessage": "{0} desenvolvedores adicionados à sua licença", + "Volo.AbpIo.Commercial:010004": "Não foi possível encontrar o usuário especificado! O usuário já deve ter se registrado.", + "MyOrganizations": "Minhas organizações", + "ApiKey": "Chave da API", + "UserNameNotFound": "Não há usuário com nome de usuário {0}" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json index fd25239044..77dab7302e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json @@ -18,6 +18,13 @@ "Manage": "Yönet", "StartDate": "Başlangıç tarihi", "EndDate": "bitiş tarihi", - "Modules": "Modüller" + "Modules": "Modüller", + "Volo.AbpIo.Commercial:010004": "Kullanıcı bulunamadı! İlgili kullanıcının daha önceden sisteme kayıt olmuş olması gerekiyor.", + "LicenseExtendMessage": "Lisans bitiş tarihiniz {0} tarihine kadar uzatıldı", + "LicenseUpgradeMessage": "Lisansınız {0} lisansa yükseltildi", + "LicenseAddDeveloperMessage": "Lisansınıza {0} geliştirici eklendi", + "MyOrganizations": "Organizasyonlarım", + "ApiKey": "API anahtarı", + "UserNameNotFound": "{0} kullanıcı adı ile bir kullanıcı yok" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/pt-BR.json new file mode 100644 index 0000000000..2012b4c128 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/pt-BR.json @@ -0,0 +1,5 @@ +{ + "culture": "pt-BR", + "texts": { + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/pt-BR.json new file mode 100644 index 0000000000..2012b4c128 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/pt-BR.json @@ -0,0 +1,5 @@ +{ + "culture": "pt-BR", + "texts": { + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json new file mode 100644 index 0000000000..382beec925 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json @@ -0,0 +1,160 @@ +{ + "culture": "pt-BR", + "texts": { + "GetStarted": "Introdução", + "Create": "Criar", + "NewProject": "Novo projeto", + "DirectDownload": "Download direto", + "ProjectName": "Nome do projeto", + "ProjectType": "Tipo de projeto", + "DatabaseProvider": "Provedor de banco de dados", + "NTier": "N-Tier", + "IncludeUserInterface": "Incluir interface do usuário", + "CreateNow": "Criar agora", + "TheStartupProject": "O projeto de inicialização", + "Tutorial": "Tutorial", + "UsingCLI": "Usando CLI", + "SeeDetails": "Ver detalhes", + "AbpShortDescription": "ABP é uma arquitetura completa e uma forte infraestrutura para criar aplicativos da web modernos! Segue as melhores práticas e convenções para fornecer uma sólida experiência de desenvolvimento.", + "SourceCodeUpper": "CÓDIGO FONTE", + "LatestReleaseLogs": "Últimos registros de lançamento", + "Infrastructure": "Infra-estrutura", + "Architecture": "Arquitetura", + "Modular": "Modular", + "DontRepeatYourself": "Não se repita", + "DeveloperFocused": "Desenvolvedor focado", + "FullStackApplicationInfrastructure": "Infraestrutura de aplicativos full stack.", + "DomainDrivenDesign": "Design Orientado a Domínio", + "DomainDrivenDesignExplanation": "Projetado e desenvolvido com base nos padrões e princípios DDD. Fornece um modelo em camadas para seu aplicativo.", + "Authorization": "Autorização", + "AuthorizationExplanation": "Autorização avançada com usuário, função e sistema de permissão refinado. Criada na biblioteca Microsoft Identity.", + "MultiTenancy": "Múltiplos inquilinos", + "MultiTenancyExplanation": "Aplicativos SaaS facilitados! Multilocação integrada do banco de dados à interface do usuário.", + "CrossCuttingConcerns": "Preocupações transversais", + "CrossCuttingConcernsExplanation": "Infraestrutura completa para autorização, validação, tratamento de exceções, armazenamento em cache, log de auditoria, gerenciamento de transações e assim por diante.", + "BuiltInBundlingMinification": "Pacote & Minificação Integrados", + "BuiltInBundlingMinificationExplanation": "Pare de usar ferramentas externas para empacotamento e minificação. O ABP oferece uma maneira mais simples, dinâmica, poderosa, modular e integrada!", + "VirtualFileSystem": "Sistema de arquivos virtual", + "VirtualFileSystemExplanation": "Incorpore visualizações, scripts, estilos, imagens ... aos pacotes/bibliotecas e reutilize-os em diferentes aplicativos.", + "Theming": "Theming", + "ThemingExplanation": "Use e personalize o tema da interface do usuário padrão baseado em bootstrap-based ou crie o seu próprio.", + "BootstrapTagHelpersDynamicForms": "Bootstrap Tag Helpers & Dynamic Forms", + "BootstrapTagHelpersDynamicFormsExplanation": "Sistema de tarefas em segundo plano integrado que pode ser integrado ao Hangfire, RabbitMQ ou a qualquer ferramenta que você desejar.", //TODO explanation doesn't match. + "HTTPAPIsDynamicProxies": "APIs HTTP e proxies dinâmicos", + "HTTPAPIsDynamicProxiesExplanation": "Exponha automaticamente os serviços de aplicativo como APIs HTTP do estilo REST e consuma com proxies JavaScript & C # dinâmicos.", + "CompleteArchitectureInfo": "Arquitetura moderna para criar soluções de software sustentáveis.", + "DomainDrivenDesignBasedLayeringModelExplanation": "Ajuda você a implementar uma arquitetura em camadas baseada em DDD e a construir uma base de código sustentável.", + "DomainDrivenDesignBasedLayeringModelExplanationCont": "Fornece modelos de inicialização, abstrações, classes base, serviços, documentação e guias para ajudá-lo a desenvolver seu aplicativo com base nos padrões e princípios DDD.", + "MicroserviceCompatibleModelExplanation": "O framework principal e os módulos de pré-construção foram projetados para a arquitetura de microsserviço.", + "MicroserviceCompatibleModelExplanationCont": "Fornece infraestrutura, integrações, amostras e documentação para implementar soluções de microsserviço mais facilmente, enquanto isso não traga complexidade adicional se você quiser um aplicativo monolítico.", + "ModularInfo": "O ABP fornece um sistema completo de modularidade para permitir o desenvolvimento de módulos de aplicativos reutilizáveis.", + "PreBuiltModulesThemes": "Módulos pré-construídos & Temas", + "PreBuiltModulesThemesExplanation": "Módulos e temas de código aberto e comerciais estão prontos para uso em seu aplicativo de negócios.", + "NuGetNPMPackages": "Pacotes NuGet & NPM", + "NuGetNPMPackagesExplanation": "Distribuído como pacotes NuGet & NPM. Fácil de instalar e atualizar.", + "ExtensibleReplaceable": "Extensível/Substituível", + "ExtensibleReplaceableExplanation": "Todos os serviços e módulos são projetados para extensibilidade. Você pode substituir serviços, páginas, estilos, componentes...", + "CrossCuttingConcernsExplanation2": "Mantenha seu código mais limpo e concentre-se em seu próprio código comercial.", + "CrossCuttingConcernsExplanation3": "Não perca tempo para implementar requisitos de aplicativos comuns repetidamente.", + "AuthenticationAuthorization": "Autenticação & Autorização", + "ExceptionHandling": "Manipulação de exceção", + "Validation": "Validação", + "DatabaseConnection": "Conexão com o Banco de Dados", + "TransactionManagement": "Gerenciamento de transações", + "AuditLogging": "Log de auditoria", + "Caching": "Armazenamento em cache", + "Multitenancy": "Múltiplos inquilinos", + "DataFiltering": "Filtragem de dados", + "ConventionOverConfiguration": "Convenção sobre configuração", + "ConventionOverConfigurationExplanation": "O ABP implementa convenções comuns de aplicativos por padrão com uma configuração mínima ou zero.", + "ConventionOverConfigurationExplanationList1": "Registra automaticamente serviços conhecidos na injeção de dependência.", + "ConventionOverConfigurationExplanationList2": "Expõe os serviços de aplicativos como APIs HTTP, nomeando convenções.", + "ConventionOverConfigurationExplanationList3": "Cria proxies de clientes HTTP dinâmicos para C # e JavaScript.", + "ConventionOverConfigurationExplanationList4": "Fornece repositórios padrão para suas entidades.", + "ConventionOverConfigurationExplanationList5": "Gerencia a unidade de trabalho por solicitação da Web ou método de serviço de aplicativo.", + "ConventionOverConfigurationExplanationList6": "Publica, cria, atualiza e exclui eventos para suas entidades.", + "BaseClasses": "Classes base", + "BaseClassesExplanation": "Classes base pré-criadas para padrões de aplicativos comuns.", + "DeveloperFocusedExplanation": "O ABP é para desenvolvedores.", + "DeveloperFocusedExplanationCont": "Tem como objetivo simplificar o desenvolvimento diário de seu software, sem restringir o trabalho de baixo nível quando necessário.", + "SeeAllFeatures": "Veja todos os recursos", + "CLI_CommandLineInterface": "CLI (Command Line Interface)", + "CLI_CommandLineInterfaceExplanation": "A CLI é automatizada para criar novos projetos e adicionar módulos ao seu aplicativo.", + "StartupTemplates": "Modelos de inicialização", + "StartupTemplatesExplanation": "Vários modelos de inicialização fornecem uma solução totalmente configurada para iniciar rapidamente seu desenvolvimento.", + "BasedOnFamiliarTools": "Baseado em ferramentas familiares", + "BasedOnFamiliarToolsExplanation": "Construído e integrado a ferramentas populares que você já conhece. Baixa curva de aprendizado, fácil adaptação, desenvolvimento confortável.", + "ORMIndependent": "ORM Independente", + "ORMIndependentExplanation": "O framework principal é independente do ORM/banco de dados e pode funcionar com qualquer fonte de dados. Os provedores Entity Framework Core e MongoDB já estão disponíveis.", + "Features": "Recursos", + "ABPCLI": "ABP CLI", + "Modularity": "Modularidade", + "BootstrapTagHelpers": "Bootstrap Tag Helpers", + "DynamicForms": "Formulários dinâmicos", + "BundlingMinification": "Empacotamento e Minificação", + "BackgroundJobs": "Trabalhos em segundo plano", + "DDDInfrastructure": "Infraestrutura DDD", + "DomainDrivenDesignInfrastructure": "Infraestrutura de Design Orientada a Domínio", + "AutoRESTAPIs": "APIs REST automáticas", + "DynamicClientProxies": "Proxies de cliente dinâmicos", + "DistributedEventBus": "Barramento de Eventos Distribuídos", + "DistributedEventBusWithRabbitMQIntegration": "Barramento de Eventos Distribuídos com Integração RabbitMQ", + "TestInfrastructure": "Infraestrutura de Teste", + "AuditLogging": "Log de auditoria", + "AuditLoggingEntityHistories": "Log de auditoria e históricos de entidades", + "ObjectToObjectMapping": "Objeto para Mapeamento de Objetos", + "EmailSMSAbstractions": "Abstrações de E-mail e SMS", + "EmailSMSAbstractionsWithTemplatingSupport": "Abstrações de e-mail e SMS com suporte a modelos", + "Localization": "Localização", + "SettingManagement": "Gerenciamento de configurações", + "ExtensionMethods": "Métodos de extensão", + "ExtensionMethodsHelpers": "Métodos de extensão & Helpers", + "AspectOrientedProgramming": "Programação Orientada a Aspectos", + "DependencyInjection": "Injeção de dependência", + "DependencyInjectionByConventions": "Injeção de dependência por convenções", + "ABPCLIExplanation": "O ABP CLI (Command Line Interface) é uma ferramenta de linha de comando para executar algumas operações comuns em soluções baseadas em ABP.", + "ModularityExplanation": "O ABP fornece uma infraestrutura completa para criar seus próprios módulos de aplicativos, que podem ter entidades, serviços, integração de banco de dados, APIs, componentes de interface do usuário e assim por diante ...", //TODO: strong "your own application modules",- + "MultiTenancyExplanation": "ABP framework não apenas suporta o desenvolvimento de aplicativos com vários inquilinos, mas também faz com que seu código desconheça a multilocação.", + "MultiTenancyExplanation2": "Pode determinar automaticamente o inquilino atual, isolar os dados de inquilinos diferentes um do outro.", + "MultiTenancyExplanation3": "Suporta abordagens de banco de dados único, banco de dados por inquilino e híbrido.", + "MultiTenancyExplanation4": "Você se concentra no seu código comercial e deixa o framework lidar com a multilocação em seu nome.", + "BootstrapTagHelpersExplanation": "Em vez de escrever manualmente os detalhes repetidos dos componentes do bootstrap, use os tag helpers da ABP para simplificá-lo e tirar proveito do intellisense. Você pode definitivamente usar o Bootstrap sempre que precisar.", + "DynamicFormsExplanation": "Formulário dinâmico e entrada de tag helpers pode criar o formulário completo a partir de uma classe C# como modelo.", + "AuthenticationAuthorizationExplanation": "Opções avançadas de autenticação e autorização integradas ao ASP.NET Core Identity & IdentityServer4. Fornece um sistema de permissões extensível e detalhado.", + "CrossCuttingConcernsExplanation": "Não se repita para implementar todas essas coisas comuns repetidamente. Concentre-se no seu código comercial e permita que a ABP os automatize por convenções.", + "DatabaseConnectionTransactionManagement": "Gerenciamento de conexão e transação de banco de dados", + "CorrelationIdTracking": "Rastreamento de ID de correlação", + "BundlingMinificationExplanation": "A ABP oferece um sistema de empacotamento e minificação simples, dinâmico, poderoso, modular e embutido.", + "VirtualFileSystemnExplanation": "O Sistema de Arquivos Virtual possibilita gerenciar arquivos que não existem fisicamente no sistema de arquivos (disco). É usado principalmente para incorporar arquivos (js, css, image, cshtml ...) em assemblies e usar como arquivos físicos em tempo de execução.", + "ThemingExplanation": "O sistema Theming permite o desenvolvimento independente do tema do aplicativo e dos módulos, definindo um conjunto de bibliotecas e layouts básicos comuns, com base na estrutura mais recente do Bootstrap.", + "DomainDrivenDesignInfrastructureExplanation": "Uma infraestrutura completa para criar aplicativos em camadas com base nos padrões e princípios de Design Orientado a Domínio;", + "Specification": "Especificação", + "Repository": "Repositório", + "DomainService": "Serviço de Domínio", + "ValueObject": "Value Object", + "ApplicationService": "Serviço de Aplicativo", + "DataTransferObject": "Objeto de transferência de dados", + "AggregateRootEntity": "Raiz agregada, entidade", + "AutoRESTAPIsExplanation": "O ABP pode configurar automaticamente seus serviços de aplicativo como controladores de API por convenção.", + "DynamicClientProxiesExplanation": "Consumir facilmente suas APIs de JavaScript e C # clientes.", + "DistributedEventBusWithRabbitMQIntegrationExplanation": "Publique e consuma facilmente eventos distribuídos usando o Barramento de Eventos Distribuídos interno com a integração RabbitMQ disponível.", + "TestInfrastructureExplanation": "A estrutura foi desenvolvida para testes de unidade e integração. Fornece classes básicas para facilitar. Os modelos de inicialização são pré-configurados para teste.", + "AuditLoggingEntityHistoriesExplanation": "Registro de auditoria interno para aplicativos críticos para os negócios. Solicitação, serviço, log de auditoria no nível do método e histórico de entidades com detalhes no nível da propriedade.", + "EmailSMSAbstractionsWithTemplatingSupportExplanation": "As abstrações IEmailSender e ISmsSender dissociam sua lógica de aplicativo da infraestrutura. O sistema avançado de modelo de email permite criar e localizar modelos de email e usá-lo facilmente sempre que necessário.", + "LocalizationExplanation": "O sistema de localização permite criar recursos em arquivos JSON simples e usá-los para localizar sua interface do usuário. Ele suporta cenários avançados como herança, extensões e integração de JavaScript, enquanto é totalmente compatível com o sistema de localização do AspNet Core.", + "SettingManagementExplanation": "Defina as configurações do seu aplicativo e obtenha valores no tempo de execução com base na configuração atual, inquilino e usuário.", + "ExtensionMethodsHelpersExplanation": "Não se repita, mesmo em partes triviais do código. Extensões e helpers para tipos padrão tornam seu código muito mais limpo e fácil de escrever.", + "AspectOrientedProgrammingExplanation": "Fornece uma infraestrutura confortável para criar proxies dinâmicos e implementar a Programação Orientada a Aspectos. Intercepte qualquer classe e execute seu código antes e depois de cada execução de método.", + "DependencyInjectionByConventionsExplanation": "Não há necessidade de registrar suas classes na injeção de dependência manualmente. Registra automaticamente tipos de serviço comuns por convenção. Para outros tipos de serviços, você pode usar interfaces e atributos para facilitar e colocar no local.", + "DataFilteringExplanation": "Defina e use filtros de dados que serão aplicados automaticamente quando você consultar entidades do banco de dados. Os filtros Soft Delete e MultiTenant são fornecidos imediatamente quando você implementa interfaces simples.", + "PublishEvents": "Publicar eventos", + "HandleEvents": "Manipular Eventos", + "AndMore": "e mais...", + "Code": "Código", + "Result": "Resultado", + "SeeTheDocumentForMoreInformation": "Consulte o {0} documento para obter mais informações", + "IndexPageHeroSection": "código abertoAplicativo da Web
Framework
para o ASP.NET Core", + "UiFramework": "UI Framework", + "EmailAddress": "Endereço de email" + } +} \ No newline at end of file diff --git a/common.props b/common.props index e97735b0ac..1b69d58ed0 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 0.19.0 + 0.22.0 $(NoWarn);CS1591 https://abp.io/assets/abp_nupkg.png https://abp.io diff --git a/common.test.props b/common.test.props new file mode 100644 index 0000000000..e90103e606 --- /dev/null +++ b/common.test.props @@ -0,0 +1,10 @@ + + + latest + $(NoWarn);CS1591 + true + false + false + false + + \ No newline at end of file diff --git a/docs/cs/Best-Practices/PostgreSQL-Integration.md b/docs/cs/Best-Practices/PostgreSQL-Integration.md new file mode 100644 index 0000000000..6bf8224f1e --- /dev/null +++ b/docs/cs/Best-Practices/PostgreSQL-Integration.md @@ -0,0 +1,35 @@ +## Entity Framework Core PostgreSQL integrace + +> Podívejte se na [Entity Framework Core integrační dokument](../Entity-Framework-Core.md) pro základy integrace EF Core. + +### Aktualizace projektu EntityFrameworkCore + +- V projektu `Acme.BookStore.EntityFrameworkCore` nahraďte balík `Volo.Abp.EntityFrameworkCore.SqlServer` za `Volo.Abp.EntityFrameworkCore.PostgreSql` +- Aktualizace pro použití PostgreSQL v `BookStoreEntityFrameworkCoreModule` + - Nahraďte `AbpEntityFrameworkCoreSqlServerModule` za `AbpEntityFrameworkCorePostgreSqlModule` + - Nahraďte `options.UseSqlServer()` za `options.UsePostgreSql()` +- V jiných projektech aktualizujte PostgreSQL connection string v nezbytných `appsettings.json` souborech + +#### Odstranění stávajících migrací + +Smažte všechny stavající migrační soubory (včetně `DbContextModelSnapshot`) + +![postgresql-delete-initial-migrations](images/postgresql-delete-initial-migrations.png) + +#### Znovu vygenerujte počáteční migraci & aktualizujte databázi + +Nastavte správný spouštěcí projekt (obvykle web projekt), +Otevřete **Package Manager Console** (Tools -> Nuget Package Manager -> Package Manager Console), zvolte `Acme.BookStore.EntityFrameworkCore.DbMigrations` jako **Default project** a proveďte následující příkaz: + +Proveďte příkaz `Add-Migration`: +```` +PM> Add-Migration Initial +```` + +Poté proveďte příkaz `Update-Database` k aktualizaci schématu databáze: + +```` +PM> Update-Database +```` + +![postgresql-update-database](images/postgresql-update-database.png) diff --git a/docs/cs/Best-Practices/images/postgresql-delete-initial-migrations.png b/docs/cs/Best-Practices/images/postgresql-delete-initial-migrations.png new file mode 100644 index 0000000000..39d9e6dedf Binary files /dev/null and b/docs/cs/Best-Practices/images/postgresql-delete-initial-migrations.png differ diff --git a/docs/cs/Best-Practices/images/postgresql-update-database.png b/docs/cs/Best-Practices/images/postgresql-update-database.png new file mode 100644 index 0000000000..02b61ef6a3 Binary files /dev/null and b/docs/cs/Best-Practices/images/postgresql-update-database.png differ diff --git a/docs/cs/Dapper.md b/docs/cs/Dapper.md new file mode 100644 index 0000000000..94e40347f0 --- /dev/null +++ b/docs/cs/Dapper.md @@ -0,0 +1,61 @@ +# Dapper integrace + +Jelikož myšlenka Dapper je taková, že sql příkaz má přednost, tak hlavně poskytuje metody rozšíření pro `IDbConnection` rozhraní. + +Abp nezapouzdřuje přílíš mnoho funkcí pro Dapper. Abp Dapper poskytuje základní třídu `DapperRepository` založenou na Abp EntityFrameworkCore, který poskytuje vlastnosti `IDbConnection` a `IDbTransaction` vyžadované v Dapper. + +Tyto dvě vlastnosti fungují dobře s [jednotkou práce](Unit-Of-Work.md). + +## Instalace + +Nainstalujte a nakonfigurujte EF Core podle [EF Core integrační dokumentace](Entity-Framework-Core.md). + +`Volo.Abp.Dapper` je hlavní NuGet balík pro Dapper integraci. Nainstalujte jej proto do vašeho projektu (pro strukturovanou aplikaci do datové/infrastrukturní vrstvy): + +```shell +Install-Package Volo.Abp.Dapper +``` + +Poté přidejte závislost na `AbpDapperModule` modulu (atribut `DependsOn`) do Vašeho [modulu](Module-Development-Basics.md): + +````C# +using Volo.Abp.Dapper; +using Volo.Abp.Modularity; + +namespace MyCompany.MyProject +{ + [DependsOn(typeof(AbpDapperModule))] + public class MyModule : AbpModule + { + //... + } +} +```` + +## Implementace Dapper repozitáře + +Následující kód implementuje repozitář `Person`, který vyžaduje `DbContext` z EF Core (MyAppDbContext). Můžete vložit `PersonDapperRepository` k volání jeho metod. + +`DbConnection` a `DbTransaction` jsou ze základní třídy `DapperRepository`. + +```C# +public class PersonDapperRepository : DapperRepository, ITransientDependency +{ + public PersonDapperRepository(IDbContextProvider dbContextProvider) + : base(dbContextProvider) + { + } + + public virtual async Task> GetAllPersonNames() + { + return (await DbConnection.QueryAsync("select Name from People", transaction: DbTransaction)) + .ToList(); + } + + public virtual async Task UpdatePersonNames(string name) + { + return await DbConnection.ExecuteAsync("update People set Name = @NewName", new { NewName = name }, + DbTransaction); + } +} +``` diff --git a/docs/cs/Getting-Started-Angular-Template.md b/docs/cs/Getting-Started-Angular-Template.md new file mode 100644 index 0000000000..6accc637e8 --- /dev/null +++ b/docs/cs/Getting-Started-Angular-Template.md @@ -0,0 +1,126 @@ +## Začínáme s Angular aplikační šablonou + +Tento tutoriál vysvětluje, jak vytvořit novou Angular aplikaci pomocí spouštěcí šablony, jak ji nakonfigurovat a spustit. + +### Tvorba nového projektu + +Tento tutorial používá k vytvoření nového projektu **ABP CLI**. Podívejte se na stránku [začínáme](https://abp.io/get-started) pro více možností. + +Pokud jste tak dosud neučinili, nainstalujte ABP CLI pomocí okna příkazového řádku: + +````bash +dotnet tool install -g Volo.Abp.Cli +```` + +Použíjte příkaz `abp new` v prázdné složce k vytvoření Vašeho projektu: + +````bash +abp new Acme.BookStore -u angular +```` + +> Můžete použít různé úrovně jmenných prostorů; např. BookStore, Acme.BookStore nebo Acme.Retail.BookStore. + +`-u angular` volba specifikuje Angular jako UI framework. Výchozí poskytovatel databáze je EF Core. Podívejte se na [CLI dokumentaci](CLI.md) pro všechny dostupné možnosti. + +#### Předběžné požadavky + +Vytvořené řešení vyžaduje; + +* [Visual Studio 2017 (v15.9.0+)](https://visualstudio.microsoft.com/tr/downloads/) +* [.NET Core 2.2+](https://www.microsoft.com/net/download/dotnet-core/) +* [Node v10.16+](https://nodejs.org) +* [Yarn v1.17+](https://yarnpkg.com/) + +### Struktura řešení + +Otevřete řešení ve **Visual Studio**: + +![bookstore-visual-studio-solution](images/bookstore-visual-studio-solution-for-spa.png) + +Řešení má vrstvenou strukturu (založenou na [domain driven designu](Domain-Driven-Design.md)) a obsahuje projekty testů jednotek a integrace správně nakonfigurované pro práci s **EF Core** & **SQLite in-memory** databází. + +> Podívejte se na [dokument šablony aplikace](Startup-Templates/Application.md) k detailnímu pochopení struktury řešení. + +### Databázový connection string + +Zkontrolujte **connection string** v souboru `appsettings.json` u projektu `.HttpApi.Host`: + +````json +{ + "ConnectionStrings": { + "Default": "Server=localhost;Database=BookStore;Trusted_Connection=True" + } +} +```` + +Řešení je nakonfigurováno pro použití **Entity Framework Core** s **MS SQL Server**. EF Core podporuje [různé](https://docs.microsoft.com/en-us/ef/core/providers/) poskytovatele databáze, takže pokud chcete můžete použít jiný DBMS. V případě potřeby změňte connection string. + +### Tvorba databáze & aplikace migrací databáze + +K vytvoření databáze máte dvě možnosti. + +#### Použití aplikace DbMigrator + +Řešení obsahuje konzolovou aplikaci (v tomto příkladu nazvanou `Acme.BookStore.DbMigrator`), která dokáže vytvořit databázi, aplikovat migrace a vložit počáteční data. Ta je užitečná jak pro vývojové tak pro produkční prostředí. + +> `.DbMigrator` má vlastní `appsettings.json`. Pokud jste změnili connection string výše, měli byste změnit i tento. + +Klikněte pravým na projekt `.DbMigrator` zvolte **Set as StartUp Project**: + +![set-as-startup-project](images/set-as-startup-project.png) + +Zmáčkněte F5 (nebo Ctrl+F5) ke spuštění aplikace. Výstup by měl být podobný vyobrazení níže: + +![set-as-startup-project](images/db-migrator-app.png) + +#### Použití příkazu EF Core Update-Database + +Ef Core máš příkaz `Update-Database`, který v případě potřeby vytvoří databázi a aplikuje čekající migrace. Klikněte pravým na projekt `.Web` a zvolte **Set as StartUp Project**: + +![set-as-startup-project](images/set-as-startup-project.png) + +Otevřete **Package Manager Console**, zvolte `.EntityFrameworkCore.DbMigrations` jako **Default Project** a proveďte příkaz `Update-Database`: + +![pcm-update-database](images/pcm-update-database-v2.png) + +Tímto vytvoříte novou databáze podle nakonfigurovaného connection string. + +> Je doporučeno užití nástroje `.DbMigrator`, protože zároveň vloží i počáteční data ke správnému běhu webové aplikace. + +### Spuštění aplikace + +#### Spuštění API Host (na straně serveru) + +Ujistěte se že je projekt `.HttpApi.Host` nastaven jako startovací a spusťte aplikaci což otevře Swagger UI: + +![bookstore-homepage](images/bookstore-swagger-ui-host.png) + +Tady můžete vidět API aplikace a zároveň je i otestovat. Získejte [více informací](https://swagger.io/tools/swagger-ui/) o Swagger UI. + +##### Autorizace pro Swagger UI + +Vetšina API aplikace vyžaduje autentizaci & autorizaci. Pokud chcete otestovat autorizované API, manuálně přejděte na stránku `/Account/Login`, vložte `admin` jako uživatelské jméno a `1q2w3E*` jako heslo k příhlášení do aplikace. Poté budete moci provádět autorizované požadavky API. + +#### Spuštění Angular aplikace (na straně klienta) + +Přejděte do složky `angular`, otevřete terminál příkazového řádku, proveďte příkaz `yarn` (doporučujeme používat správce balíků [yarn](https://yarnpkg.com), npm install bude v mnoha případech také fungovat): + +````bash +yarn +```` + +Jakmile jsou načteny všechny node moduly, proveďte příkaz `yarn start` nebo `npm start`: + +````bash +yarn start +```` + +Otevřete Váš oblíbený prohlížeč a přejděte na adresu `localhost:4200`. Počáteční uživatelské jméno je `admin` a heslo `1q2w3E*`. + +Startovací šablona obsahuje moduly **správa identit** a **správa tenantů**. Jakmile se přihlásíte, zprístupní se administrační menu kde můžete spravovat **tenanty**, **role**, **uživatele** a jejich **oprávnění**. + +> Doporučujeme [Visual Studio Code](https://code.visualstudio.com/) jako editor pro Angular projekt, ale klidně použijte Váš oblíbený editor. + +### Co dále? + +* [Tutoriál vývoje aplikace](Tutorials/Angular/Part-I.md) diff --git a/docs/cs/docs-nav.json b/docs/cs/docs-nav.json index 8560190492..91badc73e9 100644 --- a/docs/cs/docs-nav.json +++ b/docs/cs/docs-nav.json @@ -202,7 +202,7 @@ "items": [ { "text": "API", - "items": [ + "items": [ { "text": "Automatické API řadiče", "path": "AspNetCore/Auto-API-Controllers.md" @@ -245,11 +245,21 @@ "items": [ { "text": "Entity Framework Core integrace", - "path": "Entity-Framework-Core.md" + "path": "Entity-Framework-Core.md", + "items": [ + { + "text": "PostgreSQL integrace", + "path": "Best-Practices/PostgreSQL-Integration.md" + } + ] }, { "text": "MongoDB integrace", "path": "MongoDB.md" + }, + { + "text": "Dapper integrace", + "path": "Dapper.md" } ] }, diff --git a/docs/docs-langs.json b/docs/docs-langs.json index d4ee0190d2..a73882bd51 100644 --- a/docs/docs-langs.json +++ b/docs/docs-langs.json @@ -4,6 +4,11 @@ "DisplayName" : "English", "Code" : "en", "IsDefault": true + }, + { + "DisplayName" : "Português", + "Code" : "pt-BR", + "IsDefault": false }, { "DisplayName" : "简体中文", diff --git a/docs/en/Blog-Posts/2019-09-25 v0_21_Release/Post.md b/docs/en/Blog-Posts/2019-09-25 v0_21_Release/Post.md new file mode 100644 index 0000000000..d44ab5d7df --- /dev/null +++ b/docs/en/Blog-Posts/2019-09-25 v0_21_Release/Post.md @@ -0,0 +1,21 @@ +# ABP v0.21 Has Been Released based on the ASP.NET Core 3.0 + +Just one hour after Microsoft released it, ABP v0.21 [has been released](https://twitter.com/abpframework/status/1176185493119258624) based on the ASP.NET Core 3.0. + +v0.21 has no new feature. It just upgrades to the stable ASP.NET Core 3.0. Check [v0.20 release notes](https://github.com/abpframework/abp/releases/tag/0.20.0) for new features, enhancements and bug fixes. + +## About v1.0 + +ABP framework is getting closer to v1.0. We intent to release it in the middle of this October. In this time, we will test and document more. + +## .NET Conf 2019 + +Microsoft has lunched ASP.NET Core 3.0 in the .NET Conf 2019, a 3-days virtual conference. ABP's lead developer [Halil ibrahim Kalkan](https://twitter.com/hibrahimkalkan) has also talked in the conference to introduce the ABP framework. It was great to be a part of this important event. + +## Techorama Netherlands 2019 + +[Techorama NL](https://techorama.nl/) is one of the biggest conferences in Europe. This year, Volosoft is a sponsor of the conference and will have a booth to talk to software developers about the ABP framework and software development. Our booth wall will look like shown below: + +![volosoft-booth](volosoft-booth.png) + +If you are in the conference, come to out booth to talk about the ABP framework. We will also have nice swags for you :) \ No newline at end of file diff --git a/docs/en/Blog-Posts/2019-09-25 v0_21_Release/volosoft-booth.png b/docs/en/Blog-Posts/2019-09-25 v0_21_Release/volosoft-booth.png new file mode 100644 index 0000000000..3dca4409e4 Binary files /dev/null and b/docs/en/Blog-Posts/2019-09-25 v0_21_Release/volosoft-booth.png differ diff --git a/docs/en/Getting-Started-Angular-Template.md b/docs/en/Getting-Started-Angular-Template.md index 1bd605cd65..31186eaa35 100644 --- a/docs/en/Getting-Started-Angular-Template.md +++ b/docs/en/Getting-Started-Angular-Template.md @@ -85,13 +85,13 @@ Open the **Package Manager Console**, select `.EntityFrameworkCore.DbMigrations` This will create a new database based on the configured connection string. -> Using the `.Migrator` tool is the suggested way, because it also seeds the initial data to be able to properly run the web application. +> Using the `.DbMigrator` tool is the suggested way, because it also seeds the initial data to be able to properly run the web application. ### Running the Application #### Run the API Host (Server Side) -Ensure that the `.HttpApi.Host` project is the startup project and un the application which will open a Swagger UI: +Ensure that the `.HttpApi.Host` project is the startup project and run the application which will open a Swagger UI: ![bookstore-homepage](images/bookstore-swagger-ui-host.png) diff --git a/docs/en/Modules/Index.md b/docs/en/Modules/Index.md index 2771c9a8a9..662ecf30a6 100644 --- a/docs/en/Modules/Index.md +++ b/docs/en/Modules/Index.md @@ -15,7 +15,7 @@ There are some **free and open source** application modules developed and mainta * **Audit Logging**: Used to persist audit logs to a database. * **Background Jobs**: Used to persist background jobs when using default background job manager. * **Blogging**: Used to create fancy blogs. ABP's [own blog](https://abp.io/blog/abp/) already using this module. -* [**Docs**](Docs.md): Used to create technical documentation pages. ABP's [own documentation](https://abp.io/documents/) already using this module. +* [**Docs**](Docs.md): Used to create technical documentation pages. ABP's [own documentation](https://docs.abp.io) already using this module. * **Identity**: Used to manage roles, users and their permissions. * **Identity Server**: Integrates to IdentityServer4. * **Permission Management**: Used to persist permissions. @@ -23,4 +23,4 @@ There are some **free and open source** application modules developed and mainta * **Tenant Management**: Used to manage tenants for a [multi-tenant](../Multi-Tenancy.md) application. * **Users**: Used to abstract users, so other modules can depend on this instead of the Identity module. -Documenting the modules is in the progress. See [this repository](https://github.com/abpframework/abp/tree/master/modules) for source code of all modules. \ No newline at end of file +Documenting the modules is in the progress. See [this repository](https://github.com/abpframework/abp/tree/master/modules) for source code of all modules. diff --git a/docs/en/Multi-Tenancy.md b/docs/en/Multi-Tenancy.md index f5510a82db..0ad3c66b26 100644 --- a/docs/en/Multi-Tenancy.md +++ b/docs/en/Multi-Tenancy.md @@ -114,7 +114,7 @@ namespace MyCompany.MyProject { Configure(options => { - options.TenantResolvers.Add(new MyCustomTenantResolver()); + options.TenantResolvers.Add(new MyCustomTenantResolveContributor()); }); //... @@ -123,14 +123,14 @@ namespace MyCompany.MyProject } ```` -MyCustomTenantResolver must implement **ITenantResolver** as shown below: +`MyCustomTenantResolveContributor` must implement **ITenantResolveContributor** as shown below: ````C# using Volo.Abp.MultiTenancy; namespace MyCompany.MyProject { - public class MyCustomTenantResolver : ITenantResolver + public class MyCustomTenantResolveContributor : ITenantResolveContributor { public void Resolve(ITenantResolveContext context) { diff --git a/docs/en/Startup-Templates/Module.md b/docs/en/Startup-Templates/Module.md index fa425c67e2..2b95e49a56 100644 --- a/docs/en/Startup-Templates/Module.md +++ b/docs/en/Startup-Templates/Module.md @@ -25,7 +25,7 @@ abp new Acme.IssueManagement -t module The template comes with an MVC UI by default. You can use `--no-ui` option to not include the UI layer. ````bash -abp new Acme.IssueManagement -t mvc-module --no-ui +abp new Acme.IssueManagement -t module --no-ui ```` ## Solution Structure diff --git a/docs/es/Index.md b/docs/es/Index.md new file mode 100644 index 0000000000..772a0afc13 --- /dev/null +++ b/docs/es/Index.md @@ -0,0 +1,31 @@ +# Documentación de ABP + +ABP es un **marco de desarrollo de código abierto** enfocado en el desarrollo de aplicaciones web basadas en ASP.NET Core, pero tambien soporta el desarrollo de otro tipo de aplicaciones. + +Explora el menú de navegación de la izquierda para profundizar en la documentación. + +## Estado del proyecto + +ABP es la **próxima generación** del marco de desarrollo de código abierto [ASP.NET Boilerplate](https://aspnetboilerplate.com/). Actualmente se encuentra en una fase preliminar y no está listo para su uso en producción. La documentación todavía está en progreso y se encuentra lejos de estar completa. + +Para aplicaciones en fase de producción o que lo vayan a estar en el corto plazo, se sugiere usar el marco de desarrollo [ASP.NET Boilerplate](https://aspnetboilerplate.com/) el cual tiene un completo conjunto de funciones, es maduro, mantenido y actualizado activamente. + +## Primeros pasos + +La manera más facil para iniciar un proyecto con ABP es usar las plantillas de inicio: + +* [Plantilla ASP.NET Core MVC (Razor Pages) UI](Getting-Started-AspNetCore-MVC-Template.md) +* [Plantilla Angular UI](Getting-Started-Angular-Template.md) + +Si quieres iniciar desde cero (con un proyecto vacío), entonces instala manualmente el marco de desarrollo ABP y usa los siguientes tutoriales: + +* [Aplicación de Consola](Getting-Started-Console-Application.md) +* [Aplicación web con ASP.NET Core](Getting-Started-AspNetCore-Application.md) + +## Código fuente + +ABP está hospedado en GitHub. Mira el [código fuente](https://github.com/abpframework/abp). + +## ¿Quieres contribuir? + +ABP es un proyecto de código abierto impulsado por la comunidad. Mira la [guía de contribución](Contribution/Index.md) si quieres formar parte de este proyecto. \ No newline at end of file diff --git a/docs/pt-BR/Aspect-Oriented-Programming.md b/docs/pt-BR/Aspect-Oriented-Programming.md new file mode 100644 index 0000000000..bfc7b0f705 --- /dev/null +++ b/docs/pt-BR/Aspect-Oriented-Programming.md @@ -0,0 +1,3 @@ +## Dynamic Proxying / Interceptors + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Audit-Logging.md b/docs/pt-BR/Audit-Logging.md new file mode 100644 index 0000000000..a714eebf14 --- /dev/null +++ b/docs/pt-BR/Audit-Logging.md @@ -0,0 +1,3 @@ +# Audit Logging + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Authorization.md b/docs/pt-BR/Authorization.md new file mode 100644 index 0000000000..941666a9bf --- /dev/null +++ b/docs/pt-BR/Authorization.md @@ -0,0 +1,3 @@ +## Authorization + +Façam \ No newline at end of file diff --git a/docs/pt-BR/AutoMapper-Integration.md b/docs/pt-BR/AutoMapper-Integration.md new file mode 100644 index 0000000000..24dd8ebfc4 --- /dev/null +++ b/docs/pt-BR/AutoMapper-Integration.md @@ -0,0 +1,3 @@ +## AutoMapper Integration + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Background-Jobs-Hangfire.md b/docs/pt-BR/Background-Jobs-Hangfire.md new file mode 100644 index 0000000000..66e6944e88 --- /dev/null +++ b/docs/pt-BR/Background-Jobs-Hangfire.md @@ -0,0 +1,3 @@ +# Hangfire Background Job Manager + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Background-Jobs-RabbitMq.md b/docs/pt-BR/Background-Jobs-RabbitMq.md new file mode 100644 index 0000000000..a984a2a3ab --- /dev/null +++ b/docs/pt-BR/Background-Jobs-RabbitMq.md @@ -0,0 +1,3 @@ +# RabbitMQ Background Job Manager + +TODO \ No newline at end of file diff --git a/docs/pt-BR/CLI.md b/docs/pt-BR/CLI.md new file mode 100644 index 0000000000..4d78237e1c --- /dev/null +++ b/docs/pt-BR/CLI.md @@ -0,0 +1,149 @@ +# ABP CLI + +O ABP CLI (Command Line Interface) é uma ferramenta de linha de comando para executar algumas operações comuns para soluções baseadas em ABP. + +## Instalação + +O ABP CLI é uma [ferramenta global dotnet](https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools) . Instale-o usando uma janela de linha de comando: + +````bash +dotnet tool install -g Volo.Abp.Cli +```` + +Para atualizar uma instalação existente: + +````bash +dotnet tool update -g Volo.Abp.Cli +```` + +## Comandos + +### Novo + +Gera uma nova solução baseada nos [modelos de inicialização](Startup-Templates/Index.md) do ABP . + +Uso básico: + +````bash +abp new [options] +```` + +Examplo: + +````bash +abp new Acme.BookStore +```` + +* `Acme.BookStore` é o nome da solução aqui. +* A convenção comum é nomear uma solução como *YourCompany.YourProject* . No entanto, você pode usar nomes diferentes, como *YourProject* (namespacing de nível único) ou *YourCompany.YourProduct.YourModule* (namespacing de três níveis). + +#### Opções + +* `--template`ou `-t`: especifica o nome do modelo. O nome do modelo padrão é `app`, que gera um aplicativo da web. Modelos disponíveis: + * `app`(padrão): [modelo de aplicativo](https://docs.abp.io/en/abp/latest/Startup-Templates/Application) . Opções adicionais: + * `--ui`ou `-u`: Especifica a UI framework. Framework padrão é `mvc`. Framework disponíveis: + * `mvc`: ASP.NET Core MVC. Existem algumas opções adicionais para este modelo: + * `--tiered`: Cria uma solução em camadas em que as camadas da Web e da API HTTP são fisicamente separadas. Se não especificado, ele cria uma solução em camadas que é menos complexa e adequada para a maioria dos cenários. + * `angular`: Angular. Existem algumas opções adicionais para este modelo: + * `--separate-identity-server`: Separa o aplicativo do servidor de identidade do aplicativo host da API. Se não especificado, você terá um único ponto de extremidade no lado do servidor. + * `--database-provider` Ou `-d`: especifica o provedor de banco de dados. O provedor padrão é `ef`. Fornecedores disponíveis: + * `ef`: Entity Framework Core. + * `mongodb`: MongoDB. + * `module`: [Exemplo de Módulo](Startup-Templates/Module.md). Opções adicionais: + * `--no-ui`: Especifica para não incluir a UI. Isso possibilita a criação de módulos somente de serviço (também conhecidos como microsserviços - sem interface do usuário). +* `--output-folder` ou `-o`: especifica a pasta de saída. O valor padrão é o diretório atual. +* `--version` ou `-v`: Especifica a ABP & versão de exemplo . Pode ser uma [release tag](https://github.com/abpframework/abp/releases) ou um [branch name](https://github.com/abpframework/abp/branches). Usa a versão mais recente, se não especificado. Na maioria das vezes, você desejará usar a versão mais recente. + +### add-package + +Adiciona um pacote ABP a um projeto por, + +- Adicionando pacote de nuget relacionado como uma dependência ao projeto. +- Adicionando `[DependsOn(...)]`atributo à classe de módulo no projeto (consulte o [documento de desenvolvimento](https://docs.abp.io/en/abp/latest/Module-Development-Basics) do [módulo](https://docs.abp.io/en/abp/latest/Module-Development-Basics) ). + +> Observe que o módulo adicionado pode exigir uma configuração adicional, geralmente indicada na documentação do pacote relacionado. + +Uso básico: + +```bash +abp add-package [options] +``` + +Bater + +cópia de + +Exemplo: + +``` +abp add-package Volo.Abp.MongoDB +``` + +- Este exemplo adiciona o pacote Volo.Abp.MongoDB ao projeto. + +#### Opções + +- `--project`ou `-p`: especifica o caminho do arquivo do projeto (.csproj). Se não especificado, a CLI tenta encontrar um arquivo .csproj no diretório atual. + +### add-module + +Adiciona um [módulo de aplicativo com vários pacotes](Modules/Index.md) a uma solução, localizando todos os pacotes do módulo, localizando projetos relacionados na solução e adicionando cada pacote ao projeto correspondente na solução. + +> Um módulo de negócios geralmente consiste em vários pacotes (devido a camadas, diferentes opções de provedor de banco de dados ou outros motivos). O uso do `add-module`comando simplifica drasticamente a adição de um módulo a uma solução. No entanto, cada módulo pode exigir algumas configurações adicionais, geralmente indicadas na documentação do módulo relacionado. + +Uso básico: + +```bash +abp add-module [options] +``` + +Exemplo: + +```bash +abp add-module Volo.Blogging +``` + +- Este exemplo adiciona o módulo Volo.Blogging à solução. + +#### Opções + +- `--solution`ou `-s`: especifica o caminho do arquivo da solução (.sln). Se não especificado, a CLI tenta encontrar um arquivo .sln no diretório atual. +- `--skip-db-migrations`: Para o provedor de banco de dados EF Core, ele adiciona automaticamente um novo código à primeira migração ( `Add-Migration`) e atualiza o banco de dados ( `Update-Database`), se necessário. Especifique esta opção para pular esta operação. +- `-sp`ou `--startup-project`: caminho relativo para a pasta do projeto de inicialização. O valor padrão é a pasta atual. + +### atualizar + +A atualização de todos os pacotes relacionados ao ABP pode ser entediante, pois existem muitos pacotes da estrutura e dos módulos. Este comando atualiza automaticamente todos os pacotes NuGet e NPM relacionados ao ABP em uma solução ou projeto para as versões mais recentes. + +Uso: + +```bash +abp update [options] +``` + +- Se você executar em um diretório com um arquivo .sln, ele atualizará todos os pacotes relacionados ao ABP de todos os projetos da solução para as versões mais recentes. +- Se você executar em um diretório com um arquivo .csproj, ele atualizará todos os pacotes relacionados ao ABP do projeto para as versões mais recentes. + +#### Opções + +- `--include-previews`ou `-p`: inclui pacotes de visualização, beta e rc enquanto verifica as versões mais recentes. + +### Socorro + +Grava informações básicas de uso da CLI. + +Uso: + +```bash +abp help [command-name] +``` + +Exemplos: + +```bash +abp help # Shows a general help. +abp help new # Shows help about the "new" command. +``` + + + \ No newline at end of file diff --git a/docs/pt-BR/Caching.md b/docs/pt-BR/Caching.md new file mode 100644 index 0000000000..cc28531e90 --- /dev/null +++ b/docs/pt-BR/Caching.md @@ -0,0 +1,3 @@ +# Caching + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Contribution/Index.md b/docs/pt-BR/Contribution/Index.md new file mode 100644 index 0000000000..e51ff4646c --- /dev/null +++ b/docs/pt-BR/Contribution/Index.md @@ -0,0 +1,60 @@ +## Guia de Contribuição + +O ABP é um projeto de [código aberto](https://github.com/abpframework) e orientado à comunidade. Este guia tem como objetivo ajudar alguém que queira contribuir com o projeto. + +### Contribuição de código + +Você sempre pode enviar solicitações pull ao repositório do Github. + +- Clone o [repositório ABP](https://github.com/abpframework/abp/) do Github. +- Faça as alterações necessárias. +- Envie uma solicitação de recebimento. + +Antes de fazer qualquer alteração, discuta-a sobre os [problemas](https://github.com/abpframework/abp/issues) do [Github](https://github.com/abpframework/abp/issues) . Dessa forma, nenhum outro desenvolvedor trabalhará no mesmo problema e seu PR terá uma chance melhor de ser aceito. + +#### Correções de bugs e aprimoramentos + +Você pode corrigir um bug conhecido ou trabalhar em uma melhoria planejada. Veja [a lista de problemas](https://github.com/abpframework/abp/issues) no Github. + +#### Solicitações de recursos + +Se você tem uma ideia de recurso para a estrutura ou módulos, [crie um problema](https://github.com/abpframework/abp/issues/new) no Github ou participe de uma discussão existente. Então você pode implementá-lo se for adotado pela comunidade. + +### Tradução de documentos + +Você pode traduzir a [documentação](https://abp.io/documents/) completa (incluindo esta) para o idioma materno. Nesse caso, siga estas etapas: + +- Clone o [repositório ABP](https://github.com/abpframework/abp/) do Github. +- Para adicionar um novo idioma, crie uma nova pasta dentro da pasta [docs](https://github.com/abpframework/abp/tree/master/docs) . Os nomes das pastas podem ser "en", "es", "fr", "tr" e assim por diante, com base no idioma (consulte [todos os códigos de cultura](https://msdn.microsoft.com/en-us/library/hh441729.aspx) ). +- Obtenha a [pasta "en"](https://github.com/abpframework/abp/tree/master/docs/en) como uma referência para os nomes de arquivos e a estrutura de pastas. Mantenha o mesmo nome se estiver traduzindo a mesma documentação. +- Envie uma solicitação de recebimento (PR) depois de traduzir qualquer documento. Traduza documentos e envie PRs um por um. Não espere para terminar as traduções de todos os documentos. + +Alguns documentos fundamentais precisam ser traduzidos antes da publicação de um idioma no [site de documentação](https://docs.abp.io/) da [ABP](https://docs.abp.io/) : + +- Documentos de introdução +- Tutoriais +- CLI + +Um novo idioma é publicado após a conclusão dessas traduções mínimas. + +### Localização de Recursos + +A estrutura ABP possui um [sistema de localização](../Localization.md) flexível . Você pode criar interfaces de usuário localizadas para seu próprio aplicativo. + +Além disso, os módulos de estrutura e pré-construção já localizaram textos. Como exemplo, veja [os textos de localização para o pacote Volo.Abp.UI](https://github.com/abpframework/abp/blob/master/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json) . Você pode criar um novo arquivo na [mesma pasta](https://github.com/abpframework/abp/tree/master/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi) para traduzi-lo. + +- Clone o [repositório ABP](https://github.com/abpframework/abp/) do Github. +- Crie um novo arquivo para o idioma de destino para um arquivo de texto de localização (json) (próximo ao arquivo en.json). +- Copie todos os textos do arquivo en.json. +- Traduzir os textos. +- Enviar solicitação de recebimento no Github. + +ABP é uma estrutura modular. Portanto, existem muitos recursos de texto de localização, um por módulo. Para encontrar todos os arquivos .json, você pode procurar por "en.json" após clonar o repositório. Você também pode verificar [esta lista](https://docs.abp.io/en/abp/latest/Contribution/Localization-Text-Files) para obter uma lista de arquivos de texto de localização. + +### Posts e tutoriais do blog + +Se você decidir criar alguns tutoriais ou postagens de blog no ABP, informe-nos (criando um [problema no Github](https://github.com/abpframework/abp/issues) ), para que possamos adicionar um link ao seu tutorial / publicação na documentação oficial e podemos anunciá-lo em nossa [conta do Twitter](https://twitter.com/abpframework) . + +### Relatório de erro + +Se você encontrar algum erro, [crie um problema no repositório do Github](https://github.com/abpframework/abp/issues/new) . \ No newline at end of file diff --git a/docs/pt-BR/CorrelationId.md b/docs/pt-BR/CorrelationId.md new file mode 100644 index 0000000000..97b18c5099 --- /dev/null +++ b/docs/pt-BR/CorrelationId.md @@ -0,0 +1,3 @@ +# Correlation ID + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Data-Filtering.md b/docs/pt-BR/Data-Filtering.md new file mode 100644 index 0000000000..58b1431f2c --- /dev/null +++ b/docs/pt-BR/Data-Filtering.md @@ -0,0 +1,3 @@ +# Data Filtering + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Data-Seeding.md b/docs/pt-BR/Data-Seeding.md new file mode 100644 index 0000000000..75eea2bcb9 --- /dev/null +++ b/docs/pt-BR/Data-Seeding.md @@ -0,0 +1,3 @@ +# Data Seeding + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Data-Transfer-Objects.md b/docs/pt-BR/Data-Transfer-Objects.md new file mode 100644 index 0000000000..a29865a13c --- /dev/null +++ b/docs/pt-BR/Data-Transfer-Objects.md @@ -0,0 +1,3 @@ +## Data Transfer Objects + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Distributed-Event-Bus.md b/docs/pt-BR/Distributed-Event-Bus.md new file mode 100644 index 0000000000..da8e2ff516 --- /dev/null +++ b/docs/pt-BR/Distributed-Event-Bus.md @@ -0,0 +1,3 @@ +# Distributed Event Bus + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Domain-Services.md b/docs/pt-BR/Domain-Services.md new file mode 100644 index 0000000000..c412c7b3b3 --- /dev/null +++ b/docs/pt-BR/Domain-Services.md @@ -0,0 +1,3 @@ +# ABP Documentation + +Façam! \ No newline at end of file diff --git a/docs/pt-BR/Dynamic-Proxying-Interceptors.md b/docs/pt-BR/Dynamic-Proxying-Interceptors.md new file mode 100644 index 0000000000..bfc7b0f705 --- /dev/null +++ b/docs/pt-BR/Dynamic-Proxying-Interceptors.md @@ -0,0 +1,3 @@ +## Dynamic Proxying / Interceptors + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Emailing.md b/docs/pt-BR/Emailing.md new file mode 100644 index 0000000000..a69b1cd7f3 --- /dev/null +++ b/docs/pt-BR/Emailing.md @@ -0,0 +1,3 @@ +# Emailing + +Façam! \ No newline at end of file diff --git a/docs/pt-BR/Event-Bus.md b/docs/pt-BR/Event-Bus.md new file mode 100644 index 0000000000..d95792bbb7 --- /dev/null +++ b/docs/pt-BR/Event-Bus.md @@ -0,0 +1,3 @@ +# Event Bus + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Extension-Methods-And-Helpers.md b/docs/pt-BR/Extension-Methods-And-Helpers.md new file mode 100644 index 0000000000..fb4d33c7e7 --- /dev/null +++ b/docs/pt-BR/Extension-Methods-And-Helpers.md @@ -0,0 +1,3 @@ +# Extension Methods & Helpers + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Getting-Started-Angular-Template.md b/docs/pt-BR/Getting-Started-Angular-Template.md new file mode 100644 index 0000000000..f8f1eac944 --- /dev/null +++ b/docs/pt-BR/Getting-Started-Angular-Template.md @@ -0,0 +1,126 @@ +## Introdução ao modelo de aplicativo Angular + +Este tutorial explica como criar um novo aplicativo Angular usando o modelo de inicialização, configurar e executá-lo. + +### Criando um novo projeto + +Este tutorial usa o **ABP CLI** para criar um novo projeto. Consulte a página [Introdução](https://abp.io/get-started) para outras opções. + +Instale a CLI ABP usando uma janela de linha de comando, se você não tiver instalado antes: + +```bash +dotnet tool install -g Volo.Abp.Cli +``` + +Use o `abp new`comando em uma pasta vazia para criar seu projeto: + +```bash +abp new Acme.BookStore -u angular +``` + +> Você pode usar diferentes níveis de namespaces; por exemplo, BookStore, Acme.BookStore ou Acme.Retail.BookStore. + +`-u angular`A opção especifica que a estrutura da interface do usuário seja Angular. O provedor de banco de dados padrão é o EF Core. Consulte a [documentação](CLI.md) da [CLI](CLI.md) para todas as opções disponíveis. + +#### Pré requisitos + +A solução criada requer; + +- [Visual Studio 2017 (v15.9.0 +)](https://visualstudio.microsoft.com/tr/downloads/) +- [.NET Core 2.2 ou superior](https://www.microsoft.com/net/download/dotnet-core/) +- [Node v10.16 +](https://nodejs.org/) +- [Yarn v1.17 +](https://yarnpkg.com/) + +### A Estrutura da Solução + +Abra a solução no **Visual Studio** : + +![livraria-visual-studio-solução](images/bookstore-visual-studio-solution-for-spa.png) + +A solução possui uma estrutura em camadas (baseada no [Domain Driven Design](Domain-Driven-Design.md) ) e contém projetos de teste de unidade e integração adequadamente configurados para trabalhar com o **banco de dados** **EF Core** & **SQLite in-memory**. + +> Consulte o [documento do modelo do aplicativo](Startup-Templates/Application.md) para entender a estrutura da solução em detalhes. + +### String de Conexão de Banco de Dados + +Verifique o **connection string** no `appsettings.json`arquivo no `.HttpApi.Host`projeto: + +```json +{ + "ConnectionStrings": { + "Default": "Server=localhost;Database=BookStore;Trusted_Connection=True" + } +} +``` + +A solução está configurada para usar o **Entity Framework Core** com o **MS SQL Server** . O EF Core suporta [vários](https://docs.microsoft.com/en-us/ef/core/providers/) provedores de banco de dados, para que você possa usar outro DBMS, se desejar. Mude a cadeia de conexão, se necessário. + +### Criar banco de dados e aplicar migrações de banco de dados + +Você tem duas opções para criar o banco de dados. + +#### Usando o aplicativo DbMigrator + +A solução contém um aplicativo de console (nomeado `Acme.BookStore.DbMigrator`nesta amostra) que pode criar banco de dados, aplicar migrações e propagar dados iniciais. É útil no desenvolvimento e no ambiente de produção. + +> `.DbMigrator`projeto tem o seu próprio `appsettings.json`. Portanto, se você alterou a cadeia de conexão acima, também deve alterar esta. + +Clique com o botão direito do mouse no `.DbMigrator`projeto e selecione **Definir como Projeto de Inicialização** : + +![definir como projeto de inicialização](images/set-as-startup-project.png) + +Pressione F5 (ou Ctrl + F5) para executar o aplicativo. Terá uma saída como mostrado abaixo: + +![definir como projeto de inicialização](images/db-migrator-app.png) + +#### Usando o comando EF Core Update-Database + +O Ef Core possui um `Update-Database`comando que cria banco de dados, se necessário, e aplica migrações pendentes. Clique com o botão direito do mouse no `.Web`projeto e selecione **Definir como Projeto de Inicialização** : + +![definir como projeto de inicialização](images/set-as-startup-project.png) + +Abra o **Console do Gerenciador de Pacotes** , selecione o `.EntityFrameworkCore.DbMigrations`projeto como **Projeto Padrão** e execute o `Update-Database`comando: + +![pcm-update-database](images/pcm-update-database-v2.png) + +Isso criará um novo banco de dados com base na cadeia de conexão configurada. + +> O uso da `.Migrator`ferramenta é a maneira sugerida, porque também semeia os dados iniciais para poder executar corretamente o aplicativo Web. + +### Executando o aplicativo + +#### Execute o host da API (lado do servidor) + +Verifique se o `.HttpApi.Host`projeto é o projeto de inicialização e o aplicativo que abrirá uma interface do usuário do Swagger: + +![livraria-homepage](images/bookstore-swagger-ui-host.png) + +Você pode ver as APIs do aplicativo e testá-las aqui. Obtenha [mais informações](https://swagger.io/tools/swagger-ui/) sobre a interface do usuário do Swagger. + +##### Autorização para a interface do usuário do Swagger + +A maioria das APIs de aplicativos requer autenticação e autorização. Se você deseja testar APIs autorizadas, vá manualmente para a `/Account/Login`página, digite `admin`como o nome de usuário e `1q2w3E*`a senha para efetuar login no aplicativo. Você também poderá executar APIs autorizadas. + +#### Execute o aplicativo angular (lado do cliente) + +Vá para a `angular`pasta, abra um terminal de linha de comando, digite o `yarn`comando (sugerimos ao gerenciador de pacotes do [yarn](https://yarnpkg.com/) enquanto o npm install também funcionará na maioria dos casos): + +```bash +yarn +``` + +Depois que todos os módulos do nó estiverem carregados, execute `yarn start`ou `npm start`comando: + +```bash +yarn start +``` + +Abra seu navegador favorito e vá para `localhost:4200`URL. Nome de usuário inicial é `admin`e senha é `1q2w3E*`. + +O modelo de inicialização inclui os módulos de **gerenciamento de** **identidade** e **gerenciamento de inquilino** . Após o login, o menu Administração estará disponível, onde você poderá gerenciar **inquilinos** , **funções** , **usuários** e suas **permissões** . + +> Recomendamos o [Visual Studio Code](https://code.visualstudio.com/) como editor do projeto Angular, mas você pode usar seu editor favorito. + +### Qual é o próximo? + +- [Tutorial de desenvolvimento de aplicativos](Tutorials/Angular/Part-I.md) \ No newline at end of file diff --git a/docs/pt-BR/Getting-Started-AspNetCore-Application.md b/docs/pt-BR/Getting-Started-AspNetCore-Application.md new file mode 100644 index 0000000000..4c5fb40ce1 --- /dev/null +++ b/docs/pt-BR/Getting-Started-AspNetCore-Application.md @@ -0,0 +1,183 @@ +# Introdução ao ABP com o AspNet Core MVC Web Application + +Este tutorial explica como iniciar o ABP do zero com dependências mínimas. Você geralmente deseja começar com o **modelo de inicialização** . + +## Criar um novo projeto + +1. Crie um novo aplicativo da Web vazio AspNet Core Web Application no Visual Studio: + +![img](images/create-new-aspnet-core-application.png) + +1. Selecionar modelo vazio + +![img](images/select-empty-web-application.png) + +Você pode selecionar outro modelo, mas quero mostrá-lo em um projeto claro. + +## Instale o pacote Volo.Abp.AspNetCore.Mvc + +Volo.Abp.AspNetCore.Mvc é um pacote de integração do AspNet Core MVC para ABP. Então, instale-o no seu projeto: + +``` +Install-Package Volo.Abp.AspNetCore.Mvc +``` + +## Criar o primeiro módulo ABP + +O ABP é uma estrutura modular e requer uma classe de **módulo de inicialização (raiz)** derivada de `AbpModule`: + +```csharp +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp; +using Volo.Abp.AspNetCore.Modularity; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Modularity; + +namespace BasicAspNetCoreApplication +{ + [DependsOn(typeof(AbpAspNetCoreMvcModule))] + public class AppModule : AbpModule + { + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + var app = context.GetApplicationBuilder(); + var env = context.GetEnvironment(); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + app.UseMvcWithDefaultRoute(); + } + } +} +``` + +`AppModule` é um bom nome para o módulo de inicialização de um aplicativo. + +Os pacotes ABP definem as classes do módulo e um módulo pode depender de outro módulo. No código acima, nosso `AppModule` depende `AbpAspNetCoreMvcModule`(definido pelo pacote Volo.Abp.AspNetCore.Mvc). É comum adicionar um `DependsOn`atributo após a instalação de um novo pacote de nuget ABP. + +Em vez da classe Startup, estamos configurando o pipeline do ASP.NET Core nesta classe de módulo. + +## A classe de inicialização + +O próximo passo é modificar a classe Startup para integrar ao sistema do módulo ABP: + +```csharp +using System; +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; + +namespace BasicAspNetCoreApplication +{ + public class Startup + { + public IServiceProvider ConfigureServices(IServiceCollection services) + { + services.AddApplication(); + + return services.BuildServiceProviderFromFactory(); + } + + public void Configure(IApplicationBuilder app) + { + app.InitializeApplication(); + } + } +} +``` + +`ConfigureServices` Método alterado para retornar em `IServiceProvider` vez de `void`. Essa alteração nos permite substituir a injeção de dependência do AspNet Core por outra estrutura (consulte a seção de integração com Autofac abaixo). `services.AddApplication()` adiciona todos os serviços definidos em todos os módulos a partir do `AppModule`. + +`app.InitializeApplication()`O `Configure`método call in inicializa e inicia o aplicativo. + +## Olá Mundo! + +O aplicativo acima não faz nada. Vamos criar um controlador MVC que faz algo: + +```csharp +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc; + +namespace BasicAspNetCoreApplication.Controllers +{ + public class HomeController : AbpController + { + public IActionResult Index() + { + return Content("Hello World!"); + } + } +} +``` + +Se você executar o aplicativo, verá um "Olá, mundo!" mensagem na página. + +Derivado `HomeController`de em `AbpController`vez de `Controller`classe padrão . Isso não é necessário, mas a `AbpController`classe possui propriedades e métodos base úteis para facilitar seu desenvolvimento. + +## Usando Autofac como framework de injeção de dependência + +Embora o sistema de Injeção de Dependência (DI) do AspNet Core seja adequado para requisitos básicos, o Autofac fornece recursos avançados, como Injeção de Propriedade e Interceptação de Método, exigidos pela ABP para executar recursos avançados da estrutura de aplicativos. + +Substituir o sistema DI do AspNet Core pelo Autofac e integrar ao ABP é bastante fácil. + +1. Instale o pacote [Volo.Abp.Autofac](https://www.nuget.org/packages/Volo.Abp.Autofac) + +``` +Install-Package Volo.Abp.Autofac +``` + +1. Adicionar `AbpAutofacModule` dependência + +```csharp +[DependsOn(typeof(AbpAspNetCoreMvcModule))] +[DependsOn(typeof(AbpAutofacModule))] //Add dependency to ABP Autofac module +public class AppModule : AbpModule +{ + ... +} +``` + +1. Altere a `services.AddApplication();` linha na `Startup`classe, como mostrado abaixo: + +```csharp +services.AddApplication(options => +{ + options.UseAutofac(); //Integrate to Autofac +}); +``` + +1. Atualize `Program.cs` para não usar o `WebHost.CreateDefaultBuilder()` método, pois ele usa o contêiner DI padrão: + +```csharp +public class Program +{ + public static void Main(string[] args) + { + /* + https://github.com/aspnet/AspNetCore/issues/4206#issuecomment-445612167 + CurrentDirectoryHelpers exists in: \framework\src\Volo.Abp.AspNetCore.Mvc\Microsoft\AspNetCore\InProcess\CurrentDirectoryHelpers.cs + Will remove CurrentDirectoryHelpers.cs when upgrade to ASP.NET Core 3.0. + */ + CurrentDirectoryHelpers.SetCurrentDirectory(); + + BuildWebHostInternal(args).Run(); + } + + public static IWebHost BuildWebHostInternal(string[] args) => + new WebHostBuilder() + .UseKestrel() + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseIIS() + .UseIISIntegration() + .UseStartup() + .Build(); +} +``` + +## Código fonte + +Obter código-fonte do projeto de exemplo criada neste tutorial a partir de [aqui](https://github.com/abpframework/abp/tree/master/samples/BasicAspNetCoreApplication) . \ No newline at end of file diff --git a/docs/pt-BR/Getting-Started-AspNetCore-MVC-Template.md b/docs/pt-BR/Getting-Started-AspNetCore-MVC-Template.md new file mode 100644 index 0000000000..029b898b8d --- /dev/null +++ b/docs/pt-BR/Getting-Started-AspNetCore-MVC-Template.md @@ -0,0 +1,102 @@ +## Introdução ao modelo ASP.NET Core MVC + +Este tutorial explica como criar um novo aplicativo Web ASP.NET Core MVC usando o modelo de inicialização, configurá-lo e executá-lo. + +### Criando um novo projeto + +Este tutorial usa o **ABP CLI** para criar um novo projeto. Consulte a página [Introdução](https://abp.io/get-started) para outras opções. + +Instale a CLI ABP usando uma janela de linha de comando, se você não tiver instalado antes: + +```bash +dotnet tool install -g Volo.Abp.Cli +``` + +Use o `abp new`comando em uma pasta vazia para criar seu projeto: + +```bash +abp new Acme.BookStore +``` + +> Você pode usar diferentes níveis de namespaces; por exemplo, BookStore, Acme.BookStore ou Acme.Retail.BookStore. + +`new` O comando cria um **aplicativo MVC em camadas** com o **Entity Framework Core** como o provedor de banco de dados. No entanto, possui opções adicionais. Consulte a [documentação](CLI.md) da [CLI](CLI.md) para todas as opções disponíveis. + +#### Pré requisitos + +A solução criada requer; + +- [Visual Studio 2017 (v15.9.0 +)](https://visualstudio.microsoft.com/tr/downloads/) +- [.NET Core 2.2 ou superior](https://www.microsoft.com/net/download/dotnet-core/) + +### A Estrutura da Solução + +Abra a solução no **Visual Studio** : + +![livraria-visual-studio-solução](images/bookstore-visual-studio-solution-v3.png) + +A solução possui uma estrutura em camadas (baseada no [Domain Driven Design](Domain-Driven-Design.md) ) e contém projetos de teste de unidade e integração adequadamente configurados para trabalhar com o **banco de** dados de **memória** **EF Core** e **SQLite** . + +> Consulte o [documento do modelo de aplicativo](Startup-Templates/Application.md) para entender a estrutura da solução em detalhes. + +### Cadeia de Conexão de Banco de Dados + +Verifique a **connection string** no `appsettings.json`arquivo no `.Web`projeto: + +```json +{ + "ConnectionStrings": { + "Default": "Server=localhost;Database=BookStore;Trusted_Connection=True" + } +} +``` + +A solução está configurada para usar o **Entity Framework Core** com o **MS SQL Server** . O EF Core suporta [vários](https://docs.microsoft.com/en-us/ef/core/providers/) provedores de banco de dados, para que você possa usar outro DBMS, se desejar. Mude a cadeia de conexão, se necessário. + +### Criar banco de dados e aplicar migrações de banco de dados + +Você tem duas opções para criar o banco de dados. + +#### Usando o aplicativo DbMigrator + +A solução contém um aplicativo de console (nomeado `Acme.BookStore.DbMigrator`nesta amostra) que pode criar banco de dados, aplicar migrações e propagar dados iniciais. É útil no desenvolvimento e no ambiente de produção. + +> `.DbMigrator`projeto tem o seu próprio `appsettings.json`. Portanto, se você alterou a cadeia de conexão acima, também deve alterar esta. + +Clique com o botão direito do mouse no `.DbMigrator`projeto e selecione **Definir como Projeto de Inicialização** : + +![definir como projeto de inicialização](images/set-as-startup-project.png) + +Pressione F5 (ou Ctrl + F5) para executar o aplicativo. Terá uma saída como mostrado abaixo: + +![definir como projeto de inicialização](images/db-migrator-app.png) + +#### Usando o comando EF Core Update-Database + +O Ef Core possui um `Update-Database`comando que cria banco de dados, se necessário, e aplica migrações pendentes. Clique com o botão direito do mouse no `.Web`projeto e selecione **Definir como Projeto de Inicialização** : + +![definir como projeto de inicialização](images/set-as-startup-project.png) + +Abra o **Console do Gerenciador de Pacotes** , selecione o `.EntityFrameworkCore.DbMigrations`projeto como **Projeto Padrão** e execute o `Update-Database`comando: + +![pcm-update-database](images/pcm-update-database-v2.png) + +Isso criará um novo banco de dados com base na cadeia de conexão configurada. + +> O uso da `.Migrator`ferramenta é a maneira sugerida, porque também semeia os dados iniciais para poder executar corretamente o aplicativo Web. + +### Executando o aplicativo + +Verifique se o `.Web`projeto é o projeto de inicialização. Execute o aplicativo que abrirá a página **inicial** no seu navegador: + +![livraria-homepage](images/bookstore-homepage.png) + +Clique no botão **Login** , insira `admin` como nome de usuário e `1q2w3E*` senha para acessar o aplicativo. + +O modelo de inicialização inclui os módulos de **gerenciamento de** **identidade** e **gerenciamento de inquilino** . Após o login, o menu Administração estará disponível, onde você poderá gerenciar **inquilinos** , **funções** , **usuários** e suas **permissões** . A página de gerenciamento de usuários é mostrada abaixo: + +![livraria-gerenciamento de usuários](images/bookstore-user-management-v2.png) + +### Qual é o próximo? + +- [Tutorial de desenvolvimento de aplicativos](Tutorials/AspNetCore-Mvc/Part-I.md) \ No newline at end of file diff --git a/docs/pt-BR/Getting-Started-Console-Application.md b/docs/pt-BR/Getting-Started-Console-Application.md new file mode 100644 index 0000000000..f5a0d5d5d0 --- /dev/null +++ b/docs/pt-BR/Getting-Started-Console-Application.md @@ -0,0 +1,181 @@ +# Introdução ao ABP com aplicativo de console + +Este tutorial explica como iniciar o ABP do zero com dependências mínimas. Você geralmente deseja começar com um **modelo de inicialização** . + +## Criar um novo projeto + +Crie um novo aplicativo regular .Net Core Console do Visual Studio: + +![img](images/create-new-net-core-console-application.png) + +## Instale o pacote Volo.Abp + +Volo.Abp.Core é o pacote principal de nuget para criar aplicativos baseados em ABP. Então, instale-o no seu projeto: + +``` +Install-Package Volo.Abp.Core +``` + +## Criar o primeiro módulo ABP + +O ABP é um framework modular e requer uma classe de **módulo de inicialização (raiz)** derivada de `AbpModule`: + +```csharp +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Modularity; + +namespace AbpConsoleDemo +{ + public class AppModule : AbpModule + { + + } +} +``` + +`AppModule` é um bom nome para o módulo de inicialização de um aplicativo. + +## Inicializar o aplicativo + +A próxima etapa é inicializar o aplicativo usando o módulo de inicialização criado acima: + +```csharp +using System; +using Volo.Abp; + +namespace AbpConsoleDemo +{ + class Program + { + static void Main(string[] args) + { + using (var application = AbpApplicationFactory.Create()) + { + application.Initialize(); + + Console.WriteLine("Press ENTER to stop application..."); + Console.ReadLine(); + } + } + } +} +``` + +`AbpApplicationFactory`é usado para criar o aplicativo e carregar todos os módulos que tomam `AppModule`como módulo de inicialização. `Initialize()`O método inicia o aplicativo. + +## Olá Mundo! + +O aplicativo acima não faz nada. Vamos criar um serviço que faça algo: + +```csharp +using System; +using Volo.Abp.DependencyInjection; + +namespace AbpConsoleDemo +{ + public class HelloWorldService : ITransientDependency + { + public void SayHello() + { + Console.WriteLine("Hello World!"); + } + } +} +``` + +`ITransientDependency`é uma interface especial do ABP que registra automaticamente o serviço como transitório (consulte o [documento de injeção de dependência](Dependency-Injection.md) ). + +Agora, podemos resolver o problema `HelloWorldService`e dizer olá. Altere o Program.cs como mostrado abaixo: + +```csharp +using System; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp; + +namespace AbpConsoleDemo +{ + class Program + { + static void Main(string[] args) + { + using (var application = AbpApplicationFactory.Create()) + { + application.Initialize(); + + //Resolve a service and use it + var helloWorldService = + application.ServiceProvider.GetService(); + helloWorldService.SayHello(); + + Console.WriteLine("Press ENTER to stop application..."); + Console.ReadLine(); + } + } + } +} +``` + +Embora seja suficiente para este exemplo de código simples, é sempre recomendável criar escopos no caso de resolver diretamente dependências de `IServiceProvider`(consulte a [documentação de Injeção de Dependências](Dependency-Injection.md)). + +## Usando Autofac como framework de injeção de dependência + +Embora o sistema de Injeção de Dependência (DI) do AspNet Core seja adequado para requisitos básicos, o Autofac fornece recursos avançados, como Injeção de Propriedade e Interceptação de Método, exigidos pela ABP para executar recursos avançados do framework de aplicativos. + +Substituir o sistema DI do AspNet Core pelo Autofac e integrar ao ABP é bastante fácil. + +1. Instale o pacote [Volo.Abp.Autofac](https://www.nuget.org/packages/Volo.Abp.Autofac) + +``` +Install-Package Volo.Abp.Autofac +``` + +1. Adicionar `AbpAutofacModule`dependência + +```csharp +[DependsOn(typeof(AbpAutofacModule))] //Add dependency to the AbpAutofacModule +public class AppModule : AbpModule +{ + +} +``` + +1. Mude o `Program.cs`arquivo como mostrado abaixo: + +```csharp +using System; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp; + +namespace AbpConsoleDemo +{ + class Program + { + static void Main(string[] args) + { + using (var application = AbpApplicationFactory.Create(options => + { + options.UseAutofac(); //Autofac integration + })) + { + application.Initialize(); + + //Resolve a service and use it + var helloWorldService = + application.ServiceProvider.GetService(); + helloWorldService.SayHello(); + + Console.WriteLine("Press ENTER to stop application..."); + Console.ReadLine(); + } + } + } +} +``` + +Apenas chamado `options.UseAutofac()`método nas `AbpApplicationFactory.Create`opções. + +## Código fonte + +Obter código-fonte do projeto de exemplo criada neste tutorial a partir de [aqui](https://github.com/abpframework/abp/tree/master/samples/BasicConsoleApplication) . + + diff --git a/docs/pt-BR/Guid-Generation.md b/docs/pt-BR/Guid-Generation.md new file mode 100644 index 0000000000..68c582348c --- /dev/null +++ b/docs/pt-BR/Guid-Generation.md @@ -0,0 +1,3 @@ +## Guid Generation + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Index.md b/docs/pt-BR/Index.md new file mode 100644 index 0000000000..535db6478a --- /dev/null +++ b/docs/pt-BR/Index.md @@ -0,0 +1,31 @@ +# Documentação ABP + +O ABP é um **framework de aplicativos de código aberto** focada no desenvolvimento de aplicativos da Web baseado no ASP.NET Core, mas também suporta o desenvolvimento de outros tipos de aplicativos. + +Explore o menu de navegação esquerdo para mergulhar fundo na documentação. + +## Status do projeto + +ABP é a **próxima geração** de framework de código aberto [ASP.NET Boilerplate](https://aspnetboilerplate.com/). Atualmente, está em fase de pré-visualização e não está pronto para uso na produção. A documentação ainda está em andamento e está longe de estar completa. + +Para aplicativos de curto prazo e em nível de produção, é sugerido o uso da estrutura do [ASP.NET Boilerplate](https://aspnetboilerplate.com/) , que possui um rico conjunto de recursos, maduro, mantido ativamente e atualizado. + +## Começando + +A maneira mais fácil de iniciar um novo projeto com o ABP é usar os modelos de inicialização: + +- [Modelo de interface do usuário do ASP.NET Core MVC (Razor Pages)](Getting-Started-AspNetCore-MVC-Template.md) +- [Modelo de interface do usuário angular](Getting-Started-Angular-Template.md) + +Se você deseja começar do zero (com um projeto vazio), instale manualmente o ABP Framework e use os seguintes tutoriais: + +- [Aplicação de console](Getting-Started-Console-Application.md) +- [Aplicativo da Web principal do ASP.NET](Getting-Started-AspNetCore-Application.md) + +## Código fonte + +ABP está hospedado no GitHub. Veja [o código fonte](https://github.com/abpframework/abp) . + +## Deseja contribuir? + +O ABP é um projeto de código aberto orientado pela comunidade. Consulte [o guia de contribuição](Contribution/Index.md) se você quiser fazer parte deste projeto. \ No newline at end of file diff --git a/docs/pt-BR/Integration-Tests.md b/docs/pt-BR/Integration-Tests.md new file mode 100644 index 0000000000..712ceb5633 --- /dev/null +++ b/docs/pt-BR/Integration-Tests.md @@ -0,0 +1,3 @@ +# Integration Tests + +Façam! \ No newline at end of file diff --git a/docs/pt-BR/Local-Event-Bus.md b/docs/pt-BR/Local-Event-Bus.md new file mode 100644 index 0000000000..ff4d87d210 --- /dev/null +++ b/docs/pt-BR/Local-Event-Bus.md @@ -0,0 +1,3 @@ +# Local Event Bus + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Localization.md b/docs/pt-BR/Localization.md new file mode 100644 index 0000000000..f665b68073 --- /dev/null +++ b/docs/pt-BR/Localization.md @@ -0,0 +1,195 @@ +# Localização + +O sistema de localização da ABP é perfeitamente integrado ao `Microsoft.Extensions.Localization`pacote e compatível com a [documentação de localização da Microsoft](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization) . Ele adiciona alguns recursos e aprimoramentos úteis para facilitar o uso em cenários de aplicativos da vida real. + +## Pacote Volo.Abp.Localization + +> Este pacote já está instalado por padrão com o modelo de inicialização. Portanto, na maioria das vezes, você não precisa instalá-lo manualmente. + +Volo.Abp.Localization é o pacote principal do sistema de localização. Instale-o no seu projeto usando o console do gerenciador de pacotes (PMC): + +``` +Install-Package Volo.Abp.Localization +``` + +Em seguida, você pode adicionar a dependência **AbpLocalizationModule** ao seu módulo: + +```csharp +using Volo.Abp.Modularity; +using Volo.Abp.Localization; + +namespace MyCompany.MyProject +{ + [DependsOn(typeof(AbpLocalizationModule))] + public class MyModule : AbpModule + { + //... + } +} +``` + +## Criando um recurso de localização + +Um recurso de localização é usado para agrupar cadeias de localização relacionadas e separá-las de outras cadeias de localização do aplicativo. Um [módulo](Module-Development-Basics.md) geralmente define seu próprio recurso de localização. O recurso de localização é apenas uma classe simples. Exemplo: + +```csharp +public class TestResource +{ +} +``` + +Em seguida, deve ser adicionado usando `AbpLocalizationOptions`como mostrado abaixo: + +```csharp +[DependsOn(typeof(AbpLocalizationModule))] +public class MyModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + + Configure(options => + { + //Define a new localization resource (TestResource) + options.Resources + .Add("en") + .AddVirtualJson("/Localization/Resources/Test"); + }); + } +} +``` + +Neste exemplo; + +- Adicionado um novo recurso de localização com "en" (inglês) como a cultura padrão. +- Arquivos JSON usados para armazenar as sequências de localização. +- Os arquivos JSON são incorporados ao assembly usando `VirtualFileSystemOptions`(consulte [sistema de arquivos virtual](Virtual-File-System.md) ). + +Os arquivos JSON estão localizados na pasta do projeto "/ Localização / Recursos / Teste", como mostrado abaixo: + +![localization-resource-json-files](images/localization-resource-json-files.png) + +Um conteúdo do arquivo de localização JSON é mostrado abaixo: + +```json +{ + "culture": "en", + "texts": { + "HelloWorld": "Hello World!" + } +} +``` + +- Todo arquivo de localização deve definir o `culture`código para o arquivo (como "en" ou "en-US"). +- `texts` A seção contém apenas a coleção de valores-chave das sequências de localização (as chaves também podem ter espaços). + +### Nome Curto do Recurso de Localização + +Os recursos de localização também estão disponíveis no lado do cliente (JavaScript). Portanto, definir um nome abreviado para o recurso de localização facilita o uso de textos de localização. Exemplo: + +```csharp +[LocalizationResourceName("Test")] +public class TestResource +{ +} +``` + +Consulte a seção Obtendo teste localizado / lado do cliente abaixo. + +### Herdar de outros recursos + +Um recurso pode herdar de outros recursos, o que possibilita reutilizar cadeias de localização existentes sem fazer referência ao recurso existente. Exemplo: + +```csharp +[InheritResource(typeof(AbpValidationResource))] +public class TestResource +{ +} +``` + +Herança alternativa configurando o `AbpLocalizationOptions`: + +```csharp +services.Configure(options => +{ + options.Resources + .Add("en") //Define the resource by "en" default culture + .AddVirtualJson("/Localization/Resources/Test") //Add strings from virtual json files + .AddBaseTypes(typeof(AbpValidationResource)); //Inherit from an existing resource +}); +``` + +- Um recurso pode herdar de vários recursos. +- Se o novo recurso definir a mesma sequência localizada, ele substituirá a sequência. + +### Estendendo o Recurso Existente + +Herdar de um recurso cria um novo recurso sem modificar o existente. Em alguns casos, convém não criar um novo recurso, mas estender diretamente um recurso existente. Exemplo: + +```csharp +services.Configure(options => +{ + options.Resources + .Get() + .AddVirtualJson("/Localization/Resources/Test/Extensions"); +}); +``` + +- Se um arquivo de extensão define a mesma sequência localizada, ele substitui a sequência. + +## Obtendo textos localizados + +### Lado do servidor + +Obter o texto localizado no lado do servidor é bastante padrão. + +#### Uso mais simples de uma classe + +```csharp +public class MyService +{ + private readonly IStringLocalizer _localizer; + + public MyService(IStringLocalizer localizer) + { + _localizer = localizer; + } + + public void Foo() + { + var str = _localizer["HelloWorld"]; + } +} +``` + +#### Uso mais simples em uma vista / página do Razor + +```csharp +@inject IHtmlLocalizer Localizer + +

@Localizer["HelloWorld"]

+``` + +Consulte a [documentação de localização da Microsoft](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization) para obter detalhes sobre o uso da localização no lado do servidor. + +### Lado do Cliente + +A ABP fornece serviços JavaScript para usar os mesmos textos localizados no lado do cliente. + +Obtenha um recurso de localização: + +```js +var testResource = abp.localization.getResource('Test'); +``` + +Localize uma sequência: + +```js +var str = testResource('HelloWorld'); +``` + + + \ No newline at end of file diff --git a/docs/pt-BR/Nightly-Builds.md b/docs/pt-BR/Nightly-Builds.md new file mode 100644 index 0000000000..9d3e49ccf6 --- /dev/null +++ b/docs/pt-BR/Nightly-Builds.md @@ -0,0 +1,27 @@ +# Compilações Noturnas + +Todos os pacotes de estrutura e módulo são implantados no MyGet todas as noites durante a semana. Portanto, você pode usar ou testar o código mais recente sem aguardar o próximo lançamento. + +## Configurar o Visual Studio + +> Requer Visual Studio 2017 ou superior + +1. Vá para `Tools > Options > NuGet Package Manager > Package Source`. +2. Clique no `+` ícone verde . +3. Defina `ABP Nightly`como *Nome* e `https://www.myget.org/F/abp-nightly/api/v3/index.json`como a *Fonte,* como mostrado abaixo: ![noite-compilação-adicionar-pepita-fonte](images/night-build-add-nuget-source.png) +4. Clique no `Update` botão +5. Clique no `OK` botão para salvar as alterações. + +## Instalar pacote + +Agora, você pode instalar pacotes noturnos / de visualização no seu projeto a partir do Nuget Browser ou do Package Manager Console. + +![night-build-add-nuget-package](images/night-build-add-nuget-package.png) + +1. No Nuget Browser, selecione "Incluir pré-lançamentos". +2. Altere a fonte do pacote para "Todos". +3. Pesquise um pacote. Você verá as pré *-liberações* do pacote formatadas como `(VERSION)-preview(DATE)`(como *v0.16.0-preview20190401* neste exemplo). +4. Você pode clicar no `Install`botão para adicionar um pacote ao seu projeto. + + + \ No newline at end of file diff --git a/docs/pt-BR/Object-To-Object-Mapping.md b/docs/pt-BR/Object-To-Object-Mapping.md new file mode 100644 index 0000000000..7d5f74a3fe --- /dev/null +++ b/docs/pt-BR/Object-To-Object-Mapping.md @@ -0,0 +1,3 @@ +## Object To Object Mapping + +Façam \ No newline at end of file diff --git a/docs/pt-BR/SMS-Sending.md b/docs/pt-BR/SMS-Sending.md new file mode 100644 index 0000000000..a69b1cd7f3 --- /dev/null +++ b/docs/pt-BR/SMS-Sending.md @@ -0,0 +1,3 @@ +# Emailing + +Façam! \ No newline at end of file diff --git a/docs/pt-BR/Settings.md b/docs/pt-BR/Settings.md new file mode 100644 index 0000000000..55d5536798 --- /dev/null +++ b/docs/pt-BR/Settings.md @@ -0,0 +1,3 @@ +# Settings + +Façam! \ No newline at end of file diff --git a/docs/pt-BR/Specifications.md b/docs/pt-BR/Specifications.md new file mode 100644 index 0000000000..0214f704ce --- /dev/null +++ b/docs/pt-BR/Specifications.md @@ -0,0 +1,3 @@ +# Specifications + +Façam! \ No newline at end of file diff --git a/docs/pt-BR/Startup-Templates/Application.md b/docs/pt-BR/Startup-Templates/Application.md new file mode 100644 index 0000000000..1f8d871d28 --- /dev/null +++ b/docs/pt-BR/Startup-Templates/Application.md @@ -0,0 +1,275 @@ +# Modelo de inicialização do aplicativo + +## Introdução + +Este modelo fornece uma estrutura de aplicativo em camadas com base nas práticas DDD ([Domain Driven Design](../Domain-Driven-Design.md)). Este documento explica a estrutura da solução e os projetos em detalhes. Se você deseja iniciar rapidamente, siga os guias abaixo: + +- Consulte [Introdução ao modelo do ASP.NET Core MVC](../Getting-Started-AspNetCore-MVC-Template.md) para criar uma nova solução e executá-la para este modelo (usa o MVC como a estrutura da interface do usuário e o Entity Framework Core como o provedor de banco de dados). +- Consulte o [Tutorial de desenvolvimento de aplicativos do ASP.NET Core MVC](../Tutorials/AspNetCore-Mvc/Part-I.md) para aprender como desenvolver aplicativos usando este modelo (usa o MVC como a estrutura da interface do usuário e o Entity Framework Core como o provedor de banco de dados). +- Consulte o [Tutorial de desenvolvimento de aplicativos Angular](../Tutorials/Angular/Part-I.md) para aprender como desenvolver aplicativos usando este modelo (usa Angular como a estrutura da interface do usuário e MongoDB como o provedor de banco de dados). + +## Como começar? + +Você pode usar a [ABP CLI](../CLI.md) para criar um novo projeto usando este modelo de inicialização. Como alternativa, você pode criar e fazer o download diretamente na página [Introdução](https://abp.io/get-started) . A abordagem CLI é usada aqui. + +Primeiro, instale a ABP CLI se você não tiver instalado antes: + +```bash +dotnet tool install -g Volo.Abp.Cli +``` + +Em seguida, use o `abp new`comando em uma pasta vazia para criar uma nova solução: + +```bash +abp new Acme.BookStore -t app +``` + +- `Acme.BookStore`é o nome da solução, como *YourCompany.YourProduct* . Você pode usar nomes de nível único, dois ou três níveis. +- Este exemplo especificou o nome do modelo ( `-t`ou `--template`opção). No entanto, `app`já é o modelo padrão se você não o especificar. + +### Especifique a estrutura da interface do usuário + +Este modelo fornece várias estruturas de interface do usuário: + +- `mvc`: Interface do usuário do ASP.NET Core MVC com Razor Pages (padrão) +- `angular`: UI angular + +Use `-u`ou `--ui`opção para especificar a estrutura da interface do usuário: + +```bash +abp new Acme.BookStore -u angular +``` + +### Especifique o provedor de banco de dados + +Este modelo suporta os seguintes provedores de banco de dados: + +- `ef`: Entity Framework Core (padrão) +- `mongodb`: MongoDB + +Use a opção `-d`(ou `--database-provider`) para especificar o provedor de banco de dados: + +```bash +abp new Acme.BookStore -d mongodb +``` + +## Estrutura da solução + +Com base nas opções especificadas, você obterá uma estrutura de solução ligeiramente diferente. + +### Estrutura padrão + +Se você não especificar nenhuma opção adicional, terá uma solução como a mostrada abaixo: + +![livraria-visual-studio-solution-v3](../images/bookstore-visual-studio-solution-v3.png) + +Os projetos são organizados em `src`e `test`pastas. `src`A pasta contém o aplicativo real que está em camadas com base nos princípios [DDD](https://docs.abp.io/en/abp/latest/Domain-Driven-Design) , como mencionado anteriormente. + +O diagrama abaixo mostra as camadas e dependências do projeto do aplicativo: + +![dependências de projeto em camadas](../images/layered-project-dependencies.png) + +Cada seção abaixo explicará o projeto relacionado e suas dependências. + +#### Projeto .Domain.Shared + +Este projeto contém constantes, enumerações e outros objetos. Na verdade, eles fazem parte da camada de domínio, mas precisam ser usados por todas as camadas / projetos da solução. + +Um `BookType`enum e uma `BookConsts`classe (que podem ter alguns campos constantes para a `Book`entidade, como `MaxNameLength`) são bons candidatos para este projeto. + +- Este projeto não depende de outros projetos na solução. Todos os outros projetos dependem disso direta ou indiretamente. + +#### .Domain Project + +Essa é a camada de domínio da solução. Ele contém principalmente [entidades, raízes agregadas](../Entities.md) , [serviços de domínio](../Domain-Services.md) , [tipos de valor](../Value-Types.md) , [interfaces de repositório](../Repositories) e outros objetos de domínio. + +Uma `Book`entidade, um `BookManager`serviço de domínio e uma `IBookRepository`interface são bons candidatos para este projeto. + +- Depende do `.Domain.Shared`porque usa constantes, enumerações e outros objetos definidos nesse projeto. + +#### .Application.Contracts Project + +Este projeto contém principalmente **interfaces de** [serviço de aplicativo](../Application-Services.md) e DTO ( [Data Transfer Objects](../Data-Transfer-Objects.md) ) da camada de aplicativo. Existe para separar a interface e a implementação da camada de aplicação. Dessa forma, o projeto de interface pode ser compartilhado com os clientes como um pacote de contrato. + +Uma `IBookAppService`interface e uma `BookCreationDto`classe são boas candidatas para este projeto. + +- Depende do `.Domain.Shared`porque ele pode usar constantes, enumerações e outros objetos compartilhados deste projeto nas interfaces de serviço de aplicativo e DTOs. + +#### Projeto de Aplicação + +Este projeto contém as **implementações** de [serviço de aplicativo](../Application-Services.md) das interfaces definidas no projeto.`.Application.Contracts` + +Uma `BookAppService`turma é uma boa candidata para este projeto. + +- Depende do `.Application.Contracts`projeto para poder implementar as interfaces e usar os DTOs. +- Depende do `.Domain`projeto para poder usar objetos de domínio (entidades, interfaces de repositório ... etc.) para executar a lógica do aplicativo. + +#### Projeto .EntityFrameworkCore + +Este é o projeto de integração para o EF Core. Ele define `DbContext`e implementa as interfaces de repositório definidas no `.Domain`projeto. + +- Depende do `.Domain`projeto para poder fazer referência a entidades e interfaces de repositório. + +> Este projeto está disponível apenas se você estiver usando o EF Core como provedor de banco de dados. Se você selecionar outro provedor de banco de dados, seu nome será diferente. + +#### Projeto .EntityFrameworkCore.DbMigrations + +Contém migrações de banco de dados EF Core para a solução. Ele foi separado `DbContext`para dedicado a gerenciar migrações. + +ABP é uma estrutura modular e com um design ideal, cada módulo tem sua própria `DbContext`classe. É aqui que a migração `DbContext`entra em ação e unifica todas as `DbContext`configurações em um único modelo para manter um único esquema de banco de dados. Para cenários mais avançados, você pode ter vários bancos de dados (cada um contém uma única ou algumas tabelas de módulos) e várias migrações `DbContext`(cada uma mantém um esquema de banco de dados diferente). + +Observe que a migração `DbContext`é usada apenas para migrações de banco de dados e *não em tempo de execução* . + +- Depende do `.EntityFrameworkCore`projeto, pois reutiliza a configuração definida para `DbContext`o aplicativo. + +> Este projeto está disponível apenas se você estiver usando o EF Core como provedor de banco de dados. + +#### Projeto .DbMigrator + +Este é um aplicativo de console que simplifica a execução de migrações de banco de dados em ambientes de desenvolvimento e produção. Quando você executa este aplicativo, ele; + +- Cria o banco de dados, se necessário. +- Aplica as migrações de banco de dados pendentes. +- Semeia os dados iniciais, se necessário. + +> Este projeto possui seu próprio `appsettings.json`arquivo. Portanto, se você deseja alterar a cadeia de conexão do banco de dados, lembre-se de alterar também esse arquivo. + +Especialmente, semear dados iniciais é importante neste momento. A ABP possui uma infraestrutura modular de semente de dados. Consulte [a documentação](../Data-Seeding.md) para obter mais informações sobre a propagação de dados. + +Embora a criação de banco de dados e a aplicação de migrações pareça necessária apenas para bancos de dados relacionais, esse projeto ocorre mesmo que você escolha um provedor de banco de dados NoSQL (como o MongoDB). Nesse caso, ele ainda semeia os dados iniciais necessários para a aplicação. + +- Depende do `.EntityFrameworkCore.DbMigrations`projeto (para EF Core), pois ele precisa acessar as migrações. +- Depende do `.Application.Contracts`projeto para poder acessar as definições de permissão, porque o semeador de dados inicial concede todas as permissões para a função de administrador por padrão. + +#### Projeto .HttpApi + +Este projeto é usado para definir seus controladores de API. + +Na maioria das vezes, você não precisa definir manualmente os controladores de API, pois o recurso de [controladores de API automática](../AspNetCore/Auto-API-Controllers.md) da ABP os cria automaticamente, com base na sua camada de aplicação. No entanto, no caso de você precisar escrever controladores de API, este é o melhor lugar para fazê-lo. + +- Depende do `.Application.Contracts`projeto para poder injetar as interfaces de serviço do aplicativo. + +#### Projeto .HttpApi.Client + +Este é um projeto que define os proxies do cliente C # para usar as APIs HTTP da solução. Você pode compartilhar essa biblioteca com clientes de terceiros, para que eles consumam facilmente suas APIs HTTP em seus aplicativos Dotnet (para outros tipos de aplicativos, eles ainda podem usar suas APIs, manualmente ou usando uma ferramenta em sua própria plataforma) + +Na maioria das vezes, você não precisa criar proxies de clientes C # manualmente, graças ao recurso [Dynamic C # API Clients](../AspNetCore/Dynamic-CSharp-API-Clients.md) da ABP . + +`.HttpApi.Client.ConsoleTestApp` project é um aplicativo de console criado para demonstrar o uso dos proxies do cliente. + +- Depende do `.Application.Contracts`projeto para poder compartilhar as mesmas interfaces de serviço de aplicativo e DTOs com o serviço remoto. + +> Você pode excluir este projeto e dependências se não precisar criar proxies de cliente C # para suas APIs. + +#### Projeto .Web + +Este projeto contém a interface do usuário (UI) do aplicativo se você estiver usando a interface do usuário do ASP.NET Core MVC. Ele contém páginas Razor, arquivos JavaScript, arquivos CSS, imagens e assim por diante ... + +Este projeto contém o `appsettings.json`arquivo principal que contém a cadeia de conexão e outras configurações do aplicativo. + +- Depende da `.HttpApi`camada de interface do usuário que precisa usar APIs e interfaces de serviço de aplicativo da solução. + +> Se você verificar o código fonte do `.Web.csproj`arquivo, verá as referências aos `.Application`e aos `.EntityFrameworkCore.DbMigrations`projetos. +> +> Na verdade, essas referências não são necessárias durante a codificação da camada da interface do usuário, porque a camada da interface do usuário normalmente não depende da implementação do EF Core ou da camada do Aplicativo. Esses modelos de inicialização estão prontos para a implantação em camadas, em que a camada da API está hospedada em um servidor separado da camada da interface do usuário. +> +> No entanto, se você não escolher a opção `--tiered`, essas referências estarão no projeto .Web para poder hospedar as camadas da Web, API e aplicativos em um único ponto de extremidade do aplicativo. +> +> Isso permite que você use entidades e repositórios de domínio em sua camada de apresentação. No entanto, isso é considerado uma má prática de acordo com o DDD. + +#### Projetos de teste + +A solução possui vários projetos de teste, um para cada camada: + +- `.Domain.Tests` é usado para testar a camada de domínio. +- `.Application.Tests` é usado para testar a camada de aplicativo. +- `.EntityFrameworkCore.Tests` é usado para testar a configuração do EF Core e os repositórios personalizados. +- `.Web.Tests` é usado para testar a interface do usuário (se você estiver usando a interface do ASP.NET Core MVC). +- `.TestBase` é um projeto básico (compartilhado) para todos os testes. + +Além disso, `.HttpApi.Client.ConsoleTestApp`é um aplicativo de console (não um projeto de teste automatizado) que demonstra o uso de APIs HTTP de um aplicativo .NET. + +Projetos de teste são preparados para testes de integração; + +- É totalmente integrado à estrutura ABP e a todos os serviços em sua aplicação. +- Ele usa o banco de dados SQLite na memória para o EF Core. Para o MongoDB, ele usa a biblioteca [Mongo2Go](https://github.com/Mongo2Go/Mongo2Go) . +- A autorização está desabilitada, portanto, qualquer serviço de aplicativo pode ser facilmente usado em testes. + +Você ainda pode criar testes de unidade para suas classes, que serão mais difíceis de escrever (porque você precisará preparar objetos simulados / falsos), mas mais rápidos de executar (porque apenas testa uma única classe e ignora todo o processo de inicialização). + +#### Como correr? + +Defina `.Web`como o projeto de inicialização e execute o aplicativo. O nome de usuário padrão é `admin`e a senha é `1q2w3E*`. + +Consulte [Introdução ao modelo ASP.NET Core MVC](../Getting-Started-AspNetCore-MVC-Template.md) para obter mais informações. + +### Estrutura em camadas + +Se você selecionou a interface do usuário do ASP.NET Core e especificou a `--tiered`opção, a solução criada será uma solução em camadas. O objetivo da estrutura em camadas é poder **implantar aplicativos da Web e API HTTP em diferentes servidores** : + +![livraria-visual-studio-solution-v3](../images/tiered-solution-servers.png) + +- O navegador executa sua interface do usuário executando HTML, CSS e JavaScript. +- Os servidores da Web hospedam arquivos de interface do usuário estáticos (CSS, JavaScript, imagem ... etc.) e componentes dinâmicos (por exemplo, páginas Razor). Ele executa solicitações HTTP para o servidor da API para executar a lógica de negócios do aplicativo. +- O API Server hospeda as APIs HTTP que, em seguida, usam as camadas de aplicativo e domínio do aplicativo para executar a lógica de negócios. +- Finalmente, o servidor de banco de dados hospeda seu banco de dados. + +Portanto, a solução resultante permite uma implantação em quatro camadas, comparando com a implantação em três camadas da estrutura padrão explicada anteriormente. + +> A menos que você realmente precise de uma implantação em quatro camadas, é recomendável seguir a estrutura padrão que é mais simples de desenvolver, implantar e manter. + +A estrutura da solução é mostrada abaixo: + +![livraria-visual-studio-solution-v3](../images/bookstore-visual-studio-solution-tiered.png) + +Diferente da estrutura padrão, dois novos projetos entram em jogo: `.IdentityServer`& `.HttpApi.Host`. + +#### Projeto .IdentityServer + +Este projeto é usado como um servidor de autenticação para outros projetos. `.Web`O projeto usa a autenticação do OpenId Connect para obter tokens de identidade e acesso para o usuário atual do IdentityServer. Em seguida, usa o token de acesso para chamar o servidor da API HTTP. O servidor HTTP API usa autenticação de token de portador para obter declarações do token de acesso para autorizar o usuário atual. + +![aplicativos de solução em camadas](../images/tiered-solution-applications.png) + +O ABP usa a estrutura [IdentityServer4 de](https://identityserver.io/) código aberto para a autenticação entre aplicativos. Consulte a [documentação do IdentityServer4](http://docs.identityserver.io/) para obter detalhes sobre o protocolo IdentityServer4 e OpenID Connect. + +Ele possui seu próprio `appsettings.json`que contém conexão com o banco de dados e outras configurações. + +#### Projeto .HttpApi.Host + +Este projeto é um aplicativo que hospeda a API da solução. Ele possui seu próprio `appsettings.json`que contém conexão com o banco de dados e outras configurações. + +#### Projeto .Web + +Assim como a estrutura padrão, este projeto contém a interface do usuário (UI) do aplicativo. Ele contém páginas de barbear, arquivos JavaScript, arquivos de estilo, imagens e assim por diante ... + +Este projeto contém um `appsettings.json`arquivo, mas desta vez não possui uma cadeia de conexão porque nunca se conecta ao banco de dados. Em vez disso, ele contém principalmente o terminal do servidor de API remoto e o servidor de autenticação. + +#### Pré requisitos + +- [Redis](https://redis.io/) : os aplicativos usam Redis como cache distribuído. Então, você precisa ter o Redis instalado e funcionando. + +#### Como correr? + +Você deve executar o aplicativo com a ordem especificada: + +- Primeiro, execute o `.IdentityServer`aplicativo, pois outros aplicativos dependem dele. +- Em seguida, execute o `.HttpApi.Host`que é usado pelo `.Web`aplicativo. +- Por fim, você pode executar o `.Web`projeto e efetuar login no aplicativo (usando `admin`como nome de usuário e `1q2w3E*`senha). + +### UI angular + +Se você escolher Angular como a estrutura da interface do usuário (usando a `-u angular`opção), a solução será separada em duas pastas: + +- `angular` A pasta contém a solução Angular UI, do lado do cliente. +- `aspnet-core` A pasta contém a solução ASP.NET Core, do lado do servidor. + +O lado do servidor é muito semelhante à solução descrita acima. `.HttpApi.Host`projeto serve a API, para que o aplicativo Angular possa consumi-lo. + +Os arquivos na `angular/src/environments`pasta têm a configuração essencial do aplicativo. + +## Qual é o próximo? + +- Consulte [Introdução ao modelo ASP.NET Core MVC](../Getting-Started-AspNetCore-MVC-Template.md) para criar uma nova solução e executá-la para este modelo. +- Consulte o [Tutorial](../Tutorials/AspNetCore-Mvc/Part-I.md) do [ASP.NET Core MVC](../Tutorials/AspNetCore-Mvc/Part-I.md) para aprender como desenvolver aplicativos usando este modelo. + + diff --git a/docs/pt-BR/Startup-Templates/Index.md b/docs/pt-BR/Startup-Templates/Index.md new file mode 100644 index 0000000000..61f2d2d544 --- /dev/null +++ b/docs/pt-BR/Startup-Templates/Index.md @@ -0,0 +1,7 @@ +# Modelos de inicialização + +Embora você possa começar com um projeto vazio e adicionar os pacotes necessários manualmente, os modelos de inicialização facilitam e são confortáveis para iniciar uma nova solução com a estrutura ABP. Clique no nome da lista abaixo para ver a documentação do modelo de inicialização relacionado: + +- [**app**](Application.md) : modelo de aplicativo. +- [**módulo**](Module.md) : Módulo / modelo de serviço. + diff --git a/docs/pt-BR/Startup-Templates/Module.md b/docs/pt-BR/Startup-Templates/Module.md new file mode 100644 index 0000000000..04984d181c --- /dev/null +++ b/docs/pt-BR/Startup-Templates/Module.md @@ -0,0 +1,161 @@ +# Modelo de inicialização do módulo MVC + +Este modelo pode ser usado para criar um **módulo de aplicativo** **reutilizável com** base nas [melhores práticas e convenções de desenvolvimento do módulo](../Best-Practices/Index.md). Também é adequado para criar **microsserviços** (com ou sem interface do usuário). + +## Como começar? + +Você pode usar a [ABP CLI](../CLI.md) para criar um novo projeto usando este modelo de inicialização. Como alternativa, você pode criar e fazer o download diretamente na página [Introdução](https://abp.io/get-started) . A abordagem CLI é usada aqui. + +Primeiro, instale a ABP CLI se você não tiver instalado antes: + +```bash +dotnet tool install -g Volo.Abp.Cli +``` + +Em seguida, use o `abp new`comando em uma pasta vazia para criar uma nova solução: + +```bash +abp new Acme.IssueManagement -t module +``` + +- `Acme.IssueManagement`é o nome da solução, como *YourCompany.YourProduct* . Você pode usar nomes de nível único, dois ou três níveis. + +### Sem interface de usuário + +O modelo vem com uma interface do usuário do MVC por padrão. Você pode usar a `--no-ui`opção para não incluir a camada da interface do usuário. + +```bash +abp new Acme.IssueManagement -t mvc-module --no-ui +``` + +## Estrutura da solução + +Com base nas opções especificadas, você obterá uma estrutura de solução ligeiramente diferente. Se você não especificar nenhuma opção, terá uma solução como a mostrada abaixo: + +![issuemanagement-module-solution](../images/issuemanagement-module-solution.png) + +Projetos são organizados como `src`, `test`e `host`pastas: + +- `src`A pasta contém o módulo real, que é estratificado com base nos princípios [DDD](../Domain-Driven-Design.md) . +- `test` pasta contém testes de unidade e integração. +- `host`A pasta contém aplicativos com configurações diferentes para demonstrar como hospedar o módulo em um aplicativo. Isso não faz parte do módulo, mas é útil no desenvolvimento. + +O diagrama abaixo mostra as camadas e dependências do projeto do módulo: + +![módulo de dependências do projeto em camadas](../images/layered-project-dependencies-module.png) + +Cada seção abaixo explicará o projeto relacionado e suas dependências. + +### Projeto .Domain.Shared + +Este projeto contém constantes, enumerações e outros objetos. Na verdade, eles fazem parte da camada de domínio, mas precisam ser usados por todas as camadas / projetos da solução. + +Um `IssueType`enum e uma `IssueConsts`classe (que podem ter alguns campos constantes para a `Issue`entidade, como `MaxTitleLength`) são bons candidatos para este projeto. + +- Este projeto não depende de outros projetos na solução. Todos os outros projetos dependem disso direta ou indiretamente. + +### .Domain Project + +Essa é a camada de domínio da solução. Ele contém principalmente [entidades, raízes agregadas](../Entities.md) , [serviços de domínio](../Domain-Services.md) , [tipos de valor](../Value-Types.md) , [interfaces de repositório](../Repositories.md) e outros objetos de domínio. + +Uma `Issue`entidade, um `IssueManager`serviço de domínio e uma `IIssueRepository`interface são bons candidatos para este projeto. + +- Depende do `.Domain.Shared`porque usa constantes, enumerações e outros objetos definidos nesse projeto. + +### .Application.Contracts Project + +Este projeto contém principalmente **interfaces de** [serviço de aplicativo](../Application-Services.md) e DTO ( [Data Transfer Objects](../Data-Transfer-Objects.md) ) da camada de aplicativo. Existe para separar a interface e a implementação da camada de aplicação. Dessa forma, o projeto de interface pode ser compartilhado com os clientes como um pacote de contrato. + +Uma `IIssueAppService`interface e uma `IssueCreationDto`classe são boas candidatas para este projeto. + +- Depende do `.Domain.Shared`porque ele pode usar constantes, enumerações e outros objetos compartilhados deste projeto nas interfaces de serviço de aplicativo e DTOs. + +### Projeto de Aplicação + +Este projeto contém as **implementações** de [serviço de aplicativo](../Application-Services.md) das interfaces definidas no projeto.`.Application.Contracts` + +Uma `IssueAppService`turma é uma boa candidata para este projeto. + +- Depende do `.Application.Contracts`projeto para poder implementar as interfaces e usar os DTOs. +- Depende do `.Domain`projeto para poder usar objetos de domínio (entidades, interfaces de repositório ... etc.) para executar a lógica do aplicativo. + +### Projeto .EntityFrameworkCore + +Este é o projeto de integração do EF Core. Ele define `DbContext`e implementa as interfaces de repositório definidas no `.Domain`projeto. + +- Depende do `.Domain`projeto para poder fazer referência a entidades e interfaces de repositório. + +> Você pode excluir este projeto se não desejar dar suporte ao EF Core para o seu módulo. + +### Projeto .MongoDB + +Este é o projeto de integração do MongoDB. + +- Depende do `.Domain`projeto para poder fazer referência a entidades e interfaces de repositório. + +> Você pode excluir este projeto se não quiser dar suporte ao MongoDB para o seu módulo. + +### Projetos de teste + +A solução possui vários projetos de teste, um para cada camada: + +- `.Domain.Tests` é usado para testar a camada de domínio. +- `.Application.Tests` é usado para testar a camada de aplicativo. +- `.EntityFrameworkCore.Tests` é usado para testar a configuração do EF Core e os repositórios personalizados. +- `.MongoDB.Tests` é usado para testar a configuração do MongoDB e os repositórios personalizados. +- `.TestBase` é um projeto básico (compartilhado) para todos os testes. + +Além disso, `.HttpApi.Client.ConsoleTestApp`é um aplicativo de console (não um projeto de teste automatizado) que demonstra o uso de APIs HTTP de um aplicativo Dotnet. + +Projetos de teste são preparados para testes de integração; + +- É totalmente integrado à estrutura ABP e a todos os serviços em sua aplicação. +- Ele usa o banco de dados SQLite na memória para o EF Core. Para o MongoDB, ele usa a biblioteca [Mongo2Go](https://github.com/Mongo2Go/Mongo2Go) . +- A autorização está desabilitada, portanto, qualquer serviço de aplicativo pode ser facilmente usado em testes. + +Você ainda pode criar testes de unidade para suas classes, que serão mais difíceis de escrever (porque você precisará preparar objetos simulados / falsos), mas mais rápidos de executar (porque apenas testa uma única classe e ignora todo o processo de inicialização). + +> Os testes de domínio e aplicativos estão usando o EF Core. Se você remover a integração do EF Core ou desejar usar o MongoDB para testar essas camadas, altere manualmente as referências do projeto e as dependências do módulo. + +### Projetos Anfitriões + +A solução possui alguns aplicativos host para executar seu módulo. Aplicativos host são usados para executar seu módulo em um aplicativo totalmente configurado. É útil no desenvolvimento. Os aplicativos host incluem alguns outros módulos além do módulo que está sendo desenvolvido: + +Os aplicativos host oferecem suporte a dois tipos de cenários. + +#### Cenário de aplicativo único (unificado) + +Se o seu módulo tiver uma interface do usuário, o `.Web.Unified`aplicativo será usado para hospedar a interface do usuário e a API em um único ponto. Ele possui seu próprio `appsettings.json`arquivo (que inclui a cadeia de conexão do banco de dados) e as migrações do banco de dados EF Core. + +Para o `.Web.Unified`aplicativo, há um único banco de dados chamado `YourProjectName_Unified`(como *IssueManagement_Unified* para esta amostra). + +> Se você selecionou a `--no-ui`opção, este projeto não estará na sua solução. + +##### Como correr? + +Defina-o como o projeto de inicialização, execute o `Update-Database`comando para o EF Core no Package Manager Console e execute seu aplicativo. O nome de usuário padrão é `admin`e a senha é `1q2w3E*`. + +#### Implantação separada e cenário de bancos de dados + +Nesse cenário, há três aplicativos; + +- `.IdentityServer`application é um servidor de autenticação usado por outros aplicativos. Ele possui seu próprio `appsettings.json`que contém conexão com o banco de dados e outras configurações. +- `.HttpApi.Host`hospeda a API HTTP do módulo. Ele possui seu próprio `appsettings.json`que contém conexões com o banco de dados e outras configurações. +- `.Web.Host`hospedar a interface do usuário do módulo. Este projeto contém um `appsettings.json`arquivo, mas não possui uma cadeia de conexão porque nunca se conecta ao banco de dados. Em vez disso, ele contém principalmente o terminal do servidor de API remoto e o servidor de autenticação. + +O diagrama abaixo mostra a relação dos aplicativos: + +![aplicativos de solução em camadas](../images/tiered-solution-applications.png) + +`.Web.Host`O projeto usa a autenticação OpenId Connect para obter tokens de identidade e acesso para o usuário atual do `.IdentityServer`. Em seguida, usa o token de acesso para chamar o `.HttpApi.Host`. O servidor HTTP API usa autenticação de token de portador para obter declarações do token de acesso para autorizar o usuário atual. + +##### Como correr? + +Você deve executar o aplicativo com a ordem especificada: + +- Primeiro, execute o `.IdentityServer`aplicativo, pois outros aplicativos dependem dele. +- Em seguida, execute o `.HttpApi.Host`que é usado pelo `.Web.Host`aplicativo. +- Por fim, você pode executar o `.Web.Host`projeto e efetuar login no aplicativo usando `admin`como nome de usuário e `1q2w3E*`senha. + + + \ No newline at end of file diff --git a/docs/pt-BR/Testing.md b/docs/pt-BR/Testing.md new file mode 100644 index 0000000000..ec9f5626a9 --- /dev/null +++ b/docs/pt-BR/Testing.md @@ -0,0 +1,3 @@ +# Testing + +Façam! \ No newline at end of file diff --git a/docs/pt-BR/Tutorials/Angular/Part-I.md b/docs/pt-BR/Tutorials/Angular/Part-I.md new file mode 100644 index 0000000000..566690a1d3 --- /dev/null +++ b/docs/pt-BR/Tutorials/Angular/Part-I.md @@ -0,0 +1,661 @@ +## Tutorial Angular - Parte I + +### Sobre este tutorial + +Nesta série de tutoriais, você criará um aplicativo usado para gerenciar uma lista de livros e seus autores. **Angular** será usado como estrutura da interface do usuário e **MongoDB** será usado como provedor de banco de dados. + +Esta é a primeira parte da série de tutoriais angulares. Veja todas as peças: + +- **Parte I: Crie o projeto e uma página de lista de livros (este tutorial)** +- [Parte II: Criar, atualizar e excluir livros](Part-II) +- [Parte III: Testes de Integração](Part-III) + +Você pode acessar o **código fonte** do aplicativo no [repositório GitHub](https://github.com/abpframework/abp/tree/dev/samples/BookStore-Angular-MongoDb) . + +### Criando o projeto + +Crie um novo projeto nomeado `Acme.BookStore`selecionando Angular como a estrutura da interface do usuário e MongoDB como o provedor de banco de dados, crie o banco de dados e execute o aplicativo seguindo o [documento Introdução](../../Getting-Started-Angular-Template.md) . + +### Estrutura da solução (back-end) + +É assim que a estrutura da solução em camadas cuida da criação: + +![solução de back-end da livraria](images/bookstore-backend-solution-v2.png) + +> Você pode ver o [documento do modelo de aplicativo](../../Startup-Templates/Application.md) para entender a estrutura da solução em detalhes. No entanto, você entenderá o básico com este tutorial. + +### Criar a entidade do livro + +A camada de domínio no modelo de inicialização é separada em dois projetos: + +- `Acme.BookStore.Domain`contém suas [entidades](../../Entities.md) , [serviços de domínio](../../Domain-Services.md) e outros objetos principais de domínio. +- `Acme.BookStore.Domain.Shared` contém constantes, enumerações ou outros objetos relacionados ao domínio que podem ser compartilhados com os clientes. + +Defina [entidades](../../Entities.md) na **camada de domínio** ( `Acme.BookStore.Domain`projeto) da solução. A entidade principal do aplicativo é a `Book`. Crie uma classe, chamada `Book`, no `Acme.BookStore.Domain`projeto, como mostrado abaixo: + +```csharp +using System; +using Volo.Abp.Domain.Entities.Auditing; + +namespace Acme.BookStore +{ + public class Book : AuditedAggregateRoot + { + public string Name { get; set; } + + public BookType Type { get; set; } + + public DateTime PublishDate { get; set; } + + public float Price { get; set; } + } +} +``` + +- O ABP possui duas classes base fundamentais para entidades: `AggregateRoot`e `Entity`. **A raiz agregada** é um dos conceitos de **DDD (Domain Driven Design)** . Consulte o [documento da entidade](../../Entities.md) para obter detalhes e melhores práticas. +- `Book`entidade herda `AuditedAggregateRoot`que adiciona algumas propriedades de auditoria ( `CreationTime`, `CreatorId`, `LastModificationTime`... etc.) no topo da `AggregateRoot`classe. +- `Guid`é o **tipo** de **chave primária** da `Book`entidade. + +#### BookType Enum + +Defina a `BookType`enumeração no `Acme.BookStore.Domain.Shared`projeto: + +```csharp +namespace Acme.BookStore +{ + public enum BookType + { + Undefined, + Adventure, + Biography, + Dystopia, + Fantastic, + Horror, + Science, + ScienceFiction, + Poetry + } +} +``` + +#### Adicionar entidade de livro ao seu DbContext + +Adicione uma `IMongoCollection`propriedade ao `BookStoreMongoDbContext`interior do `Acme.BookStore.MongoDB`projeto: + +```csharp +public class BookStoreMongoDbContext : AbpMongoDbContext +{ + public IMongoCollection Books => Collection(); + ... +} +``` + +#### Adicionar dados de semente (amostra) + +Esta seção é opcional, mas seria bom ter um dado inicial no banco de dados na primeira execução. O ABP fornece um [sistema de semente de dados](../../Data-Seeding.md) . Crie uma classe derivada de `IDataSeedContributor`no `.Domain`projeto: + +```csharp +using System; +using System.Threading.Tasks; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Repositories; + +namespace Acme.BookStore +{ + public class BookStoreDataSeederContributor + : IDataSeedContributor, ITransientDependency + { + private readonly IRepository _bookRepository; + + public BookStoreDataSeederContributor(IRepository bookRepository) + { + _bookRepository = bookRepository; + } + + public async Task SeedAsync(DataSeedContext context) + { + if (await _bookRepository.GetCountAsync() > 0) + { + return; + } + + await _bookRepository.InsertAsync( + new Book + { + Name = "1984", + Type = BookType.Dystopia, + PublishDate = new DateTime(1949, 6, 8), + Price = 19.84f + } + ); + + await _bookRepository.InsertAsync( + new Book + { + Name = "The Hitchhiker's Guide to the Galaxy", + Type = BookType.ScienceFiction, + PublishDate = new DateTime(1995, 9, 27), + Price = 42.0f + } + ); + } + } +} +``` + +`BookStoreDataSeederContributor`simplesmente insere dois livros no banco de dados se não houver nenhum livro adicionado antes. O ABP descobre e executa automaticamente essa classe quando você propaga o banco de dados executando o `Acme.BookStore.DbMigrator`projeto. + +### Crie o serviço de aplicativo + +O próximo passo é criar um [serviço de aplicativo](../../Application-Services.md) para gerenciar (criar, listar, atualizar, excluir ...) os livros. A camada de aplicativo no modelo de inicialização é separada em dois projetos: + +- `Acme.BookStore.Application.Contracts` contém principalmente seus DTOs e interfaces de serviço de aplicativo. +- `Acme.BookStore.Application` contém as implementações dos seus serviços de aplicativo. + +#### BookDto + +Crie uma classe DTO denominada `BookDto`no `Acme.BookStore.Application.Contracts`projeto: + +```csharp +using System; +using Volo.Abp.Application.Dtos; + +namespace Acme.BookStore +{ + public class BookDto : AuditedEntityDto + { + public string Name { get; set; } + + public BookType Type { get; set; } + + public DateTime PublishDate { get; set; } + + public float Price { get; set; } + } +} +``` + +- **As** classes **DTO** são usadas para **transferir dados** entre a *camada de apresentação* e a *camada de aplicativo* . Consulte o [documento Objetos de transferência de dados](../../Data-Transfer-Objects.md) para obter mais detalhes. +- `BookDto` é usado para transferir dados do livro para a camada de apresentação para mostrar as informações do livro na interface do usuário. +- `BookDto`é derivado do `AuditedEntityDto`que possui propriedades de auditoria exatamente como a `Book`classe definida acima. + +Será necessário converter `Book`entidades em `BookDto`objetos enquanto retorna os livros para a camada de apresentação. A biblioteca do [AutoMapper](https://automapper.org/) pode automatizar essa conversão quando você define o mapeamento adequado. O modelo de inicialização é fornecido com o AutoMapper configurado, para que você possa definir o mapeamento na `BookStoreApplicationAutoMapperProfile`classe no `Acme.BookStore.Application`projeto: + +```csharp +using AutoMapper; + +namespace Acme.BookStore +{ + public class BookStoreApplicationAutoMapperProfile : Profile + { + public BookStoreApplicationAutoMapperProfile() + { + CreateMap(); + } + } +} +``` + +#### CreateUpdateBookDto + +Crie uma classe DTO denominada `CreateUpdateBookDto`no `Acme.BookStore.Application.Contracts`projeto: + +```csharp +using System; +using System.ComponentModel.DataAnnotations; + +namespace Acme.BookStore +{ + public class CreateUpdateBookDto + { + [Required] + [StringLength(128)] + public string Name { get; set; } + + [Required] + public BookType Type { get; set; } = BookType.Undefined; + + [Required] + public DateTime PublishDate { get; set; } + + [Required] + public float Price { get; set; } + } +} +``` + +- Essa classe DTO é usada para obter informações do livro a partir da interface do usuário ao criar ou atualizar um livro. +- Ele define atributos de anotação de dados (como `[Required]`) para definir validações para as propriedades. Os DTOs são [validados automaticamente](../../Validation.md) pela estrutura ABP. + +Em seguida, adicione um mapeamento `BookStoreApplicationAutoMapperProfile`do `CreateUpdateBookDto`objeto à `Book`entidade: + +```csharp +CreateMap(); +``` + +#### IBookAppService + +Defina uma interface nomeada `IBookAppService`no `Acme.BookStore.Application.Contracts`projeto: + +```csharp +using System; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Acme.BookStore +{ + public interface IBookAppService : + ICrudAppService< //Defines CRUD methods + BookDto, //Used to show books + Guid, //Primary key of the book entity + PagedAndSortedResultRequestDto, //Used for paging/sorting on getting a list of books + CreateUpdateBookDto, //Used to create a new book + CreateUpdateBookDto> //Used to update a book + { + + } +} +``` + +- A definição de interfaces para serviços de aplicativos não é requerida pela estrutura. No entanto, é sugerido como uma prática recomendada. +- `ICrudAppService`define comuns **CRUD** métodos: `GetAsync`, `GetListAsync`, `CreateAsync`, `UpdateAsync`e `DeleteAsync`. Não é necessário estendê-lo. Em vez disso, você pode herdar da `IApplicationService`interface vazia e definir seus próprios métodos manualmente. +- Existem algumas variações de `ICrudAppService`onde você pode usar DTOs separados para cada método. + +#### BookAppService + +Implemente `IBookAppService`como nomeado `BookAppService`no `Acme.BookStore.Application`projeto: + +```csharp +using System; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; + +namespace Acme.BookStore +{ + public class BookAppService : + CrudAppService, + IBookAppService + { + public BookAppService(IRepository repository) + : base(repository) + { + + } + } +} +``` + +- `BookAppService`é derivado do `CrudAppService<...>`qual implementa todos os métodos CRUD definidos acima. +- `BookAppService`injeta `IRepository`qual é o repositório padrão da `Book`entidade. O ABP cria automaticamente repositórios padrão para cada raiz (ou entidade) agregada. Veja o [documento do repositório](../../Repositories) . +- `BookAppService`usa `IObjectMapper`para converter `Book`objetos em `BookDto`objetos e `CreateUpdateBookDto`objetos em `Book`objetos. O modelo de inicialização usa a biblioteca [AutoMapper](http://automapper.org/) como o provedor de mapeamento de objetos. Você definiu os mapeamentos antes, para que funcionem conforme o esperado. + +### Controladores de API automática + +Você normalmente cria **controladores** para expor serviços de aplicativos como pontos de extremidade da **API HTTP** . Assim, permite que navegadores ou clientes de terceiros os chamem via AJAX. O ABP pode configurar [**automaticamente**](../../AspNetCore/Auto-API-Controllers.md) seus serviços de aplicativo como controladores de API MVC por convenção. + +#### UI do Swagger + +O modelo de inicialização está configurado para executar a [interface do usuário do swagger](https://swagger.io/tools/swagger-ui/) usando a biblioteca [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) . Execute o `Acme.BookStore.HttpApi.Host`aplicativo e insira `https://localhost:XXXX/swagger/`(substitua XXXX por sua própria porta) como URL no seu navegador. + +Você verá alguns pontos de extremidade de serviço internos, bem como o `Book`serviço e seus pontos de extremidade no estilo REST: + +![livraria-arrogância](images/bookstore-swagger-api.png) + +O Swagger tem uma ótima interface para testar APIs. Você pode tentar executar a `[GET] /api/app/book`API para obter uma lista de livros. + +### Crie a página de livros + +Neste tutorial; + +- [A CLI angular](https://angular.io/cli) será usada para criar módulos, componentes e serviços +- [NGXS](https://ngxs.gitbook.io/ngxs/) será usado como a biblioteca de gerenciamento de estado +- [O Bootstrap](https://ng-bootstrap.github.io/#/home) será usado como a biblioteca de componentes da interface do usuário. +- [O Visual Studio Code](https://code.visualstudio.com/) será usado como editor de código (você pode usar seu editor favorito). + +#### Instalar pacotes NPM + +Abra uma janela do terminal, vá para a `angular`pasta e execute o `yarn` comando para instalar os pacotes NPM: + +``` +yarn +``` + +#### BooksModule + +Execute a seguinte linha de comando para criar um novo módulo, denominado `BooksModule`: + +```bash +yarn ng generate module books --route books --module app.module +``` + +![Creating-Books-Module.terminal](images/bookstore-creating-books-module-terminal.png) + +Execute `yarn start`, aguarde Angular para executar o aplicativo e abra `http://localhost:4200/books`em um navegador: + +![página inicial dos livros](images/bookstore-initial-books-page.png) + +#### Encaminhamento + +Abra `app-routing.module.ts`e substitua `books`conforme mostrado abaixo: + +```js +import { ApplicationLayoutComponent } from '@abp/ng.theme.basic';- + +//... +{ + path: 'books', + component: ApplicationLayoutComponent, + loadChildren: () => import('./books/books.module').then(m => m.BooksModule), + data: { + routes: { + name: 'Books', + } as ABP.Route, + }, +}, +``` + +`ApplicationLayoutComponent`configuração define o layout do aplicativo para a nova página. Se você deseja ver sua rota na barra de navegação (menu principal), também deve adicionar o `data`objeto com `name`propriedade à sua rota. + +![página inicial dos livros](images/bookstore-initial-books-page-with-layout.png) + +#### Componente da lista de livros + +Primeiro, substitua pela `books.component.html`seguinte linha para colocar a saída do roteador: + +```html + +``` + +Em seguida, execute o comando abaixo no terminal na pasta raiz para gerar um novo componente, chamado book-list: + +```bash +yarn ng generate component books/book-list +``` + +![terminal-criando-lista-de-livros](images/bookstore-creating-book-list-terminal.png) + +Importe `SharedModule`para `BooksModule`para reutilizar alguns componentes e serviços definidos em: + +```js +import { SharedModule } from '../shared/shared.module'; + +@NgModule({ + //... + imports: [ + //... + SharedModule, + ], +}) +export class BooksModule {} +``` + +Em seguida, atualize o `routes`no `books-routing.module.ts`para adicionar o novo componente book-list: + +```js +import { BookListComponent } from './book-list/book-list.component'; + +const routes: Routes = [ + { + path: '', + component: BooksComponent, + children: [{ path: '', component: BookListComponent }], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class BooksRoutingModule {} +``` + +![página inicial da lista de livros](images/bookstore-initial-book-list-page.png) + +#### Criar BooksState + +Execute o seguinte comando no terminal para criar um novo estado, denominado `BooksState`: + +```shell +yarn ng generate ngxs-schematic:state books +``` + +Este comando cria vários novos arquivos e edições `app.modules.ts`para importar o `NgxsModule`com o novo estado: + +```js +// app.module.ts + +import { BooksState } from './store/states/books.state'; + +@NgModule({ + imports: [ + //... + NgxsModule.forRoot([BooksState]), + ], + //... +}) +export class AppModule {} +``` + +#### Obter dados de livros do back-end + +Primeiro, crie tipos de dados para mapear os dados que retornam do back-end (você pode verificar a interface do swagger ou a API do back-end para conhecer o formato dos dados). + +Modifique o `books.ts`como mostrado abaixo: + +```js +export namespace Books { + export interface State { + books: Response; + } + + export interface Response { + items: Book[]; + totalCount: number; + } + + export interface Book { + name: string; + type: BookType; + publishDate: string; + price: number; + lastModificationTime: string; + lastModifierId: string; + creationTime: string; + creatorId: string; + id: string; + } + + export enum BookType { + Undefined, + Adventure, + Biography, + Dystopia, + Fantastic, + Horror, + Science, + ScienceFiction, + Poetry, + } +} +``` + +Adicionada `Book`interface que representa um objeto de livro e `BookType`enum representa uma categoria de livro. + +#### BooksService + +Agora, crie um novo serviço, nomeado `BooksService`para executar chamadas HTTP para o servidor: + +```bash +yarn ng generate service books/shared/books +``` + +![serviço-terminal-saída](images/bookstore-service-terminal-output.png) + +Modifique `books.service.ts`como mostrado abaixo: + +```js +import { Injectable } from '@angular/core'; +import { RestService } from '@abp/ng.core'; +import { Books } from '../../store/models'; +import { Observable } from 'rxjs'; + +@Injectable({ + providedIn: 'root', +}) +export class BooksService { + constructor(private restService: RestService) {} + + get(): Observable { + return this.restService.request({ + method: 'GET', + url: '/api/app/book' + }); + } +} +``` + +Adicionado o `get`método para obter a lista de livros executando uma solicitação HTTP no terminal relacionado. + +Substitua o `books.actions.ts`conteúdo conforme mostrado abaixo: + +```js +export class GetBooks { + static readonly type = '[Books] Get'; +} +``` + +#### Implementar o BooksState + +Abra o `books.state.ts`e altere o arquivo, como mostrado abaixo: + +```js +import { State, Action, StateContext, Selector } from '@ngxs/store'; +import { GetBooks } from '../actions/books.actions'; +import { Books } from '../models/books'; +import { BooksService } from '../../books/shared/books.service'; +import { tap } from 'rxjs/operators'; + +@State({ + name: 'BooksState', + defaults: { books: {} } as Books.State, +}) +export class BooksState { + @Selector() + static getBooks(state: Books.State) { + return state.books.items || []; + } + + constructor(private booksService: BooksService) {} + + @Action(GetBooks) + get(ctx: StateContext) { + return this.booksService.get().pipe( + tap(booksResponse => { + ctx.patchState({ + books: booksResponse, + }); + }), + ); + } +} +``` + +Adicionada a `GetBooks`ação que usa o `BookService`definido acima para obter os livros e corrigir o estado. + +> O NGXS exige retornar o observável sem assiná-lo, conforme feito nesta amostra (na função get). + +#### BookListComponent + +Modifique o `book-list.component.ts`como mostrado abaixo: + +```js +import { Component, OnInit } from '@angular/core'; +import { Store, Select } from '@ngxs/store'; +import { BooksState } from '../../store/states'; +import { Observable } from 'rxjs'; +import { Books } from '../../store/models'; +import { GetBooks } from '../../store/actions'; + +@Component({ + selector: 'app-book-list', + templateUrl: './book-list.component.html', + styleUrls: ['./book-list.component.scss'], +}) +export class BookListComponent implements OnInit { + @Select(BooksState.getBooks) + books$: Observable; + + booksType = Books.BookType; + + loading = false; + + constructor(private store: Store) {} + + ngOnInit() { + this.loading = true; + this.store.dispatch(new GetBooks()).subscribe(() => { + this.loading = false; + }); + } +} +``` + +> Consulte as [ações de despacho](https://ngxs.gitbook.io/ngxs/concepts/store#dispatching-actions) e [selecione](https://ngxs.gitbook.io/ngxs/concepts/select) na documentação do NGXS para obter mais informações sobre esses recursos do NGXS. + +Substitua o `book-list.component.html`conteúdo conforme mostrado abaixo: + +```html +
+
+
+
+
+ Books +
+
+
+
+
+ + + + Book name + Book type + Publish date + Price + + + + + {{ data.name }} + {{ booksType[data.type] }} + {{ data.publishDate | date }} + {{ data.price }} + + + +
+
+``` + +> Usamos a [tabela PrimeNG](https://www.primefaces.org/primeng/#/table) neste componente. + +A página de livros resultante é mostrada abaixo: + +![livraria-lista-de-livros](images/bookstore-book-list.png) + +E esta é a estrutura de pastas e arquivos no final deste tutorial: + +![img](images/bookstore-angular-file-tree.png) + +> Este tutorial segue o [Guia de estilo angular](https://angular.io/guide/styleguide#file-tree) . + +### Próxima parte + +Veja a [próxima parte](Part-II.md) deste tutorial. + + + \ No newline at end of file diff --git a/docs/pt-BR/Tutorials/Angular/Part-II.md b/docs/pt-BR/Tutorials/Angular/Part-II.md new file mode 100644 index 0000000000..6113c325a3 --- /dev/null +++ b/docs/pt-BR/Tutorials/Angular/Part-II.md @@ -0,0 +1,582 @@ +## Tutorial Angular - Parte II + +### Sobre este tutorial + +Esta é a segunda parte da série de tutoriais angulares. Veja todas as peças: + +- [Parte I: Crie o projeto e uma página da lista de livros](Part-I.md) +- **Parte II: Criar, atualizar e excluir livros (este tutorial)** +- [Parte III: Testes de Integração](Part-III.md) + +Você pode acessar o **código fonte** do aplicativo no [repositório GitHub](https://github.com/abpframework/abp/tree/dev/samples/BookStore-Angular-MongoDb) . + +### Criando um novo livro + +Nesta seção, você aprenderá como criar um novo formulário de diálogo modal para criar um novo livro. + +#### Definição do tipo + +Criar uma interface, com o nome `CreateUpdateBookInput`no `books.ts`como mostrado abaixo: + +```js +export namespace Books { + //... + export interface CreateUpdateBookInput { + name: string; + type: BookType; + publishDate: string; + price: number; + } +} +``` + +`CreateUpdateBookInput`interface corresponde ao `CreateUpdateBookDto`no back-end. + +#### Método de Serviço + +Abra o `books.service.ts`e adicione um novo método, nomeado `create`para executar uma solicitação HTTP POST no servidor: + +```js +create(createBookInput: Books.CreateUpdateBookInput): Observable { + return this.restService.request({ + method: 'POST', + url: '/api/app/book', + body: createBookInput + }); +} +``` + +- `restService.request`A função obtém parâmetros genéricos para os tipos enviados e recebidos do servidor. Este exemplo envia um `CreateUpdateBookInput`objeto e recebe um `Book`objeto (você pode definir o tipo `void`de solicitação ou retorno, se não for usado). + +#### Definições de estado + +Adicione a `CreateUpdateBook`ação ao `books.actions.ts`conforme mostrado abaixo: + +```js +import { Books } from '../models'; + +export class CreateUpdateBook { + static readonly type = '[Books] Create Update Book'; + constructor(public payload: Books.CreateUpdateBookInput) {} +} +``` + +Abra `books.state.ts`e defina o `save`método que ouvirá uma `CreateUpdateBook`ação para criar um livro: + +```js +import { ... , CreateUpdateBook } from '../actions/books.actions'; +import { ... , switchMap } from 'rxjs/operators'; +//... +@Action(CreateUpdateBook) +save(ctx: StateContext, action: CreateUpdateBook) { + return this.booksService + .create(action.payload) + .pipe(switchMap(() => ctx.dispatch(new GetBooks()))); +} +``` + +Quando a `SaveBook`ação é despachada, o método save é executado. Ele chama o `create`método do `BooksService`definido anteriormente. Após a chamada de serviço, `BooksState`despacha a `GetBooks`ação para obter livros novamente do servidor para atualizar a página. + +#### Adicionar um modal ao BookListComponent + +Abra o `book-list.component.html`e adicione o `abp-modal`para mostrar / ocultar o modal para criar um novo livro. + +```html + + +

New Book

+
+ + + + + + +
+``` + +`abp-modal`é um componente pré-construído para mostrar os modais. Embora você possa usar outra abordagem para mostrar um modal, `abp-modal`fornece benefícios adicionais. + +Adicione um botão rotulado `New book`para mostrar o modal: + +```html +
+
+
+ Books +
+
+
+ +
+
+``` + +Abra a variável `book-list.component.ts`e adicione `isModalOpen`e `createBook`método para mostrar / ocultar o modal. + +```js +isModalOpen = false; + +//... + +createBook() { + this.isModalOpen = true; +} +``` + +![modal vazio](images/bookstore-empty-new-book-modal.png) + +#### Criar um formulário reativo + +> [Os formulários reativos](https://angular.io/guide/reactive-forms) fornecem uma abordagem orientada a modelo para lidar com entradas de formulário cujos valores mudam ao longo do tempo. + +Adicione uma `form`variável e injete um `FormBuilder`serviço `book-list.component.ts`como mostrado abaixo (lembre-se de adicionar a instrução de importação). + +```js +import { FormGroup, FormBuilder } from '@angular/forms'; + +form: FormGroup; + +constructor( + //... + private fb: FormBuilder +) {} +``` + +> O serviço [FormBuilder](https://angular.io/api/forms/FormBuilder) fornece métodos convenientes para gerar controles. Reduz a quantidade de clichê necessária para criar formulários complexos. + +Adicione o `buildForm`método para criar um formulário de livro. + +```js +buildForm() { + this.form = this.fb.group({ + name: ['', Validators.required], + type: [null, Validators.required], + publishDate: [null, Validators.required], + price: [null, Validators.required], + }); +} +``` + +- O `group`método de `FormBuilder`( `fb`) cria a `FormGroup`. +- Adicionado `Validators.required`método estático que valida o elemento de formulário relacionado. + +Modifique o `createBook`método como mostrado abaixo: + +```js +createBook() { + this.buildForm(); + this.isModalOpen = true; +} +``` + +#### Crie os elementos DOM do formulário + +Abra `book-list.component.html`e adicione o formulário no modelo de corpo do modal. + +```html + +
+
+ * + +
+ +
+ * + +
+ +
+ * + +
+ +
+ * + +
+
+
+``` + +- Este modelo cria um formulário com os campos Nome, Preço, Tipo e Data de publicação. + +> Usamos o [datepicker do NgBootstrap](https://ng-bootstrap.github.io/#/components/datepicker/overview) neste componente. + +Abra o `book-list.component.ts`e crie uma matriz chamada `bookTypeArr`: + +```js +//... +form: FormGroup; + +bookTypeArr = Object.keys(Books.BookType).filter( + bookType => typeof this.booksType[bookType] === 'number' +); +``` + +O `bookTypeArr`contém os campos da `BookType`enumeração. A matriz resultante é mostrada abaixo: + +```js +['Adventure', 'Biography', 'Dystopia', 'Fantastic' ...] +``` + +Essa matriz foi usada no modelo de formulário anterior (no `ngFor`loop). + +#### Requisitos do Datepicker + +Você precisa importar `NgbDatepickerModule`para o `books.module.ts`: + +```js +import { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap'; + +@NgModule({ + imports: [ + // ... + NgbDatepickerModule, + ], +}) +export class BooksModule {} +``` + +Abra o `book-list.component.ts`e adicione `providers`como mostrado abaixo: + +```js +import { NgbDateNativeAdapter, NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap'; + +@Component({ + // ... + providers: [{ provide: NgbDateAdapter, useClass: NgbDateNativeAdapter }], +}) +export class BookListComponent implements OnInit { +// ... +``` + +> O `NgbDateAdapter`valor do Datepicker converte em `Date`tipo. Consulte os [adaptadores datepicker](https://ng-bootstrap.github.io/#/components/datepicker/overview) para obter mais detalhes. + +![forma de livro novo](images/bookstore-new-book-form.png) + +#### Salvando o livro + +Abra o `book-list.component.html`e adicione um `abp-button`para salvar o formulário. + +```html + + + + +``` + +Isso adiciona um botão Salvar à área inferior do modal: + +![livraria-novo-livro-formulário-v2](images/bookstore-new-book-form-v2.png) + +Em seguida, defina um `save`método no `BookListComponent`: + +```js +save() { + if (this.form.invalid) { + return; + } + + this.store.dispatch(new CreateUpdateBook(this.form.value)).subscribe(() => { + this.isModalOpen = false; + this.form.reset(); + }); +} +``` + +### Atualizando um livro existente + +#### BooksService + +Abra o `books.service.ts`e adicione os métodos `getById`e `update`. + +```js +getById(id: string): Observable { + return this.restService.request({ + method: 'GET', + url: `/api/app/book/${id}` + }); +} + +update(updateBookInput: Books.CreateUpdateBookInput, id: string): Observable { + return this.restService.request({ + method: 'PUT', + url: `/api/app/book/${id}`, + body: updateBookInput + }); +} +``` + +#### Ação CreateUpdateBook + +Abra o parâmetro `books.actins.ts`e adicione `id`à `CreateUpdateBook`ação: + +```js +export class CreateUpdateBook { + static readonly type = '[Books] Create Update Book'; + constructor(public payload: Books.CreateUpdateBookInput, public id?: string) {} +} +``` + +Abra `books.state.ts`e modifique o `save`método conforme mostrado abaixo: + +```js +@Action(CreateUpdateBook) +save(ctx: StateContext, action: CreateUpdateBook) { + let request; + + if (action.id) { + request = this.booksService.update(action.payload, action.id); + } else { + request = this.booksService.create(action.payload); + } + + return request.pipe(switchMap(() => ctx.dispatch(new GetBooks()))); +} +``` + +#### BookListComponent + +Injectar `BooksService`dependência, adicionando-o ao `book-list.component.ts`construtor e adicione uma variável chamada `selectedBook`. + +```js +import { BooksService } from '../shared/books.service'; +//... +selectedBook = {} as Books.Book; + +constructor( + //... + private booksService: BooksService +) +``` + +`booksService`é usado para obter o livro de edição para preparar o formulário. Modifique o `buildForm`método para reutilizar o mesmo formulário ao editar um livro. + +```js +buildForm() { + this.form = this.fb.group({ + name: [this.selectedBook.name || '', Validators.required], + type: this.selectedBook.type || null, + publishDate: this.selectedBook.publishDate ? new Date(this.selectedBook.publishDate) : null, + price: this.selectedBook.price || null, + }); +} +``` + +Adicione o `editBook`método como mostrado abaixo: + +```js + editBook(id: string) { + this.booksService.getById(id).subscribe(book => { + this.selectedBook = book; + this.buildForm(); + this.isModalOpen = true; + }); + } +``` + +Adicionado `editBook`método para obter o livro de edição, criar o formulário e mostrar o modal. + +Agora, adicione a `selectedBook`definição ao `createBook`método para reutilizar o mesmo formulário ao criar um novo livro: + +```js + createBook() { + this.selectedBook = {} as Books.Book; + //... + } +``` + +Modifique o `save`método para passar o ID do livro selecionado, como mostrado abaixo: + +```js +save() { + if (this.form.invalid) { + return; + } + + this.store.dispatch(new CreateUpdateBook(this.form.value, this.selectedBook.id)) + .subscribe(() => { + this.isModalOpen = false; + this.form.reset(); + }); +} +``` + +#### Adicione o menu suspenso "Ações" à tabela + +Abra o `book-list.component.html` e adicione modifique o `p-table` como mostrado abaixo: + +```html + + + + Actions + Book name + Book type + Publish date + Price + + + + + +
+ +
+ +
+
+ + {{ data.name }} + {{ booksType[data.type] }} + {{ data.publishDate | date }} + {{ data.price }} + +
+
+``` + +- Adicionado um `th`para a coluna "Ações". +- Adicionado `button`com `ngbDropdownToggle`para abrir ações quando clicamos no botão. + +> Nós costumávamos usar o [NgbDropdown](https://ng-bootstrap.github.io/#/components/dropdown/examples) no menu suspenso de ações. + +A interface do usuário final é semelhante a: + +![botões de ações](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/Angular/images/bookstore-actions-buttons.png) + +Atualize o cabeçalho modal para alterar o título com base na operação atual: + +```html + +

{{ selectedBook.id ? 'Edit' : 'New Book' }}

+
+``` + +![botões de ações](images/bookstore-edit-modal.png) + +### Exclusão de um livro existente + +#### BooksService + +Abra `books.service.ts`e inclua um `delete`método para excluir um livro com o `id`, executando uma solicitação HTTP no nó de extremidade relacionado: + +```js +delete(id: string): Observable { + return this.restService.request({ + method: 'DELETE', + url: `/api/app/book/${id}` + }); +} +``` + +#### Ação DeleteBook + +Adicione uma ação chamada `DeleteBook`para `books.actions.ts`: + +```js +export class DeleteBook { + static readonly type = '[Books] Delete'; + constructor(public id: string) {} +} +``` + +Abra o `books.state.ts`e adicione o `delete`método que ouvirá a `DeleteBook`ação para excluir um livro: + +```js +import { ... , DeleteBook } from '../actions/books.actions'; +//... +@Action(DeleteBook) +delete(ctx: StateContext, action: DeleteBook) { + return this.booksService.delete(action.id).pipe(switchMap(() => ctx.dispatch(new GetBooks()))); +} +``` + +- Adicionado `DeleteBook`à lista de importação. +- Usa `bookService`para excluir o livro. + +\#### Adicionar um botão Excluir + +Abra `book-list.component.html`e modifique `ngbDropdownMenu`para adicionar o botão excluir, como mostrado abaixo: + +```html +
+ ... + +
+``` + +A interface do usuário suspensa de ações finais é semelhante a abaixo: + +![livraria-final-ações-suspensa](images/bookstore-final-actions-dropdown.png) + +\#### Caixa de diálogo Excluir confirmação + +Abra `book-list.component.ts`e injete o `ConfirmationService`. + +```js +import { ConfirmationService } from '@abp/ng.theme.shared'; +//... +constructor( + //... + private confirmationService: ConfirmationService +) +``` + +> `ConfirmationService` é um serviço simples fornecido pela estrutura ABP que usa internamente o PrimeNG. + +Adicione um método de exclusão ao `BookListComponent`: + +```js +import { ... , DeleteBook } from '../../store/actions'; +import { ... , Toaster } from '@abp/ng.theme.shared'; +//... +delete(id: string, name: string) { + this.confirmationService + .error(`${name} will be deleted. Do you confirm that?`, 'Are you sure?') + .subscribe(status => { + if (status === Toaster.Status.confirm) { + this.store.dispatch(new DeleteBook(id)); + } + }); +} +``` + +O `delete`método mostra um pop-up de confirmação e assina a resposta do usuário. `DeleteBook`ação despachada somente se o usuário clicar no `Yes`botão O pop-up de confirmação é exibido abaixo: + +![livraria-confirmação-pop-up](images/bookstore-confirmation-popup.png) + +### Próxima parte + +Veja a [próxima parte](Part-III.md) deste tutorial. + diff --git a/docs/pt-BR/Tutorials/Angular/Part-III.md b/docs/pt-BR/Tutorials/Angular/Part-III.md new file mode 100644 index 0000000000..fc8d1b6c3b --- /dev/null +++ b/docs/pt-BR/Tutorials/Angular/Part-III.md @@ -0,0 +1,181 @@ +## Tutorial do ASP.NET Core MVC - Parte III + +### Sobre este tutorial + +Esta é a terceira parte da série de tutoriais Angular. Veja todas as peças: + +- [Parte I: Crie o projeto e uma página da lista de livros](Part-I.md) +- [Parte II: Criar, atualizar e excluir livros](Part-II.md) +- **Parte III: Testes de Integração (este tutorial)** + +Esta parte abrange os testes do **lado** do **servidor** . Você pode acessar o **código fonte** do aplicativo no [repositório GitHub](https://github.com/abpframework/abp/tree/dev/samples/BookStore-Angular-MongoDb) . + +### Testar projetos na solução + +Existem vários projetos de teste na solução: + +![livraria-teste-projetos](images/bookstore-test-projects-v3.png) + +Cada projeto é usado para testar o projeto de aplicativo relacionado. Os projetos de teste usam as seguintes bibliotecas para teste: + +- [xunit](https://xunit.github.io/) como a principal estrutura de teste. +- [Shouldly](http://shouldly.readthedocs.io/en/latest/) como uma biblioteca de asserções. +- [NSubstitute](http://nsubstitute.github.io/) como uma biblioteca de zombaria. + +### Adicionando dados de teste + +O modelo de inicialização contém a `BookStoreTestDataSeedContributor`classe no `Acme.BookStore.TestBase`projeto que cria alguns dados para executar os testes. + +Mude a `BookStoreTestDataSeedContributor`classe como mostrado abaixo: + +```csharp +using System; +using System.Threading.Tasks; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Guids; + +namespace Acme.BookStore +{ + public class BookStoreTestDataSeedContributor + : IDataSeedContributor, ITransientDependency + { + private readonly IRepository _bookRepository; + private readonly IGuidGenerator _guidGenerator; + + public BookStoreTestDataSeedContributor( + IRepository bookRepository, + IGuidGenerator guidGenerator) + { + _bookRepository = bookRepository; + _guidGenerator = guidGenerator; + } + + public async Task SeedAsync(DataSeedContext context) + { + await _bookRepository.InsertAsync( + new Book + { + Id = _guidGenerator.Create(), + Name = "Test book 1", + Type = BookType.Fantastic, + PublishDate = new DateTime(2015, 05, 24), + Price = 21 + } + ); + + await _bookRepository.InsertAsync( + new Book + { + Id = _guidGenerator.Create(), + Name = "Test book 2", + Type = BookType.Science, + PublishDate = new DateTime(2014, 02, 11), + Price = 15 + } + ); + } + } +} +``` + +- Injetado `IRepository`e usado no `SeedAsync`para criar duas entidades de livro como dados de teste. +- `IGuidGenerator`Serviço usado para criar GUIDs. Embora `Guid.NewGuid()`funcionasse perfeitamente para testes, `IGuidGenerator`possui recursos adicionais especialmente importantes ao usar bancos de dados reais (consulte o documento de geração do [Guid](../../Guid-Generation.md) para obter mais informações). + +### Testando o BookAppService + +Crie uma classe de teste denominada `BookAppService_Tests`no `Acme.BookStore.Application.Tests`projeto: + +```csharp +using System.Threading.Tasks; +using Shouldly; +using Volo.Abp.Application.Dtos; +using Xunit; + +namespace Acme.BookStore +{ + public class BookAppService_Tests : BookStoreApplicationTestBase + { + private readonly IBookAppService _bookAppService; + + public BookAppService_Tests() + { + _bookAppService = GetRequiredService(); + } + + [Fact] + public async Task Should_Get_List_Of_Books() + { + //Act + var result = await _bookAppService.GetListAsync( + new PagedAndSortedResultRequestDto() + ); + + //Assert + result.TotalCount.ShouldBeGreaterThan(0); + result.Items.ShouldContain(b => b.Name == "Test book 1"); + } + } +} +``` + +- `Should_Get_List_Of_Books`O teste simplesmente usa o `BookAppService.GetListAsync`método para obter e verificar a lista de usuários. + +Adicione um novo teste que crie um novo livro válido: + +```csharp +[Fact] +public async Task Should_Create_A_Valid_Book() +{ + //Act + var result = await _bookAppService.CreateAsync( + new CreateUpdateBookDto + { + Name = "New test book 42", + Price = 10, + PublishDate = DateTime.Now, + Type = BookType.ScienceFiction + } + ); + + //Assert + result.Id.ShouldNotBe(Guid.Empty); + result.Name.ShouldBe("New test book 42"); +} +``` + +Adicione um novo teste que tente criar um livro inválido e falhe: + +```csharp +[Fact] +public async Task Should_Not_Create_A_Book_Without_Name() +{ + var exception = await Assert.ThrowsAsync(async () => + { + await _bookAppService.CreateAsync( + new CreateUpdateBookDto + { + Name = "", + Price = 10, + PublishDate = DateTime.Now, + Type = BookType.ScienceFiction + } + ); + }); + + exception.ValidationErrors + .ShouldContain(err => err.MemberNames.Any(mem => mem == "Name")); +} +``` + +- Como o `Name`está vazio, o ABP lança um `AbpValidationException`. + +Abra a **janela Test Explorer** (use o menu Test -> Windows -> Test Explorer, se não estiver visível) e **execute Todos os** testes: + +![testes de serviço de livraria](images/bookstore-test-explorer.png) + +Parabéns, ícones verdes mostram que os testes foram aprovados com sucesso! + + + \ No newline at end of file diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-actions-buttons.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-actions-buttons.png new file mode 100644 index 0000000000..aecf31c1ad Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-actions-buttons.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-angular-file-tree.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-angular-file-tree.png new file mode 100644 index 0000000000..be05ad3e4a Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-angular-file-tree.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-backend-solution-v2.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-backend-solution-v2.png new file mode 100644 index 0000000000..79bcecb561 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-backend-solution-v2.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-book-list.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-book-list.png new file mode 100644 index 0000000000..3f9717df6e Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-book-list.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-confirmation-popup.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-confirmation-popup.png new file mode 100644 index 0000000000..c3f46af821 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-confirmation-popup.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-book-list-terminal.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-book-list-terminal.png new file mode 100644 index 0000000000..9f01e94121 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-book-list-terminal.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-books-module-terminal.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-books-module-terminal.png new file mode 100644 index 0000000000..c74b37b1b5 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-creating-books-module-terminal.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-edit-modal.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-edit-modal.png new file mode 100644 index 0000000000..c911403792 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-edit-modal.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-empty-new-book-modal.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-empty-new-book-modal.png new file mode 100644 index 0000000000..2a02802bb9 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-empty-new-book-modal.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-final-actions-dropdown.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-final-actions-dropdown.png new file mode 100644 index 0000000000..6b0be415c4 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-final-actions-dropdown.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-book-list-page.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-book-list-page.png new file mode 100644 index 0000000000..0b345ac61d Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-book-list-page.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page-with-layout.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page-with-layout.png new file mode 100644 index 0000000000..484837f78a Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page-with-layout.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page.png new file mode 100644 index 0000000000..4af86c50fa Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-initial-books-page.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form-v2.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form-v2.png new file mode 100644 index 0000000000..72513de6e5 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form-v2.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form.png new file mode 100644 index 0000000000..95de64f8d4 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-new-book-form.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-service-terminal-output.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-service-terminal-output.png new file mode 100644 index 0000000000..69aaccba31 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-service-terminal-output.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-swagger-api.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-swagger-api.png new file mode 100644 index 0000000000..437c772503 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-swagger-api.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-test-explorer.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-test-explorer.png new file mode 100644 index 0000000000..06e9e7d331 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-test-explorer.png differ diff --git a/docs/pt-BR/Tutorials/Angular/images/bookstore-test-projects-v3.png b/docs/pt-BR/Tutorials/Angular/images/bookstore-test-projects-v3.png new file mode 100644 index 0000000000..32ea91b325 Binary files /dev/null and b/docs/pt-BR/Tutorials/Angular/images/bookstore-test-projects-v3.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-I.md b/docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-I.md new file mode 100644 index 0000000000..798836ba52 --- /dev/null +++ b/docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-I.md @@ -0,0 +1,462 @@ +## Tutorial do ASP.NET Core MVC - Parte I + +### Sobre este tutorial + +Nesta série de tutoriais, você criará um aplicativo usado para gerenciar uma lista de livros e seus autores. **O Entity Framework Core** (EF Core) será usado como o provedor ORM, pois é o provedor de banco de dados padrão. + +Esta é a primeira parte da série de tutoriais do ASP.NET Core MVC. Veja todas as peças: + +- **Parte I: Crie o projeto e uma página de lista de livros (este tutorial)** +- [Parte II: Criar, atualizar e excluir livros](Part-II.md) +- [Parte III: Testes de Integração](Part-III.md) + +Você pode acessar o **código fonte** do aplicativo [no repositório GitHub](https://github.com/abpframework/abp/tree/master/samples/BookStore) . + +> Você também pode assistir a [este curso em vídeo](https://amazingsolutions.teachable.com/p/lets-build-the-bookstore-application) preparado por um membro da comunidade ABP, com base neste tutorial. + +### Criando o projeto + +Crie um novo projeto chamado `Acme.BookStore`, crie o banco de dados e execute o aplicativo seguindo o [documento Introdução](Getting-Started-AspNetCore-MVC-Template.md). + +### Estrutura da solução + +É assim que a estrutura da solução em camadas cuida da criação: + +![livraria-visual-studio-solução](images/bookstore-visual-studio-solution-v3.png) + +> Você pode ver o [documento do modelo de aplicativo](https://docs.abp.io/en/abp/latest/Startup-Templates/Application) para entender a estrutura da solução em detalhes. No entanto, você entenderá o básico com este tutorial. + +### Criar a entidade do livro + +A camada de domínio no modelo de inicialização é separada em dois projetos: + +- `Acme.BookStore.Domain`contém suas [entidades](https://docs.abp.io/en/abp/latest/Entities.md) , [serviços de domínio](https://docs.abp.io/en/abp/latest/Domain-Services) e outros objetos principais de domínio. +- `Acme.BookStore.Domain.Shared` contém constantes, enumerações ou outros objetos relacionados ao domínio que podem ser compartilhados com os clientes. + +Defina [entidades](https://docs.abp.io/en/abp/latest/Entities) na **camada de domínio** ( `Acme.BookStore.Domain`projeto) da solução. A entidade principal do aplicativo é a `Book`. Crie uma classe, chamada `Book`, no `Acme.BookStore.Domain`projeto, como mostrado abaixo: + +```csharp +using System; +using Volo.Abp.Domain.Entities.Auditing; + +namespace Acme.BookStore +{ + public class Book : AuditedAggregateRoot + { + public string Name { get; set; } + + public BookType Type { get; set; } + + public DateTime PublishDate { get; set; } + + public float Price { get; set; } + } +} +``` + +- O ABP possui duas classes base fundamentais para entidades: `AggregateRoot`e `Entity`. **A raiz agregada** é um dos conceitos de **DDD (Domain Driven Design)** . Consulte o [documento da entidade](https://docs.abp.io/en/abp/latest/Entities) para obter detalhes e melhores práticas. +- `Book`entidade herda `AuditedAggregateRoot`que adiciona algumas propriedades de auditoria ( `CreationTime`, `CreatorId`, `LastModificationTime`... etc.) no topo da `AggregateRoot`classe. +- `Guid`é o **tipo** de **chave primária** da `Book`entidade. + +#### BookType Enum + +Defina a `BookType`enumeração no `Acme.BookStore.Domain.Shared`projeto: + +```csharp +namespace Acme.BookStore +{ + public enum BookType + { + Undefined, + Adventure, + Biography, + Dystopia, + Fantastic, + Horror, + Science, + ScienceFiction, + Poetry + } +} +``` + +#### Adicionar entidade de livro ao seu DbContext + +O EF Core exige que você relacione entidades com seu DbContext. A maneira mais fácil de fazer isso é adicionar uma `DbSet`propriedade à `BookStoreDbContext`classe no `Acme.BookStore.EntityFrameworkCore`projeto, conforme mostrado abaixo: + +```csharp + public class BookStoreDbContext : AbpDbContext + { + public DbSet Books { get; set; } + ... + } +``` + +#### Configure sua entidade do livro + +Abra o `BookStoreDbContextModelCreatingExtensions.cs`arquivo no `Acme.BookStore.EntityFrameworkCore`projeto e adicione o seguinte código ao final do `ConfigureBookStore`método para configurar a entidade Livro: + +```csharp +builder.Entity(b => +{ + b.ToTable(BookStoreConsts.DbTablePrefix + "Books", BookStoreConsts.DbSchema); + b.ConfigureByConvention(); //auto configure for the base class props + b.Property(x => x.Name).IsRequired().HasMaxLength(128); +}); +``` + +#### Adicionar nova migração e atualizar o banco de dados + +O modelo de inicialização usa [as primeiras migrações do código principal EF](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/) para criar e manter o esquema do banco de dados. Abra o **Gerenciador de Console Package (PMC)** (sob as *Ferramentas / Gerente Nuget Package* menu), selecione o `Acme.BookStore.EntityFrameworkCore.DbMigrations`como o **projeto padrão** e execute o seguinte comando: + +![livraria-pmc-add-book-migration](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration-v2.png) + +Isso criará uma nova classe de migração dentro da `Migrations`pasta. Em seguida, execute o `Update-Database`comando para atualizar o esquema do banco de dados: + +``` +PM> Update-Database +``` + +#### Adicionar dados de amostra + +`Update-Database`O comando criou a `AppBooks`tabela no banco de dados. Abra seu banco de dados e insira algumas linhas de amostra, para que você possa mostrá-las na página: + +![livraria-livros-mesa](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-books-table.png) + +### Crie o serviço de aplicativo + +O próximo passo é criar um [serviço de aplicativo](https://docs.abp.io/en/abp/latest/Application-Services) para gerenciar (criar, listar, atualizar, excluir ...) os livros. A camada de aplicativo no modelo de inicialização é separada em dois projetos: + +- `Acme.BookStore.Application.Contracts` contém principalmente seus DTOs e interfaces de serviço de aplicativo. +- `Acme.BookStore.Application` contém as implementações dos seus serviços de aplicativo. + +#### BookDto + +Crie uma classe DTO denominada `BookDto`no `Acme.BookStore.Application.Contracts`projeto: + +```csharp +using System; +using Volo.Abp.Application.Dtos; + +namespace Acme.BookStore +{ + public class BookDto : AuditedEntityDto + { + public string Name { get; set; } + + public BookType Type { get; set; } + + public DateTime PublishDate { get; set; } + + public float Price { get; set; } + } +} +``` + +- **As** classes **DTO** são usadas para **transferir dados** entre a *camada de apresentação* e a *camada de aplicativo* . Consulte o [documento Objetos de transferência de dados](https://docs.abp.io/en/abp/latest/Data-Transfer-Objects) para obter mais detalhes. +- `BookDto` é usado para transferir dados do livro para a camada de apresentação para mostrar as informações do livro na interface do usuário. +- `BookDto`é derivado do `AuditedEntityDto`que possui propriedades de auditoria exatamente como a `Book`classe definida acima. + +Será necessário converter `Book`entidades em `BookDto`objetos enquanto retorna os livros para a camada de apresentação. [A](https://automapper.org/) biblioteca do [AutoMapper](https://automapper.org/) pode automatizar essa conversão quando você define o mapeamento adequado. O modelo de inicialização é fornecido com o AutoMapper configurado, para que você possa definir o mapeamento na `BookStoreApplicationAutoMapperProfile`classe no `Acme.BookStore.Application`projeto: + +```csharp +using AutoMapper; + +namespace Acme.BookStore +{ + public class BookStoreApplicationAutoMapperProfile : Profile + { + public BookStoreApplicationAutoMapperProfile() + { + CreateMap(); + } + } +} +``` + +#### CreateUpdateBookDto + +Crie uma classe DTO denominada `CreateUpdateBookDto`no `Acme.BookStore.Application.Contracts`projeto: + +```csharp +using System; +using System.ComponentModel.DataAnnotations; + +namespace Acme.BookStore +{ + public class CreateUpdateBookDto + { + [Required] + [StringLength(128)] + public string Name { get; set; } + + [Required] + public BookType Type { get; set; } = BookType.Undefined; + + [Required] + public DateTime PublishDate { get; set; } + + [Required] + public float Price { get; set; } + } +} +``` + +- Essa classe DTO é usada para obter informações do livro a partir da interface do usuário ao criar ou atualizar um livro. +- Ele define atributos de anotação de dados (como `[Required]`) para definir validações para as propriedades. Os DTOs são [validados automaticamente](https://docs.abp.io/en/abp/latest/Validation) pela estrutura ABP. + +Em seguida, adicione um mapeamento `BookStoreApplicationAutoMapperProfile`do `CreateUpdateBookDto`objeto à `Book`entidade: + +```csharp +CreateMap(); +``` + +#### IBookAppService + +Defina uma interface nomeada `IBookAppService`no `Acme.BookStore.Application.Contracts`projeto: + +```csharp +using System; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Acme.BookStore +{ + public interface IBookAppService : + ICrudAppService< //Defines CRUD methods + BookDto, //Used to show books + Guid, //Primary key of the book entity + PagedAndSortedResultRequestDto, //Used for paging/sorting on getting a list of books + CreateUpdateBookDto, //Used to create a new book + CreateUpdateBookDto> //Used to update a book + { + + } +} +``` + +- A definição de interfaces para serviços de aplicativos não é requerida pela estrutura. No entanto, é sugerido como uma prática recomendada. +- `ICrudAppService`define comuns **CRUD** métodos: `GetAsync`, `GetListAsync`, `CreateAsync`, `UpdateAsync`e `DeleteAsync`. Não é necessário estendê-lo. Em vez disso, você pode herdar da `IApplicationService`interface vazia e definir seus próprios métodos manualmente. +- Existem algumas variações de `ICrudAppService`onde você pode usar DTOs separados para cada método. + +#### BookAppService + +Implemente `IBookAppService`como nomeado `BookAppService`no `Acme.BookStore.Application`projeto: + +```csharp +using System; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; + +namespace Acme.BookStore +{ + public class BookAppService : + CrudAppService, + IBookAppService + { + public BookAppService(IRepository repository) + : base(repository) + { + + } + } +} +``` + +- `BookAppService`é derivado do `CrudAppService<...>`qual implementa todos os métodos CRUD definidos acima. +- `BookAppService`injeta `IRepository`qual é o repositório padrão da `Book`entidade. O ABP cria automaticamente repositórios padrão para cada raiz (ou entidade) agregada. Veja o [documento](https://docs.abp.io/en/abp/latest/Repositories) do [repositório](https://docs.abp.io/en/abp/latest/Repositories) . +- `BookAppService`usa `IObjectMapper`para converter `Book`objetos em `BookDto`objetos e `CreateUpdateBookDto`objetos em `Book`objetos. O modelo de inicialização usa a biblioteca [AutoMapper](http://automapper.org/) como o provedor de mapeamento de objetos. Você definiu os mapeamentos antes, para que funcionem conforme o esperado. + +### Controladores de API automática + +Você normalmente cria **controladores** para expor serviços de aplicativos como pontos de extremidade da **API HTTP** . Assim, permite que navegadores ou clientes de terceiros os chamem via AJAX. O ABP pode configurar [**automaticamente**](https://docs.abp.io/en/abp/latest/AspNetCore/Auto-API-Controllers) seus serviços de aplicativo como controladores de API MVC por convenção. + +#### UI do Swagger + +O modelo de inicialização está configurado para executar a [interface do usuário](https://swagger.io/tools/swagger-ui/) do [swagger](https://swagger.io/tools/swagger-ui/) usando a biblioteca [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) . Execute o aplicativo e insira `https://localhost:XXXX/swagger/`(substitua XXXX por sua própria porta) como URL no seu navegador. + +Você verá alguns pontos de extremidade de serviço internos, bem como o `Book`serviço e seus pontos de extremidade no estilo REST: + +![livraria-arrogância](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-swagger.png) + +O Swagger tem uma ótima interface para testar APIs. Você pode tentar executar a `[GET] /api/app/book`API para obter uma lista de livros. + +### Proxies dinâmicos de JavaScript + +É comum chamar pontos de extremidade da API HTTP via AJAX do lado do **JavaScript** . Você pode usar `$.ajax`ou outra ferramenta para chamar os pontos de extremidade. No entanto, o ABP oferece uma maneira melhor. + +O ABP cria **dinamicamente** **proxies** JavaScript para todos os pontos de extremidade da API. Portanto, você pode usar qualquer **terminal,** assim como chamar uma **função JavaScript** . + +#### Testando no console do desenvolvedor do navegador + +Você pode testar facilmente os proxies JavaScript usando o **Console** do **desenvolvedor** do seu navegador favorito agora. Execute o aplicativo, abra as **ferramentas de desenvolvedor** do navegador (atalho: F12), vá para a guia **Console** , digite o seguinte código e pressione enter: + +```js +acme.bookStore.book.getList({}).done(function (result) { console.log(result); }); +``` + +- `acme.bookStore`é o espaço para nome do `BookAppService`convertido em [camelCase](https://en.wikipedia.org/wiki/Camel_case) . +- `book`é o nome convencional para o `BookAppService`(postfix do AppService removido e convertido em camelCase). +- `getList`é o nome convencional para o `GetListAsync`método definido na `AsyncCrudAppService`classe base (postfix assíncrono removido e convertido em camelCase). +- `{}`O argumento é usado para enviar um objeto vazio ao `GetListAsync`método que normalmente espera um objeto do tipo `PagedAndSortedResultRequestDto`usado para enviar opções de paginação e classificação ao servidor (todas as propriedades são opcionais, para que você possa enviar um objeto vazio). +- `getList`A função retorna a `promise`. Portanto, você pode passar um retorno de chamada para a função `done`(ou `then`) para obter o resultado do servidor. + +A execução desse código produz a seguinte saída: + +![livraria-teste-js-proxy-getlist](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist.png) + +Você pode ver a **lista de livros** retornada do servidor. Você também pode verificar a guia de **rede** das ferramentas do desenvolvedor para ver a comunicação do cliente com o servidor: + +![livraria-teste-js-proxy-getlist-rede](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist-network.png) + +Vamos **criar um novo livro** usando a `create`função: + +```js +acme.bookStore.book.create({ name: 'Foundation', type: 7, publishDate: '1951-05-24', price: 21.5 }).done(function (result) { console.log('successfully created the book with id: ' + result.id); }); +``` + +Você deve ver uma mensagem no console, algo assim: + +``` +successfully created the book with id: f3f03580-c1aa-d6a9-072d-39e75c69f5c7 +``` + +Verifique a `Books`tabela no banco de dados para ver a nova linha do livro. Você pode tentar `get`, `update`e `delete`funciona mesmo. + +### Crie a página de livros + +É hora de criar algo visível e utilizável! Em vez do MVC clássico, usaremos a nova abordagem de [interface do usuário do Razor Pages,](https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/razor-pages-start) recomendada pela Microsoft. + +Crie uma nova `Books`pasta na `Pages`pasta do `Acme.BookStore.Web`projeto e adicione uma nova página Razor denominada `Index.cshtml`: + +![livraria-add-index-page](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-add-index-page-v2.png) + +Abra `Index.cshtml`e altere o conteúdo, como mostrado abaixo: + +```html +@page +@using Acme.BookStore.Web.Pages.Books +@inherits Acme.BookStore.Web.Pages.BookStorePage +@model IndexModel + +

Books

+``` + +- Esse código altera a herança padrão do Razor View Page Model para que ele **herda** da `BookStorePage`classe (em vez de `PageModel`). A `BookStorePage`classe que acompanha o modelo de inicialização e fornece algumas propriedades / métodos compartilhados usados por todas as páginas. +- Verifique se o `IndexModel`( *Index.cshtml.cs)* possui o `Acme.BookStore.Pages.Books`espaço para nome ou atualize-o no `Index.cshtml`. + +#### Adicionar página de livros ao menu principal + +Abra a `BookStoreMenuContributor`classe na `Menus`pasta e adicione o seguinte código ao final do `ConfigureMainMenuAsync`método: + +```csharp +context.Menu.AddItem( + new ApplicationMenuItem("BooksStore", l["Menu:BookStore"]) + .AddItem(new ApplicationMenuItem("BooksStore.Books", l["Menu:Books"], url: "/Books")) +); +``` + +#### Localizando os itens de menu + +Os textos de localização estão localizados na `Localization/BookStore`pasta do `Acme.BookStore.Domain.Shared`projeto: + +![arquivos de localização de livraria](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-localization-files-v2.png) + +Abra o `en.json`arquivo e adicione textos de localização `Menu:BookStore`e `Menu:Books`chaves ao final do arquivo: + +```json +{ + "culture": "en", + "texts": { + "Menu:BookStore": "Book Store", + "Menu:Books": "Books" + } +} +``` + +- O sistema de localização da ABP é construído no sistema de [localização padrão do ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization) e o estende de várias maneiras. Consulte o [documento de localização](https://docs.abp.io/en/abp/latest/Localization) para obter detalhes. +- Os nomes das chaves de localização são arbitrários. Você pode definir qualquer nome. Preferimos adicionar `Menu:`prefixo aos itens de menu para distinguir de outros textos. Se um texto não estiver definido no arquivo de localização, ele **recuará** para a chave de localização (comportamento padrão do ASP.NET Core). + +Execute o aplicativo e veja se o novo item de menu foi adicionado à barra superior: + +![itens-menu-livraria](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-menu-items.png) + +Quando você clica no item de menu Livros, você é redirecionado para a nova página Livros. + +#### Lista de livros + +Usaremos o plug-in [Datatables.net](https://datatables.net/) JQuery para mostrar a lista de tabelas na página. As tabelas de dados podem funcionar completamente via AJAX, são rápidas e oferecem uma boa experiência ao usuário. O plug-in Datatables está configurado no modelo de inicialização, para que você possa usá-lo diretamente em qualquer página sem incluir nenhum estilo ou arquivo de script em sua página. + +##### Index.cshtml + +Altere o `Pages/Books/Index.cshtml`seguinte: + +```html +@page +@inherits Acme.BookStore.Web.Pages.BookStorePage +@model Acme.BookStore.Web.Pages.Books.IndexModel +@section scripts +{ + +} + + +

@L["Books"]

+
+ + + + + @L["Name"] + @L["Type"] + @L["PublishDate"] + @L["Price"] + @L["CreationTime"] + + + + +
+``` + +- `abp-script` [O auxiliar de marca](https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/intro) é usado para adicionar **scripts** externos à página. Possui muitos recursos adicionais em comparação com a `script`tag padrão . Ele lida com **minificação** e **controle** de **versão,** por exemplo. Consulte o [documento de compactação e redução](https://docs.abp.io/en/abp/latest/AspNetCore/Bundling-Minification) para obter detalhes. +- `abp-card`e `abp-table`são **auxiliares de tags** para o [componente de cartão](http://getbootstrap.com/docs/4.1/components/card/) do Twitter Bootstrap . Existem muitos auxiliares de tag no ABP para usar facilmente a maioria dos componentes de [autoinicialização](https://getbootstrap.com/) . Você também pode usar tags HTML regulares em vez desses auxiliares de tag, mas o uso de tag reduz o código HTML e evita erros com a ajuda do intellisense e da verificação do tipo de tempo de compilação. Consulte o [documento auxiliares](https://docs.abp.io/en/abp/latest/AspNetCore/Tag-Helpers) da [tag](https://docs.abp.io/en/abp/latest/AspNetCore/Tag-Helpers) . +- Você pode **localizar** os nomes das colunas no arquivo de localização, como fez nos itens de menu acima. + +##### Adicionar um arquivo de script + +Crie um `index.js`arquivo JavaScript na `Pages/Books/`pasta: + +![arquivo-index-js-bookstore](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-index-js-file-v2.png) + +`index.js` o conteúdo é mostrado abaixo: + +```js +$(function () { + var dataTable = $('#BooksTable').DataTable(abp.libs.datatables.normalizeConfiguration({ + ajax: abp.libs.datatables.createAjax(acme.bookStore.book.getList), + columnDefs: [ + { data: "name" }, + { data: "type" }, + { data: "publishDate" }, + { data: "price" }, + { data: "creationTime" } + ] + })); +}); +``` + +- `abp.libs.datatables.createAjax` é uma função auxiliar para adaptar os proxies dinâmicos da API JavaScript da ABP ao formato do Datatable. +- `abp.libs.datatables.normalizeConfiguration`é outra função auxiliar. Não há necessidade de usá-lo, mas simplifica a configuração das tabelas de dados, fornecendo valores convencionais para as opções ausentes. +- `acme.bookStore.book.getList` é a função para obter a lista de livros (você já viu isso antes). +- Consulte [a documentação do Datatable](https://datatables.net/manual/) para obter mais opções de configuração. + +A interface do usuário final é mostrada abaixo: + +![livraria-lista-de-livros](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-book-list-2.png) + +### Próxima parte + +Veja a [próxima parte](https://docs.abp.io/en/abp/latest/Tutorials/AspNetCore-Mvc/Part-II) deste tutorial. \ No newline at end of file diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-II.md b/docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-II.md new file mode 100644 index 0000000000..7e6471d3ed --- /dev/null +++ b/docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-II.md @@ -0,0 +1,466 @@ +## Tutorial do ASP.NET Core MVC - Parte II + +### Sobre este tutorial + +Esta é a segunda parte da série de tutoriais do ASP.NET Core MVC. Veja todas as peças: + +- [Parte I: Crie o projeto e uma página da lista de livros](https://docs.abp.io/en/abp/latest/Tutorials/AspNetCore-Mvc/Part-I) +- **Parte II: Criar, atualizar e excluir livros (este tutorial)** +- [Parte III: Testes de Integração](https://docs.abp.io/en/abp/latest/Tutorials/AspNetCore-Mvc/Part-III) + +Você pode acessar o **código fonte** do aplicativo [no repositório GitHub](https://github.com/volosoft/abp/tree/master/samples/BookStore) . + +> Você também pode assistir a [este curso em vídeo](https://amazingsolutions.teachable.com/p/lets-build-the-bookstore-application) preparado por um membro da comunidade ABP, com base neste tutorial. + +### Criando um novo livro + +Nesta seção, você aprenderá como criar um novo formulário de diálogo modal para criar um novo livro. A caixa de diálogo do resultado será assim: + +![livraria-criar-diálogo](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog-2.png) + +#### Crie o formulário modal + +Crie uma nova página de navalha, nomeada `CreateModal.cshtml`sob a `Pages/Books`pasta do `Acme.BookStore.Web`projeto: + +![livraria-adicionar-criar-diálogo](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-add-create-dialog-v2.png) + +##### CreateModal.cshtml.cs + +Abra o `CreateModal.cshtml.cs`arquivo ( `CreateModalModel`classe) e substitua pelo seguinte código: + +```csharp +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; + +namespace Acme.BookStore.Web.Pages.Books +{ + public class CreateModalModel : BookStorePageModel + { + [BindProperty] + public CreateUpdateBookDto Book { get; set; } + + private readonly IBookAppService _bookAppService; + + public CreateModalModel(IBookAppService bookAppService) + { + _bookAppService = bookAppService; + } + + public async Task OnPostAsync() + { + await _bookAppService.CreateAsync(Book); + return NoContent(); + } + } +} +``` + + + +- Esta classe é derivada do em `BookStorePageModel`vez do padrão `PageModel`. `BookStorePageModel`herda o `PageModel`e adiciona algumas propriedades / métodos comuns que podem ser usados pelas classes de modelo de página. +- `[BindProperty]`O atributo na `Book`propriedade vincula os dados de solicitação posterior a essa propriedade. +- Essa classe simplesmente injeta o `IBookAppService`em seu construtor e chama o `CreateAsync`método no `OnPostAsync`manipulador. + +##### CreateModal.cshtml + +Abra o `CreateModal.cshtml`arquivo e cole o código abaixo: + +```html +@page +@inherits Acme.BookStore.Web.Pages.BookStorePage +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal +@model Acme.BookStore.Web.Pages.Books.CreateModalModel +@{ + Layout = null; +} + + + + + + + + + +``` + + + +- Este modal usa o + + ``` + abp-dynamic-form + ``` + + auxiliar de marca para criar automaticamente o formulário a partir da + + ``` + CreateBookViewModel + ``` + + classe. + + - `abp-model`O atributo indica o objeto do modelo, a `Book`propriedade neste caso. + - `data-ajaxForm` O atributo faz com que o formulário seja enviado via AJAX, em vez de uma postagem de página clássica. + - `abp-form-content`O auxiliar de marca é um espaço reservado para renderizar os controles do formulário (isso é opcional e necessário apenas se você tiver adicionado outro conteúdo à `abp-dynamic-form`marca, como nesta página). + +#### Adicione o botão "Novo livro" + +Abra `Pages/Books/Index.cshtml`e altere a `abp-card-header`tag, como mostrado abaixo: + +```html + + + +

@L["Books"]

+
+ + + +
+
+``` + + + +Acabei de adicionar um botão **Novo livro** no canto **superior direito** da tabela: + +![livraria-novo-livro-botão](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-new-book-button.png) + +Abra o `pages/books/index.js`e adicione o seguinte código logo após a configuração da tabela de dados: + +```js +var createModal = new abp.ModalManager(abp.appPath + 'Books/CreateModal'); + +createModal.onResult(function () { + dataTable.ajax.reload(); +}); + +$('#NewBookButton').click(function (e) { + e.preventDefault(); + createModal.open(); +}); +``` + + + +- `abp.ModalManager`é uma classe auxiliar para abrir e gerenciar modais no lado do cliente. Ele usa internamente o modal padrão do Twitter Bootstrap, mas abstrai muitos detalhes, fornecendo uma API simples. + +Agora, você pode **executar o aplicativo** e adicionar novos livros usando o novo formulário modal. + +### Atualizando um livro existente + +Crie uma nova página de navalha, nomeada `EditModal.cshtml`sob a `Pages/Books`pasta do `Acme.BookStore.Web`projeto: + +![livraria-adicionar-editar-diálogo](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-add-edit-dialog.png) + +#### EditModal.cshtml.cs + +Abra o `EditModal.cshtml.cs`arquivo ( `EditModalModel`classe) e substitua pelo seguinte código: + +```csharp +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; + +namespace Acme.BookStore.Web.Pages.Books +{ + public class EditModalModel : BookStorePageModel + { + [HiddenInput] + [BindProperty(SupportsGet = true)] + public Guid Id { get; set; } + + [BindProperty] + public CreateUpdateBookDto Book { get; set; } + + private readonly IBookAppService _bookAppService; + + public EditModalModel(IBookAppService bookAppService) + { + _bookAppService = bookAppService; + } + + public async Task OnGetAsync() + { + var bookDto = await _bookAppService.GetAsync(Id); + Book = ObjectMapper.Map(bookDto); + } + + public async Task OnPostAsync() + { + await _bookAppService.UpdateAsync(Id, Book); + return NoContent(); + } + } +} +``` + + + +- `[HiddenInput]`e `[BindProperty]`são atributos padrão do ASP.NET Core MVC. Utilizado `SupportsGet`para obter o valor do ID a partir do parâmetro da string de consulta da solicitação. +- Mapeado `BookDto`(recebido de `BookAppService.GetAsync`) para `CreateUpdateBookDto`no `GetAsync`método +- O `OnPostAsync`simplesmente usa `BookAppService.UpdateAsync`para atualizar a entidade. + +#### Mapeamento de BookDto para CreateUpdateBookDto + +A fim de executar `BookDto`a `CreateUpdateBookDto`opor mapeamento, abrir o `BookStoreWebAutoMapperProfile.cs`no `Acme.BookStore.Web`projecto e alterá-lo como se mostra abaixo: + +```csharp +using AutoMapper; + +namespace Acme.BookStore.Web +{ + public class BookStoreWebAutoMapperProfile : Profile + { + public BookStoreWebAutoMapperProfile() + { + CreateMap(); + } + } +} +``` + + + +- Apenas adicionado `CreateMap();`como a definição de mapeamento. + +#### EditModal.cshtml + +Substitua o `EditModal.cshtml`conteúdo pelo seguinte: + +```html +@page +@inherits Acme.BookStore.Web.Pages.BookStorePage +@using Acme.BookStore.Web.Pages.Books +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal +@model EditModalModel +@{ + Layout = null; +} + + + + + + + + + + +``` + + + +Esta página é muito semelhante à `CreateModal.cshtml`exceção; + +- Ele inclui um `abp-input`para a `Id`propriedade armazenar o ID do livro de edição (que é uma entrada oculta). +- Ele usa `Books/EditModal`como URL de postagem e texto de *atualização* como cabeçalho modal. + +#### Adicione o menu suspenso "Ações" à tabela + +Adicionaremos um botão suspenso ("Ações") para cada linha da tabela. A interface do usuário final é assim: + +![livraria-livros-mesa-ações](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-books-table-actions.png) + +Abra a `Pages/Books/Index.cshtml`página e altere a seção da tabela como mostrado abaixo: + +```html + + + + @L["Actions"] + @L["Name"] + @L["Type"] + @L["PublishDate"] + @L["Price"] + @L["CreationTime"] + + + +``` + + + +- Acabei de adicionar uma nova `th`tag para as "Ações". + +Abra `pages/books/index.js`e substitua o conteúdo como abaixo: + +```js +$(function () { + + var l = abp.localization.getResource('BookStore'); + + var createModal = new abp.ModalManager(abp.appPath + 'Books/CreateModal'); + var editModal = new abp.ModalManager(abp.appPath + 'Books/EditModal'); + + var dataTable = $('#BooksTable').DataTable(abp.libs.datatables.normalizeConfiguration({ + processing: true, + serverSide: true, + paging: true, + searching: false, + autoWidth: false, + scrollCollapse: true, + order: [[1, "asc"]], + ajax: abp.libs.datatables.createAjax(acme.bookStore.book.getList), + columnDefs: [ + { + rowAction: { + items: + [ + { + text: l('Edit'), + action: function (data) { + editModal.open({ id: data.record.id }); + } + } + ] + } + }, + { data: "name" }, + { data: "type" }, + { data: "publishDate" }, + { data: "price" }, + { data: "creationTime" } + ] + })); + + createModal.onResult(function () { + dataTable.ajax.reload(); + }); + + editModal.onResult(function () { + dataTable.ajax.reload(); + }); + + $('#NewBookButton').click(function (e) { + e.preventDefault(); + createModal.open(); + }); +}); +``` + + + +- Utilizado `abp.localization.getResource('BookStore')`para poder usar os mesmos textos de localização definidos no lado do servidor. +- Adicionado um novo `ModalManager`nome `createModal`para abrir a caixa de diálogo criar modal. +- Adicionado um novo `ModalManager`nome `editModal`para abrir a caixa de diálogo modal de edição. +- Adicionada uma nova coluna no início da `columnDefs`seção. Esta coluna é usada para o botão suspenso "Ações". +- A ação "Novo livro" simplesmente chama `createModal.open`para abrir a caixa de diálogo Criar. +- A ação "Editar" simplesmente chama `editModal.open`para abrir a caixa de diálogo de edição. `Você pode executar o aplicativo e editar qualquer livro selecionando a ação de edição. + +### Exclusão de um livro existente + +Abra o `pages/books/index.js`e adicione um novo item ao `rowAction` `items`: + +```js +{ + text: l('Delete'), + confirmMessage: function (data) { + return l('BookDeletionConfirmationMessage', data.record.name); + }, + action: function (data) { + acme.bookStore.book + .delete(data.record.id) + .then(function() { + abp.notify.info(l('SuccessfullyDeleted')); + dataTable.ajax.reload(); + }); + } +} +``` + + + +- `confirmMessage`A opção é usada para fazer uma pergunta de confirmação antes de executar o `action`. +- Utilizou a `acme.bookStore.book.delete`função de proxy javascript para executar uma solicitação AJAX para excluir um livro. +- `abp.notify.info` é usado para mostrar uma notificação toastr logo após a exclusão. + +O `index.js`conteúdo final é mostrado abaixo: + +```js +$(function () { + + var l = abp.localization.getResource('BookStore'); + + var createModal = new abp.ModalManager(abp.appPath + 'Books/CreateModal'); + var editModal = new abp.ModalManager(abp.appPath + 'Books/EditModal'); + + var dataTable = $('#BooksTable').DataTable(abp.libs.datatables.normalizeConfiguration({ + processing: true, + serverSide: true, + paging: true, + searching: false, + autoWidth: false, + scrollCollapse: true, + order: [[1, "asc"]], + ajax: abp.libs.datatables.createAjax(acme.bookStore.book.getList), + columnDefs: [ + { + rowAction: { + items: + [ + { + text: l('Edit'), + action: function (data) { + editModal.open({ id: data.record.id }); + } + }, + { + text: l('Delete'), + confirmMessage: function (data) { + return l('BookDeletionConfirmationMessage', data.record.name); + }, + action: function (data) { + acme.bookStore.book + .delete(data.record.id) + .then(function() { + abp.notify.info(l('SuccessfullyDeleted')); + dataTable.ajax.reload(); + }); + } + } + ] + } + }, + { data: "name" }, + { data: "type" }, + { data: "publishDate" }, + { data: "price" }, + { data: "creationTime" } + ] + })); + + createModal.onResult(function () { + dataTable.ajax.reload(); + }); + + editModal.onResult(function () { + dataTable.ajax.reload(); + }); + + $('#NewBookButton').click(function (e) { + e.preventDefault(); + createModal.open(); + }); +}); +``` + + + +Abra o `en.json`no `Acme.BookStore.Domain.Shared`projeto e adicione a seguinte linha: + +```json +"BookDeletionConfirmationMessage": "Are you sure to delete the book {0}?" +``` + + + +Execute o aplicativo e tente excluir um livro. + +### Próxima parte + +Veja a [próxima parte](https://docs.abp.io/en/abp/latest/Tutorials/AspNetCore-Mvc/Part-III) deste tutorial. \ No newline at end of file diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-III.md b/docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-III.md new file mode 100644 index 0000000000..ff1ad29a25 --- /dev/null +++ b/docs/pt-BR/Tutorials/AspNetCore-Mvc/Part-III.md @@ -0,0 +1,182 @@ +## Tutorial do ASP.NET Core MVC - Parte III + +### Sobre este tutorial + +Esta é a terceira parte da série de tutoriais do ASP.NET Core MVC. Veja todas as peças: + +- [Parte I: Crie o projeto e uma página da lista de livros](https://docs.abp.io/en/abp/latest/Tutorials/AspNetCore-Mvc/Part-I) +- [Parte II: Criar, atualizar e excluir livros](https://docs.abp.io/en/abp/latest/Tutorials/AspNetCore-Mvc/Part-II) +- **Parte III: Testes de Integração (este tutorial)** + +Você pode acessar o **código fonte** do aplicativo [no repositório GitHub](https://github.com/volosoft/abp/tree/master/samples/BookStore) . + +> Você também pode assistir a [este curso em vídeo](https://amazingsolutions.teachable.com/p/lets-build-the-bookstore-application) preparado por um membro da comunidade ABP, com base neste tutorial. + +### Testar projetos na solução + +Existem vários projetos de teste na solução: + +![livraria-teste-projetos-v2](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-test-projects-v2.png) + +Cada projeto é usado para testar o projeto de aplicativo relacionado. Os projetos de teste usam as seguintes bibliotecas para teste: + +- [xunit](https://xunit.github.io/) como a principal estrutura de teste. +- [Altamente](http://shouldly.readthedocs.io/en/latest/) como uma biblioteca de asserções. +- [NSubstitute](http://nsubstitute.github.io/) como uma biblioteca de zombaria. + +### Adicionando dados de teste + +O modelo de inicialização contém a `BookStoreTestDataSeedContributor`classe no `Acme.BookStore.TestBase`projeto que cria alguns dados para executar os testes. + +Mude a `BookStoreTestDataSeedContributor`classe como mostrado abaixo: + +```csharp +using System; +using System.Threading.Tasks; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Guids; + +namespace Acme.BookStore +{ + public class BookStoreTestDataSeedContributor + : IDataSeedContributor, ITransientDependency + { + private readonly IRepository _bookRepository; + private readonly IGuidGenerator _guidGenerator; + + public BookStoreTestDataSeedContributor( + IRepository bookRepository, + IGuidGenerator guidGenerator) + { + _bookRepository = bookRepository; + _guidGenerator = guidGenerator; + } + + public async Task SeedAsync(DataSeedContext context) + { + await _bookRepository.InsertAsync( + new Book + { + Id = _guidGenerator.Create(), + Name = "Test book 1", + Type = BookType.Fantastic, + PublishDate = new DateTime(2015, 05, 24), + Price = 21 + } + ); + + await _bookRepository.InsertAsync( + new Book + { + Id = _guidGenerator.Create(), + Name = "Test book 2", + Type = BookType.Science, + PublishDate = new DateTime(2014, 02, 11), + Price = 15 + } + ); + } + } +} +``` + +- Injetado `IRepository`e usado no `SeedAsync`para criar duas entidades de livro como dados de teste. +- `IGuidGenerator`Serviço usado para criar GUIDs. Embora `Guid.NewGuid()`funcionasse perfeitamente para testes, `IGuidGenerator`possui recursos adicionais especialmente importantes ao usar bancos de dados reais (consulte o [documento de geração](https://docs.abp.io/en/abp/latest/Guid-Generation) do [Guid](https://docs.abp.io/en/abp/latest/Guid-Generation) para obter mais informações). + +### Testando o BookAppService + +Crie uma classe de teste denominada `BookAppService_Tests`no `Acme.BookStore.Application.Tests`projeto: + +```csharp +using System.Threading.Tasks; +using Shouldly; +using Volo.Abp.Application.Dtos; +using Xunit; + +namespace Acme.BookStore +{ + public class BookAppService_Tests : BookStoreApplicationTestBase + { + private readonly IBookAppService _bookAppService; + + public BookAppService_Tests() + { + _bookAppService = GetRequiredService(); + } + + [Fact] + public async Task Should_Get_List_Of_Books() + { + //Act + var result = await _bookAppService.GetListAsync( + new PagedAndSortedResultRequestDto() + ); + + //Assert + result.TotalCount.ShouldBeGreaterThan(0); + result.Items.ShouldContain(b => b.Name == "Test book 1"); + } + } +} +``` + +- `Should_Get_List_Of_Books`O teste simplesmente usa o `BookAppService.GetListAsync`método para obter e verificar a lista de usuários. + +Adicione um novo teste que crie um novo livro válido: + +```csharp +[Fact] +public async Task Should_Create_A_Valid_Book() +{ + //Act + var result = await _bookAppService.CreateAsync( + new CreateUpdateBookDto + { + Name = "New test book 42", + Price = 10, + PublishDate = DateTime.Now, + Type = BookType.ScienceFiction + } + ); + + //Assert + result.Id.ShouldNotBe(Guid.Empty); + result.Name.ShouldBe("New test book 42"); +} +``` + +Adicione um novo teste que tente criar um livro inválido e falhe: + +```csharp +[Fact] +public async Task Should_Not_Create_A_Book_Without_Name() +{ + var exception = await Assert.ThrowsAsync(async () => + { + await _bookAppService.CreateAsync( + new CreateUpdateBookDto + { + Name = "", + Price = 10, + PublishDate = DateTime.Now, + Type = BookType.ScienceFiction + } + ); + }); + + exception.ValidationErrors + .ShouldContain(err => err.MemberNames.Any(mem => mem == "Name")); +} +``` + + + +- Como o `Name`está vazio, o ABP lança um `AbpValidationException`. + +Abra a **janela Test Explorer** (use o menu Test -> Windows -> Test Explorer, se não estiver visível) e **execute Todos os** testes: + +![testes de serviço de livraria](https://raw.githubusercontent.com/abpframework/abp/master/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-appservice-tests.png) + +Parabéns, ícones verdes mostram que os testes foram aprovados com sucesso! \ No newline at end of file diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-create-dialog-v2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-create-dialog-v2.png new file mode 100644 index 0000000000..fcadfd7a82 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-create-dialog-v2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-edit-dialog.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-edit-dialog.png new file mode 100644 index 0000000000..b28d8736dd Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-edit-dialog.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-index-page-v2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-index-page-v2.png new file mode 100644 index 0000000000..2606bbab32 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-add-index-page-v2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-appservice-tests.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-appservice-tests.png new file mode 100644 index 0000000000..942d2832a6 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-appservice-tests.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list-2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list-2.png new file mode 100644 index 0000000000..a7d49a661b Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list-2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list.png new file mode 100644 index 0000000000..f531e6f457 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-book-list.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table-actions.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table-actions.png new file mode 100644 index 0000000000..bc1d4e3f6f Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table-actions.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table.png new file mode 100644 index 0000000000..3cc8d7ca18 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-books-table.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog-2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog-2.png new file mode 100644 index 0000000000..3d5f1e8582 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog-2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog.png new file mode 100644 index 0000000000..4691d3c8fa Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-template.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-template.png new file mode 100644 index 0000000000..7cc96c8c94 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-create-template.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-homepage.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-homepage.png new file mode 100644 index 0000000000..5e5b512220 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-homepage.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-index-js-file-v2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-index-js-file-v2.png new file mode 100644 index 0000000000..1ba9a48600 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-index-js-file-v2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-localization-files-v2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-localization-files-v2.png new file mode 100644 index 0000000000..79314dd2dc Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-localization-files-v2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-menu-items.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-menu-items.png new file mode 100644 index 0000000000..255defb707 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-menu-items.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-new-book-button.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-new-book-button.png new file mode 100644 index 0000000000..dfd4b5d8aa Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-new-book-button.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration-v2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration-v2.png new file mode 100644 index 0000000000..edf2826361 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration-v2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration.png new file mode 100644 index 0000000000..5d29f4d32b Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-pmc-add-book-migration.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-swagger.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-swagger.png new file mode 100644 index 0000000000..437c772503 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-swagger.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist-network.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist-network.png new file mode 100644 index 0000000000..2f2c42fd9e Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist-network.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist.png new file mode 100644 index 0000000000..47af48b1ea Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-js-proxy-getlist.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-projects-v2.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-projects-v2.png new file mode 100644 index 0000000000..8701164d75 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-test-projects-v2.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-user-management.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-user-management.png new file mode 100644 index 0000000000..bc3c176557 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-user-management.png differ diff --git a/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-visual-studio-solution-v3.png b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-visual-studio-solution-v3.png new file mode 100644 index 0000000000..307e3516a5 Binary files /dev/null and b/docs/pt-BR/Tutorials/AspNetCore-Mvc/images/bookstore-visual-studio-solution-v3.png differ diff --git a/docs/pt-BR/Unit-Of-Work.md b/docs/pt-BR/Unit-Of-Work.md new file mode 100644 index 0000000000..af662f86de --- /dev/null +++ b/docs/pt-BR/Unit-Of-Work.md @@ -0,0 +1,3 @@ +## Unit of Work + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Validation.md b/docs/pt-BR/Validation.md new file mode 100644 index 0000000000..5818566cdd --- /dev/null +++ b/docs/pt-BR/Validation.md @@ -0,0 +1,3 @@ +## Validation + +Façam \ No newline at end of file diff --git a/docs/pt-BR/Value-Objects.md b/docs/pt-BR/Value-Objects.md new file mode 100644 index 0000000000..647e6d2f0a --- /dev/null +++ b/docs/pt-BR/Value-Objects.md @@ -0,0 +1,3 @@ +## Value Objects + +Façam \ No newline at end of file diff --git a/docs/pt-BR/docs-nav.json b/docs/pt-BR/docs-nav.json new file mode 100644 index 0000000000..11b9b84fd1 --- /dev/null +++ b/docs/pt-BR/docs-nav.json @@ -0,0 +1,328 @@ +{ + "items": [ + { + "text": "Começando", + "items": [ + { + "text": "De Modelo de Inicialização", + "items": [ + { + "text": "Aplicativo com MVC (Razor Pages) UI", + "path": "Getting-Started-AspNetCore-MVC-Template.md" + }, + { + "text": "Aplicativo com Angular UI", + "path": "Getting-Started-Angular-Template.md" + } + ] + }, + { + "text": "De Projetos Vazios", + "items": [ + { + "text": "Com Aplicativo ASP.NET Core Web", + "path": "Getting-Started-AspNetCore-Application.md" + }, + { + "text": "Com Aplicativo Console", + "path": "Getting-Started-Console-Application.md" + } + ] + } + ] + }, + { + "text": "Tutoriais", + "items": [ + { + "text": "Desenvolvimento de Aplicações", + "items": [ + { + "text": "Com ASP.NET Core MVC UI", + "path": "Tutorials/AspNetCore-Mvc/Part-I.md" + }, + { + "text": "Com Angular UI", + "path": "Tutorials/Angular/Part-I.md" + } + ] + } + ] + }, + { + "text": "CLI", + "path": "CLI.md" + }, + { + "text": "Fundamentos", + "items": [ + { + "text": "Injeção de Dependência", + "path": "Dependency-Injection.md", + "items": [ + { + "text": "Integração com Autofac", + "path": "Autofac-Integration.md" + } + ] + }, + { + "text": "Sistema de Arquivos Virtual", + "path": "Virtual-File-System.md" + }, + { + "text": "Localização", + "path": "Localization.md" + }, + { + "text": "Manipulação de Exceção", + "path": "Exception-Handling.md" + }, + { + "text": "Validação" + }, + { + "text": "Autorização" + }, + { + "text": "Armazenamento em Cache" + }, + { + "text": "Auditoria" + }, + { + "text": "Gerenciamento de Configurações" + } + ] + }, + { + "text": "Eventos", + "items": [ + { + "text": "Barramento de Eventos (local)" + }, + { + "text": "Barramento de Eventos Distribuídos", + "items": [ + { + "text": "Integração RabbitMQ" + } + ] + } + ] + }, + { + "text": "Serviços", + "items": [ + { + "text": "Serialização de Objetos" + }, + { + "text": "Serialização JSON" + }, + { + "text": "Emailing" + }, + { + "text": "GUIDs" + }, + { + "text": "Threading" + }, + { + "text": "Timing" + } + ] + }, + { + "text": "Múltiplos Inquilinos", + "path": "Multi-Tenancy.md" + }, + { + "text": "Desenvolvimento de Módulos", + "items": [ + { + "text": "Fundamentos", + "path": "Module-Development-Basics.md" + }, + { + "text": "Módulos de plug-in" + }, + { + "text": "Melhores práticas", + "path": "Best-Practices/Index.md" + } + ] + }, + { + "text": "Design Orientado a Domínio", + "path": "Domain-Driven-Design.md", + "items": [ + { + "text": "Camada de Domínio", + "items": [ + { + "text": "Entidades & Raízes Agregadas", + "path": "Entities.md" + }, + { + "text": "Value Objects" + }, + { + "text": "Repositórios", + "path": "Repositories.md" + }, + { + "text": "Serviços de Domínio" + }, + { + "text": "Especificações" + } + ] + }, + { + "text": "Camada de Aplicação", + "items": [ + { + "text": "Serviços de Aplicação", + "path": "Application-Services.md" + }, + { + "text": "Objetos de Transferência de Dados" + }, + { + "text": "Unidade de Trabalho" + } + ] + } + ] + }, + { + "text": "ASP.NET Core", + "items": [ + { + "text": "API", + "items": [ + { + "text": "Controladores de API Automática", + "path": "AspNetCore/Auto-API-Controllers.md" + }, + { + "text": "Clientes da API C # Dinâmica", + "path": "AspNetCore/Dynamic-CSharp-API-Clients.md" + } + ] + }, + { + "text": "Interface de Usuário", + "items": [ + { + "text": "Gerenciamento de Pacotes do Lado do Cliente", + "path": "AspNetCore/Client-Side-Package-Management.md" + }, + { + "text": "Compactação & Minificação", + "path": "AspNetCore/Bundling-Minification.md" + }, + { + "text": "Tag Helpers", + "path": "AspNetCore/Tag-Helpers/Index.md" + }, + { + "text": "Widgets", + "path": "AspNetCore/Widgets.md" + }, + { + "text": "Theming", + "path": "AspNetCore/Theming.md" + } + ] + } + ] + }, + { + "text": "Acesso de Dados", + "items": [ + { + "text": "Integração do Entity Framework Core", + "path": "Entity-Framework-Core.md", + "items": [ + { + "text": "Integração do PostgreSQL", + "path": "Best-Practices/PostgreSQL-Integration.md" + } + ] + }, + { + "text": "Integração do MongoDB", + "path": "MongoDB.md" + }, + { + "text": "Integração do Dapper", + "path": "Dapper.md" + } + ] + }, + { + "text": "Background", + "items": [ + { + "text": "Trabalhos em Segundo Plano", + "path": "Background-Jobs.md", + "items": [ + { + "text": "Integração do Hangfire", + "path": "Background-Jobs-Hangfire.md" + }, + { + "text": "Integração do RabbitMQ", + "path": "Background-Jobs-RabbitMq.md" + } + ] + } + ] + }, + { + "text": "Modelos de Inicialização", + "path": "Startup-Templates/Index.md", + "items": [ + { + "text": "Aplicativo", + "path": "Startup-Templates/Application.md" + }, + { + "text": "Módulo", + "path": "Startup-Templates/Module.md" + } + ] + }, + { + "text": "Exemplos", + "items": [ + { + "text": "Demonstração de Microsserviços", + "path": "Samples/Microservice-Demo.md" + } + ] + }, + { + "text": "Módulos de Aplicação", + "path": "Modules/Index.md" + }, + { + "text": "Arquitetura de Microsserviços", + "path": "Microservice-Architecture.md" + }, + { + "text": "Testando" + }, + { + "text": "Compilações Noturnas", + "path": "Nightly-Builds.md" + }, + { + "text": "Guia de Contribuição", + "path": "Contribution/Index.md" + } + ] +} \ No newline at end of file diff --git a/docs/pt-BR/images/MonthlyProfitWidgetFiles.png b/docs/pt-BR/images/MonthlyProfitWidgetFiles.png new file mode 100644 index 0000000000..e1e9d316f5 Binary files /dev/null and b/docs/pt-BR/images/MonthlyProfitWidgetFiles.png differ diff --git a/docs/pt-BR/images/bookstore-apis.png b/docs/pt-BR/images/bookstore-apis.png new file mode 100644 index 0000000000..aedd79c7f1 Binary files /dev/null and b/docs/pt-BR/images/bookstore-apis.png differ diff --git a/docs/pt-BR/images/bookstore-create-template.png b/docs/pt-BR/images/bookstore-create-template.png new file mode 100644 index 0000000000..7cc96c8c94 Binary files /dev/null and b/docs/pt-BR/images/bookstore-create-template.png differ diff --git a/docs/pt-BR/images/bookstore-homepage.png b/docs/pt-BR/images/bookstore-homepage.png new file mode 100644 index 0000000000..5e5b512220 Binary files /dev/null and b/docs/pt-BR/images/bookstore-homepage.png differ diff --git a/docs/pt-BR/images/bookstore-swagger-ui-host.png b/docs/pt-BR/images/bookstore-swagger-ui-host.png new file mode 100644 index 0000000000..74ff73f7e3 Binary files /dev/null and b/docs/pt-BR/images/bookstore-swagger-ui-host.png differ diff --git a/docs/pt-BR/images/bookstore-user-management-v2.png b/docs/pt-BR/images/bookstore-user-management-v2.png new file mode 100644 index 0000000000..dd95740754 Binary files /dev/null and b/docs/pt-BR/images/bookstore-user-management-v2.png differ diff --git a/docs/pt-BR/images/bookstore-visual-studio-solution-for-spa.png b/docs/pt-BR/images/bookstore-visual-studio-solution-for-spa.png new file mode 100644 index 0000000000..5a5a283c7d Binary files /dev/null and b/docs/pt-BR/images/bookstore-visual-studio-solution-for-spa.png differ diff --git a/docs/pt-BR/images/bookstore-visual-studio-solution-tiered.png b/docs/pt-BR/images/bookstore-visual-studio-solution-tiered.png new file mode 100644 index 0000000000..19662bf731 Binary files /dev/null and b/docs/pt-BR/images/bookstore-visual-studio-solution-tiered.png differ diff --git a/docs/pt-BR/images/bookstore-visual-studio-solution-v3.png b/docs/pt-BR/images/bookstore-visual-studio-solution-v3.png new file mode 100644 index 0000000000..307e3516a5 Binary files /dev/null and b/docs/pt-BR/images/bookstore-visual-studio-solution-v3.png differ diff --git a/docs/pt-BR/images/build-action-embedded-resource-sample.png b/docs/pt-BR/images/build-action-embedded-resource-sample.png new file mode 100644 index 0000000000..d001c5d19f Binary files /dev/null and b/docs/pt-BR/images/build-action-embedded-resource-sample.png differ diff --git a/docs/pt-BR/images/create-new-aspnet-core-application.png b/docs/pt-BR/images/create-new-aspnet-core-application.png new file mode 100644 index 0000000000..fe78b9051d Binary files /dev/null and b/docs/pt-BR/images/create-new-aspnet-core-application.png differ diff --git a/docs/pt-BR/images/create-new-net-core-console-application.png b/docs/pt-BR/images/create-new-net-core-console-application.png new file mode 100644 index 0000000000..c5f39bfb37 Binary files /dev/null and b/docs/pt-BR/images/create-new-net-core-console-application.png differ diff --git a/docs/pt-BR/images/dashboard1.png b/docs/pt-BR/images/dashboard1.png new file mode 100644 index 0000000000..4102bbd4c1 Binary files /dev/null and b/docs/pt-BR/images/dashboard1.png differ diff --git a/docs/pt-BR/images/db-migrator-app.png b/docs/pt-BR/images/db-migrator-app.png new file mode 100644 index 0000000000..ace6abb226 Binary files /dev/null and b/docs/pt-BR/images/db-migrator-app.png differ diff --git a/docs/pt-BR/images/docs-create-project.jpg b/docs/pt-BR/images/docs-create-project.jpg new file mode 100644 index 0000000000..742f5e307f Binary files /dev/null and b/docs/pt-BR/images/docs-create-project.jpg differ diff --git a/docs/pt-BR/images/docs-module_download-new-abp-project.png b/docs/pt-BR/images/docs-module_download-new-abp-project.png new file mode 100644 index 0000000000..0da3b7a67a Binary files /dev/null and b/docs/pt-BR/images/docs-module_download-new-abp-project.png differ diff --git a/docs/pt-BR/images/docs-module_download-sample-navigation-menu.png b/docs/pt-BR/images/docs-module_download-sample-navigation-menu.png new file mode 100644 index 0000000000..9a1232f198 Binary files /dev/null and b/docs/pt-BR/images/docs-module_download-sample-navigation-menu.png differ diff --git a/docs/pt-BR/images/docs-module_solution-explorer.png b/docs/pt-BR/images/docs-module_solution-explorer.png new file mode 100644 index 0000000000..cafc38f0b0 Binary files /dev/null and b/docs/pt-BR/images/docs-module_solution-explorer.png differ diff --git a/docs/pt-BR/images/github-access-token-private-repo.jpg b/docs/pt-BR/images/github-access-token-private-repo.jpg new file mode 100644 index 0000000000..5bc53cc63d Binary files /dev/null and b/docs/pt-BR/images/github-access-token-private-repo.jpg differ diff --git a/docs/pt-BR/images/github-access-token-public-repo.jpg b/docs/pt-BR/images/github-access-token-public-repo.jpg new file mode 100644 index 0000000000..b909c2cfe5 Binary files /dev/null and b/docs/pt-BR/images/github-access-token-public-repo.jpg differ diff --git a/docs/pt-BR/images/github-myusername.jpg b/docs/pt-BR/images/github-myusername.jpg new file mode 100644 index 0000000000..4ac57eeed4 Binary files /dev/null and b/docs/pt-BR/images/github-myusername.jpg differ diff --git a/docs/pt-BR/images/issuemanagement-module-solution.png b/docs/pt-BR/images/issuemanagement-module-solution.png new file mode 100644 index 0000000000..181924dd90 Binary files /dev/null and b/docs/pt-BR/images/issuemanagement-module-solution.png differ diff --git a/docs/pt-BR/images/layered-project-dependencies-module.png b/docs/pt-BR/images/layered-project-dependencies-module.png new file mode 100644 index 0000000000..7592f49878 Binary files /dev/null and b/docs/pt-BR/images/layered-project-dependencies-module.png differ diff --git a/docs/pt-BR/images/layered-project-dependencies.png b/docs/pt-BR/images/layered-project-dependencies.png new file mode 100644 index 0000000000..c5fd1b3504 Binary files /dev/null and b/docs/pt-BR/images/layered-project-dependencies.png differ diff --git a/docs/pt-BR/images/localization-resource-json-files.png b/docs/pt-BR/images/localization-resource-json-files.png new file mode 100644 index 0000000000..bbbd78c320 Binary files /dev/null and b/docs/pt-BR/images/localization-resource-json-files.png differ diff --git a/docs/pt-BR/images/microservice-sample-authserver-home.png b/docs/pt-BR/images/microservice-sample-authserver-home.png new file mode 100644 index 0000000000..7ae62ad6d5 Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-authserver-home.png differ diff --git a/docs/pt-BR/images/microservice-sample-authserver-login.png b/docs/pt-BR/images/microservice-sample-authserver-login.png new file mode 100644 index 0000000000..f6e8dfaa9f Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-authserver-login.png differ diff --git a/docs/pt-BR/images/microservice-sample-backend-ui-permissions.png b/docs/pt-BR/images/microservice-sample-backend-ui-permissions.png new file mode 100644 index 0000000000..02769be3e5 Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-backend-ui-permissions.png differ diff --git a/docs/pt-BR/images/microservice-sample-backend-ui.png b/docs/pt-BR/images/microservice-sample-backend-ui.png new file mode 100644 index 0000000000..0935a6047a Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-backend-ui.png differ diff --git a/docs/pt-BR/images/microservice-sample-blogservice-permission-in-database.png b/docs/pt-BR/images/microservice-sample-blogservice-permission-in-database.png new file mode 100644 index 0000000000..f99cd39893 Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-blogservice-permission-in-database.png differ diff --git a/docs/pt-BR/images/microservice-sample-diagram-2.png b/docs/pt-BR/images/microservice-sample-diagram-2.png new file mode 100644 index 0000000000..17aea07098 Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-diagram-2.png differ diff --git a/docs/pt-BR/images/microservice-sample-diagram.png b/docs/pt-BR/images/microservice-sample-diagram.png new file mode 100644 index 0000000000..b1d9f6c66e Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-diagram.png differ diff --git a/docs/pt-BR/images/microservice-sample-kibana-1.png b/docs/pt-BR/images/microservice-sample-kibana-1.png new file mode 100644 index 0000000000..f3a51bd349 Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-kibana-1.png differ diff --git a/docs/pt-BR/images/microservice-sample-kibana-2.png b/docs/pt-BR/images/microservice-sample-kibana-2.png new file mode 100644 index 0000000000..31b281486c Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-kibana-2.png differ diff --git a/docs/pt-BR/images/microservice-sample-product-module-in-solution.png b/docs/pt-BR/images/microservice-sample-product-module-in-solution.png new file mode 100644 index 0000000000..27e841cdd5 Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-product-module-in-solution.png differ diff --git a/docs/pt-BR/images/microservice-sample-public-product-list.png b/docs/pt-BR/images/microservice-sample-public-product-list.png new file mode 100644 index 0000000000..cf8649bbe5 Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-public-product-list.png differ diff --git a/docs/pt-BR/images/microservice-sample-solution.png b/docs/pt-BR/images/microservice-sample-solution.png new file mode 100644 index 0000000000..4c8344ed68 Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-solution.png differ diff --git a/docs/pt-BR/images/microservice-sample-update-database-authserver.png b/docs/pt-BR/images/microservice-sample-update-database-authserver.png new file mode 100644 index 0000000000..689019b587 Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-update-database-authserver.png differ diff --git a/docs/pt-BR/images/microservice-sample-update-database-products.png b/docs/pt-BR/images/microservice-sample-update-database-products.png new file mode 100644 index 0000000000..b49c2a8f8e Binary files /dev/null and b/docs/pt-BR/images/microservice-sample-update-database-products.png differ diff --git a/docs/pt-BR/images/module-layers-and-packages.jpg b/docs/pt-BR/images/module-layers-and-packages.jpg new file mode 100644 index 0000000000..f71a91eb8d Binary files /dev/null and b/docs/pt-BR/images/module-layers-and-packages.jpg differ diff --git a/docs/pt-BR/images/night-build-add-nuget-package.png b/docs/pt-BR/images/night-build-add-nuget-package.png new file mode 100644 index 0000000000..c3621ef7d9 Binary files /dev/null and b/docs/pt-BR/images/night-build-add-nuget-package.png differ diff --git a/docs/pt-BR/images/night-build-add-nuget-source.png b/docs/pt-BR/images/night-build-add-nuget-source.png new file mode 100644 index 0000000000..8fd4b9365a Binary files /dev/null and b/docs/pt-BR/images/night-build-add-nuget-source.png differ diff --git a/docs/pt-BR/images/pcm-update-database-v2.png b/docs/pt-BR/images/pcm-update-database-v2.png new file mode 100644 index 0000000000..d5bb9c2975 Binary files /dev/null and b/docs/pt-BR/images/pcm-update-database-v2.png differ diff --git a/docs/pt-BR/images/pcm-update-database.png b/docs/pt-BR/images/pcm-update-database.png new file mode 100644 index 0000000000..ac53f0db4f Binary files /dev/null and b/docs/pt-BR/images/pcm-update-database.png differ diff --git a/docs/pt-BR/images/select-empty-web-application.png b/docs/pt-BR/images/select-empty-web-application.png new file mode 100644 index 0000000000..b0cd89a27a Binary files /dev/null and b/docs/pt-BR/images/select-empty-web-application.png differ diff --git a/docs/pt-BR/images/set-as-startup-project.png b/docs/pt-BR/images/set-as-startup-project.png new file mode 100644 index 0000000000..13da5caf6c Binary files /dev/null and b/docs/pt-BR/images/set-as-startup-project.png differ diff --git a/docs/pt-BR/images/tiered-solution-applications.png b/docs/pt-BR/images/tiered-solution-applications.png new file mode 100644 index 0000000000..fb6ede7ac5 Binary files /dev/null and b/docs/pt-BR/images/tiered-solution-applications.png differ diff --git a/docs/pt-BR/images/tiered-solution-servers.png b/docs/pt-BR/images/tiered-solution-servers.png new file mode 100644 index 0000000000..3c999b4b45 Binary files /dev/null and b/docs/pt-BR/images/tiered-solution-servers.png differ diff --git a/docs/pt-BR/images/volodocs-iis-add-website.png b/docs/pt-BR/images/volodocs-iis-add-website.png new file mode 100644 index 0000000000..878b3e8f0c Binary files /dev/null and b/docs/pt-BR/images/volodocs-iis-add-website.png differ diff --git a/docs/pt-BR/images/volodocs-iis-application-pool.png b/docs/pt-BR/images/volodocs-iis-application-pool.png new file mode 100644 index 0000000000..cc5186f50b Binary files /dev/null and b/docs/pt-BR/images/volodocs-iis-application-pool.png differ diff --git a/docs/pt-BR/images/widget-basic-files.png b/docs/pt-BR/images/widget-basic-files.png new file mode 100644 index 0000000000..bf5f122d42 Binary files /dev/null and b/docs/pt-BR/images/widget-basic-files.png differ diff --git a/docs/zh-Hans/Blog-Posts/2019-09-25 v0_21_Release/Post.md b/docs/zh-Hans/Blog-Posts/2019-09-25 v0_21_Release/Post.md new file mode 100644 index 0000000000..7633f3ea33 --- /dev/null +++ b/docs/zh-Hans/Blog-Posts/2019-09-25 v0_21_Release/Post.md @@ -0,0 +1,21 @@ +# 基于ASP.NET Core 3.0的ABP v0.21已发布 + +在微软发布仅仅一个小时后, 基于ASP.NET Core 3.0的ABP v0.21也紧跟着[发布了.](https://twitter.com/abpframework/status/1176185493119258624) + +v0.21没有新功能.它只是升级到稳定的ASP.NET Core 3.0. 查看[v0.20发行说明](https://github.com/abpframework/abp/releases/tag/0.20.0)以获取新功能,增强功能和错误修复. + +## 关于v1.0 + +ABP框架越来越接近v1.0.我们打算在今年10月中旬发布1.0. 现在,我们将完善测试和文档. + +## .NET Conf 2019 + +微软已经在为期3天的虚拟会议.NET Conf 2019发布了ASP.NET Core 3.0. ABP的首席开发人员[Halil ibrahim Kalkan](https://twitter.com/hibrahimkalkan)在会议上也发表了讲话,介绍了ABP框架.能够参加这一重要活动真是太棒了. + +## Techorama荷兰2019 + +[Techorama NL](https://techorama.nl/)是欧洲最大的会议之一.今年,Volosoft是会议的赞助商,并将有一个展位与软件开发人员讨论ABP框架和软件开发.我们的展位墙如下图所示: + +![volosoft-booth](volosoft-booth.png) + +如果您也参加会议,请到展位讨论ABP框架.我们还为您准备了一些私货:) diff --git a/docs/zh-Hans/Blog-Posts/2019-09-25 v0_21_Release/volosoft-booth.png b/docs/zh-Hans/Blog-Posts/2019-09-25 v0_21_Release/volosoft-booth.png new file mode 100644 index 0000000000..3dca4409e4 Binary files /dev/null and b/docs/zh-Hans/Blog-Posts/2019-09-25 v0_21_Release/volosoft-booth.png differ diff --git a/docs/zh-Hans/Multi-Tenancy.md b/docs/zh-Hans/Multi-Tenancy.md index 911803b1be..352190d5cd 100644 --- a/docs/zh-Hans/Multi-Tenancy.md +++ b/docs/zh-Hans/Multi-Tenancy.md @@ -115,7 +115,7 @@ namespace MyCompany.MyProject { Configure(options => { - options.TenantResolvers.Add(new MyCustomTenantResolver()); + options.TenantResolvers.Add(new MyCustomTenantResolveContributor()); }); //... @@ -124,14 +124,14 @@ namespace MyCompany.MyProject } ```` -MyCustomTenantResolver必须像下面这样实现**ITenantResolver**接口: +`MyCustomTenantResolveContributor`必须像下面这样实现**ITenantResolveContributor**接口: ````C# using Volo.Abp.MultiTenancy; namespace MyCompany.MyProject { - public class MyCustomTenantResolver : ITenantResolver + public class MyCustomTenantResolveContributor : ITenantResolveContributor { public void Resolve(ITenantResolveContext context) { diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln index de41f864c7..534b7c6d92 100644 --- a/framework/Volo.Abp.sln +++ b/framework/Volo.Abp.sln @@ -248,6 +248,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.MailKit", "src\Vol EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.MailKit.Tests", "test\Volo.Abp.MailKit.Tests\Volo.Abp.MailKit.Tests.csproj", "{70DD6E17-B98B-4B00-8F38-C489E291BB53}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.ObjectMapping.Tests", "test\Volo.Abp.ObjectMapping.Tests\Volo.Abp.ObjectMapping.Tests.csproj", "{667F5544-C1EB-447C-96FD-9B757F04DE2B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -738,6 +740,10 @@ Global {70DD6E17-B98B-4B00-8F38-C489E291BB53}.Debug|Any CPU.Build.0 = Debug|Any CPU {70DD6E17-B98B-4B00-8F38-C489E291BB53}.Release|Any CPU.ActiveCfg = Release|Any CPU {70DD6E17-B98B-4B00-8F38-C489E291BB53}.Release|Any CPU.Build.0 = Release|Any CPU + {667F5544-C1EB-447C-96FD-9B757F04DE2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {667F5544-C1EB-447C-96FD-9B757F04DE2B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {667F5544-C1EB-447C-96FD-9B757F04DE2B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {667F5544-C1EB-447C-96FD-9B757F04DE2B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -864,6 +870,7 @@ Global {E026A085-D881-4AE0-9F08-422AC3903BD7} = {447C8A77-E5F0-4538-8687-7383196D04EA} {0CAED4CC-1CFD-4092-A326-AFE4DB3A9AB4} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} {70DD6E17-B98B-4B00-8F38-C489E291BB53} = {447C8A77-E5F0-4538-8687-7383196D04EA} + {667F5544-C1EB-447C-96FD-9B757F04DE2B} = {447C8A77-E5F0-4538-8687-7383196D04EA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5} diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj b/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj index 7d8a961507..0ccb29a319 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Authentication.JwtBearer Volo.Abp.AspNetCore.Authentication.JwtBearer $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -18,7 +18,7 @@ - +
diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Properties/launchSettings.json b/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Properties/launchSettings.json new file mode 100644 index 0000000000..fcbf86698d --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:53450/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.AspNetCore.Authentication.OAuth": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:53451/" + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.csproj b/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.csproj index 54c93df3ec..8541a681f0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.csproj @@ -1,15 +1,17 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Authentication.OAuth Volo.Abp.AspNetCore.Authentication.OAuth $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false + true + Library @@ -17,8 +19,4 @@ - - - - - + \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo/Abp/AspNetCore/Authentication/OAuth/Claims/MultipleClaimAction.cs b/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo/Abp/AspNetCore/Authentication/OAuth/Claims/MultipleClaimAction.cs index 742f91d057..074cc936d0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo/Abp/AspNetCore/Authentication/OAuth/Claims/MultipleClaimAction.cs +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo/Abp/AspNetCore/Authentication/OAuth/Claims/MultipleClaimAction.cs @@ -1,6 +1,6 @@ using System.Security.Claims; +using System.Text.Json; using Microsoft.AspNetCore.Authentication.OAuth.Claims; -using Newtonsoft.Json.Linq; namespace Volo.Abp.AspNetCore.Authentication.OAuth.Claims { @@ -9,31 +9,30 @@ namespace Volo.Abp.AspNetCore.Authentication.OAuth.Claims public MultipleClaimAction(string claimType, string jsonKey) : base(claimType, jsonKey) { + } - public override void Run(JObject userData, ClaimsIdentity identity, string issuer) - { - var prop = userData?.Property(ValueType); - if (prop == null) + public override void Run(JsonElement userData, ClaimsIdentity identity, string issuer) + { + var prop = userData.GetProperty(ValueType); + if (prop.ValueKind == JsonValueKind.Null) { return; } - var propValue = prop.Value; - - switch (propValue.Type) + switch (prop.ValueKind) { - case JTokenType.String: - identity.AddClaim(new Claim(ClaimType, propValue.Value(), ValueType, issuer)); + case JsonValueKind.String: + identity.AddClaim(new Claim(ClaimType, prop.GetString(), ValueType, issuer)); break; - case JTokenType.Array: - foreach (var innterValue in propValue.Values()) + case JsonValueKind.Array: + foreach (var arramItem in prop.EnumerateArray()) { - identity.AddClaim(new Claim(ClaimType, innterValue, ValueType, issuer)); + identity.AddClaim(new Claim(ClaimType, arramItem.GetString(), ValueType, issuer)); } break; default: - throw new AbpException("Unhandled JTokenType: " + propValue.Type); + throw new AbpException("Unhandled JsonValueKind: " + prop.ValueKind); } } } diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Properties/launchSettings.json b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Properties/launchSettings.json new file mode 100644 index 0000000000..67c494aa28 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:53760/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.AspNetCore.MultiTenancy": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:53763/" + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.csproj b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.csproj index 6904fe07b1..384aaa262e 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.csproj +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.csproj @@ -1,15 +1,17 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.MultiTenancy Volo.Abp.AspNetCore.MultiTenancy $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false + true + Library diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Properties/launchSettings.json b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Properties/launchSettings.json new file mode 100644 index 0000000000..e17b14d87f --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:52302/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.AspNetCore.Mvc.Client": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:52303/" + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj index 9d05c9e34b..253bf0d288 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj @@ -1,15 +1,17 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Mvc.Client Volo.Abp.AspNetCore.Mvc.Client $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false + true + Library diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/CachedApplicationConfigurationClient.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/CachedApplicationConfigurationClient.cs index 4ceb8bdd1c..838150fd49 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/CachedApplicationConfigurationClient.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/CachedApplicationConfigurationClient.cs @@ -13,8 +13,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Client { public class CachedApplicationConfigurationClient : ICachedApplicationConfigurationClient, ITransientDependency { - public IHttpContextAccessor HttpContextAccessor { get; set; } - + protected IHttpContextAccessor HttpContextAccessor { get; } protected IHttpClientProxy Proxy { get; } protected ICurrentUser CurrentUser { get; } protected IDistributedCache Cache { get; } @@ -42,11 +41,11 @@ namespace Volo.Abp.AspNetCore.Mvc.Client } configuration = await Cache.GetOrAddAsync( - CreateCacheKey(), + cacheKey, async () => await Proxy.Service.GetAsync(), () => new DistributedCacheEntryOptions { - AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(60) //TODO: Should be configurable. Default value should be higher (5 mins would be good). + AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(120) //TODO: Should be configurable. Default value should be higher (5 mins would be good). } ); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/RemoteTenantStore.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/RemoteTenantStore.cs new file mode 100644 index 0000000000..718abbb6a9 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/RemoteTenantStore.cs @@ -0,0 +1,116 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Caching.Distributed; +using Volo.Abp.AspNetCore.Mvc.MultiTenancy; +using Volo.Abp.Caching; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client.DynamicProxying; +using Volo.Abp.MultiTenancy; +using Volo.Abp.Threading; + +namespace Volo.Abp.AspNetCore.Mvc.Client +{ + public class RemoteTenantStore : ITenantStore, ITransientDependency + { + protected IHttpClientProxy Proxy { get; } + protected IHttpContextAccessor HttpContextAccessor { get; } + protected IDistributedCache Cache { get; } + + public RemoteTenantStore( + IHttpClientProxy proxy, + IHttpContextAccessor httpContextAccessor, + IDistributedCache cache) + { + Proxy = proxy; + HttpContextAccessor = httpContextAccessor; + Cache = cache; + } + + public async Task FindAsync(string name) + { + var cacheKey = CreateCacheKey(name); + var httpContext = HttpContextAccessor?.HttpContext; + + if (httpContext != null && httpContext.Items[cacheKey] is TenantConfiguration tenantConfiguration) + { + return tenantConfiguration; + } + + tenantConfiguration = await Cache.GetOrAddAsync( + cacheKey, + async () => CreateTenantConfiguration(await Proxy.Service.FindTenantByNameAsync(name)), + () => new DistributedCacheEntryOptions + { + AbsoluteExpirationRelativeToNow = + TimeSpan.FromMinutes(5) //TODO: Should be configurable. + } + ); + + if (httpContext != null) + { + httpContext.Items[cacheKey] = tenantConfiguration; + } + + return tenantConfiguration; + } + + public async Task FindAsync(Guid id) + { + var cacheKey = CreateCacheKey(id); + var httpContext = HttpContextAccessor?.HttpContext; + + if (httpContext != null && httpContext.Items[cacheKey] is TenantConfiguration tenantConfiguration) + { + return tenantConfiguration; + } + + tenantConfiguration = await Cache.GetOrAddAsync( + cacheKey, + async () => CreateTenantConfiguration(await Proxy.Service.FindTenantByIdAsync(id)), + () => new DistributedCacheEntryOptions + { + AbsoluteExpirationRelativeToNow = + TimeSpan.FromMinutes(5) //TODO: Should be configurable. + } + ); + + if (httpContext != null) + { + httpContext.Items[cacheKey] = tenantConfiguration; + } + + return tenantConfiguration; + } + + public TenantConfiguration Find(string name) + { + return AsyncHelper.RunSync(() => FindAsync(name)); + } + + public TenantConfiguration Find(Guid id) + { + return AsyncHelper.RunSync(() => FindAsync(id)); + } + + protected virtual TenantConfiguration CreateTenantConfiguration(FindTenantResultDto tenantResultDto) + { + if (!tenantResultDto.Success || tenantResultDto.TenantId == null) + { + return null; + } + + return new TenantConfiguration(tenantResultDto.TenantId.Value, tenantResultDto.Name); + } + + protected virtual string CreateCacheKey(string tenantName) + { + return $"RemoteTenantStore_Name_{tenantName}"; + } + + protected virtual string CreateCacheKey(Guid tenantId) + { + return $"RemoteTenantStore_Id_{tenantId:N}"; + } + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.csproj index 8141097dc6..173ff3cfbe 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Mvc.Contracts Volo.Abp.AspNetCore.Mvc.Contracts $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/FindTenantResultDto.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/FindTenantResultDto.cs new file mode 100644 index 0000000000..d85622f0cf --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/FindTenantResultDto.cs @@ -0,0 +1,14 @@ +using System; + +namespace Volo.Abp.AspNetCore.Mvc.MultiTenancy +{ + [Serializable] + public class FindTenantResultDto + { + public bool Success { get; set; } + + public Guid? TenantId { get; set; } + + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/IAbpTenantAppService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/IAbpTenantAppService.cs new file mode 100644 index 0000000000..eb02e84ceb --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/IAbpTenantAppService.cs @@ -0,0 +1,13 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; + +namespace Volo.Abp.AspNetCore.Mvc.MultiTenancy +{ + public interface IAbpTenantAppService : IApplicationService + { + Task FindTenantByNameAsync(string name); + + Task FindTenantByIdAsync(Guid id); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs index fb549d3067..75fe4f23e7 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs @@ -227,17 +227,17 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form if (string.IsNullOrEmpty(TagHelper.Label)) { - return await GetLabelAsHtmlUsingTagHelperAsync(context, output, isCheckbox) + GetRequiredSymbol(context, output, inputTag); + return await GetLabelAsHtmlUsingTagHelperAsync(context, output, isCheckbox) + GetRequiredSymbol(context, output); } var checkboxClass = isCheckbox ? "class=\"custom-control-label\" " : ""; return "" + GetRequiredSymbol(context, output, inputTag); + "" + GetRequiredSymbol(context, output); } - protected virtual string GetRequiredSymbol(TagHelperContext context, TagHelperOutput output, TagHelperOutput inputTag) + protected virtual string GetRequiredSymbol(TagHelperContext context, TagHelperOutput output) { if (!TagHelper.DisplayRequiredSymbol) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelperService.cs index f89d3c1fee..6f71842b61 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelperService.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; @@ -130,7 +130,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form if (!selectItems.Any(si => si.Selected)) { - var itemToBeSelected = selectItems.FirstOrDefault(si => si.Value.ToString() == selectedValue); + var itemToBeSelected = selectItems.FirstOrDefault(si => si.Value == selectedValue); if (itemToBeSelected != null) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/SelectItems.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/SelectItems.cs index 4b281770fd..c12eda1b21 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/SelectItems.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/SelectItems.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using Microsoft.AspNetCore.Mvc.Rendering; @@ -23,16 +23,16 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form while (properties.Count == 0) { explorer = explorer.Container; - properties = explorer.Container.Properties.Where(p => p.Metadata.PropertyName.Equals(ItemsListPropertyName)).ToList(); - if (explorer.Container == null) { return null; } + + properties = explorer.Container.Properties.Where(p => p.Metadata.PropertyName.Equals(ItemsListPropertyName)).ToList(); } var selectItems = (properties.First().Model as IEnumerable).ToList(); - + return selectItems; } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj index b9e1538272..f0eabc0025 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj @@ -1,13 +1,13 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Mvc.UI.Bootstrap Volo.Abp.AspNetCore.Mvc.UI.Bootstrap - true $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + true Library diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Properties/launchSettings.json b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Properties/launchSettings.json new file mode 100644 index 0000000000..7bcd0a8aff --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:53762/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.AspNetCore.Mvc.UI.Bundling": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:53765/" + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj index 579d3a659b..4427b40dd6 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj @@ -1,11 +1,13 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Mvc.UI.Bundling Volo.Abp.AspNetCore.Mvc.UI.Bundling + true + Library diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleManager.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleManager.cs index 3f99614aa9..653794bda8 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleManager.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundleManager.cs @@ -4,6 +4,7 @@ using System.Collections.Immutable; using System.Linq; using System.Text; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; @@ -23,7 +24,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling protected readonly BundlingOptions Options; protected readonly BundleContributorOptions ContributorOptions; protected readonly IWebContentFileProvider WebContentFileProvider; - protected readonly IHostingEnvironment HostingEnvironment; + protected readonly IWebHostEnvironment HostingEnvironment; protected readonly IScriptBundler ScriptBundler; protected readonly IStyleBundler StyleBundler; protected readonly IServiceProvider ServiceProvider; @@ -36,7 +37,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling IOptions contributorOptions, IScriptBundler scriptBundler, IStyleBundler styleBundler, - IHostingEnvironment hostingEnvironment, + IWebHostEnvironment hostingEnvironment, IServiceProvider serviceProvider, IDynamicFileProvider dynamicFileProvider, IBundleCache bundleCache, @@ -138,11 +139,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling DynamicFileProvider.AddOrUpdate( new InMemoryFileInfo( - Encoding.UTF8.GetBytes(bundleResult.Content), "/wwwroot/" + bundleRelativePath, //TODO: get rid of wwwroot! + Encoding.UTF8.GetBytes(bundleResult.Content), fileName - ) - ); + ) + ); } protected virtual bool IsBundlingEnabled() diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs index 90e8606833..8c2258e1eb 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs @@ -46,28 +46,33 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling private void AddFileToBundle(IBundlerContext context, StringBuilder bundleContentBuilder, string fileName) { + string fileContent = null; + if (context.IsMinificationEnabled && !IsMinFile(fileName)) { var minFileInfo = GetMinFileInfoOrNull(fileName); if (minFileInfo != null) { - Logger.LogDebug($"- {fileName} ({minFileInfo.Length} bytes)"); - bundleContentBuilder.Append(NormalizedCode(minFileInfo.ReadAsString())); - return; + Logger.LogDebug($"- {fileName} ({minFileInfo.Length} bytes) - already minified"); + fileContent = minFileInfo.ReadAsString(); } } - var fileContent = GetFileContent(context, fileName); - Logger.LogDebug($"- {fileName} ({fileContent.Length} bytes)"); - - if (context.IsMinificationEnabled) + if (fileContent == null) { - var nonMinifiedSize = fileContent.Length; - fileContent = Minifier.Minify(fileContent, context.BundleRelativePath); - Logger.LogInformation($" -- Minified {context.BundleRelativePath} ({nonMinifiedSize} bytes -> {fileContent.Length} bytes)"); + fileContent = GetFileContent(context, fileName); + Logger.LogDebug($"- {fileName} ({fileContent.Length} bytes) - non minified"); + + if (context.IsMinificationEnabled) + { + var nonMinifiedSize = fileContent.Length; + fileContent = Minifier.Minify(fileContent, context.BundleRelativePath); + Logger.LogInformation($" > Minified {fileName} ({nonMinifiedSize} bytes -> {fileContent.Length} bytes)"); + } } - bundleContentBuilder.Append(NormalizedCode(fileContent)); + fileContent = ProcessBeforeAddingToTheBundle(context, fileName, fileContent); + bundleContentBuilder.Append(fileContent); } protected virtual string GetFileContent(IBundlerContext context, string file) @@ -99,9 +104,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling return fileInfo.Exists ? fileInfo : null; } - protected virtual string NormalizedCode(string code) + protected virtual string ProcessBeforeAddingToTheBundle(IBundlerContext context, string filePath, string fileContent) { - return code; + return fileContent; } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Scripts/ScriptBundler.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Scripts/ScriptBundler.cs index f5447dc8a3..7b2887eb90 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Scripts/ScriptBundler.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Scripts/ScriptBundler.cs @@ -13,9 +13,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.Scripts { } - protected override string NormalizedCode(string code) + protected override string ProcessBeforeAddingToTheBundle(IBundlerContext context, string filePath, string fileContent) { - return code.EnsureEndsWith(';') + Environment.NewLine; + return fileContent.EnsureEndsWith(';') + Environment.NewLine; } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/StyleBundler.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/StyleBundler.cs index 768a1bb136..ac33211860 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/StyleBundler.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/StyleBundler.cs @@ -8,27 +8,27 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.Styles { public class StyleBundler : BundlerBase, IStyleBundler { - private readonly IHostingEnvironment _hostingEnvironment; + private readonly IWebHostEnvironment _hostingEnvironment; public override string FileExtension => "css"; - public StyleBundler(IWebContentFileProvider webContentFileProvider, ICssMinifier minifier, IHostingEnvironment hostingEnvironment) + public StyleBundler(IWebContentFileProvider webContentFileProvider, ICssMinifier minifier, IWebHostEnvironment hostingEnvironment) : base(webContentFileProvider, minifier) { _hostingEnvironment = hostingEnvironment; } - protected override string GetFileContent(IBundlerContext context, string file) + public string GetAbsolutePath(string relativePath) { - return CssRelativePath.Adjust( - base.GetFileContent(context, file), - GetAbsolutePath(file), - GetAbsolutePath(context.BundleRelativePath) - ); + return Path.Combine(_hostingEnvironment.ContentRootPath, "wwwroot", relativePath.RemovePreFix("/")); } - public string GetAbsolutePath(string relativePath) + protected override string ProcessBeforeAddingToTheBundle(IBundlerContext context, string filePath, string fileContent) { - return Path.Combine(_hostingEnvironment.ContentRootPath, "wwwroot", relativePath.RemovePreFix("/")); + return CssRelativePath.Adjust( + fileContent, + GetAbsolutePath(filePath), + GetAbsolutePath(context.BundleRelativePath) + ); } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperResourceService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperResourceService.cs index 2224198dc4..981da4e4da 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperResourceService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperResourceService.cs @@ -19,14 +19,14 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers protected IBundleManager BundleManager { get; } protected IWebContentFileProvider WebContentFileProvider { get; } - protected IHostingEnvironment HostingEnvironment { get; } + protected IWebHostEnvironment HostingEnvironment { get; } protected readonly BundlingOptions Options; protected AbpTagHelperResourceService( IBundleManager bundleManager, IWebContentFileProvider webContentFileProvider, - IOptions options, - IHostingEnvironment hostingEnvironment) + IOptions options, + IWebHostEnvironment hostingEnvironment) { BundleManager = bundleManager; WebContentFileProvider = webContentFileProvider; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperScriptService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperScriptService.cs index b4f2ba1b77..8c8e2abc5a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperScriptService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperScriptService.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Razor.TagHelpers; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; using Volo.Abp.AspNetCore.VirtualFileSystem; @@ -14,7 +15,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers IBundleManager bundleManager, IWebContentFileProvider webContentFileProvider, IOptions options, - IHostingEnvironment hostingEnvironment + IWebHostEnvironment hostingEnvironment ) : base( bundleManager, webContentFileProvider, diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperStyleService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperStyleService.cs index 2a0946cfd2..400a75553f 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperStyleService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperStyleService.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Razor.TagHelpers; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; using Volo.Abp.AspNetCore.VirtualFileSystem; @@ -14,7 +15,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers IBundleManager bundleManager, IWebContentFileProvider webContentFileProvider, IOptions options, - IHostingEnvironment hostingEnvironment + IWebHostEnvironment hostingEnvironment ) : base( bundleManager, webContentFileProvider, diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/AbpTenantAppService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/AbpTenantAppService.cs new file mode 100644 index 0000000000..d0bea87196 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/AbpTenantAppService.cs @@ -0,0 +1,52 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.AspNetCore.Mvc.MultiTenancy; +using Volo.Abp.MultiTenancy; + +namespace Pages.Abp.MultiTenancy +{ + public class AbpTenantAppService : ApplicationService, IAbpTenantAppService + { + protected ITenantStore TenantStore { get; } + + public AbpTenantAppService(ITenantStore tenantStore) + { + TenantStore = tenantStore; + } + + public async Task FindTenantByNameAsync(string name) + { + var tenant = await TenantStore.FindAsync(name); + + if (tenant == null) + { + return new FindTenantResultDto { Success = false }; + } + + return new FindTenantResultDto + { + Success = true, + TenantId = tenant.Id, + Name = tenant.Name + }; + } + + public async Task FindTenantByIdAsync(Guid id) + { + var tenant = await TenantStore.FindAsync(id); + + if (tenant == null) + { + return new FindTenantResultDto { Success = false }; + } + + return new FindTenantResultDto + { + Success = true, + TenantId = tenant.Id, + Name = tenant.Name + }; + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/AbpTenantController.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/AbpTenantController.cs index d42cf82f9b..5da47875d9 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/AbpTenantController.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/AbpTenantController.cs @@ -1,37 +1,34 @@ -using System.Threading.Tasks; +using System; +using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.MultiTenancy; +using Volo.Abp.AspNetCore.Mvc.MultiTenancy; namespace Pages.Abp.MultiTenancy { [Route("api/abp/multi-tenancy")] - public class AbpTenantController : AbpController + public class AbpTenantController : AbpController, IAbpTenantAppService { + private readonly IAbpTenantAppService _abpTenantAppService; - protected ITenantStore TenantStore { get; } - - public AbpTenantController(ITenantStore tenantStore) + public AbpTenantController(IAbpTenantAppService abpTenantAppService) { - TenantStore = tenantStore; + _abpTenantAppService = abpTenantAppService; } [HttpGet] - [Route("find-tenant/{name}")] - public async Task FindTenantAsync(string name) + [Route("find-tenant/{name}")] //TODO: Remove on v1.0 + [Route("tenants/by-name/{name}")] + public async Task FindTenantByNameAsync(string name) { - var tenant = await TenantStore.FindAsync(name); - - if (tenant == null) - { - return new FindTenantResult{Success = false}; - } + return await _abpTenantAppService.FindTenantByNameAsync(name); + } - return new FindTenantResult - { - Success = true, - TenantId = tenant.Id - }; + [HttpGet] + [Route("tenants/by-id/{id}")] + public async Task FindTenantByIdAsync(Guid id) + { + return await _abpTenantAppService.FindTenantByIdAsync(id); } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/FindTenantResult.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/FindTenantResult.cs deleted file mode 100644 index 59aef8335e..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/FindTenantResult.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; - -namespace Pages.Abp.MultiTenancy -{ - public class FindTenantResult - { - public bool Success { get; set; } - - public Guid? TenantId { get; set; } - } -} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj index d0015b0e57..d55e9ec2df 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj @@ -1,9 +1,9 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/es-mx.json b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/es-mx.json new file mode 100644 index 0000000000..746f1dec0f --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/es-mx.json @@ -0,0 +1,12 @@ +{ + "culture": "es-MX", + "texts": { + "GivenTenantIsNotAvailable": "El inquilino {0} no está disponible", + "Tenant": "Inquilino", + "Switch": "cambiar", + "Name": "Nombre", + "SwitchTenant": "Cambiar inquilino", + "SwitchTenantHint": "Deje en blanco el campo nombre para cambiar el lado del host.", + "NotSelected": "No seleccionado" + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/pt-BR.json b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/pt-BR.json index 2acb0a275b..3b1643f03e 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/pt-BR.json +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/pt-BR.json @@ -5,7 +5,7 @@ "Tenant": "Inquilino", "Switch": "trocar", "Name": "Nome", - "SwitchTenantHint": "Deixe o campo de nome em branco para alternar para o lado do host.", + "SwitchTenantHint": "Deixe o campo de nome em branco para acessar o host.", "NotSelected": "Não selecionado" } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Properties/launchSettings.json b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Properties/launchSettings.json new file mode 100644 index 0000000000..4ae9c1d2f1 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:53766/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.AspNetCore.Mvc.UI.Packages": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:53768/" + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj index cc4db153d6..b91f36abf0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj @@ -1,11 +1,13 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Mvc.UI.Packages Volo.Abp.AspNetCore.Mvc.UI.Packages + true + Library diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/Luxon/LuxonScriptContributor.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/Luxon/LuxonScriptContributor.cs new file mode 100644 index 0000000000..e605f6e6ae --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/Luxon/LuxonScriptContributor.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Packages.Luxon +{ + public class LuxonScriptContributor : BundleContributor + { + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/luxon/luxon.min.js"); + } + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/UserMenu/Default.cshtml b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/UserMenu/Default.cshtml index 329737c3d2..9f8c9856f5 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/UserMenu/Default.cshtml +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/UserMenu/Default.cshtml @@ -21,7 +21,7 @@ var cssClass = string.IsNullOrEmpty(menuItem.CssClass) ? string.Empty : menuItem.CssClass; var disabled = menuItem.IsDisabled ? "disabled" : string.Empty; - + @menuItem.DisplayName } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj index 654b191bec..f12072816a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj @@ -1,9 +1,9 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Bundling/SharedThemeGlobalScriptContributor.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Bundling/SharedThemeGlobalScriptContributor.cs index e722de8ee3..d067281978 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Bundling/SharedThemeGlobalScriptContributor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Bundling/SharedThemeGlobalScriptContributor.cs @@ -5,6 +5,7 @@ using Volo.Abp.AspNetCore.Mvc.UI.Packages.JQuery; using Volo.Abp.AspNetCore.Mvc.UI.Packages.JQueryForm; using Volo.Abp.AspNetCore.Mvc.UI.Packages.JQueryValidationUnobtrusive; using Volo.Abp.AspNetCore.Mvc.UI.Packages.Lodash; +using Volo.Abp.AspNetCore.Mvc.UI.Packages.Luxon; using Volo.Abp.AspNetCore.Mvc.UI.Packages.MalihuCustomScrollbar; using Volo.Abp.AspNetCore.Mvc.UI.Packages.Select2; using Volo.Abp.AspNetCore.Mvc.UI.Packages.SweetAlert; @@ -25,6 +26,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Bundling typeof(SweetalertScriptContributor), typeof(ToastrScriptBundleContributor), typeof(MalihuCustomScrollbarPluginScriptBundleContributor), + typeof(LuxonScriptContributor), typeof(TimeagoScriptContributor) )] public class SharedThemeGlobalScriptContributor : BundleContributor diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj index 898d7c1a0d..258feaf64a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj @@ -1,9 +1,9 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -32,10 +32,6 @@ - - - - diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Properties/launchSettings.json b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Properties/launchSettings.json new file mode 100644 index 0000000000..e9779c3c37 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:53761/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.AspNetCore.Mvc.UI.Widgets": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:53764/" + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj index ae41d65026..75b83faaf2 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj @@ -1,11 +1,13 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Mvc.UI.Widgets Volo.Abp.AspNetCore.Mvc.UI.Widgets + true + Library diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj index 34367260f9..03e3d2bbd8 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj @@ -1,12 +1,14 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Mvc.UI Volo.Abp.AspNetCore.Mvc.UI $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + true + Library diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/RazorPages/AbpPageModel.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/RazorPages/AbpPageModel.cs index 62258329ad..8d62a4e188 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/RazorPages/AbpPageModel.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/RazorPages/AbpPageModel.cs @@ -24,7 +24,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.RazorPages { public IServiceProvider ServiceProvider { get; set; } protected readonly object ServiceProviderLock = new object(); + protected TService LazyGetRequiredService(ref TService reference) + => LazyGetRequiredService(typeof(TService), ref reference); + + protected TRef LazyGetRequiredService(Type serviceType, ref TRef reference) { if (reference == null) { @@ -32,7 +36,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.RazorPages { if (reference == null) { - reference = ServiceProvider.GetRequiredService(); + reference = (TRef)ServiceProvider.GetRequiredService(serviceType); } } } @@ -48,7 +52,27 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.RazorPages public IUnitOfWorkManager UnitOfWorkManager => LazyGetRequiredService(ref _unitOfWorkManager); private IUnitOfWorkManager _unitOfWorkManager; - public IObjectMapper ObjectMapper => LazyGetRequiredService(ref _objectMapper); + protected Type ObjectMapperContext { get; set; } + public IObjectMapper ObjectMapper + { + get + { + if (_objectMapper != null) + { + return _objectMapper; + } + + if (ObjectMapperContext == null) + { + return LazyGetRequiredService(ref _objectMapper); + } + + return LazyGetRequiredService( + typeof(IObjectMapper<>).MakeGenericType(ObjectMapperContext), + ref _objectMapper + ); + } + } private IObjectMapper _objectMapper; public IGuidGenerator GuidGenerator => LazyGetRequiredService(ref _guidGenerator); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Microsoft/AspNetCore/Builder/AbpAspNetCoreMvcApplicationBuilderExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Microsoft/AspNetCore/Builder/AbpAspNetCoreMvcApplicationBuilderExtensions.cs index 8b1f6e9d49..9a19337c5f 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Microsoft/AspNetCore/Builder/AbpAspNetCoreMvcApplicationBuilderExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Microsoft/AspNetCore/Builder/AbpAspNetCoreMvcApplicationBuilderExtensions.cs @@ -17,19 +17,15 @@ namespace Microsoft.AspNetCore.Builder /// A reference to this instance after the operation has completed. public static IApplicationBuilder UseMvcWithDefaultRouteAndArea( this IApplicationBuilder app, - Action additionalConfigurationAction = null) + Action additionalConfigurationAction = null) { - return app.UseMvc(routes => + return app.UseEndpoints(endpoints => { - routes.MapRoute( - name: "defaultWithArea", - template: "{area}/{controller=Home}/{action=Index}/{id?}"); + endpoints.MapControllerRoute("defaultWithArea", "{area}/{controller=Home}/{action=Index}/{id?}"); + endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); + endpoints.MapRazorPages(); - routes.MapRoute( - name: "default", - template: "{controller=Home}/{action=Index}/{id?}"); - - additionalConfigurationAction?.Invoke(routes); + additionalConfigurationAction?.Invoke(endpoints); }); } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Properties/launchSettings.json b/framework/src/Volo.Abp.AspNetCore.Mvc/Properties/launchSettings.json new file mode 100644 index 0000000000..3c84fd21f2 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:53767/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.AspNetCore.Mvc": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:53769/" + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj index 138189864b..a90b113dc3 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj @@ -1,15 +1,17 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.Mvc Volo.Abp.AspNetCore.Mvc $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false + true + Library @@ -22,8 +24,8 @@ - - + + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs index fa317d7211..b094505f6c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs @@ -3,12 +3,11 @@ using Microsoft.AspNetCore.Mvc.ApplicationParts; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.Infrastructure; -using Microsoft.AspNetCore.Mvc.Razor; using Microsoft.AspNetCore.Mvc.ViewComponents; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using Newtonsoft.Json.Serialization; +using Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation; using System; using System.Collections.Generic; using System.Linq; @@ -16,7 +15,6 @@ using System.Reflection; using Volo.Abp.ApiVersioning; using Volo.Abp.AspNetCore.Mvc.Conventions; using Volo.Abp.AspNetCore.Mvc.DependencyInjection; -using Volo.Abp.AspNetCore.Mvc.Json; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.VirtualFileSystem; using Volo.Abp.DependencyInjection; @@ -45,8 +43,8 @@ namespace Volo.Abp.AspNetCore.Mvc { //Configure Razor context.Services.Insert(0, - ServiceDescriptor.Singleton>( - new ConfigureOptions(options => + ServiceDescriptor.Singleton>( + new ConfigureOptions(options => { options.FileProviders.Add( new RazorViewEngineVirtualFileProvider( @@ -78,6 +76,7 @@ namespace Volo.Abp.AspNetCore.Mvc ); var mvcBuilder = context.Services.AddMvc() + .AddRazorRuntimeCompilation() .AddDataAnnotationsLocalization(options => { @@ -86,7 +85,7 @@ namespace Volo.Abp.AspNetCore.Mvc var resourceType = abpMvcDataAnnotationsLocalizationOptions.AssemblyResources.GetOrDefault(type.Assembly); return factory.Create(resourceType ?? type); }; - }) + }) .AddViewLocalization(); //TODO: How to configure from the application? Also, consider to move to a UI module since APIs does not care about it. context.Services.ExecutePreConfiguredActions(mvcBuilder); @@ -112,10 +111,10 @@ namespace Volo.Abp.AspNetCore.Mvc mvcOptions.AddAbp(context.Services); }); - Configure(jsonOptions => - { - jsonOptions.SerializerSettings.ContractResolver = new AbpMvcJsonContractResolver(context.Services); - }); + //Configure(jsonOptions => @3.0.0! + //{ + // jsonOptions.SerializerSettings.ContractResolver = new AbpMvcJsonContractResolver(context.Services); + //}); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs index 943d0d6e3f..c3e5c61f36 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs @@ -23,7 +23,11 @@ namespace Volo.Abp.AspNetCore.Mvc { public IServiceProvider ServiceProvider { get; set; } protected readonly object ServiceProviderLock = new object(); + protected TService LazyGetRequiredService(ref TService reference) + => LazyGetRequiredService(typeof(TService), ref reference); + + protected TRef LazyGetRequiredService(Type serviceType, ref TRef reference) { if (reference == null) { @@ -31,7 +35,7 @@ namespace Volo.Abp.AspNetCore.Mvc { if (reference == null) { - reference = ServiceProvider.GetRequiredService(); + reference = (TRef)ServiceProvider.GetRequiredService(serviceType); } } } @@ -42,7 +46,27 @@ namespace Volo.Abp.AspNetCore.Mvc public IUnitOfWorkManager UnitOfWorkManager => LazyGetRequiredService(ref _unitOfWorkManager); private IUnitOfWorkManager _unitOfWorkManager; - public IObjectMapper ObjectMapper => LazyGetRequiredService(ref _objectMapper); + protected Type ObjectMapperContext { get; set; } + public IObjectMapper ObjectMapper + { + get + { + if (_objectMapper != null) + { + return _objectMapper; + } + + if (ObjectMapperContext == null) + { + return LazyGetRequiredService(ref _objectMapper); + } + + return LazyGetRequiredService( + typeof(IObjectMapper<>).MakeGenericType(ObjectMapperContext), + ref _objectMapper + ); + } + } private IObjectMapper _objectMapper; public IGuidGenerator GuidGenerator => LazyGetRequiredService(ref _guidGenerator); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpViewComponent.cs index 883fea8046..e29cb5fbef 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpViewComponent.cs @@ -1,15 +1,55 @@ -using Microsoft.AspNetCore.Mvc; +using System; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.DependencyInjection; using Volo.Abp.ObjectMapping; namespace Volo.Abp.AspNetCore.Mvc { public abstract class AbpViewComponent : ViewComponent { - public IObjectMapper ObjectMapper { get; set; } + public IServiceProvider ServiceProvider { get; set; } + protected readonly object ServiceProviderLock = new object(); - protected AbpViewComponent() + protected TService LazyGetRequiredService(ref TService reference) + => LazyGetRequiredService(typeof(TService), ref reference); + + protected TRef LazyGetRequiredService(Type serviceType, ref TRef reference) { - + if (reference == null) + { + lock (ServiceProviderLock) + { + if (reference == null) + { + reference = (TRef)ServiceProvider.GetRequiredService(serviceType); + } + } + } + + return reference; + } + + protected Type ObjectMapperContext { get; set; } + public IObjectMapper ObjectMapper + { + get + { + if (_objectMapper != null) + { + return _objectMapper; + } + + if (ObjectMapperContext == null) + { + return LazyGetRequiredService(ref _objectMapper); + } + + return LazyGetRequiredService( + typeof(IObjectMapper<>).MakeGenericType(ObjectMapperContext), + ref _objectMapper + ); + } } + private IObjectMapper _objectMapper; } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/AbpServiceConvention.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/AbpServiceConvention.cs index 2d04e316cb..621072b6ba 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/AbpServiceConvention.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/AbpServiceConvention.cs @@ -4,8 +4,8 @@ using System.Linq; using System.Reflection; using JetBrains.Annotations; using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.ActionConstraints; using Microsoft.AspNetCore.Mvc.ApplicationModels; -using Microsoft.AspNetCore.Mvc.Internal; using Microsoft.AspNetCore.Mvc.ModelBinding; using Microsoft.Extensions.Options; using Volo.Abp.Application.Services; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalDependencyRegistrar.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalDependencyRegistrar.cs index d49cb6d142..526470b3ad 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalDependencyRegistrar.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalDependencyRegistrar.cs @@ -7,24 +7,43 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.AspNetCore.Mvc.DependencyInjection { - public class AbpAspNetCoreMvcConventionalRegistrar : DefaultConventionalRegistrar + public class AbpAspNetCoreMvcConventionalRegistrar : ConventionalRegistrarBase { - protected override ServiceLifetime? GetServiceLifetimeFromClassHierarcy(Type type) + public override void AddType(IServiceCollection services, Type type) { - var lifeTime = base.GetServiceLifetimeFromClassHierarcy(type); - if (lifeTime != null) + if (IsConventionalRegistrationDisabled(type)) { - return lifeTime; + return; } - if (IsController(type) || - IsPageModel(type) || - IsViewComponent(type)) + if (!IsMvcService(type)) { - return ServiceLifetime.Transient; + return; } - return null; + var lifeTime = GetMvcServiceLifetime(type); + + var serviceTypes = ExposedServiceExplorer.GetExposedServices(type); + + TriggerServiceExposing(services, type, serviceTypes); + + foreach (var serviceType in serviceTypes) + { + var serviceDescriptor = ServiceDescriptor.Describe(serviceType, type, lifeTime); + services.Add(serviceDescriptor); + } + } + + protected virtual bool IsMvcService(Type type) + { + return IsController(type) || + IsPageModel(type) || + IsViewComponent(type); + } + + protected virtual ServiceLifetime GetMvcServiceLifetime(Type type) + { + return ServiceLifetime.Transient; } private static bool IsPageModel(Type type) diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Properties/launchSettings.json b/framework/src/Volo.Abp.AspNetCore.TestBase/Properties/launchSettings.json new file mode 100644 index 0000000000..fca5708e7b --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:53783/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.AspNetCore.TestBase": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:53784/" + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj index 291a36d6b6..7ec3846531 100644 --- a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj @@ -1,15 +1,17 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore.TestBase Volo.Abp.AspNetCore.TestBase $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false + true + Library @@ -20,7 +22,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/DynamicProxying/AspNetCoreTestDynamicProxyHttpClientFactory.cs b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/DynamicProxying/AspNetCoreTestDynamicProxyHttpClientFactory.cs index e8463e16cc..71de80b018 100644 --- a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/DynamicProxying/AspNetCoreTestDynamicProxyHttpClientFactory.cs +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/DynamicProxying/AspNetCoreTestDynamicProxyHttpClientFactory.cs @@ -8,11 +8,11 @@ namespace Volo.Abp.AspNetCore.TestBase.DynamicProxying public class AspNetCoreTestDynamicProxyHttpClientFactory : IDynamicProxyHttpClientFactory, ITransientDependency { private readonly ITestServerAccessor _testServerAccessor; - private readonly IHttpClientFactory _httpClientFactory; - public AspNetCoreTestDynamicProxyHttpClientFactory(ITestServerAccessor testServerAccessor, IHttpClientFactory httpClientFactory) { + public AspNetCoreTestDynamicProxyHttpClientFactory( + ITestServerAccessor testServerAccessor) + { _testServerAccessor = testServerAccessor; - _httpClientFactory = httpClientFactory; } public HttpClient Create() @@ -20,7 +20,8 @@ namespace Volo.Abp.AspNetCore.TestBase.DynamicProxying return _testServerAccessor.Server.CreateClient(); } - public HttpClient Create(string name) { + public HttpClient Create(string name) + { return Create(); } } diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs index c139c49ba1..e2c930f39c 100644 --- a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs @@ -1,9 +1,6 @@ using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; using JetBrains.Annotations; -using Microsoft.AspNetCore.Localization; +using Microsoft.AspNetCore.RequestLocalization; using Microsoft.Extensions.DependencyInjection; using Volo.Abp; using Volo.Abp.AspNetCore.Auditing; @@ -11,9 +8,6 @@ using Volo.Abp.AspNetCore.Mvc.ExceptionHandling; using Volo.Abp.AspNetCore.Tracing; using Volo.Abp.AspNetCore.Uow; using Volo.Abp.DependencyInjection; -using Volo.Abp.Localization; -using Volo.Abp.Settings; -using Volo.Abp.Threading; namespace Microsoft.AspNetCore.Builder { @@ -50,40 +44,11 @@ namespace Microsoft.AspNetCore.Builder public static IApplicationBuilder UseAbpRequestLocalization(this IApplicationBuilder app, Action optionsAction = null) { - IReadOnlyList languages; - string defaultLanguage; + app.ApplicationServices + .GetRequiredService() + .InitLocalizationOptions(optionsAction); - using (var scope = app.ApplicationServices.CreateScope()) - { - var languageProvider = scope.ServiceProvider.GetRequiredService(); - languages = AsyncHelper.RunSync(() => languageProvider.GetLanguagesAsync()); - - var settingProvider = scope.ServiceProvider.GetRequiredService(); - defaultLanguage = AsyncHelper.RunSync(() => settingProvider.GetOrNullAsync(LocalizationSettingNames.DefaultLanguage)); - } - - var options = !languages.Any() - ? new RequestLocalizationOptions() - : new RequestLocalizationOptions - { - DefaultRequestCulture = DefaultGetRequestCulture(defaultLanguage, languages), - - SupportedCultures = languages - .Select(l => l.CultureName) - .Distinct() - .Select(c => new CultureInfo(c)) - .ToArray(), - - SupportedUICultures = languages - .Select(l => l.UiCultureName) - .Distinct() - .Select(c => new CultureInfo(c)) - .ToArray() - }; - - optionsAction?.Invoke(options); - - return app.UseRequestLocalization(options); + return app.UseMiddleware(); } public static IApplicationBuilder UseAbpExceptionHandling(this IApplicationBuilder app) @@ -96,17 +61,5 @@ namespace Microsoft.AspNetCore.Builder app.Properties[ExceptionHandlingMiddlewareMarker] = true; return app.UseMiddleware(); } - - private static RequestCulture DefaultGetRequestCulture(string defaultLanguage, IReadOnlyList languages) - { - if (defaultLanguage == null) - { - var firstLanguage = languages.First(); - return new RequestCulture(firstLanguage.CultureName, firstLanguage.UiCultureName); - } - - var (cultureName, uiCultureName) = LocalizationSettingHelper.ParseLanguageSetting(defaultLanguage); - return new RequestCulture(cultureName, uiCultureName); - } } } diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Hosting/AbpHostingEnvironmentExtensions.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Hosting/AbpHostingEnvironmentExtensions.cs index 7e8bd32055..039e819b38 100644 --- a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Hosting/AbpHostingEnvironmentExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Hosting/AbpHostingEnvironmentExtensions.cs @@ -6,7 +6,7 @@ namespace Microsoft.AspNetCore.Hosting public static class AbpHostingEnvironmentExtensions { public static IConfigurationRoot BuildConfiguration( - this IHostingEnvironment env, + this IWebHostEnvironment env, ConfigurationBuilderOptions options = null) { options = options ?? new ConfigurationBuilderOptions(); diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestLocalizationMiddleware.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestLocalizationMiddleware.cs new file mode 100644 index 0000000000..75d903557e --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestLocalizationMiddleware.cs @@ -0,0 +1,35 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Localization; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Volo.Abp.DependencyInjection; + +namespace Microsoft.AspNetCore.RequestLocalization +{ + public class AbpRequestLocalizationMiddleware : IMiddleware, ITransientDependency + { + private readonly IAbpRequestLocalizationOptionsProvider _requestLocalizationOptionsProvider; + private readonly ILoggerFactory _loggerFactory; + + public AbpRequestLocalizationMiddleware( + IAbpRequestLocalizationOptionsProvider requestLocalizationOptionsProvider, + ILoggerFactory loggerFactory) + { + _requestLocalizationOptionsProvider = requestLocalizationOptionsProvider; + _loggerFactory = loggerFactory; + } + + public async Task InvokeAsync(HttpContext context, RequestDelegate next) + { + var middleware = new RequestLocalizationMiddleware( + next, + new OptionsWrapper(_requestLocalizationOptionsProvider.GetLocalizationOptions()), + _loggerFactory + ); + + await middleware.Invoke(context); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs new file mode 100644 index 0000000000..730f6e3937 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Localization; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Localization; +using Volo.Abp.Settings; +using Volo.Abp.Threading; + +namespace Microsoft.AspNetCore.RequestLocalization +{ + public class DefaultAbpRequestLocalizationOptionsProvider : IAbpRequestLocalizationOptionsProvider, ISingletonDependency + { + private readonly IServiceProvider _serviceProvider; + private Lazy _lazyRequestLocalizationOptions; + + public DefaultAbpRequestLocalizationOptionsProvider(IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + } + + public void InitLocalizationOptions(Action optionsAction = null) + { + _lazyRequestLocalizationOptions = new Lazy(() => + { + using (var serviceScope = _serviceProvider.CreateScope()) + { + var languageProvider = serviceScope.ServiceProvider.GetRequiredService(); + var settingProvider = serviceScope.ServiceProvider.GetRequiredService(); + + var languages = AsyncHelper.RunSync(languageProvider.GetLanguagesAsync); + var defaultLanguage = AsyncHelper.RunSync(() => + settingProvider.GetOrNullAsync(LocalizationSettingNames.DefaultLanguage)); + + var options = !languages.Any() + ? new RequestLocalizationOptions() + : new RequestLocalizationOptions + { + DefaultRequestCulture = DefaultGetRequestCulture(defaultLanguage, languages), + + SupportedCultures = languages + .Select(l => l.CultureName) + .Distinct() + .Select(c => new CultureInfo(c)) + .ToArray(), + + SupportedUICultures = languages + .Select(l => l.UiCultureName) + .Distinct() + .Select(c => new CultureInfo(c)) + .ToArray() + }; + + optionsAction?.Invoke(options); + return options; + } + }, true); + } + + public RequestLocalizationOptions GetLocalizationOptions() + { + return _lazyRequestLocalizationOptions.Value; + } + + private static RequestCulture DefaultGetRequestCulture(string defaultLanguage, IReadOnlyList languages) + { + if (defaultLanguage == null) + { + var firstLanguage = languages.First(); + return new RequestCulture(firstLanguage.CultureName, firstLanguage.UiCultureName); + } + + var (cultureName, uiCultureName) = LocalizationSettingHelper.ParseLanguageSetting(defaultLanguage); + return new RequestCulture(cultureName, uiCultureName); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/IAbpRequestLocalizationOptionsProvider.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/IAbpRequestLocalizationOptionsProvider.cs new file mode 100644 index 0000000000..5179bb48ee --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/IAbpRequestLocalizationOptionsProvider.cs @@ -0,0 +1,12 @@ +using System; +using Microsoft.AspNetCore.Builder; + +namespace Microsoft.AspNetCore.RequestLocalization +{ + public interface IAbpRequestLocalizationOptionsProvider + { + void InitLocalizationOptions(Action optionsAction = null); + + RequestLocalizationOptions GetLocalizationOptions(); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/Extensions/DependencyInjection/AbpAspNetCoreServiceCollectionExtensions.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/Extensions/DependencyInjection/AbpAspNetCoreServiceCollectionExtensions.cs index 859bdcdbaf..cf11ab32c3 100644 --- a/framework/src/Volo.Abp.AspNetCore/Microsoft/Extensions/DependencyInjection/AbpAspNetCoreServiceCollectionExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/Extensions/DependencyInjection/AbpAspNetCoreServiceCollectionExtensions.cs @@ -5,9 +5,9 @@ namespace Microsoft.Extensions.DependencyInjection { public static class AbpAspNetCoreServiceCollectionExtensions { - public static IHostingEnvironment GetHostingEnvironment(this IServiceCollection services) + public static IWebHostEnvironment GetHostingEnvironment(this IServiceCollection services) { - return services.GetSingletonInstance(); + return services.GetSingletonInstance(); } public static IConfigurationRoot BuildConfiguration(this IServiceCollection services, ConfigurationBuilderOptions options = null) diff --git a/framework/src/Volo.Abp.AspNetCore/Properties/launchSettings.json b/framework/src/Volo.Abp.AspNetCore/Properties/launchSettings.json new file mode 100644 index 0000000000..4098e788cd --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:53374/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.AspNetCore": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:53375/" + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj b/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj index 2584654ce8..d6a67c14be 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj +++ b/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj @@ -1,15 +1,17 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.AspNetCore Volo.Abp.AspNetCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false + true + Library @@ -26,13 +28,4 @@ - - - - - - - - - diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/ApplicationInitializationContextExtensions.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/ApplicationInitializationContextExtensions.cs index ed41314209..616afc8427 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/ApplicationInitializationContextExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/ApplicationInitializationContextExtensions.cs @@ -13,9 +13,9 @@ namespace Volo.Abp return context.ServiceProvider.GetRequiredService>().Value; } - public static IHostingEnvironment GetEnvironment(this ApplicationInitializationContext context) + public static IWebHostEnvironment GetEnvironment(this ApplicationInitializationContext context) { - return context.ServiceProvider.GetRequiredService(); + return context.ServiceProvider.GetRequiredService(); } public static ILoggerFactory GetLoggerFactory(this ApplicationInitializationContext context) diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs index c7f4252352..af22ff2f7e 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -42,9 +42,9 @@ namespace Volo.Abp.AspNetCore.Mvc.ExceptionHandling { var errorInfo = CreateErrorInfoWithoutCode(exception); - if (exception is IHasErrorCode) + if (exception is IHasErrorCode hasErrorCodeException) { - errorInfo.Code = (exception as IHasErrorCode).Code; + errorInfo.Code = hasErrorCodeException.Code; } return errorInfo; diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/WebContentFileProvider.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/WebContentFileProvider.cs index b837007996..ebc7446d68 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/WebContentFileProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/WebContentFileProvider.cs @@ -14,14 +14,14 @@ namespace Volo.Abp.AspNetCore.VirtualFileSystem { private readonly IVirtualFileProvider _virtualFileProvider; private readonly IFileProvider _fileProvider; - private readonly IHostingEnvironment _hostingEnvironment; + private readonly IWebHostEnvironment _hostingEnvironment; private string _rootPath = "/wwwroot"; //TODO: How to handle wwwroot naming? protected AspNetCoreContentOptions Options { get; } public WebContentFileProvider( - IVirtualFileProvider virtualFileProvider, - IHostingEnvironment hostingEnvironment, + IVirtualFileProvider virtualFileProvider, + IWebHostEnvironment hostingEnvironment, IOptions options) { _virtualFileProvider = virtualFileProvider; diff --git a/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj b/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj index 1be1b27c4f..04a5494625 100644 --- a/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj +++ b/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj @@ -14,7 +14,7 @@ - + diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationModule.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationModule.cs index 060fe03dc4..5a9c3fa4db 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationModule.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationModule.cs @@ -25,7 +25,7 @@ namespace Volo.Abp.Authorization public override void ConfigureServices(ServiceConfigurationContext context) { - context.Services.AddAuthorization(); + context.Services.AddAuthorizationCore(); context.Services.AddSingleton(); diff --git a/framework/src/Volo.Abp.AutoMapper/Microsoft/Extensions/DependencyInjection/AbpAutoMapperServiceCollectionExtensions.cs b/framework/src/Volo.Abp.AutoMapper/Microsoft/Extensions/DependencyInjection/AbpAutoMapperServiceCollectionExtensions.cs new file mode 100644 index 0000000000..c3e909486b --- /dev/null +++ b/framework/src/Volo.Abp.AutoMapper/Microsoft/Extensions/DependencyInjection/AbpAutoMapperServiceCollectionExtensions.cs @@ -0,0 +1,23 @@ +using Microsoft.Extensions.DependencyInjection.Extensions; +using Volo.Abp.AutoMapper; +using Volo.Abp.ObjectMapping; + +namespace Microsoft.Extensions.DependencyInjection +{ + public static class AbpAutoMapperServiceCollectionExtensions + { + public static IServiceCollection AddAutoMapperObjectMapper(this IServiceCollection services) + { + return services.Replace( + ServiceDescriptor.Transient() + ); + } + + public static IServiceCollection AddAutoMapperObjectMapper(this IServiceCollection services) + { + return services.Replace( + ServiceDescriptor.Transient, AutoMapperAutoObjectMappingProvider>() + ); + } + } +} diff --git a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs index ebf517dc65..ba3ef2ada8 100644 --- a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs +++ b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs @@ -12,6 +12,8 @@ namespace Volo.Abp.AutoMapper { public override void ConfigureServices(ServiceConfigurationContext context) { + context.Services.AddAutoMapperObjectMapper(); + var mapperAccessor = new MapperAccessor(); context.Services.AddSingleton(_ => mapperAccessor); context.Services.AddSingleton(_ => mapperAccessor); diff --git a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperAutoObjectMappingProvider.cs b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperAutoObjectMappingProvider.cs new file mode 100644 index 0000000000..ca5b7c0ea1 --- /dev/null +++ b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperAutoObjectMappingProvider.cs @@ -0,0 +1,32 @@ +using Volo.Abp.ObjectMapping; + +namespace Volo.Abp.AutoMapper +{ + public class AutoMapperAutoObjectMappingProvider : AutoMapperAutoObjectMappingProvider, IAutoObjectMappingProvider + { + public AutoMapperAutoObjectMappingProvider(IMapperAccessor mapperAccessor) + : base(mapperAccessor) + { + } + } + + public class AutoMapperAutoObjectMappingProvider : IAutoObjectMappingProvider + { + public IMapperAccessor MapperAccessor { get; } + + public AutoMapperAutoObjectMappingProvider(IMapperAccessor mapperAccessor) + { + MapperAccessor = mapperAccessor; + } + + public virtual TDestination Map(object source) + { + return MapperAccessor.Mapper.Map(source); + } + + public virtual TDestination Map(TSource source, TDestination destination) + { + return MapperAccessor.Mapper.Map(source, destination); + } + } +} diff --git a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperObjectMapper.cs b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperObjectMapper.cs deleted file mode 100644 index 73fad64113..0000000000 --- a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperObjectMapper.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.DependencyInjection; -using Volo.Abp.ObjectMapping; - -namespace Volo.Abp.AutoMapper -{ - [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] - public class AutoMapperObjectMapper : DefaultObjectMapper - { - protected IMapperAccessor MapperAccessor { get; } - - public AutoMapperObjectMapper(IMapperAccessor mapperAccessor, IServiceProvider serviceProvider) - : base(serviceProvider) - { - MapperAccessor = mapperAccessor; - } - - protected override TDestination AutoMap(object source) - { - return MapperAccessor.Mapper.Map(source); - } - - protected override TDestination AutoMap(TSource source, TDestination destination) - { - return MapperAccessor.Mapper.Map(source, destination); - } - } -} diff --git a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/ObjectMapping/AbpAutoMapperObjectMapperExtensions.cs b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/ObjectMapping/AbpAutoMapperObjectMapperExtensions.cs new file mode 100644 index 0000000000..7e4e91751f --- /dev/null +++ b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/ObjectMapping/AbpAutoMapperObjectMapperExtensions.cs @@ -0,0 +1,23 @@ +using AutoMapper; +using Volo.Abp.AutoMapper; + +namespace Volo.Abp.ObjectMapping +{ + public static class AbpAutoMapperObjectMapperExtensions + { + public static IMapper GetMapper(this IObjectMapper objectMapper) + { + return objectMapper.AutoObjectMappingProvider.GetMapper(); + } + + public static IMapper GetMapper(this IAutoObjectMappingProvider autoObjectMappingProvider) + { + if (autoObjectMappingProvider is AutoMapperAutoObjectMappingProvider autoMapperAutoObjectMappingProvider) + { + return autoMapperAutoObjectMappingProvider.MapperAccessor.Mapper; + } + + throw new AbpException($"Given object is not an instance of {typeof(AutoMapperAutoObjectMappingProvider).AssemblyQualifiedName}. The type of the given object it {autoObjectMappingProvider.GetType().AssemblyQualifiedName}"); + } + } +} diff --git a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj index 9470f72e19..bc7c696c3d 100644 --- a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj +++ b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj b/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj index f4417ae910..d064b3c0ea 100644 --- a/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj +++ b/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj @@ -1,4 +1,4 @@ - + @@ -14,7 +14,7 @@ - + diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/CacheOptions.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/CacheOptions.cs index 6be122be8f..0400da8c72 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/CacheOptions.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/CacheOptions.cs @@ -6,6 +6,11 @@ namespace Volo.Abp.Caching { public class CacheOptions { + /// + /// Cache key prefix. + /// + public string KeyPrefix { get; set; } + /// /// Global Cache entry options. /// @@ -21,6 +26,7 @@ namespace Volo.Abp.Caching { CacheConfigurators = new List>(); GlobalCacheEntryOptions = new DistributedCacheEntryOptions(); + KeyPrefix = ""; } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs index 7b93dc5c23..caa51aeac1 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs @@ -405,7 +405,7 @@ namespace Volo.Abp.Caching protected virtual string NormalizeKey(string key) { - var normalizedKey = "c:" + CacheName + ",k:" + key; + var normalizedKey = "c:" + CacheName + ",k:" + _cacheOption.KeyPrefix + key; if (!IgnoreMultiTenancy && CurrentTenant.Id.HasValue) { diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs index 056f87f897..f02f03d502 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs @@ -169,33 +169,42 @@ namespace Volo.Abp.Cli } } + private static bool IsGlobalTool(string toolPath) + { + var globalPaths = new[] { @"%USERPROFILE%\.dotnet\tools\", "%HOME%/.dotnet/tools/", }; + return globalPaths.Select(Environment.ExpandEnvironmentVariables).Contains(toolPath); + } + private void LogNewVersionInfo(UpdateChannel updateChannel, SemanticVersion latestVersion, string toolPath) { - Logger.LogWarning( - $"ABP CLI has a newer {updateChannel.ToString().ToLowerInvariant()} version {latestVersion}, please update to get the latest features and fixes."); - Logger.LogWarning(""); + var toolPathArg = IsGlobalTool(toolPath) ? "-g" : $"--tool-path {toolPath}"; + + Logger.LogWarning($"ABP CLI has a newer {updateChannel.ToString().ToLowerInvariant()} version {latestVersion}, please update to get the latest features and fixes."); + Logger.LogWarning(string.Empty); Logger.LogWarning("Update Command: "); // Update command doesn't support prerelease versions https://github.com/dotnet/sdk/issues/2551 workaround is to uninstall & install switch (updateChannel) { case UpdateChannel.Stable: - Logger.LogWarning($" dotnet tool update --tool-path {toolPath} Volo.Abp.Cli"); + Logger.LogWarning($"dotnet tool update {toolPathArg} Volo.Abp.Cli"); break; case UpdateChannel.Prerelease: - Logger.LogWarning($" dotnet tool uninstall --tool-path {toolPath} Volo.Abp.Cli"); - Logger.LogWarning($" dotnet tool install --tool-path {toolPath} --version {latestVersion} Volo.Abp.Cli"); + Logger.LogWarning($"dotnet tool uninstall {toolPathArg} Volo.Abp.Cli"); + Logger.LogWarning($"dotnet tool install {toolPathArg} Volo.Abp.Cli --version {latestVersion}"); break; case UpdateChannel.Nightly: - Logger.LogWarning($" dotnet tool uninstall --tool-path {toolPath} Volo.Abp.Cli"); - Logger.LogWarning( - $" dotnet tool install --tool-path {toolPath} --add-source https://www.myget.org/F/abp-nightly/api/v3/index.json --version {latestVersion} Volo.Abp.Cli"); + case UpdateChannel.Development: + Logger.LogWarning($"dotnet tool uninstall {toolPathArg} Volo.Abp.Cli"); + Logger.LogWarning($"dotnet tool install {toolPathArg} Volo.Abp.Cli --add-source https://www.myget.org/F/abp-nightly/api/v3/index.json --version {latestVersion}"); break; + default: + throw new ArgumentOutOfRangeException(nameof(updateChannel), updateChannel, null); } - Logger.LogWarning(""); + Logger.LogWarning(string.Empty); } protected enum UpdateChannel diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginCommand.cs index 030f474c96..5efbc358f0 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginCommand.cs @@ -38,7 +38,7 @@ namespace Volo.Abp.Cli.Commands if (password.IsNullOrWhiteSpace()) { throw new CliUsageException( - "Password name is missing!" + + "Password is missing!" + Environment.NewLine + Environment.NewLine + GetUsageInfo() ); 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 f75a2eae4c..6921f8e4d8 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 @@ -37,21 +37,32 @@ namespace Volo.Abp.Cli.Commands ); } - Logger.LogInformation("Creating a new project..."); + Logger.LogInformation("Creating your project..."); Logger.LogInformation("Project name: " + commandLineArgs.Target); - commandLineArgs.Options.Add(CliConsts.Command, commandLineArgs.Command); + var template = commandLineArgs.Options.GetOrNull(Options.Template.Short, Options.Template.Long); + if (template != null) + { + Logger.LogInformation("Template: " + template); + } - var result = await ProjectBuilder.BuildAsync( - new ProjectBuildArgs( - SolutionName.Parse(commandLineArgs.Target), - commandLineArgs.Options.GetOrNull(Options.Template.Short, Options.Template.Long), - commandLineArgs.Options.GetOrNull(Options.Version.Short, Options.Version.Long), - GetDatabaseProvider(commandLineArgs), - GetUiFramework(commandLineArgs), - commandLineArgs.Options - ) - ); + var version = commandLineArgs.Options.GetOrNull(Options.Version.Short, Options.Version.Long); + if (version != null) + { + Logger.LogInformation("Version: " + version); + } + + var databaseProvider = GetDatabaseProvider(commandLineArgs); + if (databaseProvider != DatabaseProvider.NotSpecified) + { + Logger.LogInformation("Database provider: " + databaseProvider); + } + + var uiFramework = GetUiFramework(commandLineArgs); + if (uiFramework != UiFramework.NotSpecified) + { + Logger.LogInformation("UI Framework: " + uiFramework); + } var outputFolder = commandLineArgs.Options.GetOrNull(Options.OutputFolder.Short, Options.OutputFolder.Long); if (outputFolder != null) @@ -68,6 +79,21 @@ namespace Volo.Abp.Cli.Commands outputFolder = Directory.GetCurrentDirectory(); } + Logger.LogInformation("Output folder: " + outputFolder); + + commandLineArgs.Options.Add(CliConsts.Command, commandLineArgs.Command); + + var result = await ProjectBuilder.BuildAsync( + new ProjectBuildArgs( + SolutionName.Parse(commandLineArgs.Target), + template, + version, + databaseProvider, + uiFramework, + commandLineArgs.Options + ) + ); + using (var templateFileStream = new MemoryStream(result.ZipContent)) { using (var zipInputStream = new ZipInputStream(templateFileStream)) @@ -101,8 +127,7 @@ namespace Volo.Abp.Cli.Commands } } - Logger.LogInformation($"Successfully created the project '{commandLineArgs.Target}'"); - Logger.LogInformation($"The output folder is: '{outputFolder}'"); + Logger.LogInformation($"'{commandLineArgs.Target}' has been successfully created to '{outputFolder}'"); } public string GetUsageInfo() diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs index d6983a5db1..bc0b39a85a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs @@ -2,6 +2,7 @@ using System.IO; using System.Net.Http; using System.Text; +using IdentityModel.Client; namespace Volo.Abp.Cli.Http { diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/AbpIoApiKeyService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/AbpIoApiKeyService.cs index e48e7853d4..22cd692ec3 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/AbpIoApiKeyService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/AbpIoApiKeyService.cs @@ -15,7 +15,7 @@ namespace Volo.Abp.Cli.Licensing protected IJsonSerializer JsonSerializer { get; } - public async Task GetApiKeyOrNullAsync() + public async Task GetApiKeyOrNullAsync() { using (var client = new CliHttpClient()) { @@ -29,7 +29,7 @@ namespace Volo.Abp.Cli.Licensing } var responseContent = await response.Content.ReadAsStringAsync(); - return JsonSerializer.Deserialize(responseContent).ApiKey; + return JsonSerializer.Deserialize(responseContent); } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/IApiKeyService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/IApiKeyService.cs index 9e97859148..0fb8058c61 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/IApiKeyService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Licensing/IApiKeyService.cs @@ -5,6 +5,6 @@ namespace Volo.Abp.Cli.Licensing { public interface IApiKeyService { - Task GetApiKeyOrNullAsync(); + Task GetApiKeyOrNullAsync(); } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildPipelineBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildPipelineBuilder.cs index 5f763b15f9..49cb44d13a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildPipelineBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildPipelineBuilder.cs @@ -1,4 +1,5 @@ using Volo.Abp.Cli.ProjectBuilding.Building.Steps; +using Volo.Abp.Cli.ProjectBuilding.Templates.App; namespace Volo.Abp.Cli.ProjectBuilding.Building { @@ -19,6 +20,12 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building pipeline.Steps.Add(new TemplateCodeDeleteStep()); pipeline.Steps.Add(new SolutionRenameStep()); + + if (context.Template.Name == AppProTemplate.TemplateName) + { + pipeline.Steps.Add(new LicenseCodeReplaceStep()); + } + pipeline.Steps.Add(new CreateProjectResultZipStep()); return pipeline; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/LicenseCodeReplaceStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/LicenseCodeReplaceStep.cs new file mode 100644 index 0000000000..b2dee80867 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/LicenseCodeReplaceStep.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Volo.Abp.Cli.ProjectBuilding.Files; + +namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps +{ + public class LicenseCodeReplaceStep : ProjectBuildPipelineStep + { + public override void Execute(ProjectBuildContext context) + { + var licenseCode = context.BuildArgs.ExtraProperties.GetOrDefault("license-code"); + + var appSettingsJsonFiles = context.Files.Where(f => + f.Name.EndsWith("appsettings.json", StringComparison.OrdinalIgnoreCase)); + + foreach (var appSettingsJson in appSettingsJsonFiles) + { + appSettingsJson.ReplaceText(@"", licenseCode); + } + } + } +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/NugetReferenceReplaceStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/NugetReferenceReplaceStep.cs index 057b03370e..cb790ba91f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/NugetReferenceReplaceStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/NugetReferenceReplaceStep.cs @@ -19,8 +19,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps new NugetReferenceReplacer( context.Files, - "MyCompanyName", - "MyProjectName", + "MyCompanyName.MyProjectName", nugetPackageVersion ).Run(); } @@ -47,19 +46,16 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps private class NugetReferenceReplacer { private readonly List _entries; - private readonly string _companyNamePlaceHolder; - private readonly string _projectNamePlaceHolder; + private readonly string _companyAndProjectNamePlaceHolder; private readonly string _nugetPackageVersion; public NugetReferenceReplacer( List entries, - string companyNamePlaceHolder, - string projectNamePlaceHolder, + string companyAndProjectNamePlaceHolder, string nugetPackageVersion) { _entries = entries; - _companyNamePlaceHolder = companyNamePlaceHolder; - _projectNamePlaceHolder = projectNamePlaceHolder; + _companyAndProjectNamePlaceHolder = companyAndProjectNamePlaceHolder; _nugetPackageVersion = nugetPackageVersion; } @@ -96,7 +92,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps var oldNodeIncludeValue = oldNode.Attributes["Include"].Value; // ReSharper disable once PossibleNullReferenceException : Can not be null because nodes are selected with include attribute filter in previous method - if (oldNodeIncludeValue.Contains($"{_companyNamePlaceHolder}.{_projectNamePlaceHolder}")) + if (oldNodeIncludeValue.Contains($"{_companyAndProjectNamePlaceHolder}")) { continue; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs index 076ee084d1..cb6f29de7e 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/SolutionRenameStep.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; using Volo.Abp.Cli.ProjectBuilding.Files; namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuilder.cs index 1807e8345a..6c9b6fa145 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuilder.cs @@ -53,10 +53,15 @@ namespace Volo.Abp.Cli.ProjectBuilding args.Version ); - var apiKey = await ApiKeyService.GetApiKeyOrNullAsync(); - if (apiKey != null) + var apiKeyResult = await ApiKeyService.GetApiKeyOrNullAsync(); + if (apiKeyResult?.ApiKey != null) { - args.ExtraProperties["api-key"] = apiKey; + args.ExtraProperties["api-key"] = apiKeyResult.ApiKey; + } + + if (apiKeyResult?.LicenseCode != null) + { + args.ExtraProperties["license-code"] = apiKeyResult.LicenseCode; } var context = new ProjectBuildContext( @@ -69,7 +74,7 @@ namespace Volo.Abp.Cli.ProjectBuilding if (!templateInfo.DocumentUrl.IsNullOrEmpty()) { - Logger.LogInformation("Check the documentation of this template: " + templateInfo.DocumentUrl); + Logger.LogInformation("Check out the documents at " + templateInfo.DocumentUrl); } // Exclude unwanted or known options. diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/UpdateNuGetConfigStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/UpdateNuGetConfigStep.cs index 428aaa6c96..1a40eff341 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/UpdateNuGetConfigStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/UpdateNuGetConfigStep.cs @@ -29,7 +29,10 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App return; } - file.ReplaceText("{api-key}", apiKey); + const string placeHolder = ""; + var nugetSourceTag = $""; + + file.ReplaceText(placeHolder, nugetSourceTag); } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/DerivedClassFinder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/DerivedClassFinder.cs index db39a660ce..4cf3209955 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/DerivedClassFinder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/DerivedClassFinder.cs @@ -29,8 +29,7 @@ namespace Volo.Abp.Cli.ProjectModification var csFiles = new DirectoryInfo(csprojFileDirectory) .GetFiles("*.cs", SearchOption.AllDirectories) - .Where(f => !f.DirectoryName.StartsWith(binFile)) - .Where(f => !f.DirectoryName.StartsWith(objFile)) + .Where(f => f.DirectoryName != null && (!f.DirectoryName.StartsWith(binFile) || !f.DirectoryName.StartsWith(objFile))) .Select(f => f.FullName) .ToList(); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs index 548290df5c..4a313e784d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs @@ -83,8 +83,11 @@ namespace Volo.Abp.Cli.ProjectModification public static string[] GetProjectFiles(string solutionFile) { - var baseProjectFolder = GetBaseProjectFolder(solutionFile); - return Directory.GetFiles(baseProjectFolder, "*.csproj", SearchOption.AllDirectories); + return GetBaseProjectFolders(solutionFile) + .Select(baseProjectFolder => + Directory.GetFiles(baseProjectFolder, "*.csproj", SearchOption.AllDirectories)) + .SelectMany(files => files) + .ToArray(); } public static string[] GetAssemblyNames(string[] projectFiles) @@ -118,16 +121,33 @@ namespace Volo.Abp.Cli.ProjectModification return null; } - private static string GetBaseProjectFolder(string solutionFile) + private static string[] GetBaseProjectFolders(string solutionFile) { + var projectFolders = new List(); var baseFolder = Path.GetDirectoryName(solutionFile); + if (baseFolder == null) + { + return projectFolders.ToArray(); + } + var srcFolder = Path.Combine(baseFolder, "src"); if (Directory.Exists(srcFolder)) { - baseFolder = srcFolder; + projectFolders.Add(srcFolder); + } + + var testFolder = Path.Combine(baseFolder, "test"); + if (Directory.Exists(testFolder)) + { + projectFolders.Add(testFolder); + } + + if (!projectFolders.Any()) + { + projectFolders.Add(baseFolder); } - return baseFolder; + return projectFolders.ToArray(); } } } diff --git a/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj b/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj index f28c2554b2..01d1a210ef 100644 --- a/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj +++ b/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj @@ -4,7 +4,7 @@ Exe - netcoreapp2.2 + netcoreapp3.0 true abp diff --git a/framework/src/Volo.Abp.Core/Microsoft/Extensions/Configuration/ConfigurationBuilderOptions.cs b/framework/src/Volo.Abp.Core/Microsoft/Extensions/Configuration/ConfigurationBuilderOptions.cs index 101dad5c95..aa55c0e876 100644 --- a/framework/src/Volo.Abp.Core/Microsoft/Extensions/Configuration/ConfigurationBuilderOptions.cs +++ b/framework/src/Volo.Abp.Core/Microsoft/Extensions/Configuration/ConfigurationBuilderOptions.cs @@ -30,5 +30,10 @@ namespace Microsoft.Extensions.Configuration /// Base path to read the configuration file indicated by . /// public string BasePath { get; set; } + + /// + /// Prefix for the environment variables. + /// + public string EnvironmentVariablesPrefix { get; set; } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Core/Microsoft/Extensions/Configuration/ConfigurationHelper.cs b/framework/src/Volo.Abp.Core/Microsoft/Extensions/Configuration/ConfigurationHelper.cs index b2d005685e..37e721f1af 100644 --- a/framework/src/Volo.Abp.Core/Microsoft/Extensions/Configuration/ConfigurationHelper.cs +++ b/framework/src/Volo.Abp.Core/Microsoft/Extensions/Configuration/ConfigurationHelper.cs @@ -23,7 +23,7 @@ namespace Microsoft.Extensions.Configuration builder = builder.AddJsonFile($"{options.FileName}.{options.EnvironmentName}.json", optional: true, reloadOnChange: true); } - builder = builder.AddEnvironmentVariables(); + builder = builder.AddEnvironmentVariables(options.EnvironmentVariablesPrefix); if (options.EnvironmentName == "Development") { diff --git a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj index a7a2a4a55a..b405e10f59 100644 --- a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj +++ b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj @@ -11,18 +11,18 @@ - - + + + + + + + + + - + - - - - - - - diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ConventionalRegistrarBase.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ConventionalRegistrarBase.cs index f9cbf3c13c..8a47e7fa17 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ConventionalRegistrarBase.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ConventionalRegistrarBase.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Reflection; using Microsoft.Extensions.DependencyInjection; @@ -31,5 +32,23 @@ namespace Volo.Abp.DependencyInjection } public abstract void AddType(IServiceCollection services, Type type); + + protected virtual bool IsConventionalRegistrationDisabled(Type type) + { + return type.IsDefined(typeof(DisableConventionalRegistrationAttribute), true); + } + + protected virtual void TriggerServiceExposing(IServiceCollection services, Type implementationType, List serviceTypes) + { + var exposeActions = services.GetExposingActionList(); + if (exposeActions.Any()) + { + var args = new OnServiceExposingContext(implementationType, serviceTypes); + foreach (var action in exposeActions) + { + action(args); + } + } + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/DefaultConventionalRegistrar.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/DefaultConventionalRegistrar.cs index 9c5ee06d81..15361ece62 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/DefaultConventionalRegistrar.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/DefaultConventionalRegistrar.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; using System.Reflection; using JetBrains.Annotations; using Microsoft.Extensions.DependencyInjection; @@ -48,25 +46,7 @@ namespace Volo.Abp.DependencyInjection } } } - - protected virtual void TriggerServiceExposing(IServiceCollection services, Type type, List serviceTypes) - { - var exposeActions = services.GetExposingActionList(); - if (exposeActions.Any()) - { - var args = new OnServiceExposingContext(type, serviceTypes); - foreach (var action in exposeActions) - { - action(args); - } - } - } - - protected virtual bool IsConventionalRegistrationDisabled(Type type) - { - return type.IsDefined(typeof(DisableConventionalRegistrationAttribute), true); - } - + protected virtual DependencyAttribute GetDependencyAttributeOrNull(Type type) { return type.GetCustomAttribute(true); diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Modularity/IAbpModule.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Modularity/IAbpModule.cs index 32c8980c54..45f02e08c8 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Modularity/IAbpModule.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Modularity/IAbpModule.cs @@ -2,7 +2,7 @@ namespace Volo.Abp.Modularity { - public interface IAbpModule : ISingletonDependency + public interface IAbpModule { void ConfigureServices(ServiceConfigurationContext context); } diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Threading/AsyncHelper.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Threading/AsyncHelper.cs index 2b40cd6790..dc678b8fd4 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Threading/AsyncHelper.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Threading/AsyncHelper.cs @@ -24,7 +24,7 @@ namespace Volo.Abp.Threading public static bool IsTaskOrTaskOfT([NotNull] this Type type) { - return type == typeof(Task) || type.GetTypeInfo().IsGenericType && type.GetGenericTypeDefinition() == typeof(Task<>); + return type == typeof(Task) || (type.GetTypeInfo().IsGenericType && type.GetGenericTypeDefinition() == typeof(Task<>)); } /// diff --git a/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj b/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj index 849dc33c60..0b9ba3f9a9 100644 --- a/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj +++ b/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 Volo.Abp.Dapper Volo.Abp.Dapper $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ApplicationService.cs b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ApplicationService.cs index 698f2c0ea3..0de23c826b 100644 --- a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ApplicationService.cs +++ b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ApplicationService.cs @@ -34,7 +34,11 @@ namespace Volo.Abp.Application.Services { public IServiceProvider ServiceProvider { get; set; } protected readonly object ServiceProviderLock = new object(); + protected TService LazyGetRequiredService(ref TService reference) + => LazyGetRequiredService(typeof(TService), ref reference); + + protected TRef LazyGetRequiredService(Type serviceType, ref TRef reference) { if (reference == null) { @@ -42,7 +46,7 @@ namespace Volo.Abp.Application.Services { if (reference == null) { - reference = ServiceProvider.GetRequiredService(); + reference = (TRef)ServiceProvider.GetRequiredService(serviceType); } } } @@ -57,7 +61,27 @@ namespace Volo.Abp.Application.Services public IUnitOfWorkManager UnitOfWorkManager => LazyGetRequiredService(ref _unitOfWorkManager); private IUnitOfWorkManager _unitOfWorkManager; - public IObjectMapper ObjectMapper => LazyGetRequiredService(ref _objectMapper); + protected Type ObjectMapperContext { get; set; } + public IObjectMapper ObjectMapper + { + get + { + if (_objectMapper != null) + { + return _objectMapper; + } + + if (ObjectMapperContext == null) + { + return LazyGetRequiredService(ref _objectMapper); + } + + return LazyGetRequiredService( + typeof(IObjectMapper<>).MakeGenericType(ObjectMapperContext), + ref _objectMapper + ); + } + } private IObjectMapper _objectMapper; public IGuidGenerator GuidGenerator { get; set; } diff --git a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs index 3a64760a0f..237e89aa53 100644 --- a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs +++ b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs @@ -188,8 +188,7 @@ namespace Volo.Abp.Application.Services protected virtual IQueryable ApplySorting(IQueryable query, TGetListInput input) { //Try to sort query if available - var sortInput = input as ISortedResultRequest; - if (sortInput != null) + if (input is ISortedResultRequest sortInput) { if (!sortInput.Sorting.IsNullOrWhiteSpace()) { @@ -215,15 +214,13 @@ namespace Volo.Abp.Application.Services protected virtual IQueryable ApplyPaging(IQueryable query, TGetListInput input) { //Try to use paging if available - var pagedInput = input as IPagedResultRequest; - if (pagedInput != null) + if (input is IPagedResultRequest pagedInput) { return query.PageBy(pagedInput); } //Try to limit query result if available - var limitedInput = input as ILimitedResultRequest; - if (limitedInput != null) + if (input is ILimitedResultRequest limitedInput) { return query.Take(limitedInput.MaxResultCount); } @@ -289,7 +286,11 @@ namespace Volo.Abp.Application.Services return; } - entityWithGuidId.Id = GuidGenerator.Create(); + EntityHelper.TrySetId( + entityWithGuidId, + () => GuidGenerator.Create(), + true + ); } /// diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedAggregateRoot.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedAggregateRoot.cs index 8f566f1b6b..bc4830bc03 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedAggregateRoot.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedAggregateRoot.cs @@ -28,5 +28,16 @@ namespace Volo.Abp.Domain.Entities.Auditing /// public virtual Guid? LastModifierId { get; set; } + + protected AuditedAggregateRoot() + { + + } + + protected AuditedAggregateRoot(TKey id) + : base(id) + { + + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedAggregateRootWithUser.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedAggregateRootWithUser.cs index 107fb35b68..ec490fbb50 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedAggregateRootWithUser.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedAggregateRootWithUser.cs @@ -32,5 +32,16 @@ namespace Volo.Abp.Domain.Entities.Auditing /// public virtual TUser LastModifier { get; set; } + + protected AuditedAggregateRootWithUser() + { + + } + + protected AuditedAggregateRootWithUser(TKey id) + : base(id) + { + + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedEntity.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedEntity.cs index 2ccc1aa1e2..0423551509 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedEntity.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedEntity.cs @@ -28,5 +28,16 @@ namespace Volo.Abp.Domain.Entities.Auditing /// public virtual Guid? LastModifierId { get; set; } + + protected AuditedEntity() + { + + } + + protected AuditedEntity(TKey id) + : base(id) + { + + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedEntityWithUser.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedEntityWithUser.cs index 76002b2114..fd6aeb9dd9 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedEntityWithUser.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/AuditedEntityWithUser.cs @@ -32,5 +32,16 @@ namespace Volo.Abp.Domain.Entities.Auditing /// public virtual TUser LastModifier { get; set; } + + protected AuditedEntityWithUser() + { + + } + + protected AuditedEntityWithUser(TKey id) + : base(id) + { + + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedAggregateRoot.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedAggregateRoot.cs index 29c01bd466..084c907606 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedAggregateRoot.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedAggregateRoot.cs @@ -28,5 +28,16 @@ namespace Volo.Abp.Domain.Entities.Auditing /// public virtual Guid? CreatorId { get; set; } + + protected CreationAuditedAggregateRoot() + { + + } + + protected CreationAuditedAggregateRoot(TKey id) + : base(id) + { + + } } } diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedAggregateRootWithUser.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedAggregateRootWithUser.cs index 1084360749..7d491d7be1 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedAggregateRootWithUser.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedAggregateRootWithUser.cs @@ -24,5 +24,16 @@ namespace Volo.Abp.Domain.Entities.Auditing { /// public virtual TUser Creator { get; set; } + + protected CreationAuditedAggregateRootWithUser() + { + + } + + protected CreationAuditedAggregateRootWithUser(TKey id) + : base(id) + { + + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedEntity.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedEntity.cs index 1ab527dc2a..41802c78b7 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedEntity.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedEntity.cs @@ -28,5 +28,16 @@ namespace Volo.Abp.Domain.Entities.Auditing /// public virtual Guid? CreatorId { get; set; } + + protected CreationAuditedEntity() + { + + } + + protected CreationAuditedEntity(TKey id) + : base(id) + { + + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedEntityWithUser.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedEntityWithUser.cs index 0989dfeac4..45d844efa7 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedEntityWithUser.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/CreationAuditedEntityWithUser.cs @@ -24,5 +24,16 @@ namespace Volo.Abp.Domain.Entities.Auditing { /// public virtual TUser Creator { get; set; } + + protected CreationAuditedEntityWithUser() + { + + } + + protected CreationAuditedEntityWithUser(TKey id) + : base(id) + { + + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedAggregateRoot.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedAggregateRoot.cs index 397a425629..9231efd3ab 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedAggregateRoot.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedAggregateRoot.cs @@ -34,5 +34,16 @@ namespace Volo.Abp.Domain.Entities.Auditing /// public virtual DateTime? DeletionTime { get; set; } + + protected FullAuditedAggregateRoot() + { + + } + + protected FullAuditedAggregateRoot(TKey id) + : base(id) + { + + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedAggregateRootWithUser.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedAggregateRootWithUser.cs index d379a78240..cb0be46421 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedAggregateRootWithUser.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedAggregateRootWithUser.cs @@ -38,5 +38,16 @@ namespace Volo.Abp.Domain.Entities.Auditing /// public TUser LastModifier { get; set; } + + protected FullAuditedAggregateRootWithUser() + { + + } + + protected FullAuditedAggregateRootWithUser(TKey id) + : base(id) + { + + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedEntity.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedEntity.cs index 20b07b85b5..ada5cc9eed 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedEntity.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedEntity.cs @@ -34,5 +34,16 @@ namespace Volo.Abp.Domain.Entities.Auditing /// public virtual DateTime? DeletionTime { get; set; } + + protected FullAuditedEntity() + { + + } + + protected FullAuditedEntity(TKey id) + : base(id) + { + + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedEntityWithUser.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedEntityWithUser.cs index 9aba520480..12458ebf99 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedEntityWithUser.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Auditing/FullAuditedEntityWithUser.cs @@ -38,5 +38,16 @@ namespace Volo.Abp.Domain.Entities.Auditing /// public TUser LastModifier { get; set; } + + protected FullAuditedEntityWithUser() + { + + } + + protected FullAuditedEntityWithUser(TKey id) + : base(id) + { + + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/DisableIdGenerationAttribute.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/DisableIdGenerationAttribute.cs new file mode 100644 index 0000000000..1d823ca177 --- /dev/null +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/DisableIdGenerationAttribute.cs @@ -0,0 +1,9 @@ +using System; + +namespace Volo.Abp.Domain.Entities +{ + public class DisableIdGenerationAttribute : Attribute + { + + } +} diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Entity.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Entity.cs index c96e305d45..b78a5aa400 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Entity.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Entity.cs @@ -23,7 +23,7 @@ namespace Volo.Abp.Domain.Entities public abstract class Entity : Entity, IEntity { /// - public virtual TKey Id { get; set; } + public virtual TKey Id { get; protected set; } protected Entity() { @@ -35,8 +35,7 @@ namespace Volo.Abp.Domain.Entities Id = id; } - /// - public override bool Equals(object obj) + public bool EntityEquals(object obj) { if (obj == null || !(obj is Entity)) { @@ -73,33 +72,7 @@ namespace Volo.Abp.Domain.Entities return Id.Equals(other.Id); } - - /// - public override int GetHashCode() - { - if (Id == null) - { - return 0; - } - - return Id.GetHashCode(); - } - - public static bool operator ==(Entity left, Entity right) - { - if (Equals(left, null)) - { - return Equals(right, null); - } - - return left.Equals(right); - } - - public static bool operator !=(Entity left, Entity right) - { - return !(left == right); - } - + public override object[] GetKeys() { return new object[] {Id}; diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs index b6558f34d1..dd483f5d7b 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs @@ -81,5 +81,32 @@ namespace Volo.Abp.Domain.Entities var lambdaBody = Expression.Equal(leftExpression, rightExpression); return Expression.Lambda>(lambdaBody, lambdaParam); } + + public static void TrySetId( + IEntity entity, + Func idFactory, + bool checkForDisableGuidGenerationAttribute = false) + { + //TODO: Can be optimized (by caching per entity type)? + var entityType = entity.GetType(); + var idProperty = entityType.GetProperty( + nameof(entity.Id) + ); + + if (idProperty == null) + { + return; + } + + if (checkForDisableGuidGenerationAttribute) + { + if (idProperty.IsDefined(typeof(DisableIdGenerationAttribute), true)) + { + return; + } + } + + idProperty.SetValue(entity, idFactory()); + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/Distributed/EntityToEtoMapper.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/Distributed/EntityToEtoMapper.cs index 5b386599ef..b15ea3d6a4 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/Distributed/EntityToEtoMapper.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/Distributed/EntityToEtoMapper.cs @@ -1,5 +1,6 @@ using Microsoft.Extensions.Options; using System.Collections.Generic; +using Microsoft.Extensions.DependencyInjection; using Volo.Abp.DependencyInjection; using Volo.Abp.DynamicProxy; using Volo.Abp.EventBus.Distributed; @@ -9,14 +10,14 @@ namespace Volo.Abp.Domain.Entities.Events.Distributed { public class EntityToEtoMapper : IEntityToEtoMapper, ITransientDependency { - protected IObjectMapper ObjectMapper { get; } + protected IHybridServiceScopeFactory HybridServiceScopeFactory { get; } protected DistributedEventBusOptions Options { get; } public EntityToEtoMapper( IOptions options, - IObjectMapper objectMapper) + IHybridServiceScopeFactory hybridServiceScopeFactory) { - ObjectMapper = objectMapper; + HybridServiceScopeFactory = hybridServiceScopeFactory; Options = options.Value; } @@ -31,15 +32,23 @@ namespace Volo.Abp.Domain.Entities.Events.Distributed } var entityType = ProxyHelper.UnProxy(entity).GetType(); - var etoType = Options.EtoMappings.GetOrDefault(entityType); - if (etoType == null) + var etoMappingItem = Options.EtoMappings.GetOrDefault(entityType); + if (etoMappingItem == null) { var keys = entity.GetKeys().JoinAsString(","); return new EntityEto(entityType.FullName, keys); } - //TODO: Also add KeysAsString property to resulting json for compatibility with the EntityEto! - return ObjectMapper.Map(entityType, etoType, entityObj); + using (var scope = HybridServiceScopeFactory.CreateScope()) + { + var objectMapperType = etoMappingItem.ObjectMappingContextType == null + ? typeof(IObjectMapper) + : typeof(IObjectMapper<>).MakeGenericType(etoMappingItem.ObjectMappingContextType); + + var objectMapper = (IObjectMapper) scope.ServiceProvider.GetRequiredService(objectMapperType); + + return objectMapper.Map(entityType, etoMappingItem.EtoType, entityObj); + } } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/IEntity.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/IEntity.cs index 58e607b120..890c5227bd 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/IEntity.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/IEntity.cs @@ -22,6 +22,6 @@ /// /// Unique identifier for this entity. /// - TKey Id { get; set; } + TKey Id { get; } } } diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Values/ValueObject.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Values/ValueObject.cs index ea84b41792..00a4c7ddd3 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Values/ValueObject.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Values/ValueObject.cs @@ -7,23 +7,9 @@ namespace Volo.Abp.Domain.Values public abstract class ValueObject { - protected static bool EqualOperator(ValueObject left, ValueObject right) - { - if (ReferenceEquals(left, null) ^ ReferenceEquals(right, null)) - { - return false; - } - return ReferenceEquals(left, null) || left.Equals(right); - } - - protected static bool NotEqualOperator(ValueObject left, ValueObject right) - { - return !(EqualOperator(left, right)); - } - protected abstract IEnumerable GetAtomicValues(); - public override bool Equals(object obj) + public bool ValueEquals(object obj) { if (obj == null || obj.GetType() != GetType()) { @@ -31,8 +17,10 @@ namespace Volo.Abp.Domain.Values } ValueObject other = (ValueObject)obj; + IEnumerator thisValues = GetAtomicValues().GetEnumerator(); IEnumerator otherValues = other.GetAtomicValues().GetEnumerator(); + while (thisValues.MoveNext() && otherValues.MoveNext()) { if (ReferenceEquals(thisValues.Current, null) ^ @@ -47,15 +35,8 @@ namespace Volo.Abp.Domain.Values return false; } } - return !thisValues.MoveNext() && !otherValues.MoveNext(); - } - public override int GetHashCode() - { - return GetAtomicValues() - .Select(x => x != null ? x.GetHashCode() : 0) - .Aggregate((x, y) => x ^ y); + return !thisValues.MoveNext() && !otherValues.MoveNext(); } - // Other utilility methods } } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj index 5e9c7a91fb..d5c1ffb04d 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 Volo.Abp.EntityFrameworkCore.MySQL Volo.Abp.EntityFrameworkCore.MySQL $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj index bc148b42c5..b385b920ed 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj @@ -1,9 +1,9 @@ - + - netstandard2.0 + netstandard2.1 Volo.Abp.EntityFrameworkCore.PostgreSql Volo.Abp.EntityFrameworkCore.PostgreSql $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -18,7 +18,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj index 458ffda849..ab658d9e75 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 Volo.Abp.EntityFrameworkCore.SqlServer Volo.Abp.EntityFrameworkCore.SqlServer $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -18,7 +18,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj index b22bc48301..37f80a5b44 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 Volo.Abp.EntityFrameworkCore.Sqlite Volo.Abp.EntityFrameworkCore.Sqlite $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -14,7 +14,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj b/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj index a472c09690..03602ee77b 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 Volo.Abp.EntityFrameworkCore Volo.Abp.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -19,8 +19,8 @@ - - + + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs index 23b4e36b75..e26624747c 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs @@ -258,14 +258,14 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore public virtual TEntity Find(TKey id, bool includeDetails = true) { return includeDetails - ? WithDetails().FirstOrDefault(EntityHelper.CreateEqualityExpressionForId(id)) + ? WithDetails().FirstOrDefault(e => e.Id.Equals(id)) : DbSet.Find(id); } public virtual async Task FindAsync(TKey id, bool includeDetails = true, CancellationToken cancellationToken = default) { return includeDetails - ? await WithDetails().FirstOrDefaultAsync(EntityHelper.CreateEqualityExpressionForId(id), GetCancellationToken(cancellationToken)) + ? await WithDetails().FirstOrDefaultAsync(e => e.Id.Equals(id), GetCancellationToken(cancellationToken)) : await DbSet.FindAsync(new object[] { id }, GetCancellationToken(cancellationToken)); } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs index 1ed5f3eaed..3604913301 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs @@ -9,7 +9,6 @@ using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.ChangeTracking; using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Metadata.Builders; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Newtonsoft.Json; @@ -282,20 +281,37 @@ namespace Volo.Abp.EntityFrameworkCore protected virtual void CheckAndSetId(EntityEntry entry) { - //Set GUID Ids - var entity = entry.Entity as IEntity; - if (entity != null && entity.Id == Guid.Empty) + if (entry.Entity is IEntity entityWithGuidId) { - var dbGeneratedAttr = ReflectionHelper - .GetSingleAttributeOrDefault( - entry.Property("Id").Metadata.PropertyInfo - ); + TrySetGuidId(entry, entityWithGuidId); + } + } - if (dbGeneratedAttr == null || dbGeneratedAttr.DatabaseGeneratedOption == DatabaseGeneratedOption.None) - { - entity.Id = GuidGenerator.Create(); - } + protected virtual void TrySetGuidId(EntityEntry entry, IEntity entity) + { + if (entity.Id != default) + { + return; } + + var idProperty = entry.Property("Id").Metadata.PropertyInfo; + + //Check for DatabaseGeneratedAttribute + var dbGeneratedAttr = ReflectionHelper + .GetSingleAttributeOrDefault( + idProperty + ); + + if (dbGeneratedAttr != null && dbGeneratedAttr.DatabaseGeneratedOption != DatabaseGeneratedOption.None) + { + return; + } + + EntityHelper.TrySetId( + entity, + () => GuidGenerator.Create(), + true + ); } protected virtual void SetCreationAuditProperties(EntityEntry entry) @@ -494,12 +510,12 @@ namespace Volo.Abp.EntityFrameworkCore if (typeof(ISoftDelete).IsAssignableFrom(typeof(TEntity))) { - expression = e => !IsSoftDeleteFilterEnabled || !((ISoftDelete) e).IsDeleted; + expression = e => !IsSoftDeleteFilterEnabled || !EF.Property(e, "IsDeleted"); } if (typeof(IMultiTenant).IsAssignableFrom(typeof(TEntity))) { - Expression> multiTenantFilter = e => !IsMultiTenantFilterEnabled || ((IMultiTenant) e).TenantId == CurrentTenantId; + Expression> multiTenantFilter = e => !IsMultiTenantFilterEnabled || EF.Property(e, "TenantId") == CurrentTenantId; expression = expression == null ? multiTenantFilter : CombineExpressions(expression, multiTenantFilter); } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/IEfCoreDbContext.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/IEfCoreDbContext.cs index 7cba957724..761e15b6f2 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/IEfCoreDbContext.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/IEfCoreDbContext.cs @@ -35,9 +35,9 @@ namespace Volo.Abp.EntityFrameworkCore EntityEntry Add([NotNull] TEntity entity) where TEntity : class; - Task AddAsync([NotNull] object entity, CancellationToken cancellationToken = default); + ValueTask AddAsync([NotNull] object entity, CancellationToken cancellationToken = default); - Task> AddAsync([NotNull] TEntity entity, CancellationToken cancellationToken = default) where TEntity : class; + ValueTask> AddAsync([NotNull] TEntity entity, CancellationToken cancellationToken = default) where TEntity : class; void AddRange([NotNull] IEnumerable entities); @@ -59,13 +59,13 @@ namespace Volo.Abp.EntityFrameworkCore TEntity Find([NotNull] params object[] keyValues) where TEntity : class; - Task FindAsync([NotNull] Type entityType, [NotNull] object[] keyValues, CancellationToken cancellationToken); + ValueTask FindAsync([NotNull] Type entityType, [NotNull] object[] keyValues, CancellationToken cancellationToken); - Task FindAsync([NotNull] object[] keyValues, CancellationToken cancellationToken) where TEntity : class; + ValueTask FindAsync([NotNull] object[] keyValues, CancellationToken cancellationToken) where TEntity : class; - Task FindAsync([NotNull] params object[] keyValues) where TEntity : class; + ValueTask FindAsync([NotNull] params object[] keyValues) where TEntity : class; - Task FindAsync([NotNull] Type entityType, [NotNull] params object[] keyValues); + ValueTask FindAsync([NotNull] Type entityType, [NotNull] params object[] keyValues); EntityEntry Remove([NotNull] TEntity entity) where TEntity : class; diff --git a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/Distributed/EtoMappingDictionary.cs b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/Distributed/EtoMappingDictionary.cs index b9bcd3ed8b..aae99d0cb7 100644 --- a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/Distributed/EtoMappingDictionary.cs +++ b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/Distributed/EtoMappingDictionary.cs @@ -3,11 +3,11 @@ using System.Collections.Generic; namespace Volo.Abp.EventBus.Distributed { - public class EtoMappingDictionary : Dictionary + public class EtoMappingDictionary : Dictionary { - public void Add() + public void Add(Type objectMappingContextType = null) { - this[typeof(TEntity)] = typeof(TEntityEto); + this[typeof(TEntity)] = new EtoMappingDictionaryItem(typeof(TEntityEto), objectMappingContextType); } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/Distributed/EtoMappingDictionaryItem.cs b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/Distributed/EtoMappingDictionaryItem.cs new file mode 100644 index 0000000000..d634c44b4d --- /dev/null +++ b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/Distributed/EtoMappingDictionaryItem.cs @@ -0,0 +1,17 @@ +using System; + +namespace Volo.Abp.EventBus.Distributed +{ + public class EtoMappingDictionaryItem + { + public Type EtoType { get; } + + public Type ObjectMappingContextType { get; } + + public EtoMappingDictionaryItem(Type etoType, Type objectMappingContextType = null) + { + EtoType = etoType; + ObjectMappingContextType = objectMappingContextType; + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.FluentValidation/Volo/Abp/FluentValidation/AbpFluentValidationConventionalRegistrar.cs b/framework/src/Volo.Abp.FluentValidation/Volo/Abp/FluentValidation/AbpFluentValidationConventionalRegistrar.cs index 9641b438b0..d51e4728ca 100644 --- a/framework/src/Volo.Abp.FluentValidation/Volo/Abp/FluentValidation/AbpFluentValidationConventionalRegistrar.cs +++ b/framework/src/Volo.Abp.FluentValidation/Volo/Abp/FluentValidation/AbpFluentValidationConventionalRegistrar.cs @@ -1,14 +1,20 @@ using System; +using System.Collections.Generic; using FluentValidation; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.DependencyInjection; namespace Volo.Abp.FluentValidation { - public class AbpFluentValidationConventionalRegistrar : DefaultConventionalRegistrar + public class AbpFluentValidationConventionalRegistrar : ConventionalRegistrarBase { public override void AddType(IServiceCollection services, Type type) { + if (IsConventionalRegistrationDisabled(type)) + { + return; + } + if (!typeof(IValidator).IsAssignableFrom(type)) { return; @@ -20,8 +26,12 @@ namespace Volo.Abp.FluentValidation return; } + var serviceType = typeof(IValidator<>).MakeGenericType(validatingType); + + TriggerServiceExposing(services, type, new List{ serviceType }); + services.AddTransient( - typeof(IValidator<>).MakeGenericType(validatingType), + serviceType, type ); } diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel/Properties/launchSettings.json b/framework/src/Volo.Abp.Http.Client.IdentityModel/Properties/launchSettings.json new file mode 100644 index 0000000000..d56e5c65b7 --- /dev/null +++ b/framework/src/Volo.Abp.Http.Client.IdentityModel/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:52306/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.Http.Client.IdentityModel": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:52307/" + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo.Abp.Http.Client.IdentityModel.csproj b/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo.Abp.Http.Client.IdentityModel.csproj index c515007b30..de2e24e072 100644 --- a/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo.Abp.Http.Client.IdentityModel.csproj +++ b/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo.Abp.Http.Client.IdentityModel.csproj @@ -1,15 +1,17 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.Http.Client.IdentityModel Volo.Abp.Http.Client.IdentityModel $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false + true + Library diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo/Abp/Http/Client/IdentityModel/IdentityModelRemoteServiceHttpClientAuthenticator.cs b/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo/Abp/Http/Client/IdentityModel/IdentityModelRemoteServiceHttpClientAuthenticator.cs index eab45ca96b..25763efbd5 100644 --- a/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo/Abp/Http/Client/IdentityModel/IdentityModelRemoteServiceHttpClientAuthenticator.cs +++ b/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo/Abp/Http/Client/IdentityModel/IdentityModelRemoteServiceHttpClientAuthenticator.cs @@ -1,5 +1,5 @@ -using System.Net.Http; -using System.Threading.Tasks; +using System.Threading.Tasks; +using IdentityModel.Client; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Http; using Volo.Abp.DependencyInjection; diff --git a/framework/src/Volo.Abp.Http.Client/Properties/launchSettings.json b/framework/src/Volo.Abp.Http.Client/Properties/launchSettings.json new file mode 100644 index 0000000000..3cef3cf668 --- /dev/null +++ b/framework/src/Volo.Abp.Http.Client/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:52208/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.Http.Client": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:52209/" + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj index 1c7f727e18..3555a61a8a 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj +++ b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj @@ -1,21 +1,22 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.Http.Client Volo.Abp.Http.Client $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false + true + Library - - + diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs index 882bf94cb0..9b9c8e804c 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs @@ -92,7 +92,7 @@ namespace Volo.Abp.Http.Client.DynamicProxying if (!response.IsSuccessStatusCode) { - throw new AbpException("Remote service returns error!"); + throw new AbpException("Remote service returns error! StatusCode = " + response.StatusCode); } var content = await response.Content.ReadAsStringAsync(); diff --git a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj index fa2bddfcc6..0d8ef11967 100644 --- a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj +++ b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj @@ -14,7 +14,7 @@ - + diff --git a/framework/src/Volo.Abp.IdentityModel/Volo/Abp/IdentityModel/IdentityModelAuthenticationService.cs b/framework/src/Volo.Abp.IdentityModel/Volo/Abp/IdentityModel/IdentityModelAuthenticationService.cs index c5ce0b854d..681b65bcd9 100644 --- a/framework/src/Volo.Abp.IdentityModel/Volo/Abp/IdentityModel/IdentityModelAuthenticationService.cs +++ b/framework/src/Volo.Abp.IdentityModel/Volo/Abp/IdentityModel/IdentityModelAuthenticationService.cs @@ -92,7 +92,7 @@ namespace Volo.Abp.IdentityModel ClientOptions.IdentityClients.Default; } - protected virtual async Task GetDiscoveryResponse( + protected virtual async Task GetDiscoveryResponse( IdentityClientConfiguration configuration) { using (var httpClient = new HttpClient()) @@ -109,7 +109,7 @@ namespace Volo.Abp.IdentityModel } protected virtual async Task GetTokenResponse( - DiscoveryResponse discoveryResponse, + DiscoveryDocumentResponse discoveryResponse, IdentityClientConfiguration configuration) { using (var httpClient = new HttpClient()) @@ -132,7 +132,7 @@ namespace Volo.Abp.IdentityModel } } - protected virtual Task CreatePasswordTokenRequestAsync(DiscoveryResponse discoveryResponse, IdentityClientConfiguration configuration) + protected virtual Task CreatePasswordTokenRequestAsync(DiscoveryDocumentResponse discoveryResponse, IdentityClientConfiguration configuration) { var request = new PasswordTokenRequest { @@ -150,7 +150,7 @@ namespace Volo.Abp.IdentityModel } protected virtual Task CreateClientCredentialsTokenRequestAsync( - DiscoveryResponse discoveryResponse, + DiscoveryDocumentResponse discoveryResponse, IdentityClientConfiguration configuration) { var request = new ClientCredentialsTokenRequest @@ -166,7 +166,7 @@ namespace Volo.Abp.IdentityModel return Task.FromResult(request); } - protected virtual Task AddParametersToRequestAsync(IdentityClientConfiguration configuration, Request request) + protected virtual Task AddParametersToRequestAsync(IdentityClientConfiguration configuration, ProtocolRequest request) { foreach (var pair in configuration.Where(p => p.Key.StartsWith("[o]", StringComparison.OrdinalIgnoreCase))) { diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/en.json b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/en.json index 9dfaedb32f..b6ff1bb26c 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/en.json +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/en.json @@ -16,7 +16,6 @@ "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.", "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "The {0} field is not a valid fully-qualified http, https, or ftp URL.", "The field {0} is invalid.": "The field {0} is invalid.", - "'{0}' and '{1}' do not match.": "'{0}' and '{1}' do not match.", "ThisFieldIsNotAValidCreditCardNumber.": "This field is not a valid credit card number.", "ThisFieldIsNotValid.": "This field is not valid.", "ThisFieldIsNotAValidEmailAddress.": "This field is not a valid e-mail address.", diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/pt-BR.json b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/pt-BR.json index 0cf611f1ea..b0852a3f5f 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/pt-BR.json +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpValidation/pt-BR.json @@ -15,6 +15,20 @@ "The field {0} must be a string with a maximum length of {1}.": "O campo {0} deve ser uma palavra com o tamanho máximo de {1}.", "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "O campo {0} deve ser uma palavra com o tamanho mínimo de {2} e tamanho máximo de {1}.", "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "O campo {0} não é um http, https, ou FTP válido.", - "The field {0} is invalid.": "O campo {0} é inválido." + "The field {0} is invalid.": "O campo {0} é inválido.", + "ThisFieldIsNotAValidCreditCardNumber.": "Não é um cartão de crédito válido.", + "ThisFieldIsNotValid.": "Campo inválido.", + "ThisFieldIsNotAValidEmailAddress.": "E-mail inválido.", + "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Este campo só aceita arquivos com asseguintes extensões: {0}", + "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthoOf{0}": "This field must be a string or array type with a maximum length of '{0}'.", + "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "This field must be a string or array type with a minimum length of '{0}'.", + "ThisFieldIsNotAValidPhoneNumber.": "Número de telefone inválido.", + "ThisFieldMustBeBetween{0}And{1}": "Este campo deve estar entre {0} e {1}.", + "ThisFieldMustMatchTheRegularExpression{0}": "Este campo deve ser compatível com a expressao regular: '{0}'.", + "ThisFieldIsRequired.": "Campo Obrigatório.", + "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Campo com no máximo {0} caracteres.", + "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Este campo deve possuir entre {1} e {0} caracteres.", + "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Este campo não é um http, https, ou ftp complatamente qualificado.", + "ThisFieldIsInvalid.": "Campo inválido." } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/VirtualFiles/VirtualFileLocalizationResourceContributorBase.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/VirtualFiles/VirtualFileLocalizationResourceContributorBase.cs index aa66507cdd..c42036d1cd 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/VirtualFiles/VirtualFileLocalizationResourceContributorBase.cs +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/VirtualFiles/VirtualFileLocalizationResourceContributorBase.cs @@ -84,7 +84,7 @@ namespace Volo.Abp.Localization.VirtualFiles var dictionary = CreateDictionaryFromFile(file); if (dictionaries.ContainsKey(dictionary.CultureName)) { - throw new AbpException($"{file.PhysicalPath} dictionary has a culture name '{dictionary.CultureName}' which is already defined!"); + throw new AbpException($"{file.GetVirtualOrPhysicalPathOrNull()} dictionary has a culture name '{dictionary.CultureName}' which is already defined!"); } dictionaries[dictionary.CultureName] = dictionary; diff --git a/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj b/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj index 8af1220e76..90a5fdafcc 100644 --- a/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj +++ b/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj @@ -14,7 +14,7 @@ - + diff --git a/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs b/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs index 0f82aa798b..68b9beeb6e 100644 --- a/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs +++ b/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs @@ -75,18 +75,20 @@ namespace Volo.Abp.Domain.Repositories.MemoryDb protected virtual void SetIdIfNeeded(TEntity entity) { - if (typeof(TKey) == typeof(int) || typeof(TKey) == typeof(long) || typeof(TKey) == typeof(Guid)) + if (typeof(TKey) == typeof(int) || + typeof(TKey) == typeof(long) || + typeof(TKey) == typeof(Guid)) { if (EntityHelper.HasDefaultId(entity)) { - entity.Id = Database.GenerateNextId(); + EntityHelper.TrySetId(entity, () => Database.GenerateNextId()); } } } public virtual TEntity Find(TKey id, bool includeDetails = true) { - return GetQueryable().FirstOrDefault(EntityHelper.CreateEqualityExpressionForId(id)); + return GetQueryable().FirstOrDefault(e => e.Id.Equals(id)); } public virtual TEntity Get(TKey id, bool includeDetails = true) diff --git a/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/Utf8JsonMemoryDbSerializer.cs b/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/Utf8JsonMemoryDbSerializer.cs index 9964e6219b..e68b4b6f37 100644 --- a/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/Utf8JsonMemoryDbSerializer.cs +++ b/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/Utf8JsonMemoryDbSerializer.cs @@ -1,5 +1,8 @@ using System; +using System.Reflection; using System.Text; +using Newtonsoft.Json; +using Newtonsoft.Json.Serialization; using Volo.Abp.DependencyInjection; using Volo.Abp.Json; @@ -7,21 +10,43 @@ namespace Volo.Abp.Domain.Repositories.MemoryDb { public class Utf8JsonMemoryDbSerializer : IMemoryDbSerializer, ITransientDependency { - private readonly IJsonSerializer _jsonSerializer; + private static readonly JsonSerializerSettings MemoryDbSerializerSettings; - public Utf8JsonMemoryDbSerializer(IJsonSerializer jsonSerializer) + static Utf8JsonMemoryDbSerializer() { - _jsonSerializer = jsonSerializer; + MemoryDbSerializerSettings = new JsonSerializerSettings + { + ContractResolver = new ResolverWithPrivateSetters(), + ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor + }; } byte[] IMemoryDbSerializer.Serialize(object obj) { - return Encoding.UTF8.GetBytes(_jsonSerializer.Serialize(obj)); + var jsonString = JsonConvert.SerializeObject(obj, MemoryDbSerializerSettings); + return Encoding.UTF8.GetBytes(jsonString); } public object Deserialize(byte[] value, Type type) { - return _jsonSerializer.Deserialize(type, Encoding.UTF8.GetString(value)); + var jsonString = Encoding.UTF8.GetString(value); + return JsonConvert.DeserializeObject(jsonString, type, MemoryDbSerializerSettings); + } + + public class ResolverWithPrivateSetters : DefaultContractResolver + { + protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) + { + var prop = base.CreateProperty(member, memberSerialization); + if (prop.Writable) + { + return prop; + } + + prop.Writable = member.As()?.GetSetMethod(true) != null; + + return prop; + } } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj b/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj index 0610e45bfd..b15ea6378c 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj +++ b/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj @@ -14,7 +14,7 @@ - + diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index cddebd253d..deca912bec 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -15,6 +15,7 @@ using Volo.Abp.EventBus.Local; using Volo.Abp.Guids; using Volo.Abp.MongoDB; using Volo.Abp.MultiTenancy; +using Volo.Abp.Reflection; using Volo.Abp.Threading; namespace Volo.Abp.Domain.Repositories.MongoDB @@ -315,12 +316,26 @@ namespace Volo.Abp.Domain.Repositories.MongoDB protected virtual void CheckAndSetId(TEntity entity) { - if (entity is IEntity entityWithGuidId && entityWithGuidId.Id == default) + if (entity is IEntity entityWithGuidId) { - entityWithGuidId.Id = GuidGenerator.Create(); + TrySetGuidId(entityWithGuidId); } } + protected virtual void TrySetGuidId(IEntity entity) + { + if (entity.Id != default) + { + return; + } + + EntityHelper.TrySetId( + entity, + () => GuidGenerator.Create(), + true + ); + } + protected virtual void SetCreationAuditProperties(TEntity entity) { AuditPropertySetter.SetCreationProperties(entity); diff --git a/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/AbpObjectMappingModule.cs b/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/AbpObjectMappingModule.cs index 7fb7b039a7..1d7e026589 100644 --- a/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/AbpObjectMappingModule.cs +++ b/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/AbpObjectMappingModule.cs @@ -19,5 +19,13 @@ namespace Volo.Abp.ObjectMapping ); }); } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddTransient( + typeof(IObjectMapper<>), + typeof(DefaultObjectMapper<>) + ); + } } } diff --git a/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/DefaultObjectMapper.cs b/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/DefaultObjectMapper.cs index b746ab3973..dbc0dc6f3a 100644 --- a/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/DefaultObjectMapper.cs +++ b/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/DefaultObjectMapper.cs @@ -4,16 +4,33 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.ObjectMapping { - //TODO: It can be slow to always check if service is available. Test it and optimize if necessary. + public class DefaultObjectMapper : DefaultObjectMapper, IObjectMapper + { + public DefaultObjectMapper( + IServiceProvider serviceProvider, + IAutoObjectMappingProvider autoObjectMappingProvider + ) : base( + serviceProvider, + autoObjectMappingProvider) + { + + } + } public class DefaultObjectMapper : IObjectMapper, ITransientDependency { - private readonly IServiceProvider _serviceProvider; + public IAutoObjectMappingProvider AutoObjectMappingProvider { get; } + protected IServiceProvider ServiceProvider { get; } - public DefaultObjectMapper(IServiceProvider serviceProvider) + public DefaultObjectMapper( + IServiceProvider serviceProvider, + IAutoObjectMappingProvider autoObjectMappingProvider) { - _serviceProvider = serviceProvider; + AutoObjectMappingProvider = autoObjectMappingProvider; + ServiceProvider = serviceProvider; } + + //TODO: It can be slow to always check if service is available. Test it and optimize if necessary. public virtual TDestination Map(TSource source) { @@ -22,7 +39,7 @@ namespace Volo.Abp.ObjectMapping return default; } - using (var scope = _serviceProvider.CreateScope()) + using (var scope = ServiceProvider.CreateScope()) { var specificMapper = scope.ServiceProvider.GetService>(); if (specificMapper != null) @@ -61,7 +78,7 @@ namespace Volo.Abp.ObjectMapping return default; } - using (var scope = _serviceProvider.CreateScope()) + using (var scope = ServiceProvider.CreateScope()) { var specificMapper = scope.ServiceProvider.GetService>(); if (specificMapper != null) @@ -87,12 +104,12 @@ namespace Volo.Abp.ObjectMapping protected virtual TDestination AutoMap(object source) { - throw new NotImplementedException($"Can not map from given object ({source}) to {typeof(TDestination).AssemblyQualifiedName}."); + return AutoObjectMappingProvider.Map(source); } protected virtual TDestination AutoMap(TSource source, TDestination destination) { - throw new NotImplementedException($"Can no map from {typeof(TSource).AssemblyQualifiedName} to {typeof(TDestination).AssemblyQualifiedName}."); + return AutoObjectMappingProvider.Map(source, destination); } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/IAutoObjectMappingProvider.cs b/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/IAutoObjectMappingProvider.cs new file mode 100644 index 0000000000..b402d223f0 --- /dev/null +++ b/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/IAutoObjectMappingProvider.cs @@ -0,0 +1,14 @@ +namespace Volo.Abp.ObjectMapping +{ + public interface IAutoObjectMappingProvider + { + TDestination Map(object source); + + TDestination Map(TSource source, TDestination destination); + } + + public interface IAutoObjectMappingProvider : IAutoObjectMappingProvider + { + + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/IObjectMapper.cs b/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/IObjectMapper.cs index 88ee14d707..522ba44e34 100644 --- a/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/IObjectMapper.cs +++ b/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/IObjectMapper.cs @@ -5,6 +5,11 @@ /// public interface IObjectMapper { + /// + /// Gets the underlying object that is used for auto object mapping. + /// + IAutoObjectMappingProvider AutoObjectMappingProvider { get; } + /// /// Converts an object to another. Creates a new object of . /// @@ -24,6 +29,14 @@ TDestination Map(TSource source, TDestination destination); } + /// + /// Defines a simple interface to automatically map objects for a specific context. + /// + public interface IObjectMapper : IObjectMapper + { + + } + /// /// Maps an object to another. /// Implement this interface to override object to object mapping for specific types. diff --git a/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/NotImplementedAutoObjectMappingProvider.cs b/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/NotImplementedAutoObjectMappingProvider.cs new file mode 100644 index 0000000000..56592f77f3 --- /dev/null +++ b/framework/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/NotImplementedAutoObjectMappingProvider.cs @@ -0,0 +1,18 @@ +using System; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.ObjectMapping +{ + public sealed class NotImplementedAutoObjectMappingProvider : IAutoObjectMappingProvider, ISingletonDependency + { + public TDestination Map(object source) + { + throw new NotImplementedException($"Can not map from given object ({source}) to {typeof(TDestination).AssemblyQualifiedName}."); + } + + public TDestination Map(TSource source, TDestination destination) + { + throw new NotImplementedException($"Can no map from {typeof(TSource).AssemblyQualifiedName} to {typeof(TDestination).AssemblyQualifiedName}."); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json index 67d6fa7d3c..c589a46e38 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json @@ -46,6 +46,6 @@ "DatatableActionDropdownDefaultText": "Ações", "ChangePassword": "Alterar Senha", "PersonalInfo": "Perfil", - "AreYouSureYouWantToCancelEditingWarningMessage": "Você tem alterações não salvas." + "AreYouSureYouWantToCancelEditingWarningMessage": "Há alterações não salvas." } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Microsoft/Extensions/FileProviders/AbpFileInfoExtensions.cs b/framework/src/Volo.Abp.VirtualFileSystem/Microsoft/Extensions/FileProviders/AbpFileInfoExtensions.cs index 6217e82805..7d3505d616 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Microsoft/Extensions/FileProviders/AbpFileInfoExtensions.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Microsoft/Extensions/FileProviders/AbpFileInfoExtensions.cs @@ -3,6 +3,8 @@ using System.IO; using System.Text; using System.Threading.Tasks; using Volo.Abp; +using Volo.Abp.VirtualFileSystem; +using Volo.Abp.VirtualFileSystem.Embedded; namespace Microsoft.Extensions.FileProviders { @@ -57,5 +59,22 @@ namespace Microsoft.Extensions.FileProviders return await stream.GetAllBytesAsync(); } } + + public static string GetVirtualOrPhysicalPathOrNull([NotNull] this IFileInfo fileInfo) + { + Check.NotNull(fileInfo, nameof(fileInfo)); + + if (fileInfo is EmbeddedResourceFileInfo embeddedFileInfo) + { + return embeddedFileInfo.VirtualPath; + } + + if (fileInfo is InMemoryFileInfo inMemoryFileInfo) + { + return inMemoryFileInfo.DynamicPath; + } + + return fileInfo.PhysicalPath; + } } } diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj index 626f1eebc8..7d8ae348b7 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj @@ -14,8 +14,8 @@ - - + + diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DictionaryBasedFileProvider.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DictionaryBasedFileProvider.cs index 4fc72c07ec..a8ea963f0e 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DictionaryBasedFileProvider.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DictionaryBasedFileProvider.cs @@ -39,12 +39,13 @@ namespace Volo.Abp.VirtualFileSystem var directoryPath = subpath.EnsureEndsWith('/'); foreach (var fileInfo in Files.Values) { - if (!fileInfo.PhysicalPath.StartsWith(directoryPath)) + var fullPath = fileInfo.GetVirtualOrPhysicalPathOrNull(); + if (!fullPath.StartsWith(directoryPath)) { continue; } - var relativePath = fileInfo.PhysicalPath.Substring(directoryPath.Length); + var relativePath = fullPath.Substring(directoryPath.Length); if (relativePath.Contains("/")) { continue; diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DynamicFileProvider.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DynamicFileProvider.cs index a270616e3a..0a92f62f0a 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DynamicFileProvider.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DynamicFileProvider.cs @@ -31,8 +31,9 @@ namespace Volo.Abp.VirtualFileSystem public void AddOrUpdate(IFileInfo fileInfo) { - DynamicFiles.AddOrUpdate(fileInfo.PhysicalPath, fileInfo, (key, value) => fileInfo); - ReportChange(fileInfo.PhysicalPath); + var filePath = fileInfo.GetVirtualOrPhysicalPathOrNull(); + DynamicFiles.AddOrUpdate(filePath, fileInfo, (key, value) => fileInfo); + ReportChange(filePath); } public bool Delete(string filePath) diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs index 22df03f2ab..7291f93cf8 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs @@ -29,7 +29,9 @@ namespace Volo.Abp.VirtualFileSystem.Embedded } private long? _length; - public string PhysicalPath { get; } + public string PhysicalPath => null; + + public string VirtualPath { get; } public string Name { get; } @@ -46,14 +48,14 @@ namespace Volo.Abp.VirtualFileSystem.Embedded public EmbeddedResourceFileInfo( Assembly assembly, string resourcePath, - string physicalPath, + string virtualPath, string name, DateTimeOffset lastModified) { _assembly = assembly; _resourcePath = resourcePath; - PhysicalPath = physicalPath; + VirtualPath = virtualPath; Name = name; LastModified = lastModified; } @@ -63,7 +65,7 @@ namespace Volo.Abp.VirtualFileSystem.Embedded { var stream = _assembly.GetManifestResourceStream(_resourcePath); - if (!_length.HasValue) + if (!_length.HasValue && stream != null) { _length = stream.Length; } @@ -73,7 +75,7 @@ namespace Volo.Abp.VirtualFileSystem.Embedded public override string ToString() { - return $"[EmbeddedResourceFileInfo] {Name} ({PhysicalPath})"; + return $"[EmbeddedResourceFileInfo] {Name} ({this.VirtualPath})"; } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IDynamicFileManager.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IDynamicFileManager.cs index f7dc42704a..8d9bae8540 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IDynamicFileManager.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IDynamicFileManager.cs @@ -5,6 +5,7 @@ namespace Volo.Abp.VirtualFileSystem public interface IDynamicFileProvider : IFileProvider { void AddOrUpdate(IFileInfo fileInfo); + bool Delete(string filePath); } } diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/InMemoryFileInfo.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/InMemoryFileInfo.cs index d9ab30763a..0f529832a0 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/InMemoryFileInfo.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/InMemoryFileInfo.cs @@ -10,7 +10,7 @@ namespace Volo.Abp.VirtualFileSystem public long Length => _fileContent.Length; - public string PhysicalPath { get; } + public string PhysicalPath => null; public string Name { get; } @@ -20,9 +20,11 @@ namespace Volo.Abp.VirtualFileSystem private readonly byte[] _fileContent; - public InMemoryFileInfo(byte[] fileContent, string physicalPath, string name) + public string DynamicPath { get; } + + public InMemoryFileInfo(string dynamicPath, byte[] fileContent, string name) { - PhysicalPath = physicalPath; + DynamicPath = dynamicPath; Name = name; _fileContent = fileContent; LastModified = DateTimeOffset.Now; diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileProvider.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileProvider.cs index 9bcf76e4be..be08fc2024 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileProvider.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileProvider.cs @@ -71,7 +71,7 @@ namespace Volo.Abp.VirtualFileSystem true ); } - + private Dictionary CreateFiles() { var files = new Dictionary(StringComparer.OrdinalIgnoreCase); diff --git a/framework/test/AbpTestBase/AbpTestBase.csproj b/framework/test/AbpTestBase/AbpTestBase.csproj index d794eaa279..c6d5b71672 100644 --- a/framework/test/AbpTestBase/AbpTestBase.csproj +++ b/framework/test/AbpTestBase/AbpTestBase.csproj @@ -1,12 +1,11 @@  + + - netcoreapp2.2 + netcoreapp3.0 AbpTestBase AbpTestBase - false - false - false diff --git a/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj b/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj index 0419ae171d..371e2374f9 100644 --- a/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj +++ b/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp2.2 + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj index c4933829eb..d1eadf276d 100644 --- a/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj @@ -1,7 +1,9 @@  + + - netcoreapp2.2 + netcoreapp3.0 latest Volo.Abp.AspNetCore.Authentication.OAuth.Tests Volo.Abp.AspNetCore.Authentication.OAuth.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo/Abp/AspNetCore/Authentication/OAuth/Claims/MultipleClaimAction_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo/Abp/AspNetCore/Authentication/OAuth/Claims/MultipleClaimAction_Tests.cs index fac9e33e29..bf869fc809 100644 --- a/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo/Abp/AspNetCore/Authentication/OAuth/Claims/MultipleClaimAction_Tests.cs +++ b/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo/Abp/AspNetCore/Authentication/OAuth/Claims/MultipleClaimAction_Tests.cs @@ -1,5 +1,6 @@ using System.Linq; using System.Security.Claims; +using System.Text.Json; using Newtonsoft.Json.Linq; using Shouldly; using Volo.Abp.Security.Claims; @@ -12,13 +13,12 @@ namespace Volo.Abp.AspNetCore.Authentication.OAuth.Claims [Fact] public void Should_Set_Single_Value() { - var jObject = JObject.Parse(@"{ + var jObject = JsonDocument.Parse(@"{ ""sub"": ""71054539-0e48-af28-5e7a-39e4e42d8ea5"", ""role"": ""admin"" }"); - var claimsIdentity = new ClaimsIdentity(); - new MultipleClaimAction(AbpClaimTypes.Role, "role").Run(jObject, claimsIdentity, null); + new MultipleClaimAction(AbpClaimTypes.Role, "role").Run(jObject.RootElement, claimsIdentity, null); var claims = claimsIdentity.FindAll(AbpClaimTypes.Role).ToList(); claims.Count.ShouldBe(1); claims[0].Value.ShouldBe("admin"); @@ -27,7 +27,7 @@ namespace Volo.Abp.AspNetCore.Authentication.OAuth.Claims [Fact] public void Should_Set_Multiple_Values() { - var jObject = JObject.Parse(@"{ + var jObject = JsonDocument.Parse(@"{ ""sub"": ""71054539-0e48-af28-5e7a-39e4e42d8ea5"", ""role"": [ ""admin"", @@ -36,7 +36,7 @@ namespace Volo.Abp.AspNetCore.Authentication.OAuth.Claims }"); var claimsIdentity = new ClaimsIdentity(); - new MultipleClaimAction(AbpClaimTypes.Role, "role").Run(jObject, claimsIdentity, null); + new MultipleClaimAction(AbpClaimTypes.Role, "role").Run(jObject.RootElement, claimsIdentity, null); var claims = claimsIdentity.FindAll(AbpClaimTypes.Role).ToList(); claims.Count.ShouldBe(2); claims[0].Value.ShouldBe("admin"); diff --git a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj index f08d5b1ac2..61d430d984 100644 --- a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj @@ -1,13 +1,11 @@  + + - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.AspNetCore.MultiTenancy.Tests Volo.Abp.AspNetCore.MultiTenancy.Tests - true - false - false - false diff --git a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/App/Startup.cs b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/App/Startup.cs index 1af71d75e8..05b724b9c3 100644 --- a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/App/Startup.cs +++ b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/App/Startup.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.App services.AddApplication(); } - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { app.InitializeApplication(); } diff --git a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancyTestBase.cs b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancyTestBase.cs index 9dc083b3f1..ecc9d055ca 100644 --- a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancyTestBase.cs +++ b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancyTestBase.cs @@ -1,8 +1,7 @@ -using Volo.Abp.AspNetCore.App; namespace Volo.Abp.AspNetCore.MultiTenancy { - public abstract class AspNetCoreMultiTenancyTestBase : AbpAspNetCoreTestBase + public abstract class AspNetCoreMultiTenancyTestBase : AbpAspNetCoreTestBase { } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Properties/launchSettings.json b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Properties/launchSettings.json new file mode 100644 index 0000000000..fcf34f54da --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:55482/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.AspNetCore.Mvc.Tests": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:55483/" + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj index 0f4fabd553..93143bfbe0 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj @@ -1,17 +1,17 @@ - + + + - netcoreapp2.2 + netcoreapp3.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Volo.Abp.AspNetCore.Mvc.Tests Volo.Abp.AspNetCore.Mvc.Tests true true - false - false - false true true + true @@ -20,7 +20,6 @@ - diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs index eb0fc1ef48..28b5ee8b1f 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs @@ -69,6 +69,9 @@ namespace Volo.Abp.AspNetCore.Mvc typeof(AbpUiResource), typeof(AbpValidationResource) ).AddVirtualJson("/Volo/Abp/AspNetCore/Mvc/Localization/Resource"); + + options.Languages.Add(new LanguageInfo("en", "en", "English")); + options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); }); } @@ -77,10 +80,14 @@ namespace Volo.Abp.AspNetCore.Mvc var app = context.GetApplicationBuilder(); app.UseCorrelationId(); + app.UseVirtualFiles(); + app.UseAbpRequestLocalization(); + app.UseRouting(); app.UseMiddleware(); + app.UseAuthorization(); app.UseAuditing(); app.UseUnitOfWork(); - app.UseMvcWithDefaultRoute(); + app.UseMvcWithDefaultRouteAndArea(); } } } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpApiDefinitionController_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpApiDefinitionController_Tests.cs new file mode 100644 index 0000000000..44b206e462 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ApiExploring/AbpApiDefinitionController_Tests.cs @@ -0,0 +1,17 @@ +using System.Threading.Tasks; +using Shouldly; +using Volo.Abp.Http.Modeling; +using Xunit; + +namespace Volo.Abp.AspNetCore.Mvc.ApiExploring +{ + public class AbpApiDefinitionController_Tests : AspNetCoreMvcTestBase + { + [Fact] + public async Task GetAsync() + { + var model = await GetResponseAsObjectAsync("/api/abp/api-definition"); + model.ShouldNotBeNull(); + } + } +} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar_Tests.cs new file mode 100644 index 0000000000..46f2823b70 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar_Tests.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.DependencyInjection; +using Shouldly; +using Volo.Abp.DependencyInjection; +using Xunit; + +namespace Volo.Abp.AspNetCore.Mvc.DependencyInjection +{ + public class AbpAspNetCoreMvcConventionalRegistrar_Tests + { + [Fact] + public void Should_Registered_Mvc_Service() + { + //Arrange + var services = new ServiceCollection(); + + //Act + services.AddConventionalRegistrar(new DefaultConventionalRegistrar()); + services.AddConventionalRegistrar(new AbpAspNetCoreMvcConventionalRegistrar()); + + services.AddTypes(typeof(My_Test_PageModel), typeof(My_Test_Controller), typeof(My_Test_ViewComponent)); + + //Assert + services.ShouldContainTransient(typeof(My_Test_PageModel)); + services.ShouldContainTransient(typeof(My_Test_Controller)); + services.ShouldContainTransient(typeof(My_Test_ViewComponent)); + + var serviceProvider = services.BuildServiceProvider(); + serviceProvider.GetServices().Count().ShouldBe(1); + serviceProvider.GetServices().Count().ShouldBe(1); + serviceProvider.GetServices().Count().ShouldBe(1); + } + } + + public class My_Test_PageModel : PageModel + { + + } + + public class My_Test_Controller : Controller + { + + } + + public class My_Test_ViewComponent : ViewComponent + { + + } +} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Startup.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Startup.cs index 458bbd8827..9ae46be82f 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Startup.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Startup.cs @@ -18,7 +18,7 @@ namespace Volo.Abp.AspNetCore.Mvc return services.BuildServiceProviderFromFactory(); } - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { app.InitializeApplication(); } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj index 3e92a569bc..7b58c9c738 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj @@ -1,15 +1,14 @@  + + - netcoreapp2.2 + netcoreapp3.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests true true - false - false - false true true diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo/Abp/AspNetCore/Mvc/UI/Bootstrap/Demo/TestStartup.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo/Abp/AspNetCore/Mvc/UI/Bootstrap/Demo/TestStartup.cs index da23c66e9f..3a140e35d4 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo/Abp/AspNetCore/Mvc/UI/Bootstrap/Demo/TestStartup.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo/Abp/AspNetCore/Mvc/UI/Bootstrap/Demo/TestStartup.cs @@ -18,7 +18,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo return services.BuildServiceProviderFromFactory(); } - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { app.InitializeApplication(); } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/AbpAspNetCoreMvcUiBootstrapDemoModule.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/AbpAspNetCoreMvcUiBootstrapDemoModule.cs index ce9734914d..e14e2336d9 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/AbpAspNetCoreMvcUiBootstrapDemoModule.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/AbpAspNetCoreMvcUiBootstrapDemoModule.cs @@ -1,5 +1,5 @@ using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; using Volo.Abp.Autofac; using Volo.Abp.Modularity; @@ -22,9 +22,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo app.UseDeveloperExceptionPage(); } + app.UseRouting(); app.UseVirtualFiles(); - - app.UseMvcWithDefaultRoute(); + app.UseMvcWithDefaultRouteAndArea(); } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Program.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Program.cs index 4ee4949d50..0941475418 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Program.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Program.cs @@ -1,6 +1,7 @@ using System; using System.IO; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; using Serilog; using Serilog.Events; @@ -20,7 +21,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo try { Log.Information("Starting web host."); - BuildWebHostInternal(args).Run(); + BuildWebHostInternal(args).Build().Run(); return 0; } catch (Exception ex) @@ -34,13 +35,20 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo } } - internal static IWebHost BuildWebHostInternal(string[] args) => - new WebHostBuilder() - .UseKestrel() - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIISIntegration() - .UseStartup() - .UseSerilog() - .Build(); + //internal static IWebHost BuildWebHostInternal(string[] args) => + // new WebHostBuilder() + // .UseKestrel() + // .UseContentRoot(Directory.GetCurrentDirectory()) + // .UseIISIntegration() + // .UseStartup() + // .UseSerilog() + // .Build(); + + internal static IHostBuilder BuildWebHostInternal(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); } } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs index ffd3ca47be..0497fe5216 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs @@ -7,14 +7,14 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo { public class Startup { - public IServiceProvider ConfigureServices(IServiceCollection services) + public void ConfigureServices(IServiceCollection services) { services.AddApplication(options => { options.UseAutofac(); }); - return services.BuildServiceProviderFromFactory(); + //return services.BuildServiceProviderFromFactory(); } public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj index c5a4731256..455708a1d2 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj @@ -1,12 +1,14 @@  + + - netcoreapp2.2 + netcoreapp3.0 + true - - + diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Properties/launchSettings.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Properties/launchSettings.json new file mode 100644 index 0000000000..9e97dc2b61 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:55480/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.AspNetCore.Mvc.UI.Tests": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:55481/" + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj index cfbe4ad40d..b63efadfda 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj @@ -1,22 +1,20 @@ - + + + - netcoreapp2.2 + netcoreapp3.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Volo.Abp.AspNetCore.Mvc.UI.Tests Volo.Abp.AspNetCore.Mvc.UI.Tests true true - false - false - false true true - diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Startup.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Startup.cs index 1f4182110a..124a103da2 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Startup.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Startup.cs @@ -19,7 +19,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI return services.BuildServiceProviderFromFactory(); } - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { app.InitializeApplication(); } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Properties/launchSettings.json b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Properties/launchSettings.json new file mode 100644 index 0000000000..836bd1af47 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:55487/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.AspNetCore.Mvc.Versioning.Tests": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:55488/" + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj index 3c9ce2301f..8d954b0b2a 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj @@ -1,22 +1,20 @@ - + + + - netcoreapp2.2 + netcoreapp3.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Volo.Abp.AspNetCore.Mvc.Versioning.Tests Volo.Abp.AspNetCore.Mvc.Versioning.Tests true true - false - false - false true true - diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo/Abp/AspNetCore/Mvc/Versioning/AbpAspNetCoreMvcVersioningTestModule.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo/Abp/AspNetCore/Mvc/Versioning/AbpAspNetCoreMvcVersioningTestModule.cs index 3ea9103e9e..99a155f3b7 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo/Abp/AspNetCore/Mvc/Versioning/AbpAspNetCoreMvcVersioningTestModule.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo/Abp/AspNetCore/Mvc/Versioning/AbpAspNetCoreMvcVersioningTestModule.cs @@ -66,7 +66,8 @@ namespace Volo.Abp.AspNetCore.Mvc.Versioning public override void OnApplicationInitialization(ApplicationInitializationContext context) { var app = context.GetApplicationBuilder(); - app.UseMvcWithDefaultRoute(); + app.UseRouting(); + app.UseMvcWithDefaultRouteAndArea(); } } } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo/Abp/AspNetCore/Mvc/Versioning/Startup.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo/Abp/AspNetCore/Mvc/Versioning/Startup.cs index 4d9f831670..79985de769 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo/Abp/AspNetCore/Mvc/Versioning/Startup.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo/Abp/AspNetCore/Mvc/Versioning/Startup.cs @@ -19,7 +19,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Versioning return services.BuildServiceProviderFromFactory(); } - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { app.InitializeApplication(); } diff --git a/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj index e52c426e43..061e1640ce 100644 --- a/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj @@ -1,18 +1,29 @@  + + - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.AspNetCore.Tests Volo.Abp.AspNetCore.Tests true false false false + true + false + true + + + + + + diff --git a/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/AbpAspNetCoreTestBase.cs b/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/AbpAspNetCoreTestBase.cs index 33beb9d62c..dd5edff807 100644 --- a/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/AbpAspNetCoreTestBase.cs +++ b/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/AbpAspNetCoreTestBase.cs @@ -1,5 +1,7 @@ +using System.Globalization; using System.Net; using System.Net.Http; +using System.Net.Http.Headers; using System.Threading.Tasks; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; @@ -8,6 +10,11 @@ using Volo.Abp.AspNetCore.TestBase; namespace Volo.Abp.AspNetCore { + public class AbpAspNetCoreTestBase : AbpAspNetCoreTestBase + { + + } + public abstract class AbpAspNetCoreTestBase : AbpAspNetCoreIntegratedTestBase where TStartup : class { @@ -25,15 +32,21 @@ namespace Volo.Abp.AspNetCore protected virtual async Task GetResponseAsStringAsync(string url, HttpStatusCode expectedStatusCode = HttpStatusCode.OK) { - var response = await GetResponseAsync(url, expectedStatusCode); - return await response.Content.ReadAsStringAsync(); + using (var response = await GetResponseAsync(url, expectedStatusCode)) + { + return await response.Content.ReadAsStringAsync(); + } } protected virtual async Task GetResponseAsync(string url, HttpStatusCode expectedStatusCode = HttpStatusCode.OK) { - var response = await Client.GetAsync(url); - response.StatusCode.ShouldBe(expectedStatusCode); - return response; + using (var requestMessage = new HttpRequestMessage(HttpMethod.Get, url)) + { + requestMessage.Headers.Add("Accept-Language", CultureInfo.CurrentUICulture.Name); + var response = await Client.SendAsync(requestMessage); + response.StatusCode.ShouldBe(expectedStatusCode); + return response; + } } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/AbpAspNetCoreTestModule.cs b/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/AbpAspNetCoreTestModule.cs new file mode 100644 index 0000000000..fafd5794a6 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/AbpAspNetCoreTestModule.cs @@ -0,0 +1,53 @@ +using System; +using System.IO; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AspNetCore.TestBase; +using Volo.Abp.Autofac; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.AspNetCore +{ + [DependsOn( + typeof(AbpAspNetCoreTestBaseModule), + typeof(AbpAspNetCoreModule), + typeof(AbpAutofacModule) + )] + public class AbpAspNetCoreTestModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + + Configure(options => + { + options.FileSets.AddEmbedded(); + //options.FileSets.ReplaceEmbeddedByPhysical(FindProjectPath(hostingEnvironment)); + }); + } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + var app = context.GetApplicationBuilder(); + + app.UseCorrelationId(); + app.UseVirtualFiles(); + } + + private string FindProjectPath(IWebHostEnvironment hostEnvironment) + { + var directory = new DirectoryInfo(hostEnvironment.ContentRootPath); + + while (directory != null && directory.Name != "Volo.Abp.AspNetCore.Tests") + { + directory = directory.Parent; + } + + return directory?.FullName + ?? throw new Exception("Could not find the project path by beginning from " + hostEnvironment.ContentRootPath + ", going through to parents and looking for Volo.Abp.AspNetCore.Tests"); + } + } +} diff --git a/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/Startup.cs b/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/Startup.cs new file mode 100644 index 0000000000..7f95713274 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/Startup.cs @@ -0,0 +1,26 @@ +using System; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; + +namespace Volo.Abp.AspNetCore +{ + public class Startup + { + public IServiceProvider ConfigureServices(IServiceCollection services) + { + services.AddApplication(options => + { + options.UseAutofac(); + }); + + return services.BuildServiceProviderFromFactory(); + } + + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) + { + app.InitializeApplication(); + } + } +} diff --git a/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/VirtualFileSystem/VirtualFileSystem_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/VirtualFileSystem/VirtualFileSystem_Tests.cs new file mode 100644 index 0000000000..142d44baec --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/VirtualFileSystem/VirtualFileSystem_Tests.cs @@ -0,0 +1,19 @@ +using System.Threading.Tasks; +using Shouldly; +using Xunit; + +namespace Volo.Abp.AspNetCore.VirtualFileSystem +{ + public class VirtualFileSystem_Tests : AbpAspNetCoreTestBase + { + [Fact] + public async Task Get_Virtual_File() + { + var result = await GetResponseAsStringAsync( + "/SampleFiles/test1.js" + ); + + result.ShouldBe("test1.js-content"); + } + } +} diff --git a/framework/test/Volo.Abp.AspNetCore.Tests/wwwroot/SampleFiles/test1.js b/framework/test/Volo.Abp.AspNetCore.Tests/wwwroot/SampleFiles/test1.js new file mode 100644 index 0000000000..20a6856cb7 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Tests/wwwroot/SampleFiles/test1.js @@ -0,0 +1 @@ +test1.js-content \ No newline at end of file diff --git a/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj b/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj index aa26dffb44..ee1e2441a6 100644 --- a/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj +++ b/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj @@ -1,14 +1,12 @@  + + - netcoreapp2.2 - latest + netcoreapp3.0 Volo.Abp.Auditing.Tests Volo.Abp.Auditing.Tests true - false - false - false diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj b/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj index a76bcabb37..817533079b 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj @@ -1,14 +1,12 @@  + + - netcoreapp2.2 - latest + netcoreapp3.0 Volo.Abp.Authorization.Tests Volo.Abp.Authorization.Tests true - false - false - false diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj b/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj index 234c405eda..d8e2e5ec2b 100644 --- a/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj +++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj @@ -1,13 +1,11 @@  + + - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.AutoMapper.Tests Volo.Abp.AutoMapper.Tests - true - false - false - false diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AbpAutoMapperModule_Basic_Tests.cs b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AbpAutoMapperModule_Basic_Tests.cs index a75db5189b..436c0402d8 100644 --- a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AbpAutoMapperModule_Basic_Tests.cs +++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AbpAutoMapperModule_Basic_Tests.cs @@ -17,9 +17,16 @@ namespace Volo.Abp.AutoMapper } [Fact] - public void Should_Replace_ObjectMapper() + public void Should_Replace_IAutoObjectMappingProvider() { - Assert.True(_objectMapper is AutoMapperObjectMapper); + Assert.True(ServiceProvider.GetRequiredService() is AutoMapperAutoObjectMappingProvider); + } + + [Fact] + public void Should_Get_Internal_Mapper() + { + _objectMapper.GetMapper().ShouldNotBeNull(); + _objectMapper.AutoObjectMappingProvider.GetMapper().ShouldNotBeNull(); } [Fact] diff --git a/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj b/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj index 1a9016ee3a..96088ec3e4 100644 --- a/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj +++ b/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj @@ -1,13 +1,12 @@  + + - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.Autofac.Tests Volo.Abp.Autofac.Tests true - false - false - false diff --git a/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj b/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj index 31e9c91779..f8a27d020b 100644 --- a/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj +++ b/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj @@ -1,14 +1,11 @@  + + - netcoreapp2.2 - latest + netcoreapp3.0 Volo.Abp.BackgroundJobs.Tests Volo.Abp.BackgroundJobs.Tests - true - false - false - false diff --git a/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj b/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj index 8efd87f2b6..1c4818159b 100644 --- a/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj +++ b/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj @@ -1,14 +1,11 @@  + + - netcoreapp2.2 - latest + netcoreapp3.0 Volo.Abp.Caching.Tests Volo.Abp.Caching.Tests - true - false - false - false diff --git a/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj b/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj index 34c30b1600..97988f8b3f 100644 --- a/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj +++ b/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.Castle.Core.Tests - Volo.Abp.Castle.Core.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj b/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj index d2535076b1..ba75eb73ca 100644 --- a/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj +++ b/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj @@ -1,8 +1,9 @@  + + - netcoreapp2.2 - latest + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj b/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj index 957c255d2b..0812895ae0 100644 --- a/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj +++ b/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.Core.Tests - Volo.Abp.Core.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj b/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj index 8e9ff07634..31f56a6144 100644 --- a/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj +++ b/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.Dapper.Tests - Volo.Abp.Dapper.Tests - true - false - false - false + netcoreapp3.0 @@ -18,7 +14,7 @@ - + \ No newline at end of file diff --git a/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj b/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj index b7895d25a0..65b50126bd 100644 --- a/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj +++ b/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.Data.Tests - Volo.Abp.Data.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj b/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj index 42de4f22f2..1ed24ead80 100644 --- a/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj +++ b/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj @@ -1,14 +1,9 @@  + + - netcoreapp2.2 - latest - Volo.Abp.Ddd.Tests - Volo.Abp.Ddd.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Entities/EntityHelper_Tests.cs b/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Entities/EntityHelper_Tests.cs new file mode 100644 index 0000000000..2ad6a45b05 --- /dev/null +++ b/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Entities/EntityHelper_Tests.cs @@ -0,0 +1,57 @@ +using System; +using Shouldly; +using Xunit; + +namespace Volo.Abp.Domain.Entities +{ + public class EntityHelper_Tests + { + [Fact] + public static void SetId_DerivedFromAggregateRoot() + { + var idValue = Guid.NewGuid(); + var myEntityDerivedFromAggregateRoot = new MyEntityDerivedFromAggregateRoot(); + EntityHelper.TrySetId(myEntityDerivedFromAggregateRoot, () => idValue, true); + myEntityDerivedFromAggregateRoot.Id.ShouldBe(idValue); + } + + [Fact] + public static void SetId_ImplementsIEntity() + { + var idValue = Guid.NewGuid(); + var myEntityImplementsIEntity = new MyEntityImplementsIEntity(); + EntityHelper.TrySetId(myEntityImplementsIEntity, () => idValue, true); + myEntityImplementsIEntity.Id.ShouldBe(idValue); + } + + [Fact] + public static void SetId_DisablesIdGeneration() + { + var idValue = Guid.NewGuid(); + var myEntityDisablesIdGeneration = new MyEntityDisablesIdGeneration(); + EntityHelper.TrySetId(myEntityDisablesIdGeneration, () => idValue, true); + myEntityDisablesIdGeneration.Id.ShouldBe(default); + } + + private class MyEntityDerivedFromAggregateRoot : AggregateRoot + { + + } + + private class MyEntityImplementsIEntity : IEntity + { + public Guid Id { get; protected set; } + + public object[] GetKeys() + { + return new object[] { Id }; + } + } + + private class MyEntityDisablesIdGeneration : Entity + { + [DisableIdGeneration] + public override Guid Id { get; protected set; } + } + } +} diff --git a/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj b/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj index ec4d2f8bda..bc1296cbc8 100644 --- a/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj +++ b/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj @@ -1,12 +1,9 @@  + + - netcoreapp2.2 - latest - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj b/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj index 14453442c6..bace3a67e5 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj @@ -1,15 +1,12 @@ - + + + - netcoreapp2.2 + netcoreapp3.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; - Volo.Abp.EntityFrameworkCore.Tests.SecondContext - Volo.Abp.EntityFrameworkCore.Tests.SecondContext true true - false - false - false true true diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo/Abp/EntityFrameworkCore/TestApp/SecondContext/BookInSecondDbContext.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo/Abp/EntityFrameworkCore/TestApp/SecondContext/BookInSecondDbContext.cs index 0e22533c11..59c568ed9d 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo/Abp/EntityFrameworkCore/TestApp/SecondContext/BookInSecondDbContext.cs +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo/Abp/EntityFrameworkCore/TestApp/SecondContext/BookInSecondDbContext.cs @@ -6,5 +6,16 @@ namespace Volo.Abp.EntityFrameworkCore.TestApp.SecondContext public class BookInSecondDbContext : AggregateRoot { public string Name { get; set; } + + public BookInSecondDbContext() + { + + } + + public BookInSecondDbContext(Guid id, string name) + : base(id) + { + Name = name; + } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo/Abp/EntityFrameworkCore/TestApp/SecondContext/SecondContextTestDataBuilder.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo/Abp/EntityFrameworkCore/TestApp/SecondContext/SecondContextTestDataBuilder.cs index 59ddc2acdf..0b89576f34 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo/Abp/EntityFrameworkCore/TestApp/SecondContext/SecondContextTestDataBuilder.cs +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo/Abp/EntityFrameworkCore/TestApp/SecondContext/SecondContextTestDataBuilder.cs @@ -18,11 +18,12 @@ namespace Volo.Abp.EntityFrameworkCore.TestApp.SecondContext public void Build() { - _bookRepository.Insert(new BookInSecondDbContext - { - Id = _guidGenerator.Create(), - Name = "TestBook1" - }); + _bookRepository.Insert( + new BookInSecondDbContext( + _guidGenerator.Create(), + "TestBook1" + ) + ); } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj index e70921b325..b79bfa3b4e 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.EntityFrameworkCore.Tests - Volo.Abp.EntityFrameworkCore.Tests - true - false - false - false + netcoreapp3.0 @@ -20,7 +16,7 @@ - + diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Repositories/Repository_Basic_Tests_With_Int_Pk.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Repositories/Repository_Basic_Tests_With_Int_Pk.cs new file mode 100644 index 0000000000..44cf993be8 --- /dev/null +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Repositories/Repository_Basic_Tests_With_Int_Pk.cs @@ -0,0 +1,9 @@ +using Volo.Abp.TestApp.Testing; + +namespace Volo.Abp.EntityFrameworkCore.Repositories +{ + public class Repository_Basic_Tests_With_Int_Pk : Repository_Basic_Tests_With_Int_Pk + { + + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/TestMigrationsDbContext.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/TestMigrationsDbContext.cs index cb9726d6b4..0f9def32f0 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/TestMigrationsDbContext.cs +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/TestMigrationsDbContext.cs @@ -15,6 +15,8 @@ namespace Volo.Abp.EntityFrameworkCore public DbSet Books { get; set; } + public DbSet EntityWithIntPks { get; set; } + public TestMigrationsDbContext(DbContextOptions options) : base(options) { diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Transactions/Transaction_Tests.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Transactions/Transaction_Tests.cs index 030b236637..613c42894c 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Transactions/Transaction_Tests.cs +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Transactions/Transaction_Tests.cs @@ -80,7 +80,7 @@ namespace Volo.Abp.EntityFrameworkCore.Transactions _unitOfWorkManager.Current.ShouldNotBeNull(); await _personRepository.InsertAsync(new Person(personId, "Adam", 42)); - await _bookRepository.InsertAsync(new BookInSecondDbContext { Id = bookId, Name = bookId.ToString() }); + await _bookRepository.InsertAsync(new BookInSecondDbContext(bookId, bookId.ToString())); await _unitOfWorkManager.Current.SaveChangesAsync(); diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/TestApp/EntityFrameworkCore/TestAppDbContext.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/TestApp/EntityFrameworkCore/TestAppDbContext.cs index 00e052d2dd..bfcecdeb65 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/TestApp/EntityFrameworkCore/TestAppDbContext.cs +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/TestApp/EntityFrameworkCore/TestAppDbContext.cs @@ -13,6 +13,8 @@ namespace Volo.Abp.TestApp.EntityFrameworkCore public DbSet DummyEntities { get; set; } + public DbSet EntityWithIntPks { get; set; } + public TestAppDbContext(DbContextOptions options) : base(options) { diff --git a/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj b/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj index eb0f746272..a58e10af2d 100644 --- a/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj +++ b/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj @@ -1,14 +1,9 @@  + + - netcoreapp2.2 - latest - Volo.Abp.EventBus.Tests - Volo.Abp.EventBus.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/Local/GenericInheritanceTest.cs b/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/Local/GenericInheritanceTest.cs index d770a81325..eeec26b166 100644 --- a/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/Local/GenericInheritanceTest.cs +++ b/framework/test/Volo.Abp.EventBus.Tests/Volo/Abp/EventBus/Local/GenericInheritanceTest.cs @@ -21,7 +21,7 @@ namespace Volo.Abp.EventBus.Local return Task.CompletedTask; }); - await LocalEventBus.PublishAsync(new EntityUpdatedEventData(new Person { Id = 42 })); + await LocalEventBus.PublishAsync(new EntityUpdatedEventData(new Person(42))); triggeredEvent.ShouldBe(true); } @@ -39,19 +39,37 @@ namespace Volo.Abp.EventBus.Local return Task.CompletedTask; }); - await LocalEventBus.PublishAsync(new EntityChangedEventData(new Student { Id = 42 })); + await LocalEventBus.PublishAsync(new EntityChangedEventData(new Student(42))); triggeredEvent.ShouldBe(true); } - + public class Person : Entity { - + public Person() + { + + } + + public Person(int id) + : base(id) + { + + } } public class Student : Person { - + public Student() + { + + } + + public Student(int id) + : base(id) + { + + } } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj b/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj index dd7436e1d2..d7b28568f3 100644 --- a/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj +++ b/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj @@ -1,14 +1,9 @@  + + - netcoreapp2.2 - latest - Volo.Abp.Features.Tests - Volo.Abp.Features.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj b/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj index 089dbcab38..e3e95e182b 100644 --- a/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj +++ b/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.FluentValidation.Tests - Volo.Abp.FluentValidation.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj b/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj index 8800d492ea..a4bcae448b 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.Http.Client.Tests - Volo.Abp.Http.Client.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/AbpHttpClientTestBase.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/AbpHttpClientTestBase.cs new file mode 100644 index 0000000000..7dc930daa1 --- /dev/null +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/AbpHttpClientTestBase.cs @@ -0,0 +1,9 @@ +using Volo.Abp.AspNetCore; + +namespace Volo.Abp.Http +{ + public abstract class AbpHttpClientTestBase : AbpAspNetCoreTestBase + { + + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/AbpHttpClientTestModule.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/AbpHttpClientTestModule.cs new file mode 100644 index 0000000000..ecde843177 --- /dev/null +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/AbpHttpClientTestModule.cs @@ -0,0 +1,33 @@ +using Microsoft.AspNetCore.Mvc.ApplicationParts; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Http.Client; +using Volo.Abp.Http.DynamicProxying; +using Volo.Abp.Modularity; +using Volo.Abp.TestApp; + +namespace Volo.Abp.Http +{ + [DependsOn( + typeof(AbpHttpClientModule), + typeof(AbpAspNetCoreMvcTestModule) + )] + public class AbpHttpClientTestModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddHttpClientProxies(typeof(TestAppModule).Assembly); + context.Services.AddHttpClientProxy(); + + Configure(options => + { + options.RemoteServices.Default = new RemoteServiceConfiguration("/"); + }); + + //This is needed after ASP.NET Core 3.0 upgrade. + context.Services.AddMvc() + .PartManager.ApplicationParts + .Add(new AssemblyPart(typeof(AbpAspNetCoreMvcModule).Assembly)); + } + } +} diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/AbpHttpTestBase.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/AbpHttpTestBase.cs deleted file mode 100644 index d2db4dc3ac..0000000000 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/AbpHttpTestBase.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Volo.Abp.AspNetCore; - -namespace Volo.Abp.Http -{ - public abstract class AbpHttpTestBase : AbpAspNetCoreTestBase - { - - } -} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/AbpHttpTestModule.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/AbpHttpTestModule.cs deleted file mode 100644 index 4ee13e7dc7..0000000000 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/AbpHttpTestModule.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.DynamicProxying; -using Volo.Abp.Modularity; -using Volo.Abp.TestApp; - -namespace Volo.Abp.Http -{ - [DependsOn(typeof(AbpAspNetCoreMvcTestModule), typeof(AbpHttpClientModule))] - public class AbpHttpTestModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddHttpClientProxies(typeof(TestAppModule).Assembly); - context.Services.AddHttpClientProxy(); - - Configure(options => - { - options.RemoteServices.Default = new RemoteServiceConfiguration("/"); - }); - } - } -} diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs index 629d979d95..aeae7ef1b4 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/PersonAppServiceClientProxy_Tests.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.DependencyInjection; using Shouldly; using Volo.Abp.Application.Dtos; using Volo.Abp.Domain.Repositories; +using Volo.Abp.Http.Modeling; using Volo.Abp.TestApp.Application; using Volo.Abp.TestApp.Application.Dto; using Volo.Abp.TestApp.Domain; @@ -12,7 +13,7 @@ using Xunit; namespace Volo.Abp.Http.DynamicProxying { - public class PersonAppServiceClientProxy_Tests : AbpHttpTestBase + public class PersonAppServiceClientProxy_Tests : AbpHttpClientTestBase { private readonly IPeopleAppService _peopleAppService; private readonly IRepository _personRepository; diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/RegularTestControllerClientProxy_Tests.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/RegularTestControllerClientProxy_Tests.cs index 1a59b39614..22d9354624 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/RegularTestControllerClientProxy_Tests.cs +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/RegularTestControllerClientProxy_Tests.cs @@ -6,7 +6,7 @@ using Xunit; namespace Volo.Abp.Http.DynamicProxying { - public class RegularTestControllerClientProxy_Tests : AbpHttpTestBase + public class RegularTestControllerClientProxy_Tests : AbpHttpClientTestBase { //TODO: Create a regular MVC Controller and add different parameter bindings, verbs and routes and test client proxy for it! diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Startup.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Startup.cs index 961454d22a..4704128d9d 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Startup.cs +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Startup.cs @@ -1,8 +1,6 @@ using System; using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; namespace Volo.Abp.Http { @@ -10,7 +8,7 @@ namespace Volo.Abp.Http { public IServiceProvider ConfigureServices(IServiceCollection services) { - services.AddApplication(options => + services.AddApplication(options => { options.UseAutofac(); }); @@ -19,7 +17,7 @@ namespace Volo.Abp.Http return services.BuildServiceProviderFromFactory(); } - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app) { app.InitializeApplication(); } diff --git a/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj b/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj index c7e32be51a..6f16b2499e 100644 --- a/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj +++ b/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj @@ -1,9 +1,9 @@  + + - netcoreapp2.2 - latest - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj b/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj index 4cc31224fc..68cc2bdb83 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj +++ b/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.Localization.Tests - Volo.Abp.Localization.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/pt-BR.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/pt-BR.json index 45ccaf0d7b..ddda24d38f 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/pt-BR.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/pt-BR.json @@ -2,6 +2,6 @@ "culture": "pt-BR", "texts": { "ThisFieldIsRequired": "Este campo é obrigatório", - "MaxLenghtErrorMessage": "Este campo pode ser no máximo de '{0}' caracteres" + "MaxLenghtErrorMessage": "Este campo pode ter no máximo '{0}' caracteres" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/pt-BR.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/pt-BR.json index 4423681d76..7425a2f176 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/pt-BR.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/pt-BR.json @@ -4,7 +4,7 @@ "Hello {0}.": "Olá {0}.", "Car": "Carro", "CarPlural": "Carros", - "MaxLenghtErrorMessage": "O comprimento deste campo pode ser no máximo de '{0}' caracteres", + "MaxLenghtErrorMessage": "Este campo pode ter no máximo '{0}' caracteres", "Universe": "Universo", "FortyTwo": "Quarenta e Dois" } diff --git a/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj b/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj index 09ea53af78..11a2ac7673 100644 --- a/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj +++ b/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj @@ -1,12 +1,9 @@  + + - netcoreapp2.2 - latest - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj b/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj index 136dc408c6..e7d0eec2fc 100644 --- a/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj +++ b/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.MemoryDb.Tests - Volo.Abp.MemoryDb.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/Repositories/Repository_Basic_Tests_With_Int_Pk.cs b/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/Repositories/Repository_Basic_Tests_With_Int_Pk.cs new file mode 100644 index 0000000000..31cd74043d --- /dev/null +++ b/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/Repositories/Repository_Basic_Tests_With_Int_Pk.cs @@ -0,0 +1,9 @@ +using Volo.Abp.TestApp.Testing; + +namespace Volo.Abp.MemoryDb.Repositories +{ + public class Repository_Basic_Tests_With_Int_Pk : Repository_Basic_Tests_With_Int_Pk + { + + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/TestApp/MemoryDb/TestAppMemoryDbContext.cs b/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/TestApp/MemoryDb/TestAppMemoryDbContext.cs index 902c013ed8..09b134a078 100644 --- a/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/TestApp/MemoryDb/TestAppMemoryDbContext.cs +++ b/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/TestApp/MemoryDb/TestAppMemoryDbContext.cs @@ -8,7 +8,8 @@ namespace Volo.Abp.TestApp.MemoryDb public class TestAppMemoryDbContext : MemoryDbContext { private static readonly Type[] EntityTypeList = { - typeof(Person) + typeof(Person), + typeof(EntityWithIntPk) }; public override IReadOnlyList GetEntityTypes() diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj b/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj index 0605a51a7c..bbad58f4fa 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.MongoDB.Tests - Volo.Abp.MongoDB.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests_With_Int_Pk.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests_With_Int_Pk.cs new file mode 100644 index 0000000000..58914e8e50 --- /dev/null +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests_With_Int_Pk.cs @@ -0,0 +1,14 @@ +using Volo.Abp.TestApp.Testing; +using Xunit; + +namespace Volo.Abp.MongoDB.Repositories +{ + public class Repository_Basic_Tests_With_Int_Pk : Repository_Basic_Tests_With_Int_Pk + { + [Fact(Skip = "Int PKs are not working for MongoDb")] + public override void Get() + { + + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/TestApp/MongoDb/TestAppMongoDbContext.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/TestApp/MongoDb/TestAppMongoDbContext.cs index fd7562f6df..03869ce566 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/TestApp/MongoDb/TestAppMongoDbContext.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/TestApp/MongoDb/TestAppMongoDbContext.cs @@ -8,9 +8,11 @@ namespace Volo.Abp.TestApp.MongoDB [ConnectionStringName("TestApp")] public class TestAppMongoDbContext : AbpMongoDbContext, ITestAppMongoDbContext { - [MongoCollection("Persons")] //Intentially changed the collection name to test it + [MongoCollection("Persons")] //Intentionally changed the collection name to test it public IMongoCollection People => Collection(); + public IMongoCollection EntityWithIntPks => Collection(); + public IMongoCollection Cities => Collection(); protected override void CreateModel(IMongoModelBuilder modelBuilder) diff --git a/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj b/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj index 1258956caf..17ce3073c5 100644 --- a/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj +++ b/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.MultiTenancy.Tests - Volo.Abp.MultiTenancy.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj new file mode 100644 index 0000000000..7af0ec54b6 --- /dev/null +++ b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj @@ -0,0 +1,16 @@ + + + + + + netcoreapp3.0 + + + + + + + + + + diff --git a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/AbpObjectMappingTestBase.cs b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/AbpObjectMappingTestBase.cs new file mode 100644 index 0000000000..9ba65b5a10 --- /dev/null +++ b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/AbpObjectMappingTestBase.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.ObjectMapping +{ + public abstract class AbpObjectMappingTestBase : AbpIntegratedTest + { + + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/AbpObjectMappingTestModule.cs b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/AbpObjectMappingTestModule.cs new file mode 100644 index 0000000000..90b6943412 --- /dev/null +++ b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/AbpObjectMappingTestModule.cs @@ -0,0 +1,17 @@ +using Volo.Abp.Modularity; + +namespace Volo.Abp.ObjectMapping +{ + [DependsOn( + typeof(AbpObjectMappingModule), + typeof(AbpTestBaseModule) + )] + public class AbpObjectMappingTestModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddTest1AutoObjectMappingProvider(); + context.Services.AddTest2AutoObjectMappingProvider(); + } + } +} diff --git a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/ContextSpecificMapper_Tests.cs b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/ContextSpecificMapper_Tests.cs new file mode 100644 index 0000000000..e24dd9a15e --- /dev/null +++ b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/ContextSpecificMapper_Tests.cs @@ -0,0 +1,24 @@ +using Shouldly; +using Xunit; + +namespace Volo.Abp.ObjectMapping +{ + public class ContextSpecificMapper_Tests : AbpObjectMappingTestBase + { + [Fact] + public void Should_Resolve_Correct_ObjectMappper_For_Specific_Context() + { + GetRequiredService>() + .ShouldBeOfType(typeof(DefaultObjectMapper)); + + GetRequiredService>() + .ShouldBeOfType(typeof(Test1AutoObjectMappingProvider)); + + GetRequiredService>() + .ShouldBeOfType(typeof(DefaultObjectMapper)); + + GetRequiredService>() + .ShouldBeOfType(typeof(Test2AutoObjectMappingProvider)); + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/MappingContext1.cs b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/MappingContext1.cs new file mode 100644 index 0000000000..96fcb94686 --- /dev/null +++ b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/MappingContext1.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.ObjectMapping +{ + public class MappingContext1 + { + + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/MappingContext2.cs b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/MappingContext2.cs new file mode 100644 index 0000000000..131a9a268b --- /dev/null +++ b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/MappingContext2.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.ObjectMapping +{ + public class MappingContext2 + { + + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/Test1AutoObjectMappingProvider.cs b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/Test1AutoObjectMappingProvider.cs new file mode 100644 index 0000000000..b96df71aed --- /dev/null +++ b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/Test1AutoObjectMappingProvider.cs @@ -0,0 +1,22 @@ +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.ObjectMapping +{ + public class Test1AutoObjectMappingProvider : Test1AutoObjectMappingProvider, IAutoObjectMappingProvider + { + + } + + public class Test1AutoObjectMappingProvider : IAutoObjectMappingProvider, ITransientDependency + { + public TDestination Map(object source) + { + return default; + } + + public TDestination Map(TSource source, TDestination destination) + { + return default; + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/Test2AutoObjectMappingProvider.cs b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/Test2AutoObjectMappingProvider.cs new file mode 100644 index 0000000000..3ac0792570 --- /dev/null +++ b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/Test2AutoObjectMappingProvider.cs @@ -0,0 +1,15 @@ +namespace Volo.Abp.ObjectMapping +{ + public class Test2AutoObjectMappingProvider : IAutoObjectMappingProvider + { + public TDestination Map(object source) + { + return default; + } + + public TDestination Map(TSource source, TDestination destination) + { + return default; + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/TestContextRegistrar.cs b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/TestContextRegistrar.cs new file mode 100644 index 0000000000..b7568fc15e --- /dev/null +++ b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo/Abp/ObjectMapping/TestContextRegistrar.cs @@ -0,0 +1,25 @@ +using Microsoft.Extensions.DependencyInjection; + +namespace Volo.Abp.ObjectMapping +{ + public static class TestContextRegistrar + { + public static IServiceCollection AddTest1AutoObjectMappingProvider(this IServiceCollection services) + { + return services + .AddTransient< + IAutoObjectMappingProvider, + Test1AutoObjectMappingProvider + >(); + } + + public static IServiceCollection AddTest2AutoObjectMappingProvider(this IServiceCollection services) + { + return services + .AddTransient< + IAutoObjectMappingProvider, + Test2AutoObjectMappingProvider + >(); + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj b/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj index 696592c5d3..1534cb28f4 100644 --- a/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj +++ b/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.Security.Tests - Volo.Abp.Security.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj b/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj index b800df4fb0..65bb49d57a 100644 --- a/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj +++ b/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj @@ -1,14 +1,9 @@  + + - netcoreapp2.2 - latest - Volo.Abp.Serialization.Tests - Volo.Abp.Serialization.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj b/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj index 419451777d..ef91443b2a 100644 --- a/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj +++ b/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj @@ -1,14 +1,9 @@  + + - netcoreapp2.2 - latest - Volo.Abp.Settings.Tests - Volo.Abp.Settings.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj b/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj index 3b1f95fabb..0594067fa5 100644 --- a/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj +++ b/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj @@ -1,14 +1,9 @@  + + - netcoreapp2.2 - latest - Volo.Abp.Specifications.Tests - Volo.Abp.Specifications.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj b/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj index 1d999ea9d5..90dbb56a8e 100644 --- a/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj +++ b/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.TestApp.Tests - Volo.Abp.TestApp.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj b/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj index be55d0dc90..d72d42e48a 100644 --- a/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj +++ b/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.TestApp - Volo.Abp.TestApp - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/EntityWithIntPk.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/EntityWithIntPk.cs new file mode 100644 index 0000000000..040af1a4e9 --- /dev/null +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/EntityWithIntPk.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Volo.Abp.Domain.Entities; + +namespace Volo.Abp.TestApp.Domain +{ + public class EntityWithIntPk : AggregateRoot + { + public string Name { get; set; } + + public EntityWithIntPk() + { + + } + + public EntityWithIntPk(string name) + { + Name = name; + } + } +} diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/Person.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/Person.cs index 16ac62589e..3bbec118a2 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/Person.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/Person.cs @@ -23,8 +23,8 @@ namespace Volo.Abp.TestApp.Domain } public Person(Guid id, string name, int age, Guid? tenantId = null, Guid? cityId = null) + : base(id) { - Id = id; Name = name; Age = age; TenantId = tenantId; diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/Phone.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/Phone.cs index e53f2bc2e3..20292e3de8 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/Phone.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/Phone.cs @@ -49,8 +49,8 @@ namespace Volo.Abp.TestApp.Domain } public Order(Guid id, string referenceNo) + : base(id) { - Id = id; ReferenceNo = referenceNo; OrderLines = new List(); } diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestDataBuilder.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestDataBuilder.cs index 25886f77a6..1f955b3e82 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestDataBuilder.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestDataBuilder.cs @@ -17,19 +17,23 @@ namespace Volo.Abp.TestApp private readonly IBasicRepository _personRepository; private readonly ICityRepository _cityRepository; + private readonly IRepository _entityWithIntPksRepository; public TestDataBuilder( IBasicRepository personRepository, - ICityRepository cityRepository) + ICityRepository cityRepository, + IRepository entityWithIntPksRepository) { _personRepository = personRepository; _cityRepository = cityRepository; + _entityWithIntPksRepository = entityWithIntPksRepository; } public void Build() { AddCities(); AddPeople(); + AddEntitiesWithPks(); } private void AddCities() @@ -63,5 +67,10 @@ namespace Volo.Abp.TestApp _personRepository.Insert(tenant1Person1); _personRepository.Insert(tenant1Person2); } + + private void AddEntitiesWithPks() + { + _entityWithIntPksRepository.Insert(new EntityWithIntPk("Entity1")); + } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/Repository_Basic_Tests_With_Int_Pk.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/Repository_Basic_Tests_With_Int_Pk.cs new file mode 100644 index 0000000000..f8a2f4e8e9 --- /dev/null +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/Repository_Basic_Tests_With_Int_Pk.cs @@ -0,0 +1,42 @@ +using System.Linq; +using Shouldly; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Modularity; +using Volo.Abp.TestApp.Domain; +using Xunit; + +namespace Volo.Abp.TestApp.Testing +{ + public abstract class Repository_Basic_Tests_With_Int_Pk : TestAppTestBase + where TStartupModule : IAbpModule + { + protected readonly IRepository EntityWithIntPkRepository; + + protected Repository_Basic_Tests_With_Int_Pk() + { + EntityWithIntPkRepository = GetRequiredService>(); + } + + [Fact] + public virtual void FirstOrDefault() + { + WithUnitOfWork(() => + { + var entity = EntityWithIntPkRepository.FirstOrDefault(e => e.Name == "Entity1"); + entity.ShouldNotBeNull(); + entity.Name.ShouldBe("Entity1"); + }); + } + + [Fact] + public virtual void Get() + { + WithUnitOfWork(() => + { + var entity = EntityWithIntPkRepository.Get(1); + entity.ShouldNotBeNull(); + entity.Name.ShouldBe("Entity1"); + }); + } + } +} diff --git a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj index 9a1f142f01..7937d99580 100644 --- a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj +++ b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.UI.Navigation.Tests - Volo.Abp.UI.Navigation.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj b/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj index dd868b860f..6ec5ddac26 100644 --- a/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj +++ b/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj @@ -1,14 +1,9 @@  + + - netcoreapp2.2 - latest - Volo.Abp.Uow.Tests - Volo.Abp.Uow.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj b/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj index ea192bb236..b1f30e3ea5 100644 --- a/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj +++ b/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.Validation.Tests - Volo.Abp.Validation.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj index e74d97c437..440525bc9e 100644 --- a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj +++ b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj @@ -1,13 +1,9 @@  + + - netcoreapp2.2 - Volo.Abp.VirtualFileSystem.Tests - Volo.Abp.VirtualFileSystem.Tests - true - false - false - false + netcoreapp3.0 diff --git a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/DynamicFileProvider_Tests.cs b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/DynamicFileProvider_Tests.cs index e3ff516949..45aaa88fd4 100644 --- a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/DynamicFileProvider_Tests.cs +++ b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/DynamicFileProvider_Tests.cs @@ -1,5 +1,4 @@ using System; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.Primitives; using Shouldly; @@ -24,8 +23,8 @@ namespace Volo.Abp.VirtualFileSystem _dynamicFileProvider.AddOrUpdate( new InMemoryFileInfo( - fileContent.GetBytes(), "/my-files/test.txt", + fileContent.GetBytes(), "test.txt" ) ); @@ -42,8 +41,8 @@ namespace Volo.Abp.VirtualFileSystem _dynamicFileProvider.AddOrUpdate( new InMemoryFileInfo( - "Hello World".GetBytes(), "/my-files/test.txt", + "Hello World".GetBytes(), "test.txt" ) ); @@ -60,8 +59,8 @@ namespace Volo.Abp.VirtualFileSystem _dynamicFileProvider.AddOrUpdate( new InMemoryFileInfo( - "Hello World UPDATED".GetBytes(), "/my-files/test.txt", + "Hello World UPDATED".GetBytes(), "test.txt" ) ); @@ -74,8 +73,8 @@ namespace Volo.Abp.VirtualFileSystem _dynamicFileProvider.AddOrUpdate( new InMemoryFileInfo( - "Hello World UPDATED 2".GetBytes(), "/my-files/test.txt", + "Hello World UPDATED 2".GetBytes(), "test.txt" ) ); @@ -88,7 +87,7 @@ namespace Volo.Abp.VirtualFileSystem { public override void ConfigureServices(ServiceConfigurationContext context) { - + } } } diff --git a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/VirtualFileProvider_Tests.cs b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/VirtualFileProvider_Tests.cs index 2c853e3a19..e376d24aa0 100644 --- a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/VirtualFileProvider_Tests.cs +++ b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/VirtualFileProvider_Tests.cs @@ -1,4 +1,5 @@ using System.IO; +using System.Linq; using System.Text; using Microsoft.Extensions.DependencyInjection; using Shouldly; @@ -32,6 +33,19 @@ namespace Volo.Abp.VirtualFileSystem } } + [Fact] + public void Should_Define_And_Get_Embedded_Directory_Contents() + { + //Act + var contents = _virtualFileProvider.GetDirectoryContents("/js"); + + //Assert + contents.Exists.ShouldNotBeNull(); + + var contentList = contents.ToList(); + contentList.ShouldContain(x => x.Name == "jquery-3-1-1-min.js"); + } + [DependsOn(typeof(AbpVirtualFileSystemModule))] public class TestModule : AbpModule { diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json index 892e60f89e..f5167f51f2 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/en.json @@ -16,6 +16,23 @@ "Register": "Register", "InvalidLoginRequest": "Invalid login request", "ThereAreNoLoginSchemesConfiguredForThisClient": "There are no login schemes configured for this client.", - "LogInUsingYourProviderAccount": "Log in using your {0} account" + "LogInUsingYourProviderAccount": "Log in using your {0} account", + "DisplayName:CurrentPassword": "Current password", + "DisplayName:NewPassword": "New password", + "DisplayName:NewPasswordConfirm": "Confirm new password", + "PasswordChangedMessage": "Your password has been changed successfully.", + "DisplayName:UserName": "User name", + "DisplayName:Email": "Email", + "DisplayName:Name": "Name", + "DisplayName:Surname": "Surname", + "DisplayName:Password": "Password", + "DisplayName:EmailAddress": "Email address", + "DisplayName:PhoneNumber": "Phone number", + "PersonalSettings": "Personal settings", + "PersonalSettingsSaved": "Personal settings saved", + "PasswordChanged": "Password changed", + "NewPasswordConfirmFailed": "Please confirm the new password.", + "Manage": "Manage", + "ManageYourProfile": "Manage your profile" } } \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/es-mx.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/es-mx.json new file mode 100644 index 0000000000..cbb99587cd --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/es-mx.json @@ -0,0 +1,38 @@ +{ + "culture": "es-MX", + "texts": { + "UserName": "Nombre de usuario", + "EmailAddress": "Dirección de correo electrónico", + "UserNameOrEmailAddress": "Nombre de usuario o dirección de correo electrónico", + "Password": "Contraseña", + "RememberMe": "Recuérdame", + "UseAnotherServiceToLogin": "Usar otro servicio para iniciar sesión", + "UserLockedOutMessage": "La cuenta de usuario ha sido bloqueada debido a los intentos de inicio de sesión no válido. Por favor, espere un rato y vuelve a intentarlo.", + "InvalidUserNameOrPassword": "No válido nombre de usuario o la contraseña!", + "LoginIsNotAllowed": "No está permitido el inicio de sesión! Usted tendrá que confirmar su correo electrónico\/número de teléfono.", + "SelfRegistrationDisabledMessage": "El autoregistro de usuario está deshabilitado para esta aplicación. Póngase en contacto con el administrador de la aplicación para registrar un nuevo usuario.", + "Login": "Iniciar sesión", + "Cancel": "Cancelar", + "Register": "Registrar", + "InvalidLoginRequest": "Solicitud de inicio de sesión no válido", + "ThereAreNoLoginSchemesConfiguredForThisClient": "No hay ningún inicio de sesión esquemas configurado para este cliente.", + "LogInUsingYourProviderAccount": "Inicia sesión con tu cuenta de {0} ", + "DisplayName:CurrentPassword": "Contraseña actual", + "DisplayName:NewPassword": "Nueva contraseña", + "DisplayName:NewPasswordConfirm": "Confirmar nueva contraseña", + "PasswordChangedMessage": "Su contraseña ha sido cambiada con éxito.", + "DisplayName:UserName": "Nombre de usuario", + "DisplayName:Email": "Correo electrónico", + "DisplayName:Name": "Nombre", + "DisplayName:Surname": "Apellido", + "DisplayName:Password": "Contraseña", + "DisplayName:EmailAddress": "Dirección de correo electrónico", + "DisplayName:PhoneNumber": "Número de teléfono", + "PersonalSettings": "Configuración Personal", + "PersonalSettingsSaved": "Ajustes personales guardados", + "PasswordChanged": "Cambia la contraseña", + "NewPasswordConfirmFailed": "Por favor, confirme la nueva contraseña.", + "Manage": "Administrar", + "ManageYourProfile": "Gestionar tu perfil" + } +} diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json index 0513d99afd..ea7789357b 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json @@ -7,9 +7,9 @@ "Password": "Senha", "RememberMe": "Lembrar", "UseAnotherServiceToLogin": "Usar outro serviço para entrar", - "UserLockedOutMessage": "Esta conta de usuário está bloqueada devido a muitas tentativas de entrar. Por favor, espero alguns instantes e tente novamente.", + "UserLockedOutMessage": "Esta conta de usuário está bloqueada devido a muitas tentativas de acesso. Por favor, espero alguns instantes e tente novamente.", "InvalidUserNameOrPassword": "Usuário ou senha estão incorretos!", - "LoginIsNotAllowed": "Você não possui permissão para entrar! Você deveconfirmar seu e-mail ou número de telefone.", + "LoginIsNotAllowed": "Você não possui permissão para entrar! Você deve confirmar seu e-mail ou número de telefone.", "SelfRegistrationDisabledMessage": "Não é permitido que você crie uma nova conta neste site. Contate um administrador para que ele crie uma conta para você.", "Login": "Entrar", "Cancel": "Cancelar", diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj index 14f9c8f991..288e7f4e9b 100644 --- a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj +++ b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj @@ -10,7 +10,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.csproj b/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.csproj index c5d14ebcc4..9ecb118b9b 100644 --- a/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.csproj +++ b/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.Account.HttpApi.Client Volo.Abp.Account.HttpApi.Client diff --git a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj index 8c028185c7..2af9e29df4 100644 --- a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj +++ b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.Account.HttpApi Volo.Abp.Account.HttpApi @@ -12,6 +12,7 @@ + diff --git a/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/AbpAccountHttpApiModule.cs b/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/AbpAccountHttpApiModule.cs index 3a58d11643..0e210dd8de 100644 --- a/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/AbpAccountHttpApiModule.cs +++ b/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/AbpAccountHttpApiModule.cs @@ -1,6 +1,7 @@ using Localization.Resources.AbpUi; using Volo.Abp.Account.Localization; using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Identity; using Volo.Abp.Localization; using Volo.Abp.Modularity; @@ -8,6 +9,7 @@ namespace Volo.Abp.Account { [DependsOn( typeof(AbpAccountApplicationContractsModule), + typeof(AbpIdentityHttpApiModule), typeof(AbpAspNetCoreMvcModule))] public class AbpAccountHttpApiModule : AbpModule { diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs index 666bcfadf0..b6902e86d8 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs @@ -52,15 +52,7 @@ namespace Volo.Abp.Account.Web.Pages.Account //TODO: Reference AspNetCore MultiTenancy module and use options to get the tenant key! var tenant = context.Parameters[TenantResolverConsts.DefaultTenantKey]; - if (string.IsNullOrEmpty(tenant)) - { - if (Request.Cookies.ContainsKey(TenantResolverConsts.DefaultTenantKey)) - { - CurrentTenant.Change(null); - Response.Cookies.Delete(TenantResolverConsts.DefaultTenantKey); - } - } - else + if (!string.IsNullOrEmpty(tenant)) { CurrentTenant.Change(Guid.Parse(tenant)); Response.Cookies.Append(TenantResolverConsts.DefaultTenantKey, tenant); diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj index 724ecc38ef..a03e55b51f 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.Account.Web.IdentityServer Volo.Abp.Account.Web.IdentityServer true @@ -16,10 +16,9 @@ - - - - + + + diff --git a/modules/account/src/Volo.Abp.Account.Web/AbpAccountUserMenuContributor.cs b/modules/account/src/Volo.Abp.Account.Web/AbpAccountUserMenuContributor.cs index 2741aabe82..9bdd8095ed 100644 --- a/modules/account/src/Volo.Abp.Account.Web/AbpAccountUserMenuContributor.cs +++ b/modules/account/src/Volo.Abp.Account.Web/AbpAccountUserMenuContributor.cs @@ -2,17 +2,13 @@ using Localization.Resources.AbpUi; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Localization; +using Volo.Abp.Account.Localization; using Volo.Abp.UI.Navigation; namespace Volo.Abp.Account.Web { public class AbpAccountUserMenuContributor : IMenuContributor { - public AbpAccountUserMenuContributor() - { - - } - public Task ConfigureMenuAsync(MenuConfigurationContext context) { if (context.Menu.Name != StandardMenus.User) @@ -20,13 +16,11 @@ namespace Volo.Abp.Account.Web return Task.CompletedTask; } - var l = context.ServiceProvider.GetRequiredService>(); - - context.Menu.AddItem(new ApplicationMenuItem("Account.ChangePassword", l["ChangePassword"], icon: "fa fa-key", url: "#", elementId: "abp-account-change-password")); - - context.Menu.AddItem(new ApplicationMenuItem("Account.PersonalSettings", l["PersonalInfo"], icon: "fa fa-info", url: "#", elementId: "abp-account-personal-settings")); + var uiResource = context.ServiceProvider.GetRequiredService>(); + var accountResource = context.ServiceProvider.GetRequiredService>(); - context.Menu.AddItem(new ApplicationMenuItem("Account.Logout", l["Logout"], url: "/Account/Logout", icon: "fa fa-power-off", order: int.MaxValue - 1000)); + context.Menu.AddItem(new ApplicationMenuItem("Account.Manage", accountResource["ManageYourProfile"], url: "/Account/Manage", icon: "fa fa-cog", order: 1000, null)); + context.Menu.AddItem(new ApplicationMenuItem("Account.Logout", uiResource["Logout"], url: "/Account/Logout", icon: "fa fa-power-off", order: int.MaxValue - 1000)); return Task.CompletedTask; } diff --git a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebAutomapperProfile.cs b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebAutomapperProfile.cs new file mode 100644 index 0000000000..ab7ea41269 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebAutomapperProfile.cs @@ -0,0 +1,14 @@ +using Volo.Abp.Account.Web.Pages.Account; +using Volo.Abp.Identity; +using AutoMapper; + +namespace Volo.Abp.Account.Web +{ + public class AbpAccountWebAutoMapperProfile : Profile + { + public AbpAccountWebAutoMapperProfile() + { + CreateMap(); + } + } +} diff --git a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs index f7481b3485..5cada69450 100644 --- a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs +++ b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs @@ -1,8 +1,10 @@ -using Microsoft.Extensions.DependencyInjection; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Account.Localization; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Toolbars; +using Volo.Abp.AutoMapper; using Volo.Abp.Identity.AspNetCore; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; @@ -13,6 +15,7 @@ namespace Volo.Abp.Account.Web [DependsOn( typeof(AbpAccountHttpApiModule), typeof(AbpIdentityAspNetCoreModule), + typeof(AbpAutoMapperModule), typeof(AbpAspNetCoreMvcUiThemeSharedModule) )] public class AbpAccountWebModule : AbpModule @@ -41,6 +44,16 @@ namespace Volo.Abp.Account.Web { options.Contributors.Add(new AccountModuleToolbarContributor()); }); + + Configure(options => + { + options.Conventions.AuthorizePage("/Account/Manage"); + }); + + Configure(options => + { + options.AddProfile(validate: true); + }); } } } diff --git a/modules/account/src/Volo.Abp.Account.Web/Areas/Account/Controllers/AccountController.cs b/modules/account/src/Volo.Abp.Account.Web/Areas/Account/Controllers/AccountController.cs index 5bc347d84d..9f10b7aa1d 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Areas/Account/Controllers/AccountController.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Areas/Account/Controllers/AccountController.cs @@ -1,5 +1,4 @@ using System; -using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; @@ -9,6 +8,7 @@ using Volo.Abp.Identity; using Volo.Abp.Validation; using SignInResult = Microsoft.AspNetCore.Identity.SignInResult; using UserLoginInfo = Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo; +using IdentityUser = Volo.Abp.Identity.IdentityUser; namespace Volo.Abp.Account.Web.Areas.Account.Controllers { diff --git a/modules/account/src/Volo.Abp.Account.Web/Areas/Account/Controllers/LogoutController.cs b/modules/account/src/Volo.Abp.Account.Web/Areas/Account/Controllers/LogoutController.cs index 5a5f517851..1f1b43b853 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Areas/Account/Controllers/LogoutController.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Areas/Account/Controllers/LogoutController.cs @@ -2,7 +2,7 @@ using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.Identity; +using IdentityUser = Volo.Abp.Identity.IdentityUser; namespace Volo.Abp.Account.Web.Areas.Account.Controllers { diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccountPageModel.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccountPageModel.cs index 4a2751f21b..c1c1880650 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccountPageModel.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccountPageModel.cs @@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Mvc; using Volo.Abp.Account.Localization; using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Abp.Identity; +using IdentityUser = Volo.Abp.Identity.IdentityUser; namespace Volo.Abp.Account.Web.Pages.Account { diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml.cs index aa168344a5..cc82de414f 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml.cs @@ -14,6 +14,7 @@ using Volo.Abp.Identity; using Volo.Abp.Security.Claims; using Volo.Abp.Uow; using Volo.Abp.Validation; +using IdentityUser = Volo.Abp.Identity.IdentityUser; namespace Volo.Abp.Account.Web.Pages.Account { diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml new file mode 100644 index 0000000000..36c94271d1 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml @@ -0,0 +1,50 @@ +@page +@model Volo.Abp.Account.Web.Pages.Account.ManageModel +@using Volo.Abp.Identity.Settings +@using Volo.Abp.Settings +@using Volo.Abp.AspNetCore.Mvc.UI.Theming +@inject ISettingProvider SettingManager +@inject IThemeManager ThemeManager +@inherits Volo.Abp.Account.Web.Pages.Account.AccountPage +@{ + Layout = ThemeManager.CurrentTheme.GetApplicationLayout(); + var isUserNameUpdateEnabled = string.Equals(await SettingManager.GetOrNullAsync(IdentitySettingNames.User.IsUserNameUpdateEnabled), "true", + StringComparison.OrdinalIgnoreCase); + + var isEmailUpdateEnabled = string.Equals(await SettingManager.GetOrNullAsync(IdentitySettingNames.User.IsEmailUpdateEnabled), "true", + StringComparison.OrdinalIgnoreCase); +} +@section scripts { + +} + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
\ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml.cs new file mode 100644 index 0000000000..9fba470929 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml.cs @@ -0,0 +1,72 @@ +using System.ComponentModel.DataAnnotations; +using System.Threading.Tasks; +using Volo.Abp.Identity; + +namespace Volo.Abp.Account.Web.Pages.Account +{ + public class ManageModel : AccountPageModel + { + public ChangePasswordInfoModel ChangePasswordInfoModel { get; set; } + + public PersonalSettingsInfoModel PersonalSettingsInfoModel { get; set; } + + private readonly IProfileAppService _profileAppService; + + public ManageModel(IProfileAppService profileAppService) + { + _profileAppService = profileAppService; + } + + public async Task OnGetAsync() + { + var user = await _profileAppService.GetAsync(); + + PersonalSettingsInfoModel = ObjectMapper.Map(user); + } + } + + public class ChangePasswordInfoModel + { + [Required] + [StringLength(IdentityUserConsts.MaxPasswordLength)] + [Display(Name = "DisplayName:CurrentPassword")] + [DataType(DataType.Password)] + public string CurrentPassword { get; set; } + + [Required] + [StringLength(IdentityUserConsts.MaxPasswordLength)] + [Display(Name = "DisplayName:NewPassword")] + [DataType(DataType.Password)] + public string NewPassword { get; set; } + + [Required] + [StringLength(IdentityUserConsts.MaxPasswordLength)] + [Display(Name = "DisplayName:NewPasswordConfirm")] + [DataType(DataType.Password)] + public string NewPasswordConfirm { get; set; } + } + public class PersonalSettingsInfoModel + { + [Required] + [StringLength(IdentityUserConsts.MaxUserNameLength)] + [Display(Name = "DisplayName:UserName")] + public string UserName { get; set; } + + [Required] + [StringLength(IdentityUserConsts.MaxEmailLength)] + [Display(Name = "DisplayName:Email")] + public string Email { get; set; } + + [StringLength(IdentityUserConsts.MaxNameLength)] + [Display(Name = "DisplayName:Name")] + public string Name { get; set; } + + [StringLength(IdentityUserConsts.MaxSurnameLength)] + [Display(Name = "DisplayName:Surname")] + public string Surname { get; set; } + + [StringLength(IdentityUserConsts.MaxPhoneNumberLength)] + [Display(Name = "DisplayName:PhoneNumber")] + public string PhoneNumber { get; set; } + } +} diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.js b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.js new file mode 100644 index 0000000000..844151c71b --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.js @@ -0,0 +1,50 @@ +(function ($) { + + var l = abp.localization.getResource('AbpAccount'); + + var _profileService = volo.abp.identity.profile; + + $("#ChangePasswordForm").submit(function (e) { + e.preventDefault(); + + if (!$("#ChangePasswordForm").valid()) { + return false; + } + + var input = $("#ChangePasswordForm").serializeFormToObject().changePasswordInfoModel; + + if (input.newPassword != input.newPasswordConfirm || input.currentPassword == '') { + abp.message.error(l("NewPasswordConfirmFailed")); + return; + } + + if (input.currentPassword == '') { + return; + } + + _profileService.changePassword( + input + ).then(function (result) { + abp.message.success(l("PasswordChanged")); + }); + + }); + + $("#PersonalSettingsForm").submit(function (e) { + e.preventDefault(); + + if (!$("#PersonalSettingsForm").valid()) { + return false; + } + + var input = $("#PersonalSettingsForm").serializeFormToObject().personalSettingsInfoModel; + + _profileService.update( + input + ).then(function (result) { + abp.notify.success(l("PersonalSettingsSaved")); + }); + + }); + +})(jQuery); \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs index d5ffdefd88..1a16cecc2a 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Register.cshtml.cs @@ -1,14 +1,11 @@ -using System; -using System.ComponentModel; -using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Volo.Abp.Account.Web.Settings; -using Volo.Abp.Identity; using Volo.Abp.Settings; -using Volo.Abp.UI; using Volo.Abp.Uow; +using IdentityUser = Volo.Abp.Identity.IdentityUser; namespace Volo.Abp.Account.Web.Pages.Account { diff --git a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj index 86706f28d5..3101861d54 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj +++ b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj @@ -3,33 +3,40 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.Account.Web Volo.Abp.Account.Web - true $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false Volo.Abp.Account.Web + true Library - - - - - + + + + + + + + + + + + diff --git a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj index 5fa709490c..d7153fa75f 100644 --- a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj +++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj @@ -1,11 +1,11 @@  - netcoreapp2.2 + netcoreapp3.0 - + diff --git a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AccountAppService_Tests.cs b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AccountAppService_Tests.cs index a2dec7ddff..634cbfc253 100644 --- a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AccountAppService_Tests.cs +++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AccountAppService_Tests.cs @@ -25,7 +25,7 @@ namespace Volo.Abp.Account.Pro.Application.Tests.Volo.Abp.Account [Fact] public async Task RegisterAsync() { - var registerDto = new RegisterDto() + var registerDto = new RegisterDto { UserName = "bob.lee", EmailAddress = "bob.lee@abp.io", @@ -36,7 +36,7 @@ namespace Volo.Abp.Account.Pro.Application.Tests.Volo.Abp.Account await _accountAppService.RegisterAsync(registerDto); var user = await _identityUserRepository.FindByNormalizedUserNameAsync( - _lookupNormalizer.Normalize("bob.lee")); + _lookupNormalizer.NormalizeName("bob.lee")); user.ShouldNotBeNull(); user.UserName.ShouldBe("bob.lee"); diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/IAuditLogRepository.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/IAuditLogRepository.cs index e94eee3d88..1da98f36aa 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/IAuditLogRepository.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/IAuditLogRepository.cs @@ -13,6 +13,8 @@ namespace Volo.Abp.AuditLogging string sorting = null, int maxResultCount = 50, int skipCount = 0, + DateTime? startTime = null, + DateTime? endTime = null, string httpMethod = null, string url = null, string userName = null, @@ -26,6 +28,8 @@ namespace Volo.Abp.AuditLogging CancellationToken cancellationToken = default); Task GetCountAsync( + DateTime? startTime = null, + DateTime? endTime = null, string httpMethod = null, string url = null, string userName = null, diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj index ff72eb23da..93422d8f3f 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs index 043c3d8988..c60dfcc4d7 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs @@ -23,6 +23,8 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore string sorting = null, int maxResultCount = 50, int skipCount = 0, + DateTime? startTime = null, + DateTime? endTime = null, string httpMethod = null, string url = null, string userName = null, @@ -35,16 +37,31 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore bool includeDetails = false, CancellationToken cancellationToken = default) { - var query = GetListQuery(httpMethod, url, userName, applicationName, correlationId, maxExecutionDuration, minExecutionDuration, hasException, httpStatusCode, includeDetails); + var query = GetListQuery( + startTime, + endTime, + httpMethod, + url, + userName, + applicationName, + correlationId, + maxExecutionDuration, + minExecutionDuration, + hasException, + httpStatusCode, + includeDetails + ); var auditLogs = await query.OrderBy(sorting ?? "executionTime desc") .PageBy(skipCount, maxResultCount) - .ToListAsync(); + .ToListAsync(GetCancellationToken(cancellationToken)); return auditLogs; } public async Task GetCountAsync( + DateTime? startTime = null, + DateTime? endTime = null, string httpMethod = null, string url = null, string userName = null, @@ -56,14 +73,28 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore HttpStatusCode? httpStatusCode = null, CancellationToken cancellationToken = default) { - var query = GetListQuery(httpMethod, url, userName, applicationName, correlationId, maxExecutionDuration, minExecutionDuration, hasException, httpStatusCode); + var query = GetListQuery( + startTime, + endTime, + httpMethod, + url, + userName, + applicationName, + correlationId, + maxExecutionDuration, + minExecutionDuration, + hasException, + httpStatusCode + ); - var totalCount = await query.LongCountAsync(); + var totalCount = await query.LongCountAsync(GetCancellationToken(cancellationToken)); return totalCount; } private IQueryable GetListQuery( + DateTime? startTime = null, + DateTime? endTime = null, string httpMethod = null, string url = null, string userName = null, @@ -77,16 +108,18 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore { return DbSet.AsNoTracking() .IncludeDetails(includeDetails) - .WhereIf(hasException.HasValue && hasException.Value, auditLog => auditLog.Exceptions != null && auditLog.Exceptions.Length > 0) - .WhereIf(hasException.HasValue && !hasException.Value, auditLog => auditLog.Exceptions == null || auditLog.Exceptions.Length == 0) - .WhereIf(httpMethod != null, auditLog => auditLog.HttpMethod != null && auditLog.HttpMethod.ToLowerInvariant() == httpMethod.ToLowerInvariant()) - .WhereIf(url != null, auditLog => auditLog.Url != null && auditLog.Url.ToLowerInvariant().Contains(url.ToLowerInvariant())) - .WhereIf(userName != null, auditLog => auditLog.UserName != null && auditLog.UserName.ToLowerInvariant() == userName.ToLowerInvariant()) - .WhereIf(applicationName != null, auditLog => auditLog.ApplicationName != null && auditLog.ApplicationName.ToLowerInvariant() == applicationName.ToLowerInvariant()) - .WhereIf(correlationId != null, auditLog => auditLog.CorrelationId != null && auditLog.CorrelationId.ToLowerInvariant() == correlationId.ToLowerInvariant()) + .WhereIf(startTime.HasValue, auditLog => auditLog.ExecutionTime >= startTime) + .WhereIf(endTime.HasValue, auditLog => auditLog.ExecutionTime <= endTime) + .WhereIf(hasException.HasValue && hasException.Value, auditLog => auditLog.Exceptions != null) + .WhereIf(hasException.HasValue && !hasException.Value, auditLog => auditLog.Exceptions == null) + .WhereIf(httpMethod != null, auditLog => auditLog.HttpMethod == httpMethod) + .WhereIf(url != null, auditLog => auditLog.Url != null && auditLog.Url.Contains(url)) + .WhereIf(userName != null, auditLog => auditLog.UserName == userName) + .WhereIf(applicationName != null, auditLog => auditLog.ApplicationName == applicationName) + .WhereIf(correlationId != null, auditLog => auditLog.CorrelationId == correlationId) .WhereIf(httpStatusCode != null && httpStatusCode > 0, auditLog => auditLog.HttpStatusCode == (int?)httpStatusCode) - .WhereIf(maxExecutionDuration != null && maxExecutionDuration > 0, auditLog => auditLog.ExecutionDuration <= maxExecutionDuration) - .WhereIf(minExecutionDuration != null && minExecutionDuration > 0, auditLog => auditLog.ExecutionDuration >= minExecutionDuration); + .WhereIf(maxExecutionDuration != null && maxExecutionDuration.Value > 0, auditLog => auditLog.ExecutionDuration <= maxExecutionDuration) + .WhereIf(minExecutionDuration != null && minExecutionDuration.Value > 0, auditLog => auditLog.ExecutionDuration >= minExecutionDuration); } public override IQueryable WithDetails() diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs index f70bd1deaf..cead3fa2a9 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs @@ -24,6 +24,8 @@ namespace Volo.Abp.AuditLogging.MongoDB string sorting = null, int maxResultCount = 50, int skipCount = 0, + DateTime? startTime = null, + DateTime? endTime = null, string httpMethod = null, string url = null, string userName = null, @@ -36,14 +38,29 @@ namespace Volo.Abp.AuditLogging.MongoDB bool includeDetails = false, CancellationToken cancellationToken = default) { - var query = GetListQuery(httpMethod, url, userName, applicationName, correlationId, maxDuration, minDuration, hasException, httpStatusCode, includeDetails); + var query = GetListQuery( + startTime, + endTime, + httpMethod, + url, + userName, + applicationName, + correlationId, + maxDuration, + minDuration, + hasException, + httpStatusCode, + includeDetails + ); return await query.OrderBy(sorting ?? "executionTime desc").As>() .PageBy>(skipCount, maxResultCount) - .ToListAsync(); + .ToListAsync(GetCancellationToken(cancellationToken)); } public async Task GetCountAsync( + DateTime? startTime = null, + DateTime? endTime = null, string httpMethod = null, string url = null, string userName = null, @@ -55,14 +72,29 @@ namespace Volo.Abp.AuditLogging.MongoDB HttpStatusCode? httpStatusCode = null, CancellationToken cancellationToken = default) { - var query = GetListQuery(httpMethod, url, userName, applicationName, correlationId, maxDuration, minDuration, hasException, httpStatusCode); + var query = GetListQuery( + startTime, + endTime, + httpMethod, + url, + userName, + applicationName, + correlationId, + maxDuration, + minDuration, + hasException, + httpStatusCode + ); - var count = await query.As>().LongCountAsync(); + var count = await query.As>() + .LongCountAsync(GetCancellationToken(cancellationToken)); return count; } private IQueryable GetListQuery( + DateTime? startTime = null, + DateTime? endTime = null, string httpMethod = null, string url = null, string userName = null, @@ -75,13 +107,15 @@ namespace Volo.Abp.AuditLogging.MongoDB bool includeDetails = false) { return GetMongoQueryable() - .WhereIf(hasException.HasValue && hasException.Value, auditLog => auditLog.Exceptions != null && auditLog.Exceptions.Length > 0) - .WhereIf(hasException.HasValue && !hasException.Value, auditLog => auditLog.Exceptions == null || auditLog.Exceptions.Length == 0) - .WhereIf(httpMethod != null, auditLog => auditLog.HttpMethod != null && auditLog.HttpMethod.ToLowerInvariant() == httpMethod.ToLowerInvariant()) - .WhereIf(url != null, auditLog => auditLog.Url != null && auditLog.Url.ToLowerInvariant().Contains(url.ToLowerInvariant())) - .WhereIf(userName != null, auditLog => auditLog.UserName != null && auditLog.UserName.ToLowerInvariant() == userName.ToLowerInvariant()) - .WhereIf(applicationName != null, auditLog => auditLog.ApplicationName != null && auditLog.ApplicationName.ToLowerInvariant() == applicationName.ToLowerInvariant()) - .WhereIf(correlationId != null, auditLog => auditLog.CorrelationId != null && auditLog.CorrelationId.ToLowerInvariant() == correlationId.ToLowerInvariant()) + .WhereIf(startTime.HasValue, auditLog => auditLog.ExecutionTime >= startTime) + .WhereIf(endTime.HasValue, auditLog => auditLog.ExecutionTime <= endTime) + .WhereIf(hasException.HasValue && hasException.Value, auditLog => auditLog.Exceptions != null) + .WhereIf(hasException.HasValue && !hasException.Value, auditLog => auditLog.Exceptions == null) + .WhereIf(httpMethod != null, auditLog => auditLog.HttpMethod == httpMethod) + .WhereIf(url != null, auditLog => auditLog.Url != null && auditLog.Url.Contains(url)) + .WhereIf(userName != null, auditLog => auditLog.UserName == userName) + .WhereIf(applicationName != null, auditLog => auditLog.ApplicationName == applicationName) + .WhereIf(correlationId != null, auditLog => auditLog.CorrelationId == correlationId) .WhereIf(httpStatusCode != null && httpStatusCode > 0, auditLog => auditLog.HttpStatusCode == (int?)httpStatusCode) .WhereIf(maxDuration != null && maxDuration > 0, auditLog => auditLog.ExecutionDuration <= maxDuration) .WhereIf(minDuration != null && minDuration > 0, auditLog => auditLog.ExecutionDuration >= minDuration); diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj index 32ee40e070..f55f447489 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp2.2 + netcoreapp3.0 @@ -13,9 +13,9 @@ - - - + + + diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj index 9c831556a4..7126bf3cef 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp2.2 + netcoreapp3.0 @@ -13,8 +13,8 @@
- - + +
diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj index 7d817c4f6d..e7d0174cc9 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj @@ -3,7 +3,7 @@ - netcoreapp2.2 + netcoreapp3.0 @@ -14,7 +14,7 @@ - + diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj index 31c5d2886c..7dadd76798 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp2.2 + netcoreapp3.0 @@ -12,7 +12,7 @@ - +
diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/DemoAppHangfireModule.cs b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/DemoAppHangfireModule.cs index 27809f3d5c..1afe3f594c 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/DemoAppHangfireModule.cs +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/DemoAppHangfireModule.cs @@ -29,10 +29,11 @@ namespace Volo.Abp.BackgroundJobs.DemoApp.HangFire public override void OnApplicationInitialization(ApplicationInitializationContext context) { - context - .ServiceProvider - .GetRequiredService() - .AddConsole(LogLevel.Debug); + //TODO: Configure console logging + //context + // .ServiceProvider + // .GetRequiredService() + // .AddConsole(LogLevel.Debug); } } } diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj index c629101316..0eba9eeec3 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp2.2 + netcoreapp3.0 diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/DemoAppRabbitMqModule.cs b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/DemoAppRabbitMqModule.cs index 6b1071716b..416bb29a96 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/DemoAppRabbitMqModule.cs +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/DemoAppRabbitMqModule.cs @@ -16,10 +16,11 @@ namespace Volo.Abp.BackgroundJobs.DemoApp.RabbitMq { public override void OnApplicationInitialization(ApplicationInitializationContext context) { - context - .ServiceProvider - .GetRequiredService() - .AddConsole(LogLevel.Debug); + //TODO: Configure console logging + //context + // .ServiceProvider + // .GetRequiredService() + // .AddConsole(LogLevel.Debug); } } } diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj index 46b7ff0ce5..00d239bef2 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp2.2 + netcoreapp3.0 diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj index 1d7fc9fe56..a2a5f008d9 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj @@ -5,7 +5,7 @@ - + diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/DemoAppModule.cs b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/DemoAppModule.cs index 69cfb2aa6f..cb9b532525 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/DemoAppModule.cs +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/DemoAppModule.cs @@ -38,10 +38,11 @@ namespace Volo.Abp.BackgroundJobs.DemoApp public override void OnApplicationInitialization(ApplicationInitializationContext context) { - context - .ServiceProvider - .GetRequiredService() - .AddConsole(LogLevel.Debug); + //TODO: Configure console logging + //context + // .ServiceProvider + // .GetRequiredService() + // .AddConsole(LogLevel.Debug); } } } diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj index 3540aa8e9c..72dc208dc2 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp2.2 + netcoreapp3.0 @@ -11,8 +11,8 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/BackgroundJobRecord.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/BackgroundJobRecord.cs index c3684d9cfe..76106ea468 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/BackgroundJobRecord.cs +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/BackgroundJobRecord.cs @@ -48,7 +48,13 @@ namespace Volo.Abp.BackgroundJobs ///
public virtual BackgroundJobPriority Priority { get; set; } - public BackgroundJobRecord() + private BackgroundJobRecord() + { + + } + + public BackgroundJobRecord(Guid id) + : base(id) { } diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/BackgroundJobsDomainAutoMapperProfile.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/BackgroundJobsDomainAutoMapperProfile.cs index a20a01392b..ebf98bbe70 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/BackgroundJobsDomainAutoMapperProfile.cs +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/BackgroundJobsDomainAutoMapperProfile.cs @@ -8,9 +8,11 @@ namespace Volo.Abp.BackgroundJobs public BackgroundJobsDomainAutoMapperProfile() { CreateMap() + .ConstructUsing(x => new BackgroundJobRecord(x.Id)) .Ignore(record => record.ConcurrencyStamp) - .Ignore(record => record.ExtraProperties) - .ReverseMap(); + .Ignore(record => record.ExtraProperties); + + CreateMap(); } } } diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj index 1b3ed12524..eb92972675 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj index 66ef602232..7932f919e1 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp2.2 + netcoreapp3.0 @@ -12,7 +12,7 @@
- +
diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo/Abp/BackgroundJobs/BackgroundJobStore_Tests.cs b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo/Abp/BackgroundJobs/BackgroundJobStore_Tests.cs new file mode 100644 index 0000000000..caa9a3c445 --- /dev/null +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo/Abp/BackgroundJobs/BackgroundJobStore_Tests.cs @@ -0,0 +1,38 @@ +using System; +using System.Threading.Tasks; +using Shouldly; +using Xunit; + +namespace Volo.Abp.BackgroundJobs +{ + public class BackgroundJobStore_Tests : BackgroundJobsDomainTestBase + { + private readonly IBackgroundJobStore _backgroundJobStore; + + public BackgroundJobStore_Tests() + { + _backgroundJobStore = GetRequiredService(); + } + + [Fact] + public async Task InsertAsync() + { + var jobInfo = new BackgroundJobInfo + { + Id = Guid.NewGuid(), + JobArgs = "args1", + JobName = "name1" + }; + + await _backgroundJobStore.InsertAsync( + jobInfo + ); + + var jobInfo2 = await _backgroundJobStore.FindAsync(jobInfo.Id); + jobInfo2.ShouldNotBeNull(); + jobInfo2.Id.ShouldBe(jobInfo.Id); + jobInfo2.JobArgs.ShouldBe(jobInfo.JobArgs); + jobInfo2.JobName.ShouldBe(jobInfo.JobName); + } + } +} diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj index 7fd7558b02..433301a189 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp2.2 + netcoreapp3.0 @@ -13,10 +13,10 @@ - - - - + + + +
diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj index e999356678..468c1f0665 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp2.2 + netcoreapp3.0 @@ -13,7 +13,7 @@ - + diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj index ce6e3b7c1b..d6dbe4bb8e 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj @@ -3,7 +3,7 @@ - netcoreapp2.2 + netcoreapp3.0 @@ -14,7 +14,7 @@ - + diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo/Abp/BackgroundJobs/BackgroundJobsTestDataBuilder.cs b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo/Abp/BackgroundJobs/BackgroundJobsTestDataBuilder.cs index 347db003a2..dd74854a9c 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo/Abp/BackgroundJobs/BackgroundJobsTestDataBuilder.cs +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo/Abp/BackgroundJobs/BackgroundJobsTestDataBuilder.cs @@ -23,9 +23,8 @@ namespace Volo.Abp.BackgroundJobs public void Build() { _backgroundJobRepository.Insert( - new BackgroundJobRecord + new BackgroundJobRecord(_testData.JobId1) { - Id = _testData.JobId1, JobName = "TestJobName", JobArgs = "{ value: 1 }", NextTryTime = _clock.Now.Subtract(TimeSpan.FromMinutes(1)), @@ -38,9 +37,8 @@ namespace Volo.Abp.BackgroundJobs ); _backgroundJobRepository.Insert( - new BackgroundJobRecord + new BackgroundJobRecord(_testData.JobId2) { - Id = _testData.JobId2, JobName = "TestJobName", JobArgs = "{ value: 2 }", NextTryTime = _clock.Now.AddMinutes(42), @@ -53,9 +51,8 @@ namespace Volo.Abp.BackgroundJobs ); _backgroundJobRepository.Insert( - new BackgroundJobRecord + new BackgroundJobRecord(_testData.JobId3) { - Id = _testData.JobId3, JobName = "TestJobName", JobArgs = "{ value: 3 }", NextTryTime = _clock.Now, diff --git a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj index e658a6a7ec..27fa209d2c 100644 --- a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj +++ b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj @@ -1,13 +1,9 @@  - netstandard2.0 + netstandard2.1 - - - - diff --git a/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.csproj b/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.csproj index 1192eda1c2..0f21d360e4 100644 --- a/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.csproj +++ b/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netstandard2.0 diff --git a/modules/blogging/app/Volo.BloggingTestApp/BloggingTestAppModule.cs b/modules/blogging/app/Volo.BloggingTestApp/BloggingTestAppModule.cs index c42ec7eedc..7a7ecc9046 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/BloggingTestAppModule.cs +++ b/modules/blogging/app/Volo.BloggingTestApp/BloggingTestAppModule.cs @@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Localization; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; using Swashbuckle.AspNetCore.Swagger; using Volo.Abp; @@ -144,26 +145,19 @@ namespace Volo.BloggingTestApp app.UseVirtualFiles(); - app.UseSwagger(); - app.UseSwaggerUI(options => - { - options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support APP API"); - }); + app.UseRouting(); + + //app.UseSwagger(); + //app.UseSwaggerUI(options => + //{ + // options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support APP API"); + //}); app.UseAuthentication(); app.UseRequestLocalization(app.ApplicationServices.GetRequiredService>().Value); - app.UseMvc(routes => - { - routes.MapRoute( - name: "defaultWithArea", - template: "{area}/{controller=Home}/{action=Index}/{id?}"); - - routes.MapRoute( - name: "default", - template: "{controller=Home}/{action=Index}/{id?}"); - }); + app.UseMvcWithDefaultRouteAndArea(); using (var scope = context.ServiceProvider.CreateScope()) diff --git a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj index deffaccf44..a0df8b49dc 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj +++ b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 InProcess @@ -13,11 +13,6 @@ - - - - - diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Localization/Resources/Blogging/ApplicationContracts/pt-BR.json b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Localization/Resources/Blogging/ApplicationContracts/pt-BR.json index a3a4b1fa39..364e0303e5 100644 --- a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Localization/Resources/Blogging/ApplicationContracts/pt-BR.json +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Localization/Resources/Blogging/ApplicationContracts/pt-BR.json @@ -6,7 +6,7 @@ "Permission:Posts": "Postagens", "Permission:Tags": "Etiquetas", "Permission:Comments": "Comentários", - "Permission:Management": "Gerencimento", + "Permission:Management": "Gerenciamento", "Permission:Edit": "Editar", "Permission:Create": "Criar", "Permission:Delete": "Excluir" diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj index c5a4990831..e466b4dc99 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj @@ -11,9 +11,6 @@ - - - diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj index 77f25274f0..122385c76f 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 Volo.Blogging.EntityFrameworkCore Volo.Blogging.EntityFrameworkCore diff --git a/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.csproj b/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.csproj index a736b41226..550d58bcec 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.csproj +++ b/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Blogging.HttpApi.Client Volo.Blogging.HttpApi.Client diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj index b9c9f3933b..db90344d09 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj +++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Blogging.HttpApi Volo.Blogging.HttpApi diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/Detail.cshtml b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/Detail.cshtml index e74ff987ea..4c945e8aac 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/Detail.cshtml +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/Detail.cshtml @@ -23,302 +23,297 @@ } - +
+ +
+
+
+
+
+
+

+ @Model.Post.Title +

-
-
-
-
-
-
-
-
-

- @foreach (var tag in Model.Post.Tags) - { - @tag.Name - } -

-

- @Model.Post.Title -

-
-
- -
-
+
+
+
+ +
+
+
+

+ @Html.Raw(RenderMarkdownToHtml(Model.Post.Content)) +

+
+
-
-
-
-
-

- @Html.Raw(RenderMarkdownToHtml(Model.Post.Content)) +

+
+ @if (Model.Post.Tags.Count > 0) + { +
+
@L["TagsInThisArticle"]
+ @foreach (var tag in Model.Post.Tags) + { + @tag.Name + } +
+ } -

-
-
-
+ @if (Model.CommentsWithReplies.Count > 0) + { + + +

@L["CommentWithCount", @Model.CommentCount]

+ @if (hasCommentingPermission) + { + @L["LeaveComment"] + } + else + { + @L["LeaveComment"] + } +
+
+ } -
-
- @if (Model.Post.Tags.Count > 0) - { -
-
@L["TagsInThisArticle"]
- @foreach (var tag in Model.Post.Tags) +
+ @foreach (var commentWithRepliesDto in Model.CommentsWithReplies) { - @tag.Name - } -
- } +
+ +
+
+ @(commentWithRepliesDto.Comment.Writer == null ? "" : commentWithRepliesDto.Comment.Writer.UserName) + @ConvertDatetimeToTimeAgo(commentWithRepliesDto.Comment.CreationTime) +
+

+ @commentWithRepliesDto.Comment.Text +

+
+ @if (hasCommentingPermission) + { + + @L["Reply"] + + } - @if (Model.CommentsWithReplies.Count > 0) - { - - -

@L["CommentWithCount", @Model.CommentCount]

- @if (hasCommentingPermission) - { - @L["LeaveComment"] - } - else - { - @L["LeaveComment"] - } -
-
- } + @if (await Authorization.IsGrantedAsync(BloggingPermissions.Comments.Delete)) + { + | + + @L["Delete"] + + } -
- @foreach (var commentWithRepliesDto in Model.CommentsWithReplies) - { -
- -
-
- @(commentWithRepliesDto.Comment.Writer == null ? "" : commentWithRepliesDto.Comment.Writer.UserName) - @ConvertDatetimeToTimeAgo(commentWithRepliesDto.Comment.CreationTime) -
-

- @commentWithRepliesDto.Comment.Text -

-
+ @if (await Authorization.IsGrantedAsync(BloggingPermissions.Comments.Update) || (CurrentUser.Id == commentWithRepliesDto.Comment.CreatorId)) + { + | + + @L["Edit"] + + } +
@if (hasCommentingPermission) { - - @L["Reply"] - - } +
+
+

+ @L["ReplyTo", commentWithRepliesDto.Comment.Writer == null ? "" : commentWithRepliesDto.Comment.Writer.UserName] - @if (await Authorization.IsGrantedAsync(BloggingPermissions.Comments.Delete)) - { - | - - @L["Delete"] - - } +

+
+
+ + +
+ +
+ + + +
+
+
+ } @if (await Authorization.IsGrantedAsync(BloggingPermissions.Comments.Update) || (CurrentUser.Id == commentWithRepliesDto.Comment.CreatorId)) { - | - - @L["Edit"] - +
+
+
+
+ +
+ +
+ + + +
+
+
} -
- @if (hasCommentingPermission) - { -
-
-

- @L["ReplyTo", commentWithRepliesDto.Comment.Writer == null ? "" : commentWithRepliesDto.Comment.Writer.UserName] + @foreach (var reply in commentWithRepliesDto.Replies) + { +
+ +
+
+ @(reply.Writer == null ? "" : reply.Writer.UserName) + @ConvertDatetimeToTimeAgo(reply.CreationTime) +
+

+ @reply.Text +

+
-

-
-
- - + @if (hasCommentingPermission) + { + + @L["Reply"] + + } + @if (await Authorization.IsGrantedAsync(BloggingPermissions.Comments.Delete) || (CurrentUser.Id == commentWithRepliesDto.Comment.CreatorId)) + { + | + + @L["Delete"] + + } -
- -
- - - -
-
-
- } - @if (await Authorization.IsGrantedAsync(BloggingPermissions.Comments.Update) || (CurrentUser.Id == commentWithRepliesDto.Comment.CreatorId)) - { -
-
-
-
- -
- -
- - - -
-
-
- } - - @foreach (var reply in commentWithRepliesDto.Replies) - { -
- -
-
- @(reply.Writer == null ? "" : reply.Writer.UserName) - @ConvertDatetimeToTimeAgo(reply.CreationTime) -
-

- @reply.Text -

-
+ @if (await Authorization.IsGrantedAsync(BloggingPermissions.Comments.Update) || (CurrentUser.Id == commentWithRepliesDto.Comment.CreatorId)) + { + | + + @L["Edit"] + + } +
@if (hasCommentingPermission) { - - @L["Reply"] - - } - @if (await Authorization.IsGrantedAsync(BloggingPermissions.Comments.Delete) || (CurrentUser.Id == commentWithRepliesDto.Comment.CreatorId)) - { - | - - @L["Delete"] - +
+
+

+ @L["ReplyTo", commentWithRepliesDto.Comment.Writer == null ? "" : commentWithRepliesDto.Comment.Writer.UserName] +

+
+
+ + +
+ +
+ + + +
+
+
} - @if (await Authorization.IsGrantedAsync(BloggingPermissions.Comments.Update) || (CurrentUser.Id == commentWithRepliesDto.Comment.CreatorId)) { - | - - @L["Edit"] - +
+
+
+
+ +
+ +
+ + + +
+
+
}
+
+ } +
+
+ } +
- @if (hasCommentingPermission) - { -
-
-

- @L["ReplyTo", commentWithRepliesDto.Comment.Writer == null ? "" : commentWithRepliesDto.Comment.Writer.UserName] -

-
-
- - -
- -
- - - -
-
-
- } - @if (await Authorization.IsGrantedAsync(BloggingPermissions.Comments.Update) || (CurrentUser.Id == commentWithRepliesDto.Comment.CreatorId)) - { -
-
-
-
- -
- -
- - - -
-
-
- } + @if (hasCommentingPermission) + { +
+
+

@L["LeaveComment"]

+
+
+
+
+ + +
+
-
- } + + +
} + else + { + @L["LeaveComment"] + }
- - @if (hasCommentingPermission) - { -
-
-

@L["LeaveComment"]

-
-
-
-
- - -
- -
- - -
-
-
- } - else - { - @L["LeaveComment"] - }
diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/Index.cshtml b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/Index.cshtml index 58dbbef447..20ebc1887f 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/Index.cshtml +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/Index.cshtml @@ -22,205 +22,192 @@ } -
-
-
-
-
-
- @for (var index = 0; index < Model.Posts.Count && index < 1; index++) - { - var post = Model.Posts[index]; -
-
- - - -
-
-

- @foreach (var tag in post.Tags) - { - @tag.Name - } -

-

- @post.Title -

-

- @Html.Raw(GetShortContent(post.Content)) -

- @L["ContinueReading"] - -
- @if (post.Writer != null) - { -
-
-
+ } + +
-
+
- @if (await Authorization.IsGrantedAsync(BloggingPermissions.Posts.Create)) - { - @L["CreateANewPost"] - } + @if (await Authorization.IsGrantedAsync(BloggingPermissions.Posts.Create)) + { + @L["CreateANewPost"] + } -
- @for (var index = 0; index < Model.Posts.Count && index < 3; index++) - { - var post = Model.Posts[index]; -
-
-
-
-
- - - -
+
+ @for (var index = 0; index < Model.Posts.Count && index < 3; index++) + { + var post = Model.Posts[index]; +
+
+
+
+ -
-

- @post.Title -

-
- +
+

+ @post.Title +

+
+
-
-
- } -
+
+
+
+ }
+
-
-
-
- @if (Model.Posts.Count > 3) - { -
-

@L["LastPosts"]

-
-
- @for (var index = 3; index < Model.Posts.Count; index++) - { - var post = Model.Posts[index]; - var oddPost = index % 2 == 1; +
+
+
+ @if (Model.Posts.Count > 3) + { +
+

@L["LastPosts"]

+
+
+ @for (var index = 3; index < Model.Posts.Count; index++) + { + var post = Model.Posts[index]; + var oddPost = index % 2 == 1; -
-
-
-
- - - -
+
+
+
+ -
-

- @foreach (var tag in post.Tags) - { - @tag.Name - } -

-

- @post.Title -

-

- @Html.Raw(GetShortContent(post.Content)) -

-
- - } -
- } -
+
+ } +
+ } +
- @if (Model.PopularTags.Count > 0) - { -
-
-

@L["PopularTags"]

-
- +
+ }
+
diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Scripts/blog.js b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Scripts/blog.js index 68b758e59a..b78c8132aa 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Scripts/blog.js +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Scripts/blog.js @@ -7,15 +7,15 @@ } function handleImages() { - if ($(window).width() > 767) { - $(".box-articles .img-container").each(function () { - var squareWidth = $(this).width(); - $(this).css("height", squareWidth); - }); - } - else { - $(".box-articles .img-container").css("height", "auto"); - } + //if ($(window).width() > 767) { + // $(".box-articles .img-container").each(function () { + // var squareWidth = $(this).width(); + // $(this).css("height", squareWidth); + // }); + //} + //else { + // $(".box-articles .img-container").css("height", "auto"); + //} } function handleOwlCarousel() { diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_bootstrap-overwrite.scss b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_bootstrap-overwrite.scss index 8e7524ac3a..0460c61469 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_bootstrap-overwrite.scss +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_bootstrap-overwrite.scss @@ -11,13 +11,13 @@ p { h1, h2, h3, h4, h5, h6, .tab-title { font-family: Helvetica, Arial, sans-serif; font-weight: 700; -} +} h1 { font-size: 2.25em; - margin: 1.5rem 0 .75rem; + margin: 1rem 0 1.5rem; } h2, .tab-title { - font-size: 1.75em; + font-size: 1.5em; margin: 1.5rem 0 .75rem; } h3 { diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_custom.scss b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_custom.scss index b33865b906..033fc2059a 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_custom.scss +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_custom.scss @@ -1,23 +1,4 @@ @media (min-width: 767px) { - .box-articles { - .img-container { - position: relative; - overflow: hidden; - } - .img-container img { - position: absolute; - left: 50%; - top: 50%; - height: 100%; - width: auto; - -webkit-transform: translate(-50%,-50%); - -ms-transform: translate(-50%,-50%); - transform: translate(-50%,-50%); - max-width: initial; - } - .img-container img.portrait { - width: 100%; - height: auto; - } + .box-articles { } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_header.scss b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_header.scss index d5b34d7de5..c5fadba58b 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_header.scss +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_header.scss @@ -1,7 +1,4 @@ -.vs-blog { - -} .vs-blog-title { padding-bottom: 15px; margin-bottom: 25px; diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_home.css b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_home.css index 918d409539..9fc6d4693d 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_home.css +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_home.css @@ -3,60 +3,26 @@ .hero-section .hero-articles { position: relative; overflow: hidden; } - .hero-section .hero-articles .hero-content { - position: absolute; - left: 12%; - right: 12%; - bottom: 80px; - z-index: 4; - text-align: center; } - .hero-section .hero-articles .hero-content h2 { - margin-top: 0; - font-size: 2.5em; - font-weight: bold; } - .hero-section .hero-articles .hero-content a { - color: white; - text-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5); } - .hero-section .hero-articles .hero-content p { - color: white; } + .hero-section .hero-articles .hero-content h2 { + margin-top: .5rem; + font-size: 2em; + font-weight: bold; } .hero-section .hero-articles .tags .tag { background: rgba(208, 208, 208, 0.3); color: #fff !important; } .hero-section .hero-articles .tags .tag:hover { background: white; color: black !important; } - .hero-section .hero-articles .article-owner { - text-align: center; - position: relative; - z-index: 12; } - .hero-section .hero-articles .article-owner .article-infos { - color: black; } - .hero-section .hero-articles .article-owner .article-infos a { - color: black; } - .hero-section .hero-articles .article-owner .article-infos .seperator { - margin: 0 4px; - color: rgba(255, 255, 255, 0.2); } - .hero-section .hero-articles .article-owner .article-infos img.article-avatar { - width: 64px; - margin: -25px 10px 0px 0; - border: 3px solid #fff; - display: inline-block; - border-radius: 50%; } - .hero-section .hero-articles .img-container { - min-height: 320px; } - .hero-section .hero-articles .img-container img { - filter: grayscale(10%); } - .hero-section .hero-articles .img-container::after { - content: ""; - display: block; - position: absolute; - z-index: 1; - bottom: 0px; - width: 100%; - top: 1% !important; - background: linear-gradient(to bottom, transparent 0, rgba(0, 0, 0, 0.75) 89%, rgba(0, 0, 0, 0.78) 93%) !important; - transition: .2s all ease-in-out; - opacity: .9; } + .hero-section .hero-articles .article-owner .article-infos { + color: black; } + .hero-section .hero-articles .article-owner .article-infos .seperator { + margin: 0 4px; + color: rgba(255, 255, 255, 0.2); } + .hero-section .hero-articles .article-owner .article-infos img.article-avatar { + display: inline-block; + border-radius: 50%; } + .hero-section .hero-articles .img-container img { + width: 100%; } .hero-section .hero-articles:hover .img-container::after { opacity: 1; } @@ -68,11 +34,16 @@ margin: 0 4px; color: rgba(0, 0, 0, 0.2); } .article-owner .article-infos img.article-avatar { - width: 30px; + width: 48px; margin: -1px 4px 0 0; display: inline-block; border-radius: 50%; } +.user-card h5 span { + font-weight: 300; + opacity: .5; + padding: 0 5px; } + .card-articles .card-content { padding: 10px 0px 10px; } .card-articles .card-content h3 { @@ -111,19 +82,32 @@ .user-link-icons a:hover { color: #fff; } -.tags .tag { - display: inline-block; - padding: 2px 8px; - background: rgba(208, 208, 208, 0.3); - border-radius: 30px; - margin: 0 1px 3px 0; - color: #b1b1b1 !important; - font-size: .7em; - line-height: 1.6em; - text-transform: uppercase; } - .tags .tag:hover { - background: black; - color: white !important; } +.tags { + margin: 2rem 0; + padding: 0 0 1.25rem 0; } + .tags .tag { + display: inline-block; + padding: 4px 12px; + background: rgba(208, 208, 208, 0.3); + border-radius: 4px; + margin: 0 2px 3px 0; + color: #b1b1b1 !important; + font-size: .85em; + line-height: 1.6em; + text-transform: uppercase; + transition: .25s; + text-decoration: none; } + .tags .tag:hover { + background: black; + color: white !important; } + +.hero-section .tags { + margin: 1rem 0; + padding: 0 0 .5rem 0; } + +.list-group-item .tags { + margin: 1rem 0 0; + padding: 0 0; } .popular-tags a { display: block; diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_home.min.css b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_home.min.css index 8a2ea9b03a..b4d8c94f86 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_home.min.css +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_home.min.css @@ -1 +1 @@ -.hero-section{padding:0;}.hero-section .hero-articles{position:relative;overflow:hidden;}.hero-section .hero-articles .hero-content{position:absolute;left:12%;right:12%;bottom:80px;z-index:4;text-align:center;}.hero-section .hero-articles .hero-content h2{margin-top:0;font-size:2.5em;font-weight:bold;}.hero-section .hero-articles .hero-content a{color:#fff;text-shadow:0 0 20px rgba(0,0,0,.5);}.hero-section .hero-articles .hero-content p{color:#fff;}.hero-section .hero-articles .tags .tag{background:rgba(208,208,208,.3);color:#fff !important;}.hero-section .hero-articles .tags .tag:hover{background:#fff;color:#000 !important;}.hero-section .hero-articles .article-owner{text-align:center;position:relative;z-index:12;}.hero-section .hero-articles .article-owner .article-infos{color:#000;}.hero-section .hero-articles .article-owner .article-infos a{color:#000;}.hero-section .hero-articles .article-owner .article-infos .seperator{margin:0 4px;color:rgba(255,255,255,.2);}.hero-section .hero-articles .article-owner .article-infos img.article-avatar{width:64px;margin:-25px 10px 0 0;border:3px solid #fff;display:inline-block;border-radius:50%;}.hero-section .hero-articles .img-container{min-height:320px;}.hero-section .hero-articles .img-container img{filter:grayscale(10%);}.hero-section .hero-articles .img-container::after{content:"";display:block;position:absolute;z-index:1;bottom:0;width:100%;top:1% !important;background:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.75) 89%,rgba(0,0,0,.78) 93%) !important;transition:.2s all ease-in-out;opacity:.9;}.hero-section .hero-articles:hover .img-container::after{opacity:1;}.article-owner .article-infos{color:#000;}.article-owner .article-infos a{color:rgba(0,0,0,.6);}.article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}.article-owner .article-infos img.article-avatar{width:30px;margin:-1px 4px 0 0;display:inline-block;border-radius:50%;}.card-articles .card-content{padding:10px 0 10px;}.card-articles .card-content h3{margin:10px 0;}.card-articles .card-content h3 a{font-weight:700;}.card-articles .article-owner{text-align:left;}.card-articles .article-owner .article-infos{color:#000;}.card-articles .article-owner .article-infos a{color:rgba(0,0,0,.6);}.card-articles .article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}.card-articles .article-owner .article-infos img.article-avatar{width:30px;margin:-1px 4px 0 0;display:inline-block;border-radius:50%;}.article-owner{font-size:.85em;}.user-link-icons{position:absolute;right:18px;top:15px;z-index:3;}.user-link-icons a{display:inline-block;color:#eee;margin-left:12px;font-size:1.25em;}.user-link-icons a:hover{color:#fff;}.tags .tag{display:inline-block;padding:2px 8px;background:rgba(208,208,208,.3);border-radius:30px;margin:0 1px 3px 0;color:#b1b1b1 !important;font-size:.7em;line-height:1.6em;text-transform:uppercase;}.tags .tag:hover{background:#000;color:#fff !important;}.popular-tags a{display:block;font-size:.9em;}.popular-tags a span{float:right;opacity:.3;font-size:.9em;}.img-container{position:relative;overflow:hidden;border-radius:4px;background:#dcdcdc;} \ No newline at end of file +.hero-section{padding:0;}.hero-section .hero-articles{position:relative;overflow:hidden;}.hero-section .hero-articles .hero-content h2{margin-top:.5rem;font-size:2em;font-weight:bold;}.hero-section .hero-articles .tags .tag{background:rgba(208,208,208,.3);color:#fff !important;}.hero-section .hero-articles .tags .tag:hover{background:#fff;color:#000 !important;}.hero-section .hero-articles .article-owner .article-infos{color:#000;}.hero-section .hero-articles .article-owner .article-infos .seperator{margin:0 4px;color:rgba(255,255,255,.2);}.hero-section .hero-articles .article-owner .article-infos img.article-avatar{display:inline-block;border-radius:50%;}.hero-section .hero-articles .img-container img{width:100%;}.hero-section .hero-articles:hover .img-container::after{opacity:1;}.article-owner .article-infos{color:#000;}.article-owner .article-infos a{color:rgba(0,0,0,.6);}.article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}.article-owner .article-infos img.article-avatar{width:48px;margin:-1px 4px 0 0;display:inline-block;border-radius:50%;}.user-card h5 span{font-weight:300;opacity:.5;padding:0 5px;}.card-articles .card-content{padding:10px 0 10px;}.card-articles .card-content h3{margin:10px 0;}.card-articles .card-content h3 a{font-weight:700;}.card-articles .article-owner{text-align:left;}.card-articles .article-owner .article-infos{color:#000;}.card-articles .article-owner .article-infos a{color:rgba(0,0,0,.6);}.card-articles .article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}.card-articles .article-owner .article-infos img.article-avatar{width:30px;margin:-1px 4px 0 0;display:inline-block;border-radius:50%;}.article-owner{font-size:.85em;}.user-link-icons{position:absolute;right:18px;top:15px;z-index:3;}.user-link-icons a{display:inline-block;color:#eee;margin-left:12px;font-size:1.25em;}.user-link-icons a:hover{color:#fff;}.tags{margin:2rem 0;padding:0 0 1.25rem 0;}.tags .tag{display:inline-block;padding:4px 12px;background:rgba(208,208,208,.3);border-radius:4px;margin:0 2px 3px 0;color:#b1b1b1 !important;font-size:.85em;line-height:1.6em;text-transform:uppercase;transition:.25s;text-decoration:none;}.tags .tag:hover{background:#000;color:#fff !important;}.hero-section .tags{margin:1rem 0;padding:0 0 .5rem 0;}.list-group-item .tags{margin:1rem 0 0;padding:0 0;}.popular-tags a{display:block;font-size:.9em;}.popular-tags a span{float:right;opacity:.3;font-size:.9em;}.img-container{position:relative;overflow:hidden;border-radius:4px;background:#dcdcdc;} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_home.scss b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_home.scss index 70c2ee94f6..f447a4b77f 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_home.scss +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_home.scss @@ -5,28 +5,12 @@ position: relative; overflow: hidden; - .hero-content { - position: absolute; - left: 12%; - right: 12%; - bottom: 80px; - z-index: 4; - text-align: center; - + .hero-content { h2 { - margin-top: 0; - font-size: 2.5em; + margin-top: .5rem; + font-size: 2em; font-weight: bold; } - - a { - color: white; - text-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5); - } - - p { - color: white; - } } .tags { @@ -41,52 +25,27 @@ } } - .article-owner { - text-align: center; - position: relative; - z-index: 12; - + .article-owner { .article-infos { - color: black; + color: black; - a { - color: black; - } .seperator { margin: 0 4px; color: rgba(255, 255, 255, 0.2); } - img.article-avatar { - width: 64px; - margin: -25px 10px 0px 0; - border: 3px solid #fff; + img.article-avatar { display: inline-block; border-radius: 50%; } } } - .img-container { - min-height: 320px; - + .img-container { img { - filter: grayscale(10%); - } - - &::after { - content: ""; - display: block; - position: absolute; - z-index: 1; - bottom: 0px; width: 100%; - top: 1% !important; - background: linear-gradient(to bottom, transparent 0, rgba(0, 0, 0, 0.75) 89%, rgba(0, 0, 0, 0.78) 93%) !important; - transition: .2s all ease-in-out; - opacity: .9; - } + } } &:hover { @@ -97,61 +56,78 @@ } } } -} +} -.article-owner { +.article-owner { .article-infos { color: #000; + a { color: rgba(0, 0, 0, 0.6); } + .seperator { margin: 0 4px; color: rgba(0, 0, 0, 0.2); } - img.article-avatar { - width: 30px; + + img.article-avatar { + width: 48px; margin: -1px 4px 0 0; display: inline-block; border-radius: 50%; } } -} - +} -.card-articles { - .card-content - { +.user-card { + h5 { + span { + font-weight: 300; + opacity: .5; + padding: 0 5px; + } + } +} +.card-articles { + .card-content { padding: 10px 0px 10px; + h3 { margin: 10px 0; + a { - font-weight: 700; + font-weight: 700; } } } - .article-owner { - text-align: left; + + .article-owner { + text-align: left; + .article-infos { color: #000; + a { color: rgba(0, 0, 0, 0.6); } + .seperator { margin: 0 4px; color: rgba(0, 0, 0, 0.2); } - img.article-avatar { + + img.article-avatar { width: 30px; margin: -1px 4px 0 0; display: inline-block; border-radius: 50%; } } - } + } } - -.article-owner { + +.article-owner { font-size: .85em; } @@ -160,11 +136,13 @@ right: 18px; top: 15px; z-index: 3; - a { + + a { display: inline-block; color: #eee; margin-left: 12px; font-size: 1.25em; + &:hover { color: #fff; } @@ -172,16 +150,21 @@ } .tags { + margin: 2rem 0; + padding: 0 0 1.25rem 0; + .tag { display: inline-block; - padding: 2px 8px; + padding: 4px 12px; background: rgba(208, 208, 208, 0.3); - border-radius: 30px; - margin: 0 1px 3px 0; + border-radius: 4px; + margin: 0 2px 3px 0; color: #b1b1b1 !important; - font-size: .7em; + font-size: .85em; line-height: 1.6em; text-transform: uppercase; + transition: .25s; + text-decoration: none; &:hover { background: black; @@ -189,6 +172,18 @@ } } } +.hero-section { + .tags { + margin: 1rem 0; + padding: 0 0 .5rem 0; + } +} +.list-group-item { + .tags { + margin: 1rem 0 0; + padding: 0 0; + } +} .popular-tags { a { display: block; @@ -206,7 +201,6 @@ .img-container { position: relative; overflow: hidden; - border-radius: 4px; - background: gainsboro; -} - \ No newline at end of file + border-radius: 4px; + background: gainsboro; +} diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_post.scss b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_post.scss index de45e096e6..7e94b34d11 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_post.scss +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/_post.scss @@ -41,41 +41,48 @@ } } -.comment-avatar { - max-width: 64px; -} -.answer-avatar { - max-width: 48px; -} .media { font-size: .95em; .media { font-size: .95em; } + } .comment-area { + background: #f5f5f5; + margin: 1.5rem 0; + padding: 10px; + .comment-owner { - margin-bottom: 2px; + margin-bottom: 4px; + margin-top: 8px; span { font-weight: 300; - color: #999; - font-size: .8em; + opacity: .5; + padding: 0 5px; } } + .media { + background: #fff; + margin: 1px; + border-radius: 4px; + } + > .media { - padding: 30px 0; + padding: 30px; border-bottom: 1px solid #f1f1f1; .media { - padding: 20px 0; + padding: 20px 0px 0px; } } - .comment-buttons { - padding: 4px 8px; + .comment-buttons { + padding: 4px 0; + font-size: .96em; .seperator { color: #ddd; @@ -94,10 +101,13 @@ background: #999; } } + a { - opacity: .5; + opacity: .65; + margin-right: 10px; + &:hover { - opacity: .75; + opacity: 1; } } } @@ -111,6 +121,6 @@ } .answer-avatar { - width: 48px; + width: 64px; } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/blog.css b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/blog.css index 8053928f76..bae873b4bb 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/blog.css +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/blog.css @@ -16,9 +16,9 @@ font-weight: 700; } div.vs-blog h1 { font-size: 2.25em; - margin: 1.5rem 0 .75rem; } + margin: 1rem 0 1.5rem; } div.vs-blog h2, div.vs-blog .tab-title { - font-size: 1.75em; + font-size: 1.5em; margin: 1.5rem 0 .75rem; } div.vs-blog h3 { font-size: 1.5em; @@ -90,60 +90,26 @@ div.vs-blog .hero-section .hero-articles { position: relative; overflow: hidden; } - div.vs-blog .hero-section .hero-articles .hero-content { - position: absolute; - left: 12%; - right: 12%; - bottom: 80px; - z-index: 4; - text-align: center; } - div.vs-blog .hero-section .hero-articles .hero-content h2 { - margin-top: 0; - font-size: 2.5em; - font-weight: bold; } - div.vs-blog .hero-section .hero-articles .hero-content a { - color: white; - text-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5); } - div.vs-blog .hero-section .hero-articles .hero-content p { - color: white; } + div.vs-blog .hero-section .hero-articles .hero-content h2 { + margin-top: .5rem; + font-size: 2em; + font-weight: bold; } div.vs-blog .hero-section .hero-articles .tags .tag { background: rgba(208, 208, 208, 0.3); color: #fff !important; } div.vs-blog .hero-section .hero-articles .tags .tag:hover { background: white; color: black !important; } - div.vs-blog .hero-section .hero-articles .article-owner { - text-align: center; - position: relative; - z-index: 12; } - div.vs-blog .hero-section .hero-articles .article-owner .article-infos { - color: black; } - div.vs-blog .hero-section .hero-articles .article-owner .article-infos a { - color: black; } - div.vs-blog .hero-section .hero-articles .article-owner .article-infos .seperator { - margin: 0 4px; - color: rgba(255, 255, 255, 0.2); } - div.vs-blog .hero-section .hero-articles .article-owner .article-infos img.article-avatar { - width: 64px; - margin: -25px 10px 0px 0; - border: 3px solid #fff; - display: inline-block; - border-radius: 50%; } - div.vs-blog .hero-section .hero-articles .img-container { - min-height: 320px; } - div.vs-blog .hero-section .hero-articles .img-container img { - filter: grayscale(10%); } - div.vs-blog .hero-section .hero-articles .img-container::after { - content: ""; - display: block; - position: absolute; - z-index: 1; - bottom: 0px; - width: 100%; - top: 1% !important; - background: linear-gradient(to bottom, transparent 0, rgba(0, 0, 0, 0.75) 89%, rgba(0, 0, 0, 0.78) 93%) !important; - transition: .2s all ease-in-out; - opacity: .9; } + div.vs-blog .hero-section .hero-articles .article-owner .article-infos { + color: black; } + div.vs-blog .hero-section .hero-articles .article-owner .article-infos .seperator { + margin: 0 4px; + color: rgba(255, 255, 255, 0.2); } + div.vs-blog .hero-section .hero-articles .article-owner .article-infos img.article-avatar { + display: inline-block; + border-radius: 50%; } + div.vs-blog .hero-section .hero-articles .img-container img { + width: 100%; } div.vs-blog .hero-section .hero-articles:hover .img-container::after { opacity: 1; } div.vs-blog .article-owner .article-infos { @@ -154,10 +120,14 @@ margin: 0 4px; color: rgba(0, 0, 0, 0.2); } div.vs-blog .article-owner .article-infos img.article-avatar { - width: 30px; + width: 48px; margin: -1px 4px 0 0; display: inline-block; border-radius: 50%; } + div.vs-blog .user-card h5 span { + font-weight: 300; + opacity: .5; + padding: 0 5px; } div.vs-blog .card-articles .card-content { padding: 10px 0px 10px; } div.vs-blog .card-articles .card-content h3 { @@ -192,19 +162,30 @@ font-size: 1.25em; } div.vs-blog .user-link-icons a:hover { color: #fff; } - div.vs-blog .tags .tag { - display: inline-block; - padding: 2px 8px; - background: rgba(208, 208, 208, 0.3); - border-radius: 30px; - margin: 0 1px 3px 0; - color: #b1b1b1 !important; - font-size: .7em; - line-height: 1.6em; - text-transform: uppercase; } - div.vs-blog .tags .tag:hover { - background: black; - color: white !important; } + div.vs-blog .tags { + margin: 2rem 0; + padding: 0 0 1.25rem 0; } + div.vs-blog .tags .tag { + display: inline-block; + padding: 4px 12px; + background: rgba(208, 208, 208, 0.3); + border-radius: 4px; + margin: 0 2px 3px 0; + color: #b1b1b1 !important; + font-size: .85em; + line-height: 1.6em; + text-transform: uppercase; + transition: .25s; + text-decoration: none; } + div.vs-blog .tags .tag:hover { + background: black; + color: white !important; } + div.vs-blog .hero-section .tags { + margin: 1rem 0; + padding: 0 0 .5rem 0; } + div.vs-blog .list-group-item .tags { + margin: 1rem 0 0; + padding: 0 0; } div.vs-blog .popular-tags a { display: block; font-size: .9em; } @@ -248,63 +229,55 @@ div.vs-blog .post-detail .post-content .lead { font-size: 1.125em; color: #111; } - div.vs-blog .comment-avatar { - max-width: 64px; } - div.vs-blog .answer-avatar { - max-width: 48px; } div.vs-blog .media { font-size: .95em; } div.vs-blog .media .media { font-size: .95em; } - div.vs-blog .comment-area .comment-owner { - margin-bottom: 2px; } - div.vs-blog .comment-area .comment-owner span { - font-weight: 300; - color: #999; - font-size: .8em; } - div.vs-blog .comment-area > .media { - padding: 30px 0; - border-bottom: 1px solid #f1f1f1; } - div.vs-blog .comment-area > .media .media { - padding: 20px 0; } - div.vs-blog .comment-area .comment-buttons { - padding: 4px 8px; } - div.vs-blog .comment-area .comment-buttons .seperator { - color: #ddd; - margin: 0 8px; } - div.vs-blog .comment-area .comment-buttons .count { - color: #fff; - background: #ddd; - margin-left: 5px; - padding: 1px 3px; - font-size: 10px; - border-radius: 3px; } - div.vs-blog .comment-area .comment-buttons .count.count-up { - background: #999; } - div.vs-blog .comment-area .comment-buttons a { - opacity: .5; } - div.vs-blog .comment-area .comment-buttons a:hover { - opacity: .75; } - div.vs-blog .comment-area p { - margin-bottom: 6px; } - div.vs-blog .comment-area .comment-avatar { - width: 64px; } - div.vs-blog .comment-area .answer-avatar { - width: 48px; } - @media (min-width: 767px) { - div.vs-blog .box-articles .img-container { - position: relative; - overflow: hidden; } - div.vs-blog .box-articles .img-container img { - position: absolute; - left: 50%; - top: 50%; - height: 100%; - width: auto; - -webkit-transform: translate(-50%, -50%); - -ms-transform: translate(-50%, -50%); - transform: translate(-50%, -50%); - max-width: initial; } - div.vs-blog .box-articles .img-container img.portrait { - width: 100%; - height: auto; } } + div.vs-blog .comment-area { + background: #f5f5f5; + margin: 1.5rem 0; + padding: 10px; } + div.vs-blog .comment-area .comment-owner { + margin-bottom: 4px; + margin-top: 8px; } + div.vs-blog .comment-area .comment-owner span { + font-weight: 300; + opacity: .5; + padding: 0 5px; } + div.vs-blog .comment-area .media { + background: #fff; + margin: 1px; + border-radius: 4px; } + div.vs-blog .comment-area > .media { + padding: 30px; + border-bottom: 1px solid #f1f1f1; } + div.vs-blog .comment-area > .media .media { + padding: 20px 0px 0px; } + div.vs-blog .comment-area .comment-buttons { + padding: 4px 0; + font-size: .96em; } + div.vs-blog .comment-area .comment-buttons .seperator { + color: #ddd; + margin: 0 8px; } + div.vs-blog .comment-area .comment-buttons .count { + color: #fff; + background: #ddd; + margin-left: 5px; + padding: 1px 3px; + font-size: 10px; + border-radius: 3px; } + div.vs-blog .comment-area .comment-buttons .count.count-up { + background: #999; } + div.vs-blog .comment-area .comment-buttons a { + opacity: .65; + margin-right: 10px; } + div.vs-blog .comment-area .comment-buttons a:hover { + opacity: 1; } + div.vs-blog .comment-area p { + margin-bottom: 6px; } + div.vs-blog .comment-area .comment-avatar { + width: 64px; } + div.vs-blog .comment-area .answer-avatar { + width: 64px; } + div.vs-blog > .form-group { + margin: 0 !important; } diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/blog.min.css b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/blog.min.css index dfcd02657a..344882996e 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/blog.min.css +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/blog.min.css @@ -1 +1 @@ -div.vs-blog{position:relative;background:#fff;padding:30px;font-family:'Open Sans',Helvetica,Arial,sans-serif;font-size:14px;}div.vs-blog a,div.vs-blog a:hover{text-decoration:none;color:#000;}div.vs-blog p{color:#444;}div.vs-blog p a{text-decoration:underline;}div.vs-blog h1,div.vs-blog h2,div.vs-blog h3,div.vs-blog h4,div.vs-blog h5,div.vs-blog h6,div.vs-blog .tab-title{font-family:Helvetica,Arial,sans-serif;font-weight:700;}div.vs-blog h1{font-size:2.25em;margin:1.5rem 0 .75rem;}div.vs-blog h2,div.vs-blog .tab-title{font-size:1.75em;margin:1.5rem 0 .75rem;}div.vs-blog h3{font-size:1.5em;margin:1.5rem 0 .75rem;}div.vs-blog h4{font-size:1.25em;margin:1.5rem 0 .75rem;}div.vs-blog h5{font-size:1em;}div.vs-blog h6{font-size:1em;}div.vs-blog .lead{font-size:1.1rem;font-weight:300;}div.vs-blog img{max-width:100%;}div.vs-blog input,div.vs-blog select,div.vs-blog textarea,div.vs-blog .form-control,div.vs-blog .btn{border-radius:0;}div.vs-blog .navbar-toggler{background:#0ff;}div.vs-blog .no-border{border:0;}div.vs-blog .btn-rounded{border-radius:30px;}div.vs-blog .list-group .list-group-item{position:relative;display:block;padding:0 0 20px 0;background:none;border-radius:0;border:0;}div.vs-blog .list-group .list-group-item:hover{background:none;}div.vs-blog .list-group .list-group-item+.list-group-item{border-top:1px solid #f5f5f5;padding:20px 0;}div.vs-blog .list-group .list-group-item h3{margin-top:0;}div.vs-blog .list-group.small-list .list-group-item{padding:10px 0;}div.vs-blog .list-group.small-list .list-group-item+.list-group-item{padding:10px 0;}div.vs-blog .font-75{font-size:.75em;}div.vs-blog .font-85{font-size:.85em;}div.vs-blog .font-92{font-size:.92em;}div.vs-blog .font-100{font-size:1em;}div.vs-blog .font-125{font-size:1.25em;}div.vs-blog .vs-blog-title{padding-bottom:15px;margin-bottom:25px;border-bottom:1px solid #ddd;}div.vs-blog .vs-blog-title h1,div.vs-blog .vs-blog-title h2,div.vs-blog .vs-blog-title h3,div.vs-blog .vs-blog-title h4,div.vs-blog .vs-blog-title h5,div.vs-blog .vs-blog-title h6{margin:0;padding:0;}div.vs-blog .vs-footer{padding-top:15px;margin-top:25px;border-top:1px solid #ddd;}div.vs-blog .vs-seperator{padding:0 4px;opacity:.3;}div.vs-blog .hero-section{padding:0;}div.vs-blog .hero-section .hero-articles{position:relative;overflow:hidden;}div.vs-blog .hero-section .hero-articles .hero-content{position:absolute;left:12%;right:12%;bottom:80px;z-index:4;text-align:center;}div.vs-blog .hero-section .hero-articles .hero-content h2{margin-top:0;font-size:2.5em;font-weight:bold;}div.vs-blog .hero-section .hero-articles .hero-content a{color:#fff;text-shadow:0 0 20px rgba(0,0,0,.5);}div.vs-blog .hero-section .hero-articles .hero-content p{color:#fff;}div.vs-blog .hero-section .hero-articles .tags .tag{background:rgba(208,208,208,.3);color:#fff !important;}div.vs-blog .hero-section .hero-articles .tags .tag:hover{background:#fff;color:#000 !important;}div.vs-blog .hero-section .hero-articles .article-owner{text-align:center;position:relative;z-index:12;}div.vs-blog .hero-section .hero-articles .article-owner .article-infos{color:#000;}div.vs-blog .hero-section .hero-articles .article-owner .article-infos a{color:#000;}div.vs-blog .hero-section .hero-articles .article-owner .article-infos .seperator{margin:0 4px;color:rgba(255,255,255,.2);}div.vs-blog .hero-section .hero-articles .article-owner .article-infos img.article-avatar{width:64px;margin:-25px 10px 0 0;border:3px solid #fff;display:inline-block;border-radius:50%;}div.vs-blog .hero-section .hero-articles .img-container{min-height:320px;}div.vs-blog .hero-section .hero-articles .img-container img{filter:grayscale(10%);}div.vs-blog .hero-section .hero-articles .img-container::after{content:"";display:block;position:absolute;z-index:1;bottom:0;width:100%;top:1% !important;background:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.75) 89%,rgba(0,0,0,.78) 93%) !important;transition:.2s all ease-in-out;opacity:.9;}div.vs-blog .hero-section .hero-articles:hover .img-container::after{opacity:1;}div.vs-blog .article-owner .article-infos{color:#000;}div.vs-blog .article-owner .article-infos a{color:rgba(0,0,0,.6);}div.vs-blog .article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}div.vs-blog .article-owner .article-infos img.article-avatar{width:30px;margin:-1px 4px 0 0;display:inline-block;border-radius:50%;}div.vs-blog .card-articles .card-content{padding:10px 0 10px;}div.vs-blog .card-articles .card-content h3{margin:10px 0;}div.vs-blog .card-articles .card-content h3 a{font-weight:700;}div.vs-blog .card-articles .article-owner{text-align:left;}div.vs-blog .card-articles .article-owner .article-infos{color:#000;}div.vs-blog .card-articles .article-owner .article-infos a{color:rgba(0,0,0,.6);}div.vs-blog .card-articles .article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}div.vs-blog .card-articles .article-owner .article-infos img.article-avatar{width:30px;margin:-1px 4px 0 0;display:inline-block;border-radius:50%;}div.vs-blog .article-owner{font-size:.85em;}div.vs-blog .user-link-icons{position:absolute;right:18px;top:15px;z-index:3;}div.vs-blog .user-link-icons a{display:inline-block;color:#eee;margin-left:12px;font-size:1.25em;}div.vs-blog .user-link-icons a:hover{color:#fff;}div.vs-blog .tags .tag{display:inline-block;padding:2px 8px;background:rgba(208,208,208,.3);border-radius:30px;margin:0 1px 3px 0;color:#b1b1b1 !important;font-size:.7em;line-height:1.6em;text-transform:uppercase;}div.vs-blog .tags .tag:hover{background:#000;color:#fff !important;}div.vs-blog .popular-tags a{display:block;font-size:.9em;}div.vs-blog .popular-tags a span{float:right;opacity:.3;font-size:.9em;}div.vs-blog .img-container{position:relative;overflow:hidden;border-radius:4px;background:#dcdcdc;}div.vs-blog .post-detail h1{padding:0 0;line-height:1.25em;font-size:3.5em;}div.vs-blog .post-detail .article-owner{text-align:center;position:relative;z-index:12;}div.vs-blog .post-detail .article-owner .article-infos{color:#000;}div.vs-blog .post-detail .article-owner .article-infos a{color:#000;color:rgba(0,0,0,.8);}div.vs-blog .post-detail .article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}div.vs-blog .post-detail .article-owner .article-infos img.article-avatar{width:64px;margin:-20px 10px 0 0;display:inline-block;border-radius:50%;border:3px solid #fff;}div.vs-blog .post-detail .post-content{font-size:1.125em;}div.vs-blog .post-detail .post-content .post-img-container{margin:50px -80px 20px;overflow:hidden;border-radius:4px;}div.vs-blog .post-detail .post-content .lead{font-size:1.125em;color:#111;}div.vs-blog .comment-avatar{max-width:64px;}div.vs-blog .answer-avatar{max-width:48px;}div.vs-blog .media{font-size:.95em;}div.vs-blog .media .media{font-size:.95em;}div.vs-blog .comment-area .comment-owner{margin-bottom:2px;}div.vs-blog .comment-area .comment-owner span{font-weight:300;color:#999;font-size:.8em;}div.vs-blog .comment-area>.media{padding:30px 0;border-bottom:1px solid #f1f1f1;}div.vs-blog .comment-area>.media .media{padding:20px 0;}div.vs-blog .comment-area .comment-buttons{padding:4px 8px;}div.vs-blog .comment-area .comment-buttons .seperator{color:#ddd;margin:0 8px;}div.vs-blog .comment-area .comment-buttons .count{color:#fff;background:#ddd;margin-left:5px;padding:1px 3px;font-size:10px;border-radius:3px;}div.vs-blog .comment-area .comment-buttons .count.count-up{background:#999;}div.vs-blog .comment-area .comment-buttons a{opacity:.5;}div.vs-blog .comment-area .comment-buttons a:hover{opacity:.75;}div.vs-blog .comment-area p{margin-bottom:6px;}div.vs-blog .comment-area .comment-avatar{width:64px;}div.vs-blog .comment-area .answer-avatar{width:48px;}@media(min-width:767px){div.vs-blog .box-articles .img-container{position:relative;overflow:hidden;}div.vs-blog .box-articles .img-container img{position:absolute;left:50%;top:50%;height:100%;width:auto;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);max-width:initial;}div.vs-blog .box-articles .img-container img.portrait{width:100%;height:auto;}} \ No newline at end of file +div.vs-blog{position:relative;background:#fff;padding:30px;font-family:'Open Sans',Helvetica,Arial,sans-serif;font-size:14px;}div.vs-blog a,div.vs-blog a:hover{text-decoration:none;color:#000;}div.vs-blog p{color:#444;}div.vs-blog p a{text-decoration:underline;}div.vs-blog h1,div.vs-blog h2,div.vs-blog h3,div.vs-blog h4,div.vs-blog h5,div.vs-blog h6,div.vs-blog .tab-title{font-family:Helvetica,Arial,sans-serif;font-weight:700;}div.vs-blog h1{font-size:2.25em;margin:1rem 0 1.5rem;}div.vs-blog h2,div.vs-blog .tab-title{font-size:1.5em;margin:1.5rem 0 .75rem;}div.vs-blog h3{font-size:1.5em;margin:1.5rem 0 .75rem;}div.vs-blog h4{font-size:1.25em;margin:1.5rem 0 .75rem;}div.vs-blog h5{font-size:1em;}div.vs-blog h6{font-size:1em;}div.vs-blog .lead{font-size:1.1rem;font-weight:300;}div.vs-blog img{max-width:100%;}div.vs-blog input,div.vs-blog select,div.vs-blog textarea,div.vs-blog .form-control,div.vs-blog .btn{border-radius:0;}div.vs-blog .navbar-toggler{background:#0ff;}div.vs-blog .no-border{border:0;}div.vs-blog .btn-rounded{border-radius:30px;}div.vs-blog .list-group .list-group-item{position:relative;display:block;padding:0 0 20px 0;background:none;border-radius:0;border:0;}div.vs-blog .list-group .list-group-item:hover{background:none;}div.vs-blog .list-group .list-group-item+.list-group-item{border-top:1px solid #f5f5f5;padding:20px 0;}div.vs-blog .list-group .list-group-item h3{margin-top:0;}div.vs-blog .list-group.small-list .list-group-item{padding:10px 0;}div.vs-blog .list-group.small-list .list-group-item+.list-group-item{padding:10px 0;}div.vs-blog .font-75{font-size:.75em;}div.vs-blog .font-85{font-size:.85em;}div.vs-blog .font-92{font-size:.92em;}div.vs-blog .font-100{font-size:1em;}div.vs-blog .font-125{font-size:1.25em;}div.vs-blog .vs-blog-title{padding-bottom:15px;margin-bottom:25px;border-bottom:1px solid #ddd;}div.vs-blog .vs-blog-title h1,div.vs-blog .vs-blog-title h2,div.vs-blog .vs-blog-title h3,div.vs-blog .vs-blog-title h4,div.vs-blog .vs-blog-title h5,div.vs-blog .vs-blog-title h6{margin:0;padding:0;}div.vs-blog .vs-footer{padding-top:15px;margin-top:25px;border-top:1px solid #ddd;}div.vs-blog .vs-seperator{padding:0 4px;opacity:.3;}div.vs-blog .hero-section{padding:0;}div.vs-blog .hero-section .hero-articles{position:relative;overflow:hidden;}div.vs-blog .hero-section .hero-articles .hero-content h2{margin-top:.5rem;font-size:2em;font-weight:bold;}div.vs-blog .hero-section .hero-articles .tags .tag{background:rgba(208,208,208,.3);color:#fff !important;}div.vs-blog .hero-section .hero-articles .tags .tag:hover{background:#fff;color:#000 !important;}div.vs-blog .hero-section .hero-articles .article-owner .article-infos{color:#000;}div.vs-blog .hero-section .hero-articles .article-owner .article-infos .seperator{margin:0 4px;color:rgba(255,255,255,.2);}div.vs-blog .hero-section .hero-articles .article-owner .article-infos img.article-avatar{display:inline-block;border-radius:50%;}div.vs-blog .hero-section .hero-articles .img-container img{width:100%;}div.vs-blog .hero-section .hero-articles:hover .img-container::after{opacity:1;}div.vs-blog .article-owner .article-infos{color:#000;}div.vs-blog .article-owner .article-infos a{color:rgba(0,0,0,.6);}div.vs-blog .article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}div.vs-blog .article-owner .article-infos img.article-avatar{width:48px;margin:-1px 4px 0 0;display:inline-block;border-radius:50%;}div.vs-blog .user-card h5 span{font-weight:300;opacity:.5;padding:0 5px;}div.vs-blog .card-articles .card-content{padding:10px 0 10px;}div.vs-blog .card-articles .card-content h3{margin:10px 0;}div.vs-blog .card-articles .card-content h3 a{font-weight:700;}div.vs-blog .card-articles .article-owner{text-align:left;}div.vs-blog .card-articles .article-owner .article-infos{color:#000;}div.vs-blog .card-articles .article-owner .article-infos a{color:rgba(0,0,0,.6);}div.vs-blog .card-articles .article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}div.vs-blog .card-articles .article-owner .article-infos img.article-avatar{width:30px;margin:-1px 4px 0 0;display:inline-block;border-radius:50%;}div.vs-blog .article-owner{font-size:.85em;}div.vs-blog .user-link-icons{position:absolute;right:18px;top:15px;z-index:3;}div.vs-blog .user-link-icons a{display:inline-block;color:#eee;margin-left:12px;font-size:1.25em;}div.vs-blog .user-link-icons a:hover{color:#fff;}div.vs-blog .tags{margin:2rem 0;padding:0 0 1.25rem 0;}div.vs-blog .tags .tag{display:inline-block;padding:4px 12px;background:rgba(208,208,208,.3);border-radius:4px;margin:0 2px 3px 0;color:#b1b1b1 !important;font-size:.85em;line-height:1.6em;text-transform:uppercase;transition:.25s;text-decoration:none;}div.vs-blog .tags .tag:hover{background:#000;color:#fff !important;}div.vs-blog .hero-section .tags{margin:1rem 0;padding:0 0 .5rem 0;}div.vs-blog .list-group-item .tags{margin:1rem 0 0;padding:0 0;}div.vs-blog .popular-tags a{display:block;font-size:.9em;}div.vs-blog .popular-tags a span{float:right;opacity:.3;font-size:.9em;}div.vs-blog .img-container{position:relative;overflow:hidden;border-radius:4px;background:#dcdcdc;}div.vs-blog .post-detail h1{padding:0 0;line-height:1.25em;font-size:3.5em;}div.vs-blog .post-detail .article-owner{text-align:center;position:relative;z-index:12;}div.vs-blog .post-detail .article-owner .article-infos{color:#000;}div.vs-blog .post-detail .article-owner .article-infos a{color:#000;color:rgba(0,0,0,.8);}div.vs-blog .post-detail .article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}div.vs-blog .post-detail .article-owner .article-infos img.article-avatar{width:64px;margin:-20px 10px 0 0;display:inline-block;border-radius:50%;border:3px solid #fff;}div.vs-blog .post-detail .post-content{font-size:1.125em;}div.vs-blog .post-detail .post-content .post-img-container{margin:50px -80px 20px;overflow:hidden;border-radius:4px;}div.vs-blog .post-detail .post-content .lead{font-size:1.125em;color:#111;}div.vs-blog .media{font-size:.95em;}div.vs-blog .media .media{font-size:.95em;}div.vs-blog .comment-area{background:#f5f5f5;margin:1.5rem 0;padding:10px;}div.vs-blog .comment-area .comment-owner{margin-bottom:4px;margin-top:8px;}div.vs-blog .comment-area .comment-owner span{font-weight:300;opacity:.5;padding:0 5px;}div.vs-blog .comment-area .media{background:#fff;margin:1px;border-radius:4px;}div.vs-blog .comment-area>.media{padding:30px;border-bottom:1px solid #f1f1f1;}div.vs-blog .comment-area>.media .media{padding:20px 0 0;}div.vs-blog .comment-area .comment-buttons{padding:4px 0;font-size:.96em;}div.vs-blog .comment-area .comment-buttons .seperator{color:#ddd;margin:0 8px;}div.vs-blog .comment-area .comment-buttons .count{color:#fff;background:#ddd;margin-left:5px;padding:1px 3px;font-size:10px;border-radius:3px;}div.vs-blog .comment-area .comment-buttons .count.count-up{background:#999;}div.vs-blog .comment-area .comment-buttons a{opacity:.65;margin-right:10px;}div.vs-blog .comment-area .comment-buttons a:hover{opacity:1;}div.vs-blog .comment-area p{margin-bottom:6px;}div.vs-blog .comment-area .comment-avatar{width:64px;}div.vs-blog .comment-area .answer-avatar{width:64px;}div.vs-blog>.form-group{margin:0 !important;} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/blog.scss b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/blog.scss index b5bd681f53..61f44b9bb3 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/blog.scss +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Shared/Styles/blog.scss @@ -8,6 +8,9 @@ div.vs-blog { @import "header.scss"; @import "home.scss"; @import "post.scss"; - @import "custom.scss"; + @import "custom.scss"; + & >.form-group { + margin: 0 !important; + } } diff --git a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj index ada7ce2370..330157fbc9 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj +++ b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj @@ -3,13 +3,13 @@ - netstandard2.0 + netcoreapp3.0 Volo.Blogging.Web Volo.Blogging.Web + 2.8 Library true Volo.Blogging - 2.8 @@ -25,9 +25,6 @@ - - - diff --git a/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj b/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj index a36f95ac50..c37538838a 100644 --- a/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj @@ -1,14 +1,12 @@  - netcoreapp2.2 - true - true + netcoreapp3.0 - + diff --git a/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj b/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj index b2911bddee..b74ad2c5b0 100644 --- a/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj @@ -1,13 +1,12 @@  - netcoreapp2.2 - - false + netcoreapp3.0 + - + diff --git a/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj b/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj index 8f9b464a46..7202466d43 100644 --- a/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj @@ -1,19 +1,14 @@  - netcoreapp2.2 - true - true + netcoreapp3.0 - - - - - - + + + diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj index 093113db66..dae08a69cc 100644 --- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj @@ -1,17 +1,13 @@  - netcoreapp2.2 - - false + netcoreapp3.0 + - - - - - + + diff --git a/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj b/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj index fc0e279ae1..96825a0297 100644 --- a/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj +++ b/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj @@ -1,9 +1,7 @@  - netcoreapp2.2 - true - true + netcoreapp3.0 @@ -14,7 +12,7 @@ - + diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/ClientSimulationDemoModule.cs b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/ClientSimulationDemoModule.cs index 3b494ab4fb..afc29ccb3f 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/ClientSimulationDemoModule.cs +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/ClientSimulationDemoModule.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; using Volo.Abp; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; using Volo.Abp.Autofac; @@ -40,8 +41,8 @@ namespace Volo.ClientSimulation.Demo } app.UseVirtualFiles(); - - app.UseMvcWithDefaultRoute(); + app.UseRouting(); + app.UseMvcWithDefaultRouteAndArea(); } } } diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj index 65aadd08eb..e3cc5d272b 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj @@ -3,13 +3,12 @@ - netcoreapp2.2 + netcoreapp3.0 InProcess + true - - diff --git a/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj b/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj index 2664bf2f49..469f90c078 100644 --- a/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj +++ b/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.ClientSimulation.Web Volo.ClientSimulation.Web Library @@ -12,19 +12,16 @@ 2.8 - - - - + - - - - + + + + diff --git a/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj b/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj index eb0a9f9ae2..9b3d62c856 100644 --- a/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj +++ b/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.ClientSimulation Volo.ClientSimulation diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj index b70794e39b..d7f8b49bae 100644 --- a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj +++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj @@ -1,7 +1,7 @@  - netstandard2.0 + netstandard2.1 diff --git a/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj b/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj index 2d828d6735..4627c9b165 100644 --- a/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj +++ b/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj @@ -1,8 +1,8 @@  + netcoreapp3.0 Exe - netcoreapp2.2 win-x64;linux-x64;osx-x64 diff --git a/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/pt-BR.json b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/pt-BR.json index cdd8a651ce..5095c85236 100644 --- a/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/pt-BR.json +++ b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/pt-BR.json @@ -1,6 +1,7 @@ { "culture": "pt-BR", "texts": { + "DocsTitle": "VoloDocs", "WelcomeVoloDocs": "Bem vindo ao VoloDocs!", "NoProjectWarning": "Ainda não existe um projeto definido!", "CreateYourFirstProject": "Clique aqui para iniciar seu primeiro projeto", diff --git a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj index 2dfb07ec80..fa6ddeaecc 100644 --- a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj +++ b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 InProcess true true @@ -11,10 +11,10 @@ + - @@ -39,8 +39,4 @@ - - - - diff --git a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs index 85738e6ff9..3402f62622 100644 --- a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs +++ b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs @@ -1,6 +1,5 @@ using System.IO; using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; using Swashbuckle.AspNetCore.Swagger; @@ -30,6 +29,7 @@ using Volo.Docs.Admin; using Volo.Docs.Localization; using VoloDocs.EntityFrameworkCore; using Localization.Resources.AbpUi; +using Microsoft.Extensions.Hosting; namespace VoloDocs.Web { @@ -103,8 +103,7 @@ namespace VoloDocs.Web options.DocInclusionPredicate((docName, description) => true); options.CustomSchemaIds(type => type.FullName); }); - - + Configure(options => { options.FileSets.AddEmbedded("VoloDocs.Web"); diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj index 46a7df4293..2805d03357 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj @@ -10,13 +10,8 @@ - - - - - - - + + diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pt-BR.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pt-BR.json index c793687043..cabc31ce97 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pt-BR.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pt-BR.json @@ -22,7 +22,7 @@ "DisplayName:Format": "Formatar", "DisplayName:DefaultDocumentName": "Nome padrão do documento", "DisplayName:NavigationDocumentName": "Nome de navegação do documento", - "DisplayName:MinimumVersion": "VErsão mínima", + "DisplayName:MinimumVersion": "Versão mínima", "DisplayName:MainWebsiteUrl": "URL do site principal", "DisplayName:LatestVersionBranchName": "Nome do branch da última versão", "DisplayName:GitHubRootUrl": "URL raíz do GitHub", diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.csproj b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.csproj index c76ce2895c..d083eed420 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.csproj +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Docs.Admin.HttpApi.Client Volo.Docs.Admin.HttpApi.Client diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo/Docs/Admin/DocsHttpApiClientModule.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo/Docs/Admin/DocsHttpApiClientModule.cs index 5a2e66e5ca..bcab405f63 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo/Docs/Admin/DocsHttpApiClientModule.cs +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo/Docs/Admin/DocsHttpApiClientModule.cs @@ -6,6 +6,6 @@ namespace Volo.Docs.Admin typeof(DocsAdminApplicationContractsModule))] public class DocsAdminHttpApiClientModule : AbpModule { - + //TODO: Create client proxies! } } diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.csproj b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.csproj index cea70211b2..6b45d78d91 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.csproj +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Docs.Admin.HttpApi Volo.Docs.Admin.HttpApi diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj index 811c668006..1402fb55ee 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj +++ b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Docs.Admin.Web Volo.Docs.Admin.Web Library @@ -21,16 +21,10 @@ - - - - - - @@ -41,14 +35,4 @@ - - - - - - - Edit.cshtml - - - diff --git a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj index 9ad8e3bff6..63809c169d 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj +++ b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj @@ -11,14 +11,11 @@ - - - - + diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json index 0d1157d4c3..640563a4f6 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json @@ -14,6 +14,7 @@ "NoProjectWarning": "Ainda não há projetos!", "DocumentNotFound": "Oops, o documento solicitado não foi encontrado", "NavigationDocumentNotFound": "Esta versão não possui um documento de navegação!", - "DocumentNotFoundInSelectedLanguage": "Documento no idioma desejado não foi encontrado. Documento no idioma padrão é mostrado." + "DocumentNotFoundInSelectedLanguage": "Documento no idioma desejado não foi encontrado. Documento no idioma padrão será mostrado.", + "FilterTopics": "Filtrar tópicos" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.csproj b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.csproj index 1eb5495e93..1111fa62a2 100644 --- a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.csproj +++ b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 Volo.Docs.EntityFrameworkCore Volo.Docs.EntityFrameworkCore diff --git a/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.csproj b/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.csproj index f85ecb7928..94b6bdbcad 100644 --- a/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.csproj +++ b/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Docs.HttpApi.Client Volo.Docs.HttpApi.Client diff --git a/modules/docs/src/Volo.Docs.HttpApi.Client/Volo/Docs/DocsHttpApiClientModule.cs b/modules/docs/src/Volo.Docs.HttpApi.Client/Volo/Docs/DocsHttpApiClientModule.cs index da16113225..1c208c6195 100644 --- a/modules/docs/src/Volo.Docs.HttpApi.Client/Volo/Docs/DocsHttpApiClientModule.cs +++ b/modules/docs/src/Volo.Docs.HttpApi.Client/Volo/Docs/DocsHttpApiClientModule.cs @@ -6,6 +6,6 @@ namespace Volo.Docs typeof(DocsApplicationContractsModule))] public class DocsHttpApiClientModule : AbpModule { - + //TODO: Create client proxies } } diff --git a/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.csproj b/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.csproj index 13d295b421..5990d9751d 100644 --- a/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.csproj +++ b/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Docs.HttpApi Volo.Docs.HttpApi diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index e471bc46d9..38daad78b0 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -96,8 +96,8 @@
@if (Model.VersionSelectItems.Any()) { -
-
+
+
@@ -113,7 +113,7 @@
} - @if (Model.VersionSelectItems.Any()) + @if (Model.LanguageSelectListItems.Count > 1) {
diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index c61f2c33c8..1b5c446e04 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -78,11 +78,6 @@ namespace Volo.Docs.Pages.Documents.Project DocumentsUrlPrefix = _uiOptions.RoutePrefix; ShowProjectsCombobox = _uiOptions.ShowProjectsCombobox; - if (IsDocumentCultureDifferentThanCurrent()) - { - return ReloadPageWithCulture(); - } - await SetProjectAsync(); if (ShowProjectsCombobox) @@ -103,6 +98,11 @@ namespace Volo.Docs.Pages.Documents.Project return RedirectToDefaultLanguage(); } + if (IsDocumentCultureDifferentThanCurrent()) + { + return ReloadPageWithCulture(); + } + await SetDocumentAsync(); await SetNavigationAsync(); SetLanguageSelectListItems(); @@ -122,7 +122,6 @@ namespace Volo.Docs.Pages.Documents.Project { return false; } - } private bool IsDefaultDocument() @@ -153,7 +152,8 @@ namespace Volo.Docs.Pages.Documents.Project private IActionResult ReloadPageWithCulture() { - var returnUrl = DocumentsUrlPrefix + LanguageCode + "/" + ProjectName + "/" + Version + "/" + + var returnUrl = DocumentsUrlPrefix + LanguageCode + "/" + ProjectName + "/" + + (LatestVersionInfo.IsSelected ? DocsAppConsts.Latest : Version) + "/" + DocumentName; return Redirect("/Abp/Languages/Switch?culture=" + LanguageCode + "&uiCulture=" + LanguageCode + "&returnUrl=" + returnUrl); @@ -164,7 +164,7 @@ namespace Volo.Docs.Pages.Documents.Project return RedirectToPage(new { projectName = ProjectName, - version = Version, + version = (LatestVersionInfo.IsSelected ? DocsAppConsts.Latest : Version), languageCode = DefaultLanguageCode }); } @@ -174,7 +174,7 @@ namespace Volo.Docs.Pages.Documents.Project return RedirectToPage(new { projectName = ProjectName, - version = Version, + version = (LatestVersionInfo.IsSelected ? DocsAppConsts.Latest : Version), documentName = "", languageCode = DefaultLanguageCode }); @@ -355,7 +355,7 @@ namespace Volo.Docs.Pages.Documents.Project LanguageSelectListItems.Add( new SelectListItem( language.DisplayName, - DocumentsUrlPrefix + language.Code + "/" + Project.ShortName + "/" + Version + "/" + DocumentName, + DocumentsUrlPrefix + language.Code + "/" + Project.ShortName + "/" + (LatestVersionInfo.IsSelected ? DocsAppConsts.Latest : Version) + "/" + DocumentName, language.Code == LanguageCode ) ); diff --git a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj index d35cc00db3..cced411e33 100644 --- a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj +++ b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Docs.Web Volo.Docs.Web Library @@ -23,16 +23,10 @@ - - - - - - @@ -44,8 +38,4 @@ - - - - diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/10938654.mp4 b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/10938654.mp4 deleted file mode 100644 index 50870fff02..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/10938654.mp4 and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/13807595-preview.mp4 b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/13807595-preview.mp4 deleted file mode 100644 index 5d88d6cf99..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/13807595-preview.mp4 and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/17607364-preview.mp4 b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/17607364-preview.mp4 deleted file mode 100644 index 1596b9d2b7..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/17607364-preview.mp4 and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/22521100-preview.mp4 b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/22521100-preview.mp4 deleted file mode 100644 index 644e49234e..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/22521100-preview.mp4 and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/24752027-preview.mp4 b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/24752027-preview.mp4 deleted file mode 100644 index efca27bc10..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/24752027-preview.mp4 and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/6690611-preview.mp4 b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/6690611-preview.mp4 deleted file mode 100644 index 1d3173c4f6..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/6690611-preview.mp4 and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/Forma 1.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/Forma 1.png deleted file mode 100644 index 52f9eea1b1..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/Forma 1.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/abp-logo-dark.svg b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/abp-logo-dark.svg deleted file mode 100644 index 445fb48bb5..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/abp-logo-dark.svg +++ /dev/null @@ -1 +0,0 @@ -Asset 6 \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/abp-logo-light.svg b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/abp-logo-light.svg deleted file mode 100644 index 1161bbb163..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/abp-logo-light.svg +++ /dev/null @@ -1 +0,0 @@ -Asset 5 \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/dynamic.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/dynamic.png deleted file mode 100644 index fac91bdba5..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/dynamic.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/HELP-US-OUT.txt b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/HELP-US-OUT.txt deleted file mode 100644 index 83d083dd77..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/HELP-US-OUT.txt +++ /dev/null @@ -1,7 +0,0 @@ -I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, -Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, -comprehensive icon sets or copy and paste your own. - -Please. Check it out. - --Dave Gandy diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/css/font-awesome.min.css b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/css/font-awesome.min.css deleted file mode 100644 index 540440ce89..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/css/font-awesome.min.css +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/animated.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/animated.less deleted file mode 100644 index 66ad52a5ba..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/animated.less +++ /dev/null @@ -1,34 +0,0 @@ -// Animated Icons -// -------------------------- - -.@{fa-css-prefix}-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.@{fa-css-prefix}-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/bordered-pulled.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/bordered-pulled.less deleted file mode 100644 index f1c8ad75f5..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/bordered-pulled.less +++ /dev/null @@ -1,25 +0,0 @@ -// Bordered & Pulled -// ------------------------- - -.@{fa-css-prefix}-border { - padding: .2em .25em .15em; - border: solid .08em @fa-border-color; - border-radius: .1em; -} - -.@{fa-css-prefix}-pull-left { float: left; } -.@{fa-css-prefix}-pull-right { float: right; } - -.@{fa-css-prefix} { - &.@{fa-css-prefix}-pull-left { margin-right: .3em; } - &.@{fa-css-prefix}-pull-right { margin-left: .3em; } -} - -/* Deprecated as of 4.4.0 */ -.pull-right { float: right; } -.pull-left { float: left; } - -.@{fa-css-prefix} { - &.pull-left { margin-right: .3em; } - &.pull-right { margin-left: .3em; } -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/core.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/core.less deleted file mode 100644 index c577ac84a6..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/core.less +++ /dev/null @@ -1,12 +0,0 @@ -// Base Class Definition -// ------------------------- - -.@{fa-css-prefix} { - display: inline-block; - font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/fixed-width.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/fixed-width.less deleted file mode 100644 index 110289f2f4..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/fixed-width.less +++ /dev/null @@ -1,6 +0,0 @@ -// Fixed Width Icons -// ------------------------- -.@{fa-css-prefix}-fw { - width: (18em / 14); - text-align: center; -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/font-awesome.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/font-awesome.less deleted file mode 100644 index c3677def31..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/font-awesome.less +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - -@import "variables.less"; -@import "mixins.less"; -@import "path.less"; -@import "core.less"; -@import "larger.less"; -@import "fixed-width.less"; -@import "list.less"; -@import "bordered-pulled.less"; -@import "animated.less"; -@import "rotated-flipped.less"; -@import "stacked.less"; -@import "icons.less"; -@import "screen-reader.less"; diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/icons.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/icons.less deleted file mode 100644 index 159d600425..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/icons.less +++ /dev/null @@ -1,789 +0,0 @@ -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ - -.@{fa-css-prefix}-glass:before { content: @fa-var-glass; } -.@{fa-css-prefix}-music:before { content: @fa-var-music; } -.@{fa-css-prefix}-search:before { content: @fa-var-search; } -.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; } -.@{fa-css-prefix}-heart:before { content: @fa-var-heart; } -.@{fa-css-prefix}-star:before { content: @fa-var-star; } -.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; } -.@{fa-css-prefix}-user:before { content: @fa-var-user; } -.@{fa-css-prefix}-film:before { content: @fa-var-film; } -.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; } -.@{fa-css-prefix}-th:before { content: @fa-var-th; } -.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; } -.@{fa-css-prefix}-check:before { content: @fa-var-check; } -.@{fa-css-prefix}-remove:before, -.@{fa-css-prefix}-close:before, -.@{fa-css-prefix}-times:before { content: @fa-var-times; } -.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; } -.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; } -.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; } -.@{fa-css-prefix}-signal:before { content: @fa-var-signal; } -.@{fa-css-prefix}-gear:before, -.@{fa-css-prefix}-cog:before { content: @fa-var-cog; } -.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; } -.@{fa-css-prefix}-home:before { content: @fa-var-home; } -.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; } -.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; } -.@{fa-css-prefix}-road:before { content: @fa-var-road; } -.@{fa-css-prefix}-download:before { content: @fa-var-download; } -.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; } -.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; } -.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; } -.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; } -.@{fa-css-prefix}-rotate-right:before, -.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; } -.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; } -.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; } -.@{fa-css-prefix}-lock:before { content: @fa-var-lock; } -.@{fa-css-prefix}-flag:before { content: @fa-var-flag; } -.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; } -.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; } -.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; } -.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; } -.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; } -.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; } -.@{fa-css-prefix}-tag:before { content: @fa-var-tag; } -.@{fa-css-prefix}-tags:before { content: @fa-var-tags; } -.@{fa-css-prefix}-book:before { content: @fa-var-book; } -.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; } -.@{fa-css-prefix}-print:before { content: @fa-var-print; } -.@{fa-css-prefix}-camera:before { content: @fa-var-camera; } -.@{fa-css-prefix}-font:before { content: @fa-var-font; } -.@{fa-css-prefix}-bold:before { content: @fa-var-bold; } -.@{fa-css-prefix}-italic:before { content: @fa-var-italic; } -.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; } -.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; } -.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; } -.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; } -.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; } -.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; } -.@{fa-css-prefix}-list:before { content: @fa-var-list; } -.@{fa-css-prefix}-dedent:before, -.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; } -.@{fa-css-prefix}-indent:before { content: @fa-var-indent; } -.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; } -.@{fa-css-prefix}-photo:before, -.@{fa-css-prefix}-image:before, -.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; } -.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; } -.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; } -.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; } -.@{fa-css-prefix}-tint:before { content: @fa-var-tint; } -.@{fa-css-prefix}-edit:before, -.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; } -.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; } -.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; } -.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; } -.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; } -.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; } -.@{fa-css-prefix}-backward:before { content: @fa-var-backward; } -.@{fa-css-prefix}-play:before { content: @fa-var-play; } -.@{fa-css-prefix}-pause:before { content: @fa-var-pause; } -.@{fa-css-prefix}-stop:before { content: @fa-var-stop; } -.@{fa-css-prefix}-forward:before { content: @fa-var-forward; } -.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; } -.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; } -.@{fa-css-prefix}-eject:before { content: @fa-var-eject; } -.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; } -.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; } -.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; } -.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; } -.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; } -.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; } -.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; } -.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; } -.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; } -.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; } -.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; } -.@{fa-css-prefix}-ban:before { content: @fa-var-ban; } -.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; } -.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; } -.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; } -.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; } -.@{fa-css-prefix}-mail-forward:before, -.@{fa-css-prefix}-share:before { content: @fa-var-share; } -.@{fa-css-prefix}-expand:before { content: @fa-var-expand; } -.@{fa-css-prefix}-compress:before { content: @fa-var-compress; } -.@{fa-css-prefix}-plus:before { content: @fa-var-plus; } -.@{fa-css-prefix}-minus:before { content: @fa-var-minus; } -.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; } -.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; } -.@{fa-css-prefix}-gift:before { content: @fa-var-gift; } -.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; } -.@{fa-css-prefix}-fire:before { content: @fa-var-fire; } -.@{fa-css-prefix}-eye:before { content: @fa-var-eye; } -.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; } -.@{fa-css-prefix}-warning:before, -.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; } -.@{fa-css-prefix}-plane:before { content: @fa-var-plane; } -.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; } -.@{fa-css-prefix}-random:before { content: @fa-var-random; } -.@{fa-css-prefix}-comment:before { content: @fa-var-comment; } -.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; } -.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; } -.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; } -.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; } -.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; } -.@{fa-css-prefix}-folder:before { content: @fa-var-folder; } -.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; } -.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; } -.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; } -.@{fa-css-prefix}-bar-chart-o:before, -.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; } -.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; } -.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; } -.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; } -.@{fa-css-prefix}-key:before { content: @fa-var-key; } -.@{fa-css-prefix}-gears:before, -.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; } -.@{fa-css-prefix}-comments:before { content: @fa-var-comments; } -.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; } -.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; } -.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; } -.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; } -.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; } -.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; } -.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; } -.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; } -.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; } -.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; } -.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; } -.@{fa-css-prefix}-upload:before { content: @fa-var-upload; } -.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; } -.@{fa-css-prefix}-phone:before { content: @fa-var-phone; } -.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; } -.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; } -.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; } -.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; } -.@{fa-css-prefix}-facebook-f:before, -.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; } -.@{fa-css-prefix}-github:before { content: @fa-var-github; } -.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; } -.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; } -.@{fa-css-prefix}-feed:before, -.@{fa-css-prefix}-rss:before { content: @fa-var-rss; } -.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; } -.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; } -.@{fa-css-prefix}-bell:before { content: @fa-var-bell; } -.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; } -.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; } -.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; } -.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; } -.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; } -.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; } -.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; } -.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; } -.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; } -.@{fa-css-prefix}-globe:before { content: @fa-var-globe; } -.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; } -.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; } -.@{fa-css-prefix}-filter:before { content: @fa-var-filter; } -.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; } -.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; } -.@{fa-css-prefix}-group:before, -.@{fa-css-prefix}-users:before { content: @fa-var-users; } -.@{fa-css-prefix}-chain:before, -.@{fa-css-prefix}-link:before { content: @fa-var-link; } -.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; } -.@{fa-css-prefix}-flask:before { content: @fa-var-flask; } -.@{fa-css-prefix}-cut:before, -.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; } -.@{fa-css-prefix}-copy:before, -.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; } -.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; } -.@{fa-css-prefix}-save:before, -.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; } -.@{fa-css-prefix}-square:before { content: @fa-var-square; } -.@{fa-css-prefix}-navicon:before, -.@{fa-css-prefix}-reorder:before, -.@{fa-css-prefix}-bars:before { content: @fa-var-bars; } -.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; } -.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; } -.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; } -.@{fa-css-prefix}-underline:before { content: @fa-var-underline; } -.@{fa-css-prefix}-table:before { content: @fa-var-table; } -.@{fa-css-prefix}-magic:before { content: @fa-var-magic; } -.@{fa-css-prefix}-truck:before { content: @fa-var-truck; } -.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; } -.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; } -.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; } -.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; } -.@{fa-css-prefix}-money:before { content: @fa-var-money; } -.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; } -.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; } -.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; } -.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; } -.@{fa-css-prefix}-columns:before { content: @fa-var-columns; } -.@{fa-css-prefix}-unsorted:before, -.@{fa-css-prefix}-sort:before { content: @fa-var-sort; } -.@{fa-css-prefix}-sort-down:before, -.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; } -.@{fa-css-prefix}-sort-up:before, -.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; } -.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; } -.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; } -.@{fa-css-prefix}-rotate-left:before, -.@{fa-css-prefix}-undo:before { content: @fa-var-undo; } -.@{fa-css-prefix}-legal:before, -.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; } -.@{fa-css-prefix}-dashboard:before, -.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; } -.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; } -.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; } -.@{fa-css-prefix}-flash:before, -.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; } -.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; } -.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; } -.@{fa-css-prefix}-paste:before, -.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; } -.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; } -.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; } -.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; } -.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; } -.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; } -.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; } -.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; } -.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; } -.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; } -.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; } -.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; } -.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; } -.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; } -.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; } -.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; } -.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; } -.@{fa-css-prefix}-beer:before { content: @fa-var-beer; } -.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; } -.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; } -.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; } -.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; } -.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; } -.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; } -.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; } -.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; } -.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; } -.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; } -.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; } -.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; } -.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; } -.@{fa-css-prefix}-mobile-phone:before, -.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; } -.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; } -.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; } -.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; } -.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; } -.@{fa-css-prefix}-circle:before { content: @fa-var-circle; } -.@{fa-css-prefix}-mail-reply:before, -.@{fa-css-prefix}-reply:before { content: @fa-var-reply; } -.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; } -.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; } -.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; } -.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; } -.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; } -.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; } -.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; } -.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; } -.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; } -.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; } -.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; } -.@{fa-css-prefix}-code:before { content: @fa-var-code; } -.@{fa-css-prefix}-mail-reply-all:before, -.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; } -.@{fa-css-prefix}-star-half-empty:before, -.@{fa-css-prefix}-star-half-full:before, -.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; } -.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; } -.@{fa-css-prefix}-crop:before { content: @fa-var-crop; } -.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; } -.@{fa-css-prefix}-unlink:before, -.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; } -.@{fa-css-prefix}-question:before { content: @fa-var-question; } -.@{fa-css-prefix}-info:before { content: @fa-var-info; } -.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; } -.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; } -.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; } -.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; } -.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; } -.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; } -.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; } -.@{fa-css-prefix}-shield:before { content: @fa-var-shield; } -.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; } -.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; } -.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; } -.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; } -.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; } -.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; } -.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; } -.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; } -.@{fa-css-prefix}-html5:before { content: @fa-var-html5; } -.@{fa-css-prefix}-css3:before { content: @fa-var-css3; } -.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; } -.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; } -.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; } -.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; } -.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; } -.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; } -.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; } -.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; } -.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; } -.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; } -.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; } -.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; } -.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; } -.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; } -.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; } -.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; } -.@{fa-css-prefix}-compass:before { content: @fa-var-compass; } -.@{fa-css-prefix}-toggle-down:before, -.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; } -.@{fa-css-prefix}-toggle-up:before, -.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; } -.@{fa-css-prefix}-toggle-right:before, -.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; } -.@{fa-css-prefix}-euro:before, -.@{fa-css-prefix}-eur:before { content: @fa-var-eur; } -.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; } -.@{fa-css-prefix}-dollar:before, -.@{fa-css-prefix}-usd:before { content: @fa-var-usd; } -.@{fa-css-prefix}-rupee:before, -.@{fa-css-prefix}-inr:before { content: @fa-var-inr; } -.@{fa-css-prefix}-cny:before, -.@{fa-css-prefix}-rmb:before, -.@{fa-css-prefix}-yen:before, -.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; } -.@{fa-css-prefix}-ruble:before, -.@{fa-css-prefix}-rouble:before, -.@{fa-css-prefix}-rub:before { content: @fa-var-rub; } -.@{fa-css-prefix}-won:before, -.@{fa-css-prefix}-krw:before { content: @fa-var-krw; } -.@{fa-css-prefix}-bitcoin:before, -.@{fa-css-prefix}-btc:before { content: @fa-var-btc; } -.@{fa-css-prefix}-file:before { content: @fa-var-file; } -.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; } -.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; } -.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; } -.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; } -.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; } -.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; } -.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; } -.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; } -.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; } -.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; } -.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; } -.@{fa-css-prefix}-xing:before { content: @fa-var-xing; } -.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; } -.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; } -.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; } -.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; } -.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; } -.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; } -.@{fa-css-prefix}-adn:before { content: @fa-var-adn; } -.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; } -.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; } -.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; } -.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; } -.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; } -.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; } -.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; } -.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; } -.@{fa-css-prefix}-apple:before { content: @fa-var-apple; } -.@{fa-css-prefix}-windows:before { content: @fa-var-windows; } -.@{fa-css-prefix}-android:before { content: @fa-var-android; } -.@{fa-css-prefix}-linux:before { content: @fa-var-linux; } -.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; } -.@{fa-css-prefix}-skype:before { content: @fa-var-skype; } -.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; } -.@{fa-css-prefix}-trello:before { content: @fa-var-trello; } -.@{fa-css-prefix}-female:before { content: @fa-var-female; } -.@{fa-css-prefix}-male:before { content: @fa-var-male; } -.@{fa-css-prefix}-gittip:before, -.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; } -.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; } -.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; } -.@{fa-css-prefix}-archive:before { content: @fa-var-archive; } -.@{fa-css-prefix}-bug:before { content: @fa-var-bug; } -.@{fa-css-prefix}-vk:before { content: @fa-var-vk; } -.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; } -.@{fa-css-prefix}-renren:before { content: @fa-var-renren; } -.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; } -.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; } -.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; } -.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; } -.@{fa-css-prefix}-toggle-left:before, -.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; } -.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; } -.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; } -.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; } -.@{fa-css-prefix}-turkish-lira:before, -.@{fa-css-prefix}-try:before { content: @fa-var-try; } -.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; } -.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; } -.@{fa-css-prefix}-slack:before { content: @fa-var-slack; } -.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; } -.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; } -.@{fa-css-prefix}-openid:before { content: @fa-var-openid; } -.@{fa-css-prefix}-institution:before, -.@{fa-css-prefix}-bank:before, -.@{fa-css-prefix}-university:before { content: @fa-var-university; } -.@{fa-css-prefix}-mortar-board:before, -.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; } -.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; } -.@{fa-css-prefix}-google:before { content: @fa-var-google; } -.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; } -.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; } -.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; } -.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; } -.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; } -.@{fa-css-prefix}-digg:before { content: @fa-var-digg; } -.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; } -.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; } -.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; } -.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; } -.@{fa-css-prefix}-language:before { content: @fa-var-language; } -.@{fa-css-prefix}-fax:before { content: @fa-var-fax; } -.@{fa-css-prefix}-building:before { content: @fa-var-building; } -.@{fa-css-prefix}-child:before { content: @fa-var-child; } -.@{fa-css-prefix}-paw:before { content: @fa-var-paw; } -.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; } -.@{fa-css-prefix}-cube:before { content: @fa-var-cube; } -.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; } -.@{fa-css-prefix}-behance:before { content: @fa-var-behance; } -.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; } -.@{fa-css-prefix}-steam:before { content: @fa-var-steam; } -.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; } -.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; } -.@{fa-css-prefix}-automobile:before, -.@{fa-css-prefix}-car:before { content: @fa-var-car; } -.@{fa-css-prefix}-cab:before, -.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; } -.@{fa-css-prefix}-tree:before { content: @fa-var-tree; } -.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; } -.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; } -.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; } -.@{fa-css-prefix}-database:before { content: @fa-var-database; } -.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; } -.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; } -.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; } -.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; } -.@{fa-css-prefix}-file-photo-o:before, -.@{fa-css-prefix}-file-picture-o:before, -.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; } -.@{fa-css-prefix}-file-zip-o:before, -.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; } -.@{fa-css-prefix}-file-sound-o:before, -.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; } -.@{fa-css-prefix}-file-movie-o:before, -.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; } -.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; } -.@{fa-css-prefix}-vine:before { content: @fa-var-vine; } -.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; } -.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; } -.@{fa-css-prefix}-life-bouy:before, -.@{fa-css-prefix}-life-buoy:before, -.@{fa-css-prefix}-life-saver:before, -.@{fa-css-prefix}-support:before, -.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; } -.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; } -.@{fa-css-prefix}-ra:before, -.@{fa-css-prefix}-resistance:before, -.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; } -.@{fa-css-prefix}-ge:before, -.@{fa-css-prefix}-empire:before { content: @fa-var-empire; } -.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; } -.@{fa-css-prefix}-git:before { content: @fa-var-git; } -.@{fa-css-prefix}-y-combinator-square:before, -.@{fa-css-prefix}-yc-square:before, -.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; } -.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; } -.@{fa-css-prefix}-qq:before { content: @fa-var-qq; } -.@{fa-css-prefix}-wechat:before, -.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; } -.@{fa-css-prefix}-send:before, -.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; } -.@{fa-css-prefix}-send-o:before, -.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; } -.@{fa-css-prefix}-history:before { content: @fa-var-history; } -.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; } -.@{fa-css-prefix}-header:before { content: @fa-var-header; } -.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; } -.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; } -.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; } -.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; } -.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; } -.@{fa-css-prefix}-soccer-ball-o:before, -.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; } -.@{fa-css-prefix}-tty:before { content: @fa-var-tty; } -.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; } -.@{fa-css-prefix}-plug:before { content: @fa-var-plug; } -.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; } -.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; } -.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; } -.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; } -.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; } -.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; } -.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; } -.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; } -.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; } -.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; } -.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; } -.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; } -.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; } -.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; } -.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; } -.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; } -.@{fa-css-prefix}-trash:before { content: @fa-var-trash; } -.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; } -.@{fa-css-prefix}-at:before { content: @fa-var-at; } -.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; } -.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; } -.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; } -.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; } -.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; } -.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; } -.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; } -.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; } -.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; } -.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; } -.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; } -.@{fa-css-prefix}-bus:before { content: @fa-var-bus; } -.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; } -.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; } -.@{fa-css-prefix}-cc:before { content: @fa-var-cc; } -.@{fa-css-prefix}-shekel:before, -.@{fa-css-prefix}-sheqel:before, -.@{fa-css-prefix}-ils:before { content: @fa-var-ils; } -.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; } -.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; } -.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; } -.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; } -.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; } -.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; } -.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; } -.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; } -.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; } -.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; } -.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; } -.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; } -.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; } -.@{fa-css-prefix}-ship:before { content: @fa-var-ship; } -.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; } -.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; } -.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; } -.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; } -.@{fa-css-prefix}-venus:before { content: @fa-var-venus; } -.@{fa-css-prefix}-mars:before { content: @fa-var-mars; } -.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; } -.@{fa-css-prefix}-intersex:before, -.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; } -.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; } -.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; } -.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; } -.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; } -.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; } -.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; } -.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; } -.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; } -.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; } -.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; } -.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; } -.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; } -.@{fa-css-prefix}-server:before { content: @fa-var-server; } -.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; } -.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; } -.@{fa-css-prefix}-hotel:before, -.@{fa-css-prefix}-bed:before { content: @fa-var-bed; } -.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; } -.@{fa-css-prefix}-train:before { content: @fa-var-train; } -.@{fa-css-prefix}-subway:before { content: @fa-var-subway; } -.@{fa-css-prefix}-medium:before { content: @fa-var-medium; } -.@{fa-css-prefix}-yc:before, -.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; } -.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; } -.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; } -.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; } -.@{fa-css-prefix}-battery-4:before, -.@{fa-css-prefix}-battery:before, -.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; } -.@{fa-css-prefix}-battery-3:before, -.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; } -.@{fa-css-prefix}-battery-2:before, -.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; } -.@{fa-css-prefix}-battery-1:before, -.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; } -.@{fa-css-prefix}-battery-0:before, -.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; } -.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; } -.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; } -.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; } -.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; } -.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; } -.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; } -.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; } -.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; } -.@{fa-css-prefix}-clone:before { content: @fa-var-clone; } -.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; } -.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; } -.@{fa-css-prefix}-hourglass-1:before, -.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; } -.@{fa-css-prefix}-hourglass-2:before, -.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; } -.@{fa-css-prefix}-hourglass-3:before, -.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; } -.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; } -.@{fa-css-prefix}-hand-grab-o:before, -.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; } -.@{fa-css-prefix}-hand-stop-o:before, -.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; } -.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; } -.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; } -.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; } -.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; } -.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; } -.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; } -.@{fa-css-prefix}-registered:before { content: @fa-var-registered; } -.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; } -.@{fa-css-prefix}-gg:before { content: @fa-var-gg; } -.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; } -.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; } -.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; } -.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; } -.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; } -.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; } -.@{fa-css-prefix}-safari:before { content: @fa-var-safari; } -.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; } -.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; } -.@{fa-css-prefix}-opera:before { content: @fa-var-opera; } -.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; } -.@{fa-css-prefix}-tv:before, -.@{fa-css-prefix}-television:before { content: @fa-var-television; } -.@{fa-css-prefix}-contao:before { content: @fa-var-contao; } -.@{fa-css-prefix}-500px:before { content: @fa-var-500px; } -.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; } -.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; } -.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; } -.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; } -.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; } -.@{fa-css-prefix}-industry:before { content: @fa-var-industry; } -.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; } -.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; } -.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; } -.@{fa-css-prefix}-map:before { content: @fa-var-map; } -.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; } -.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; } -.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; } -.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; } -.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; } -.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; } -.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; } -.@{fa-css-prefix}-edge:before { content: @fa-var-edge; } -.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; } -.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; } -.@{fa-css-prefix}-modx:before { content: @fa-var-modx; } -.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; } -.@{fa-css-prefix}-usb:before { content: @fa-var-usb; } -.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; } -.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; } -.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; } -.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; } -.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; } -.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; } -.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; } -.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; } -.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; } -.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; } -.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; } -.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; } -.@{fa-css-prefix}-percent:before { content: @fa-var-percent; } -.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; } -.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; } -.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; } -.@{fa-css-prefix}-envira:before { content: @fa-var-envira; } -.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; } -.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; } -.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; } -.@{fa-css-prefix}-blind:before { content: @fa-var-blind; } -.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; } -.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; } -.@{fa-css-prefix}-braille:before { content: @fa-var-braille; } -.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; } -.@{fa-css-prefix}-asl-interpreting:before, -.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; } -.@{fa-css-prefix}-deafness:before, -.@{fa-css-prefix}-hard-of-hearing:before, -.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; } -.@{fa-css-prefix}-glide:before { content: @fa-var-glide; } -.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; } -.@{fa-css-prefix}-signing:before, -.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; } -.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; } -.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; } -.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; } -.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; } -.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; } -.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; } -.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } -.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; } -.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; } -.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; } -.@{fa-css-prefix}-google-plus-circle:before, -.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; } -.@{fa-css-prefix}-fa:before, -.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; } -.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; } -.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; } -.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; } -.@{fa-css-prefix}-linode:before { content: @fa-var-linode; } -.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; } -.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; } -.@{fa-css-prefix}-vcard:before, -.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; } -.@{fa-css-prefix}-vcard-o:before, -.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; } -.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; } -.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; } -.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; } -.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; } -.@{fa-css-prefix}-drivers-license:before, -.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; } -.@{fa-css-prefix}-drivers-license-o:before, -.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; } -.@{fa-css-prefix}-quora:before { content: @fa-var-quora; } -.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; } -.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; } -.@{fa-css-prefix}-thermometer-4:before, -.@{fa-css-prefix}-thermometer:before, -.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; } -.@{fa-css-prefix}-thermometer-3:before, -.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; } -.@{fa-css-prefix}-thermometer-2:before, -.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; } -.@{fa-css-prefix}-thermometer-1:before, -.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; } -.@{fa-css-prefix}-thermometer-0:before, -.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; } -.@{fa-css-prefix}-shower:before { content: @fa-var-shower; } -.@{fa-css-prefix}-bathtub:before, -.@{fa-css-prefix}-s15:before, -.@{fa-css-prefix}-bath:before { content: @fa-var-bath; } -.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; } -.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; } -.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; } -.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; } -.@{fa-css-prefix}-times-rectangle:before, -.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; } -.@{fa-css-prefix}-times-rectangle-o:before, -.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; } -.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; } -.@{fa-css-prefix}-grav:before { content: @fa-var-grav; } -.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; } -.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; } -.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; } -.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; } -.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; } -.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; } -.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; } -.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; } -.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; } diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/larger.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/larger.less deleted file mode 100644 index c9d646770e..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/larger.less +++ /dev/null @@ -1,13 +0,0 @@ -// Icon Sizes -// ------------------------- - -/* makes the font 33% larger relative to the icon container */ -.@{fa-css-prefix}-lg { - font-size: (4em / 3); - line-height: (3em / 4); - vertical-align: -15%; -} -.@{fa-css-prefix}-2x { font-size: 2em; } -.@{fa-css-prefix}-3x { font-size: 3em; } -.@{fa-css-prefix}-4x { font-size: 4em; } -.@{fa-css-prefix}-5x { font-size: 5em; } diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/list.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/list.less deleted file mode 100644 index 0b440382f6..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/list.less +++ /dev/null @@ -1,19 +0,0 @@ -// List Icons -// ------------------------- - -.@{fa-css-prefix}-ul { - padding-left: 0; - margin-left: @fa-li-width; - list-style-type: none; - > li { position: relative; } -} -.@{fa-css-prefix}-li { - position: absolute; - left: -@fa-li-width; - width: @fa-li-width; - top: (2em / 14); - text-align: center; - &.@{fa-css-prefix}-lg { - left: (-@fa-li-width + (4em / 14)); - } -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/mixins.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/mixins.less deleted file mode 100644 index beef231d0e..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/mixins.less +++ /dev/null @@ -1,60 +0,0 @@ -// Mixins -// -------------------------- - -.fa-icon() { - display: inline-block; - font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} - -.fa-icon-rotate(@degrees, @rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; - -webkit-transform: rotate(@degrees); - -ms-transform: rotate(@degrees); - transform: rotate(@degrees); -} - -.fa-icon-flip(@horiz, @vert, @rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; - -webkit-transform: scale(@horiz, @vert); - -ms-transform: scale(@horiz, @vert); - transform: scale(@horiz, @vert); -} - - -// Only display content to screen readers. A la Bootstrap 4. -// -// See: http://a11yproject.com/posts/how-to-hide-content/ - -.sr-only() { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0,0,0,0); - border: 0; -} - -// Use in conjunction with .sr-only to only display content when it's focused. -// -// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 -// -// Credit: HTML5 Boilerplate - -.sr-only-focusable() { - &:active, - &:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/path.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/path.less deleted file mode 100644 index 835be41f81..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/path.less +++ /dev/null @@ -1,15 +0,0 @@ -/* FONT PATH - * -------------------------- */ - -@font-face { - font-family: 'FontAwesome'; - src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); - src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), - url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), - url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), - url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), - url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); - // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts - font-weight: normal; - font-style: normal; -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/rotated-flipped.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/rotated-flipped.less deleted file mode 100644 index f6ba81475b..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/rotated-flipped.less +++ /dev/null @@ -1,20 +0,0 @@ -// Rotated & Flipped Icons -// ------------------------- - -.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } -.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } -.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } - -.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } -.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } - -// Hook for IE8-9 -// ------------------------- - -:root .@{fa-css-prefix}-rotate-90, -:root .@{fa-css-prefix}-rotate-180, -:root .@{fa-css-prefix}-rotate-270, -:root .@{fa-css-prefix}-flip-horizontal, -:root .@{fa-css-prefix}-flip-vertical { - filter: none; -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/screen-reader.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/screen-reader.less deleted file mode 100644 index 11c188196d..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/screen-reader.less +++ /dev/null @@ -1,5 +0,0 @@ -// Screen Readers -// ------------------------- - -.sr-only { .sr-only(); } -.sr-only-focusable { .sr-only-focusable(); } diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/stacked.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/stacked.less deleted file mode 100644 index fc53fb0e7a..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/stacked.less +++ /dev/null @@ -1,20 +0,0 @@ -// Stacked Icons -// ------------------------- - -.@{fa-css-prefix}-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.@{fa-css-prefix}-stack-1x { line-height: inherit; } -.@{fa-css-prefix}-stack-2x { font-size: 2em; } -.@{fa-css-prefix}-inverse { color: @fa-inverse; } diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/variables.less b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/variables.less deleted file mode 100644 index 7ddbbc0115..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/less/variables.less +++ /dev/null @@ -1,800 +0,0 @@ -// Variables -// -------------------------- - -@fa-font-path: "../fonts"; -@fa-font-size-base: 14px; -@fa-line-height-base: 1; -//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts"; // for referencing Bootstrap CDN font files directly -@fa-css-prefix: fa; -@fa-version: "4.7.0"; -@fa-border-color: #eee; -@fa-inverse: #fff; -@fa-li-width: (30em / 14); - -@fa-var-500px: "\f26e"; -@fa-var-address-book: "\f2b9"; -@fa-var-address-book-o: "\f2ba"; -@fa-var-address-card: "\f2bb"; -@fa-var-address-card-o: "\f2bc"; -@fa-var-adjust: "\f042"; -@fa-var-adn: "\f170"; -@fa-var-align-center: "\f037"; -@fa-var-align-justify: "\f039"; -@fa-var-align-left: "\f036"; -@fa-var-align-right: "\f038"; -@fa-var-amazon: "\f270"; -@fa-var-ambulance: "\f0f9"; -@fa-var-american-sign-language-interpreting: "\f2a3"; -@fa-var-anchor: "\f13d"; -@fa-var-android: "\f17b"; -@fa-var-angellist: "\f209"; -@fa-var-angle-double-down: "\f103"; -@fa-var-angle-double-left: "\f100"; -@fa-var-angle-double-right: "\f101"; -@fa-var-angle-double-up: "\f102"; -@fa-var-angle-down: "\f107"; -@fa-var-angle-left: "\f104"; -@fa-var-angle-right: "\f105"; -@fa-var-angle-up: "\f106"; -@fa-var-apple: "\f179"; -@fa-var-archive: "\f187"; -@fa-var-area-chart: "\f1fe"; -@fa-var-arrow-circle-down: "\f0ab"; -@fa-var-arrow-circle-left: "\f0a8"; -@fa-var-arrow-circle-o-down: "\f01a"; -@fa-var-arrow-circle-o-left: "\f190"; -@fa-var-arrow-circle-o-right: "\f18e"; -@fa-var-arrow-circle-o-up: "\f01b"; -@fa-var-arrow-circle-right: "\f0a9"; -@fa-var-arrow-circle-up: "\f0aa"; -@fa-var-arrow-down: "\f063"; -@fa-var-arrow-left: "\f060"; -@fa-var-arrow-right: "\f061"; -@fa-var-arrow-up: "\f062"; -@fa-var-arrows: "\f047"; -@fa-var-arrows-alt: "\f0b2"; -@fa-var-arrows-h: "\f07e"; -@fa-var-arrows-v: "\f07d"; -@fa-var-asl-interpreting: "\f2a3"; -@fa-var-assistive-listening-systems: "\f2a2"; -@fa-var-asterisk: "\f069"; -@fa-var-at: "\f1fa"; -@fa-var-audio-description: "\f29e"; -@fa-var-automobile: "\f1b9"; -@fa-var-backward: "\f04a"; -@fa-var-balance-scale: "\f24e"; -@fa-var-ban: "\f05e"; -@fa-var-bandcamp: "\f2d5"; -@fa-var-bank: "\f19c"; -@fa-var-bar-chart: "\f080"; -@fa-var-bar-chart-o: "\f080"; -@fa-var-barcode: "\f02a"; -@fa-var-bars: "\f0c9"; -@fa-var-bath: "\f2cd"; -@fa-var-bathtub: "\f2cd"; -@fa-var-battery: "\f240"; -@fa-var-battery-0: "\f244"; -@fa-var-battery-1: "\f243"; -@fa-var-battery-2: "\f242"; -@fa-var-battery-3: "\f241"; -@fa-var-battery-4: "\f240"; -@fa-var-battery-empty: "\f244"; -@fa-var-battery-full: "\f240"; -@fa-var-battery-half: "\f242"; -@fa-var-battery-quarter: "\f243"; -@fa-var-battery-three-quarters: "\f241"; -@fa-var-bed: "\f236"; -@fa-var-beer: "\f0fc"; -@fa-var-behance: "\f1b4"; -@fa-var-behance-square: "\f1b5"; -@fa-var-bell: "\f0f3"; -@fa-var-bell-o: "\f0a2"; -@fa-var-bell-slash: "\f1f6"; -@fa-var-bell-slash-o: "\f1f7"; -@fa-var-bicycle: "\f206"; -@fa-var-binoculars: "\f1e5"; -@fa-var-birthday-cake: "\f1fd"; -@fa-var-bitbucket: "\f171"; -@fa-var-bitbucket-square: "\f172"; -@fa-var-bitcoin: "\f15a"; -@fa-var-black-tie: "\f27e"; -@fa-var-blind: "\f29d"; -@fa-var-bluetooth: "\f293"; -@fa-var-bluetooth-b: "\f294"; -@fa-var-bold: "\f032"; -@fa-var-bolt: "\f0e7"; -@fa-var-bomb: "\f1e2"; -@fa-var-book: "\f02d"; -@fa-var-bookmark: "\f02e"; -@fa-var-bookmark-o: "\f097"; -@fa-var-braille: "\f2a1"; -@fa-var-briefcase: "\f0b1"; -@fa-var-btc: "\f15a"; -@fa-var-bug: "\f188"; -@fa-var-building: "\f1ad"; -@fa-var-building-o: "\f0f7"; -@fa-var-bullhorn: "\f0a1"; -@fa-var-bullseye: "\f140"; -@fa-var-bus: "\f207"; -@fa-var-buysellads: "\f20d"; -@fa-var-cab: "\f1ba"; -@fa-var-calculator: "\f1ec"; -@fa-var-calendar: "\f073"; -@fa-var-calendar-check-o: "\f274"; -@fa-var-calendar-minus-o: "\f272"; -@fa-var-calendar-o: "\f133"; -@fa-var-calendar-plus-o: "\f271"; -@fa-var-calendar-times-o: "\f273"; -@fa-var-camera: "\f030"; -@fa-var-camera-retro: "\f083"; -@fa-var-car: "\f1b9"; -@fa-var-caret-down: "\f0d7"; -@fa-var-caret-left: "\f0d9"; -@fa-var-caret-right: "\f0da"; -@fa-var-caret-square-o-down: "\f150"; -@fa-var-caret-square-o-left: "\f191"; -@fa-var-caret-square-o-right: "\f152"; -@fa-var-caret-square-o-up: "\f151"; -@fa-var-caret-up: "\f0d8"; -@fa-var-cart-arrow-down: "\f218"; -@fa-var-cart-plus: "\f217"; -@fa-var-cc: "\f20a"; -@fa-var-cc-amex: "\f1f3"; -@fa-var-cc-diners-club: "\f24c"; -@fa-var-cc-discover: "\f1f2"; -@fa-var-cc-jcb: "\f24b"; -@fa-var-cc-mastercard: "\f1f1"; -@fa-var-cc-paypal: "\f1f4"; -@fa-var-cc-stripe: "\f1f5"; -@fa-var-cc-visa: "\f1f0"; -@fa-var-certificate: "\f0a3"; -@fa-var-chain: "\f0c1"; -@fa-var-chain-broken: "\f127"; -@fa-var-check: "\f00c"; -@fa-var-check-circle: "\f058"; -@fa-var-check-circle-o: "\f05d"; -@fa-var-check-square: "\f14a"; -@fa-var-check-square-o: "\f046"; -@fa-var-chevron-circle-down: "\f13a"; -@fa-var-chevron-circle-left: "\f137"; -@fa-var-chevron-circle-right: "\f138"; -@fa-var-chevron-circle-up: "\f139"; -@fa-var-chevron-down: "\f078"; -@fa-var-chevron-left: "\f053"; -@fa-var-chevron-right: "\f054"; -@fa-var-chevron-up: "\f077"; -@fa-var-child: "\f1ae"; -@fa-var-chrome: "\f268"; -@fa-var-circle: "\f111"; -@fa-var-circle-o: "\f10c"; -@fa-var-circle-o-notch: "\f1ce"; -@fa-var-circle-thin: "\f1db"; -@fa-var-clipboard: "\f0ea"; -@fa-var-clock-o: "\f017"; -@fa-var-clone: "\f24d"; -@fa-var-close: "\f00d"; -@fa-var-cloud: "\f0c2"; -@fa-var-cloud-download: "\f0ed"; -@fa-var-cloud-upload: "\f0ee"; -@fa-var-cny: "\f157"; -@fa-var-code: "\f121"; -@fa-var-code-fork: "\f126"; -@fa-var-codepen: "\f1cb"; -@fa-var-codiepie: "\f284"; -@fa-var-coffee: "\f0f4"; -@fa-var-cog: "\f013"; -@fa-var-cogs: "\f085"; -@fa-var-columns: "\f0db"; -@fa-var-comment: "\f075"; -@fa-var-comment-o: "\f0e5"; -@fa-var-commenting: "\f27a"; -@fa-var-commenting-o: "\f27b"; -@fa-var-comments: "\f086"; -@fa-var-comments-o: "\f0e6"; -@fa-var-compass: "\f14e"; -@fa-var-compress: "\f066"; -@fa-var-connectdevelop: "\f20e"; -@fa-var-contao: "\f26d"; -@fa-var-copy: "\f0c5"; -@fa-var-copyright: "\f1f9"; -@fa-var-creative-commons: "\f25e"; -@fa-var-credit-card: "\f09d"; -@fa-var-credit-card-alt: "\f283"; -@fa-var-crop: "\f125"; -@fa-var-crosshairs: "\f05b"; -@fa-var-css3: "\f13c"; -@fa-var-cube: "\f1b2"; -@fa-var-cubes: "\f1b3"; -@fa-var-cut: "\f0c4"; -@fa-var-cutlery: "\f0f5"; -@fa-var-dashboard: "\f0e4"; -@fa-var-dashcube: "\f210"; -@fa-var-database: "\f1c0"; -@fa-var-deaf: "\f2a4"; -@fa-var-deafness: "\f2a4"; -@fa-var-dedent: "\f03b"; -@fa-var-delicious: "\f1a5"; -@fa-var-desktop: "\f108"; -@fa-var-deviantart: "\f1bd"; -@fa-var-diamond: "\f219"; -@fa-var-digg: "\f1a6"; -@fa-var-dollar: "\f155"; -@fa-var-dot-circle-o: "\f192"; -@fa-var-download: "\f019"; -@fa-var-dribbble: "\f17d"; -@fa-var-drivers-license: "\f2c2"; -@fa-var-drivers-license-o: "\f2c3"; -@fa-var-dropbox: "\f16b"; -@fa-var-drupal: "\f1a9"; -@fa-var-edge: "\f282"; -@fa-var-edit: "\f044"; -@fa-var-eercast: "\f2da"; -@fa-var-eject: "\f052"; -@fa-var-ellipsis-h: "\f141"; -@fa-var-ellipsis-v: "\f142"; -@fa-var-empire: "\f1d1"; -@fa-var-envelope: "\f0e0"; -@fa-var-envelope-o: "\f003"; -@fa-var-envelope-open: "\f2b6"; -@fa-var-envelope-open-o: "\f2b7"; -@fa-var-envelope-square: "\f199"; -@fa-var-envira: "\f299"; -@fa-var-eraser: "\f12d"; -@fa-var-etsy: "\f2d7"; -@fa-var-eur: "\f153"; -@fa-var-euro: "\f153"; -@fa-var-exchange: "\f0ec"; -@fa-var-exclamation: "\f12a"; -@fa-var-exclamation-circle: "\f06a"; -@fa-var-exclamation-triangle: "\f071"; -@fa-var-expand: "\f065"; -@fa-var-expeditedssl: "\f23e"; -@fa-var-external-link: "\f08e"; -@fa-var-external-link-square: "\f14c"; -@fa-var-eye: "\f06e"; -@fa-var-eye-slash: "\f070"; -@fa-var-eyedropper: "\f1fb"; -@fa-var-fa: "\f2b4"; -@fa-var-facebook: "\f09a"; -@fa-var-facebook-f: "\f09a"; -@fa-var-facebook-official: "\f230"; -@fa-var-facebook-square: "\f082"; -@fa-var-fast-backward: "\f049"; -@fa-var-fast-forward: "\f050"; -@fa-var-fax: "\f1ac"; -@fa-var-feed: "\f09e"; -@fa-var-female: "\f182"; -@fa-var-fighter-jet: "\f0fb"; -@fa-var-file: "\f15b"; -@fa-var-file-archive-o: "\f1c6"; -@fa-var-file-audio-o: "\f1c7"; -@fa-var-file-code-o: "\f1c9"; -@fa-var-file-excel-o: "\f1c3"; -@fa-var-file-image-o: "\f1c5"; -@fa-var-file-movie-o: "\f1c8"; -@fa-var-file-o: "\f016"; -@fa-var-file-pdf-o: "\f1c1"; -@fa-var-file-photo-o: "\f1c5"; -@fa-var-file-picture-o: "\f1c5"; -@fa-var-file-powerpoint-o: "\f1c4"; -@fa-var-file-sound-o: "\f1c7"; -@fa-var-file-text: "\f15c"; -@fa-var-file-text-o: "\f0f6"; -@fa-var-file-video-o: "\f1c8"; -@fa-var-file-word-o: "\f1c2"; -@fa-var-file-zip-o: "\f1c6"; -@fa-var-files-o: "\f0c5"; -@fa-var-film: "\f008"; -@fa-var-filter: "\f0b0"; -@fa-var-fire: "\f06d"; -@fa-var-fire-extinguisher: "\f134"; -@fa-var-firefox: "\f269"; -@fa-var-first-order: "\f2b0"; -@fa-var-flag: "\f024"; -@fa-var-flag-checkered: "\f11e"; -@fa-var-flag-o: "\f11d"; -@fa-var-flash: "\f0e7"; -@fa-var-flask: "\f0c3"; -@fa-var-flickr: "\f16e"; -@fa-var-floppy-o: "\f0c7"; -@fa-var-folder: "\f07b"; -@fa-var-folder-o: "\f114"; -@fa-var-folder-open: "\f07c"; -@fa-var-folder-open-o: "\f115"; -@fa-var-font: "\f031"; -@fa-var-font-awesome: "\f2b4"; -@fa-var-fonticons: "\f280"; -@fa-var-fort-awesome: "\f286"; -@fa-var-forumbee: "\f211"; -@fa-var-forward: "\f04e"; -@fa-var-foursquare: "\f180"; -@fa-var-free-code-camp: "\f2c5"; -@fa-var-frown-o: "\f119"; -@fa-var-futbol-o: "\f1e3"; -@fa-var-gamepad: "\f11b"; -@fa-var-gavel: "\f0e3"; -@fa-var-gbp: "\f154"; -@fa-var-ge: "\f1d1"; -@fa-var-gear: "\f013"; -@fa-var-gears: "\f085"; -@fa-var-genderless: "\f22d"; -@fa-var-get-pocket: "\f265"; -@fa-var-gg: "\f260"; -@fa-var-gg-circle: "\f261"; -@fa-var-gift: "\f06b"; -@fa-var-git: "\f1d3"; -@fa-var-git-square: "\f1d2"; -@fa-var-github: "\f09b"; -@fa-var-github-alt: "\f113"; -@fa-var-github-square: "\f092"; -@fa-var-gitlab: "\f296"; -@fa-var-gittip: "\f184"; -@fa-var-glass: "\f000"; -@fa-var-glide: "\f2a5"; -@fa-var-glide-g: "\f2a6"; -@fa-var-globe: "\f0ac"; -@fa-var-google: "\f1a0"; -@fa-var-google-plus: "\f0d5"; -@fa-var-google-plus-circle: "\f2b3"; -@fa-var-google-plus-official: "\f2b3"; -@fa-var-google-plus-square: "\f0d4"; -@fa-var-google-wallet: "\f1ee"; -@fa-var-graduation-cap: "\f19d"; -@fa-var-gratipay: "\f184"; -@fa-var-grav: "\f2d6"; -@fa-var-group: "\f0c0"; -@fa-var-h-square: "\f0fd"; -@fa-var-hacker-news: "\f1d4"; -@fa-var-hand-grab-o: "\f255"; -@fa-var-hand-lizard-o: "\f258"; -@fa-var-hand-o-down: "\f0a7"; -@fa-var-hand-o-left: "\f0a5"; -@fa-var-hand-o-right: "\f0a4"; -@fa-var-hand-o-up: "\f0a6"; -@fa-var-hand-paper-o: "\f256"; -@fa-var-hand-peace-o: "\f25b"; -@fa-var-hand-pointer-o: "\f25a"; -@fa-var-hand-rock-o: "\f255"; -@fa-var-hand-scissors-o: "\f257"; -@fa-var-hand-spock-o: "\f259"; -@fa-var-hand-stop-o: "\f256"; -@fa-var-handshake-o: "\f2b5"; -@fa-var-hard-of-hearing: "\f2a4"; -@fa-var-hashtag: "\f292"; -@fa-var-hdd-o: "\f0a0"; -@fa-var-header: "\f1dc"; -@fa-var-headphones: "\f025"; -@fa-var-heart: "\f004"; -@fa-var-heart-o: "\f08a"; -@fa-var-heartbeat: "\f21e"; -@fa-var-history: "\f1da"; -@fa-var-home: "\f015"; -@fa-var-hospital-o: "\f0f8"; -@fa-var-hotel: "\f236"; -@fa-var-hourglass: "\f254"; -@fa-var-hourglass-1: "\f251"; -@fa-var-hourglass-2: "\f252"; -@fa-var-hourglass-3: "\f253"; -@fa-var-hourglass-end: "\f253"; -@fa-var-hourglass-half: "\f252"; -@fa-var-hourglass-o: "\f250"; -@fa-var-hourglass-start: "\f251"; -@fa-var-houzz: "\f27c"; -@fa-var-html5: "\f13b"; -@fa-var-i-cursor: "\f246"; -@fa-var-id-badge: "\f2c1"; -@fa-var-id-card: "\f2c2"; -@fa-var-id-card-o: "\f2c3"; -@fa-var-ils: "\f20b"; -@fa-var-image: "\f03e"; -@fa-var-imdb: "\f2d8"; -@fa-var-inbox: "\f01c"; -@fa-var-indent: "\f03c"; -@fa-var-industry: "\f275"; -@fa-var-info: "\f129"; -@fa-var-info-circle: "\f05a"; -@fa-var-inr: "\f156"; -@fa-var-instagram: "\f16d"; -@fa-var-institution: "\f19c"; -@fa-var-internet-explorer: "\f26b"; -@fa-var-intersex: "\f224"; -@fa-var-ioxhost: "\f208"; -@fa-var-italic: "\f033"; -@fa-var-joomla: "\f1aa"; -@fa-var-jpy: "\f157"; -@fa-var-jsfiddle: "\f1cc"; -@fa-var-key: "\f084"; -@fa-var-keyboard-o: "\f11c"; -@fa-var-krw: "\f159"; -@fa-var-language: "\f1ab"; -@fa-var-laptop: "\f109"; -@fa-var-lastfm: "\f202"; -@fa-var-lastfm-square: "\f203"; -@fa-var-leaf: "\f06c"; -@fa-var-leanpub: "\f212"; -@fa-var-legal: "\f0e3"; -@fa-var-lemon-o: "\f094"; -@fa-var-level-down: "\f149"; -@fa-var-level-up: "\f148"; -@fa-var-life-bouy: "\f1cd"; -@fa-var-life-buoy: "\f1cd"; -@fa-var-life-ring: "\f1cd"; -@fa-var-life-saver: "\f1cd"; -@fa-var-lightbulb-o: "\f0eb"; -@fa-var-line-chart: "\f201"; -@fa-var-link: "\f0c1"; -@fa-var-linkedin: "\f0e1"; -@fa-var-linkedin-square: "\f08c"; -@fa-var-linode: "\f2b8"; -@fa-var-linux: "\f17c"; -@fa-var-list: "\f03a"; -@fa-var-list-alt: "\f022"; -@fa-var-list-ol: "\f0cb"; -@fa-var-list-ul: "\f0ca"; -@fa-var-location-arrow: "\f124"; -@fa-var-lock: "\f023"; -@fa-var-long-arrow-down: "\f175"; -@fa-var-long-arrow-left: "\f177"; -@fa-var-long-arrow-right: "\f178"; -@fa-var-long-arrow-up: "\f176"; -@fa-var-low-vision: "\f2a8"; -@fa-var-magic: "\f0d0"; -@fa-var-magnet: "\f076"; -@fa-var-mail-forward: "\f064"; -@fa-var-mail-reply: "\f112"; -@fa-var-mail-reply-all: "\f122"; -@fa-var-male: "\f183"; -@fa-var-map: "\f279"; -@fa-var-map-marker: "\f041"; -@fa-var-map-o: "\f278"; -@fa-var-map-pin: "\f276"; -@fa-var-map-signs: "\f277"; -@fa-var-mars: "\f222"; -@fa-var-mars-double: "\f227"; -@fa-var-mars-stroke: "\f229"; -@fa-var-mars-stroke-h: "\f22b"; -@fa-var-mars-stroke-v: "\f22a"; -@fa-var-maxcdn: "\f136"; -@fa-var-meanpath: "\f20c"; -@fa-var-medium: "\f23a"; -@fa-var-medkit: "\f0fa"; -@fa-var-meetup: "\f2e0"; -@fa-var-meh-o: "\f11a"; -@fa-var-mercury: "\f223"; -@fa-var-microchip: "\f2db"; -@fa-var-microphone: "\f130"; -@fa-var-microphone-slash: "\f131"; -@fa-var-minus: "\f068"; -@fa-var-minus-circle: "\f056"; -@fa-var-minus-square: "\f146"; -@fa-var-minus-square-o: "\f147"; -@fa-var-mixcloud: "\f289"; -@fa-var-mobile: "\f10b"; -@fa-var-mobile-phone: "\f10b"; -@fa-var-modx: "\f285"; -@fa-var-money: "\f0d6"; -@fa-var-moon-o: "\f186"; -@fa-var-mortar-board: "\f19d"; -@fa-var-motorcycle: "\f21c"; -@fa-var-mouse-pointer: "\f245"; -@fa-var-music: "\f001"; -@fa-var-navicon: "\f0c9"; -@fa-var-neuter: "\f22c"; -@fa-var-newspaper-o: "\f1ea"; -@fa-var-object-group: "\f247"; -@fa-var-object-ungroup: "\f248"; -@fa-var-odnoklassniki: "\f263"; -@fa-var-odnoklassniki-square: "\f264"; -@fa-var-opencart: "\f23d"; -@fa-var-openid: "\f19b"; -@fa-var-opera: "\f26a"; -@fa-var-optin-monster: "\f23c"; -@fa-var-outdent: "\f03b"; -@fa-var-pagelines: "\f18c"; -@fa-var-paint-brush: "\f1fc"; -@fa-var-paper-plane: "\f1d8"; -@fa-var-paper-plane-o: "\f1d9"; -@fa-var-paperclip: "\f0c6"; -@fa-var-paragraph: "\f1dd"; -@fa-var-paste: "\f0ea"; -@fa-var-pause: "\f04c"; -@fa-var-pause-circle: "\f28b"; -@fa-var-pause-circle-o: "\f28c"; -@fa-var-paw: "\f1b0"; -@fa-var-paypal: "\f1ed"; -@fa-var-pencil: "\f040"; -@fa-var-pencil-square: "\f14b"; -@fa-var-pencil-square-o: "\f044"; -@fa-var-percent: "\f295"; -@fa-var-phone: "\f095"; -@fa-var-phone-square: "\f098"; -@fa-var-photo: "\f03e"; -@fa-var-picture-o: "\f03e"; -@fa-var-pie-chart: "\f200"; -@fa-var-pied-piper: "\f2ae"; -@fa-var-pied-piper-alt: "\f1a8"; -@fa-var-pied-piper-pp: "\f1a7"; -@fa-var-pinterest: "\f0d2"; -@fa-var-pinterest-p: "\f231"; -@fa-var-pinterest-square: "\f0d3"; -@fa-var-plane: "\f072"; -@fa-var-play: "\f04b"; -@fa-var-play-circle: "\f144"; -@fa-var-play-circle-o: "\f01d"; -@fa-var-plug: "\f1e6"; -@fa-var-plus: "\f067"; -@fa-var-plus-circle: "\f055"; -@fa-var-plus-square: "\f0fe"; -@fa-var-plus-square-o: "\f196"; -@fa-var-podcast: "\f2ce"; -@fa-var-power-off: "\f011"; -@fa-var-print: "\f02f"; -@fa-var-product-hunt: "\f288"; -@fa-var-puzzle-piece: "\f12e"; -@fa-var-qq: "\f1d6"; -@fa-var-qrcode: "\f029"; -@fa-var-question: "\f128"; -@fa-var-question-circle: "\f059"; -@fa-var-question-circle-o: "\f29c"; -@fa-var-quora: "\f2c4"; -@fa-var-quote-left: "\f10d"; -@fa-var-quote-right: "\f10e"; -@fa-var-ra: "\f1d0"; -@fa-var-random: "\f074"; -@fa-var-ravelry: "\f2d9"; -@fa-var-rebel: "\f1d0"; -@fa-var-recycle: "\f1b8"; -@fa-var-reddit: "\f1a1"; -@fa-var-reddit-alien: "\f281"; -@fa-var-reddit-square: "\f1a2"; -@fa-var-refresh: "\f021"; -@fa-var-registered: "\f25d"; -@fa-var-remove: "\f00d"; -@fa-var-renren: "\f18b"; -@fa-var-reorder: "\f0c9"; -@fa-var-repeat: "\f01e"; -@fa-var-reply: "\f112"; -@fa-var-reply-all: "\f122"; -@fa-var-resistance: "\f1d0"; -@fa-var-retweet: "\f079"; -@fa-var-rmb: "\f157"; -@fa-var-road: "\f018"; -@fa-var-rocket: "\f135"; -@fa-var-rotate-left: "\f0e2"; -@fa-var-rotate-right: "\f01e"; -@fa-var-rouble: "\f158"; -@fa-var-rss: "\f09e"; -@fa-var-rss-square: "\f143"; -@fa-var-rub: "\f158"; -@fa-var-ruble: "\f158"; -@fa-var-rupee: "\f156"; -@fa-var-s15: "\f2cd"; -@fa-var-safari: "\f267"; -@fa-var-save: "\f0c7"; -@fa-var-scissors: "\f0c4"; -@fa-var-scribd: "\f28a"; -@fa-var-search: "\f002"; -@fa-var-search-minus: "\f010"; -@fa-var-search-plus: "\f00e"; -@fa-var-sellsy: "\f213"; -@fa-var-send: "\f1d8"; -@fa-var-send-o: "\f1d9"; -@fa-var-server: "\f233"; -@fa-var-share: "\f064"; -@fa-var-share-alt: "\f1e0"; -@fa-var-share-alt-square: "\f1e1"; -@fa-var-share-square: "\f14d"; -@fa-var-share-square-o: "\f045"; -@fa-var-shekel: "\f20b"; -@fa-var-sheqel: "\f20b"; -@fa-var-shield: "\f132"; -@fa-var-ship: "\f21a"; -@fa-var-shirtsinbulk: "\f214"; -@fa-var-shopping-bag: "\f290"; -@fa-var-shopping-basket: "\f291"; -@fa-var-shopping-cart: "\f07a"; -@fa-var-shower: "\f2cc"; -@fa-var-sign-in: "\f090"; -@fa-var-sign-language: "\f2a7"; -@fa-var-sign-out: "\f08b"; -@fa-var-signal: "\f012"; -@fa-var-signing: "\f2a7"; -@fa-var-simplybuilt: "\f215"; -@fa-var-sitemap: "\f0e8"; -@fa-var-skyatlas: "\f216"; -@fa-var-skype: "\f17e"; -@fa-var-slack: "\f198"; -@fa-var-sliders: "\f1de"; -@fa-var-slideshare: "\f1e7"; -@fa-var-smile-o: "\f118"; -@fa-var-snapchat: "\f2ab"; -@fa-var-snapchat-ghost: "\f2ac"; -@fa-var-snapchat-square: "\f2ad"; -@fa-var-snowflake-o: "\f2dc"; -@fa-var-soccer-ball-o: "\f1e3"; -@fa-var-sort: "\f0dc"; -@fa-var-sort-alpha-asc: "\f15d"; -@fa-var-sort-alpha-desc: "\f15e"; -@fa-var-sort-amount-asc: "\f160"; -@fa-var-sort-amount-desc: "\f161"; -@fa-var-sort-asc: "\f0de"; -@fa-var-sort-desc: "\f0dd"; -@fa-var-sort-down: "\f0dd"; -@fa-var-sort-numeric-asc: "\f162"; -@fa-var-sort-numeric-desc: "\f163"; -@fa-var-sort-up: "\f0de"; -@fa-var-soundcloud: "\f1be"; -@fa-var-space-shuttle: "\f197"; -@fa-var-spinner: "\f110"; -@fa-var-spoon: "\f1b1"; -@fa-var-spotify: "\f1bc"; -@fa-var-square: "\f0c8"; -@fa-var-square-o: "\f096"; -@fa-var-stack-exchange: "\f18d"; -@fa-var-stack-overflow: "\f16c"; -@fa-var-star: "\f005"; -@fa-var-star-half: "\f089"; -@fa-var-star-half-empty: "\f123"; -@fa-var-star-half-full: "\f123"; -@fa-var-star-half-o: "\f123"; -@fa-var-star-o: "\f006"; -@fa-var-steam: "\f1b6"; -@fa-var-steam-square: "\f1b7"; -@fa-var-step-backward: "\f048"; -@fa-var-step-forward: "\f051"; -@fa-var-stethoscope: "\f0f1"; -@fa-var-sticky-note: "\f249"; -@fa-var-sticky-note-o: "\f24a"; -@fa-var-stop: "\f04d"; -@fa-var-stop-circle: "\f28d"; -@fa-var-stop-circle-o: "\f28e"; -@fa-var-street-view: "\f21d"; -@fa-var-strikethrough: "\f0cc"; -@fa-var-stumbleupon: "\f1a4"; -@fa-var-stumbleupon-circle: "\f1a3"; -@fa-var-subscript: "\f12c"; -@fa-var-subway: "\f239"; -@fa-var-suitcase: "\f0f2"; -@fa-var-sun-o: "\f185"; -@fa-var-superpowers: "\f2dd"; -@fa-var-superscript: "\f12b"; -@fa-var-support: "\f1cd"; -@fa-var-table: "\f0ce"; -@fa-var-tablet: "\f10a"; -@fa-var-tachometer: "\f0e4"; -@fa-var-tag: "\f02b"; -@fa-var-tags: "\f02c"; -@fa-var-tasks: "\f0ae"; -@fa-var-taxi: "\f1ba"; -@fa-var-telegram: "\f2c6"; -@fa-var-television: "\f26c"; -@fa-var-tencent-weibo: "\f1d5"; -@fa-var-terminal: "\f120"; -@fa-var-text-height: "\f034"; -@fa-var-text-width: "\f035"; -@fa-var-th: "\f00a"; -@fa-var-th-large: "\f009"; -@fa-var-th-list: "\f00b"; -@fa-var-themeisle: "\f2b2"; -@fa-var-thermometer: "\f2c7"; -@fa-var-thermometer-0: "\f2cb"; -@fa-var-thermometer-1: "\f2ca"; -@fa-var-thermometer-2: "\f2c9"; -@fa-var-thermometer-3: "\f2c8"; -@fa-var-thermometer-4: "\f2c7"; -@fa-var-thermometer-empty: "\f2cb"; -@fa-var-thermometer-full: "\f2c7"; -@fa-var-thermometer-half: "\f2c9"; -@fa-var-thermometer-quarter: "\f2ca"; -@fa-var-thermometer-three-quarters: "\f2c8"; -@fa-var-thumb-tack: "\f08d"; -@fa-var-thumbs-down: "\f165"; -@fa-var-thumbs-o-down: "\f088"; -@fa-var-thumbs-o-up: "\f087"; -@fa-var-thumbs-up: "\f164"; -@fa-var-ticket: "\f145"; -@fa-var-times: "\f00d"; -@fa-var-times-circle: "\f057"; -@fa-var-times-circle-o: "\f05c"; -@fa-var-times-rectangle: "\f2d3"; -@fa-var-times-rectangle-o: "\f2d4"; -@fa-var-tint: "\f043"; -@fa-var-toggle-down: "\f150"; -@fa-var-toggle-left: "\f191"; -@fa-var-toggle-off: "\f204"; -@fa-var-toggle-on: "\f205"; -@fa-var-toggle-right: "\f152"; -@fa-var-toggle-up: "\f151"; -@fa-var-trademark: "\f25c"; -@fa-var-train: "\f238"; -@fa-var-transgender: "\f224"; -@fa-var-transgender-alt: "\f225"; -@fa-var-trash: "\f1f8"; -@fa-var-trash-o: "\f014"; -@fa-var-tree: "\f1bb"; -@fa-var-trello: "\f181"; -@fa-var-tripadvisor: "\f262"; -@fa-var-trophy: "\f091"; -@fa-var-truck: "\f0d1"; -@fa-var-try: "\f195"; -@fa-var-tty: "\f1e4"; -@fa-var-tumblr: "\f173"; -@fa-var-tumblr-square: "\f174"; -@fa-var-turkish-lira: "\f195"; -@fa-var-tv: "\f26c"; -@fa-var-twitch: "\f1e8"; -@fa-var-twitter: "\f099"; -@fa-var-twitter-square: "\f081"; -@fa-var-umbrella: "\f0e9"; -@fa-var-underline: "\f0cd"; -@fa-var-undo: "\f0e2"; -@fa-var-universal-access: "\f29a"; -@fa-var-university: "\f19c"; -@fa-var-unlink: "\f127"; -@fa-var-unlock: "\f09c"; -@fa-var-unlock-alt: "\f13e"; -@fa-var-unsorted: "\f0dc"; -@fa-var-upload: "\f093"; -@fa-var-usb: "\f287"; -@fa-var-usd: "\f155"; -@fa-var-user: "\f007"; -@fa-var-user-circle: "\f2bd"; -@fa-var-user-circle-o: "\f2be"; -@fa-var-user-md: "\f0f0"; -@fa-var-user-o: "\f2c0"; -@fa-var-user-plus: "\f234"; -@fa-var-user-secret: "\f21b"; -@fa-var-user-times: "\f235"; -@fa-var-users: "\f0c0"; -@fa-var-vcard: "\f2bb"; -@fa-var-vcard-o: "\f2bc"; -@fa-var-venus: "\f221"; -@fa-var-venus-double: "\f226"; -@fa-var-venus-mars: "\f228"; -@fa-var-viacoin: "\f237"; -@fa-var-viadeo: "\f2a9"; -@fa-var-viadeo-square: "\f2aa"; -@fa-var-video-camera: "\f03d"; -@fa-var-vimeo: "\f27d"; -@fa-var-vimeo-square: "\f194"; -@fa-var-vine: "\f1ca"; -@fa-var-vk: "\f189"; -@fa-var-volume-control-phone: "\f2a0"; -@fa-var-volume-down: "\f027"; -@fa-var-volume-off: "\f026"; -@fa-var-volume-up: "\f028"; -@fa-var-warning: "\f071"; -@fa-var-wechat: "\f1d7"; -@fa-var-weibo: "\f18a"; -@fa-var-weixin: "\f1d7"; -@fa-var-whatsapp: "\f232"; -@fa-var-wheelchair: "\f193"; -@fa-var-wheelchair-alt: "\f29b"; -@fa-var-wifi: "\f1eb"; -@fa-var-wikipedia-w: "\f266"; -@fa-var-window-close: "\f2d3"; -@fa-var-window-close-o: "\f2d4"; -@fa-var-window-maximize: "\f2d0"; -@fa-var-window-minimize: "\f2d1"; -@fa-var-window-restore: "\f2d2"; -@fa-var-windows: "\f17a"; -@fa-var-won: "\f159"; -@fa-var-wordpress: "\f19a"; -@fa-var-wpbeginner: "\f297"; -@fa-var-wpexplorer: "\f2de"; -@fa-var-wpforms: "\f298"; -@fa-var-wrench: "\f0ad"; -@fa-var-xing: "\f168"; -@fa-var-xing-square: "\f169"; -@fa-var-y-combinator: "\f23b"; -@fa-var-y-combinator-square: "\f1d4"; -@fa-var-yahoo: "\f19e"; -@fa-var-yc: "\f23b"; -@fa-var-yc-square: "\f1d4"; -@fa-var-yelp: "\f1e9"; -@fa-var-yen: "\f157"; -@fa-var-yoast: "\f2b1"; -@fa-var-youtube: "\f167"; -@fa-var-youtube-play: "\f16a"; -@fa-var-youtube-square: "\f166"; - diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_animated.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_animated.scss deleted file mode 100644 index 8a020dbfff..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_animated.scss +++ /dev/null @@ -1,34 +0,0 @@ -// Spinning Icons -// -------------------------- - -.#{$fa-css-prefix}-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.#{$fa-css-prefix}-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_bordered-pulled.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_bordered-pulled.scss deleted file mode 100644 index d4b85a02f2..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_bordered-pulled.scss +++ /dev/null @@ -1,25 +0,0 @@ -// Bordered & Pulled -// ------------------------- - -.#{$fa-css-prefix}-border { - padding: .2em .25em .15em; - border: solid .08em $fa-border-color; - border-radius: .1em; -} - -.#{$fa-css-prefix}-pull-left { float: left; } -.#{$fa-css-prefix}-pull-right { float: right; } - -.#{$fa-css-prefix} { - &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } - &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } -} - -/* Deprecated as of 4.4.0 */ -.pull-right { float: right; } -.pull-left { float: left; } - -.#{$fa-css-prefix} { - &.pull-left { margin-right: .3em; } - &.pull-right { margin-left: .3em; } -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_core.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_core.scss deleted file mode 100644 index 7425ef85fc..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_core.scss +++ /dev/null @@ -1,12 +0,0 @@ -// Base Class Definition -// ------------------------- - -.#{$fa-css-prefix} { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_fixed-width.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_fixed-width.scss deleted file mode 100644 index b221c98133..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_fixed-width.scss +++ /dev/null @@ -1,6 +0,0 @@ -// Fixed Width Icons -// ------------------------- -.#{$fa-css-prefix}-fw { - width: (18em / 14); - text-align: center; -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_icons.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_icons.scss deleted file mode 100644 index e63e702c4d..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_icons.scss +++ /dev/null @@ -1,789 +0,0 @@ -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ - -.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } -.#{$fa-css-prefix}-music:before { content: $fa-var-music; } -.#{$fa-css-prefix}-search:before { content: $fa-var-search; } -.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } -.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } -.#{$fa-css-prefix}-star:before { content: $fa-var-star; } -.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } -.#{$fa-css-prefix}-user:before { content: $fa-var-user; } -.#{$fa-css-prefix}-film:before { content: $fa-var-film; } -.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } -.#{$fa-css-prefix}-th:before { content: $fa-var-th; } -.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } -.#{$fa-css-prefix}-check:before { content: $fa-var-check; } -.#{$fa-css-prefix}-remove:before, -.#{$fa-css-prefix}-close:before, -.#{$fa-css-prefix}-times:before { content: $fa-var-times; } -.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } -.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } -.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } -.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } -.#{$fa-css-prefix}-gear:before, -.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } -.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } -.#{$fa-css-prefix}-home:before { content: $fa-var-home; } -.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } -.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } -.#{$fa-css-prefix}-road:before { content: $fa-var-road; } -.#{$fa-css-prefix}-download:before { content: $fa-var-download; } -.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } -.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } -.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } -.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } -.#{$fa-css-prefix}-rotate-right:before, -.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } -.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } -.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } -.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } -.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } -.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } -.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } -.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } -.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } -.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } -.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } -.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } -.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } -.#{$fa-css-prefix}-book:before { content: $fa-var-book; } -.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } -.#{$fa-css-prefix}-print:before { content: $fa-var-print; } -.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } -.#{$fa-css-prefix}-font:before { content: $fa-var-font; } -.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } -.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } -.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } -.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } -.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } -.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } -.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } -.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } -.#{$fa-css-prefix}-list:before { content: $fa-var-list; } -.#{$fa-css-prefix}-dedent:before, -.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } -.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } -.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } -.#{$fa-css-prefix}-photo:before, -.#{$fa-css-prefix}-image:before, -.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } -.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } -.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } -.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } -.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } -.#{$fa-css-prefix}-edit:before, -.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } -.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } -.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } -.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } -.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } -.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } -.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } -.#{$fa-css-prefix}-play:before { content: $fa-var-play; } -.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } -.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } -.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } -.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } -.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } -.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } -.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } -.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } -.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } -.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } -.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } -.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } -.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } -.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } -.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } -.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } -.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } -.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } -.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } -.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } -.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } -.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } -.#{$fa-css-prefix}-mail-forward:before, -.#{$fa-css-prefix}-share:before { content: $fa-var-share; } -.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } -.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } -.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } -.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } -.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } -.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } -.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } -.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } -.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } -.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } -.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } -.#{$fa-css-prefix}-warning:before, -.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } -.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } -.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } -.#{$fa-css-prefix}-random:before { content: $fa-var-random; } -.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } -.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } -.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } -.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } -.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } -.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } -.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } -.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } -.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } -.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } -.#{$fa-css-prefix}-bar-chart-o:before, -.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } -.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } -.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } -.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } -.#{$fa-css-prefix}-key:before { content: $fa-var-key; } -.#{$fa-css-prefix}-gears:before, -.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } -.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } -.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } -.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } -.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } -.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } -.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } -.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } -.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } -.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } -.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } -.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } -.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } -.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } -.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } -.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } -.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } -.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } -.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } -.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } -.#{$fa-css-prefix}-facebook-f:before, -.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } -.#{$fa-css-prefix}-github:before { content: $fa-var-github; } -.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } -.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } -.#{$fa-css-prefix}-feed:before, -.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } -.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } -.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } -.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } -.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } -.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } -.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } -.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } -.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } -.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } -.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } -.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } -.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } -.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } -.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } -.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } -.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } -.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } -.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } -.#{$fa-css-prefix}-group:before, -.#{$fa-css-prefix}-users:before { content: $fa-var-users; } -.#{$fa-css-prefix}-chain:before, -.#{$fa-css-prefix}-link:before { content: $fa-var-link; } -.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } -.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } -.#{$fa-css-prefix}-cut:before, -.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } -.#{$fa-css-prefix}-copy:before, -.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } -.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } -.#{$fa-css-prefix}-save:before, -.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } -.#{$fa-css-prefix}-square:before { content: $fa-var-square; } -.#{$fa-css-prefix}-navicon:before, -.#{$fa-css-prefix}-reorder:before, -.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } -.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } -.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } -.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } -.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } -.#{$fa-css-prefix}-table:before { content: $fa-var-table; } -.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } -.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } -.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } -.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } -.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } -.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } -.#{$fa-css-prefix}-money:before { content: $fa-var-money; } -.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } -.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } -.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } -.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } -.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } -.#{$fa-css-prefix}-unsorted:before, -.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } -.#{$fa-css-prefix}-sort-down:before, -.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } -.#{$fa-css-prefix}-sort-up:before, -.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } -.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } -.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } -.#{$fa-css-prefix}-rotate-left:before, -.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } -.#{$fa-css-prefix}-legal:before, -.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } -.#{$fa-css-prefix}-dashboard:before, -.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } -.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } -.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } -.#{$fa-css-prefix}-flash:before, -.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } -.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } -.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } -.#{$fa-css-prefix}-paste:before, -.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } -.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } -.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } -.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } -.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } -.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } -.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } -.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } -.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } -.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } -.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } -.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } -.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } -.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } -.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } -.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } -.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } -.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } -.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } -.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } -.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } -.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } -.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } -.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } -.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } -.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } -.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } -.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } -.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } -.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } -.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } -.#{$fa-css-prefix}-mobile-phone:before, -.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } -.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } -.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } -.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } -.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } -.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } -.#{$fa-css-prefix}-mail-reply:before, -.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } -.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } -.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } -.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } -.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } -.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } -.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } -.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } -.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } -.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } -.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } -.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } -.#{$fa-css-prefix}-code:before { content: $fa-var-code; } -.#{$fa-css-prefix}-mail-reply-all:before, -.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } -.#{$fa-css-prefix}-star-half-empty:before, -.#{$fa-css-prefix}-star-half-full:before, -.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } -.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } -.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } -.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } -.#{$fa-css-prefix}-unlink:before, -.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } -.#{$fa-css-prefix}-question:before { content: $fa-var-question; } -.#{$fa-css-prefix}-info:before { content: $fa-var-info; } -.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } -.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } -.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } -.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } -.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } -.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } -.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } -.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } -.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } -.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } -.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } -.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } -.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } -.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } -.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } -.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } -.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } -.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } -.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } -.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } -.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } -.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } -.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } -.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } -.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } -.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } -.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } -.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } -.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } -.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } -.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } -.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } -.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } -.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } -.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } -.#{$fa-css-prefix}-toggle-down:before, -.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } -.#{$fa-css-prefix}-toggle-up:before, -.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } -.#{$fa-css-prefix}-toggle-right:before, -.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } -.#{$fa-css-prefix}-euro:before, -.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } -.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } -.#{$fa-css-prefix}-dollar:before, -.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } -.#{$fa-css-prefix}-rupee:before, -.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } -.#{$fa-css-prefix}-cny:before, -.#{$fa-css-prefix}-rmb:before, -.#{$fa-css-prefix}-yen:before, -.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } -.#{$fa-css-prefix}-ruble:before, -.#{$fa-css-prefix}-rouble:before, -.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } -.#{$fa-css-prefix}-won:before, -.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } -.#{$fa-css-prefix}-bitcoin:before, -.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } -.#{$fa-css-prefix}-file:before { content: $fa-var-file; } -.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } -.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } -.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } -.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } -.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } -.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } -.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } -.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } -.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } -.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } -.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } -.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } -.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } -.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } -.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } -.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } -.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } -.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } -.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } -.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } -.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } -.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } -.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } -.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } -.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } -.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } -.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } -.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } -.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } -.#{$fa-css-prefix}-android:before { content: $fa-var-android; } -.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } -.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } -.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } -.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } -.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } -.#{$fa-css-prefix}-female:before { content: $fa-var-female; } -.#{$fa-css-prefix}-male:before { content: $fa-var-male; } -.#{$fa-css-prefix}-gittip:before, -.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } -.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } -.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } -.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } -.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } -.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } -.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } -.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } -.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } -.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } -.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } -.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } -.#{$fa-css-prefix}-toggle-left:before, -.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } -.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } -.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } -.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } -.#{$fa-css-prefix}-turkish-lira:before, -.#{$fa-css-prefix}-try:before { content: $fa-var-try; } -.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } -.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } -.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } -.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } -.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } -.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } -.#{$fa-css-prefix}-institution:before, -.#{$fa-css-prefix}-bank:before, -.#{$fa-css-prefix}-university:before { content: $fa-var-university; } -.#{$fa-css-prefix}-mortar-board:before, -.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } -.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } -.#{$fa-css-prefix}-google:before { content: $fa-var-google; } -.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } -.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } -.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } -.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } -.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } -.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } -.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; } -.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } -.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } -.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } -.#{$fa-css-prefix}-language:before { content: $fa-var-language; } -.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } -.#{$fa-css-prefix}-building:before { content: $fa-var-building; } -.#{$fa-css-prefix}-child:before { content: $fa-var-child; } -.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } -.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } -.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } -.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } -.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } -.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } -.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } -.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } -.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } -.#{$fa-css-prefix}-automobile:before, -.#{$fa-css-prefix}-car:before { content: $fa-var-car; } -.#{$fa-css-prefix}-cab:before, -.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } -.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } -.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } -.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } -.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } -.#{$fa-css-prefix}-database:before { content: $fa-var-database; } -.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } -.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } -.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } -.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } -.#{$fa-css-prefix}-file-photo-o:before, -.#{$fa-css-prefix}-file-picture-o:before, -.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } -.#{$fa-css-prefix}-file-zip-o:before, -.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } -.#{$fa-css-prefix}-file-sound-o:before, -.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } -.#{$fa-css-prefix}-file-movie-o:before, -.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } -.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } -.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } -.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } -.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } -.#{$fa-css-prefix}-life-bouy:before, -.#{$fa-css-prefix}-life-buoy:before, -.#{$fa-css-prefix}-life-saver:before, -.#{$fa-css-prefix}-support:before, -.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } -.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } -.#{$fa-css-prefix}-ra:before, -.#{$fa-css-prefix}-resistance:before, -.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } -.#{$fa-css-prefix}-ge:before, -.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } -.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } -.#{$fa-css-prefix}-git:before { content: $fa-var-git; } -.#{$fa-css-prefix}-y-combinator-square:before, -.#{$fa-css-prefix}-yc-square:before, -.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } -.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } -.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } -.#{$fa-css-prefix}-wechat:before, -.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } -.#{$fa-css-prefix}-send:before, -.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } -.#{$fa-css-prefix}-send-o:before, -.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } -.#{$fa-css-prefix}-history:before { content: $fa-var-history; } -.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } -.#{$fa-css-prefix}-header:before { content: $fa-var-header; } -.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } -.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } -.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } -.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } -.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } -.#{$fa-css-prefix}-soccer-ball-o:before, -.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } -.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } -.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } -.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } -.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } -.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } -.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } -.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } -.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } -.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } -.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } -.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } -.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } -.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } -.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } -.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } -.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } -.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } -.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } -.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } -.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } -.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } -.#{$fa-css-prefix}-at:before { content: $fa-var-at; } -.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } -.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } -.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } -.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } -.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } -.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } -.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } -.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } -.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } -.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } -.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } -.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } -.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } -.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } -.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } -.#{$fa-css-prefix}-shekel:before, -.#{$fa-css-prefix}-sheqel:before, -.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } -.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } -.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } -.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } -.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } -.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } -.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } -.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } -.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } -.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } -.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } -.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } -.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } -.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } -.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } -.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } -.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } -.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } -.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } -.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } -.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } -.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } -.#{$fa-css-prefix}-intersex:before, -.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } -.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } -.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } -.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } -.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } -.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } -.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } -.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } -.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } -.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } -.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } -.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } -.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } -.#{$fa-css-prefix}-server:before { content: $fa-var-server; } -.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } -.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } -.#{$fa-css-prefix}-hotel:before, -.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } -.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } -.#{$fa-css-prefix}-train:before { content: $fa-var-train; } -.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } -.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } -.#{$fa-css-prefix}-yc:before, -.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } -.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } -.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } -.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } -.#{$fa-css-prefix}-battery-4:before, -.#{$fa-css-prefix}-battery:before, -.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } -.#{$fa-css-prefix}-battery-3:before, -.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } -.#{$fa-css-prefix}-battery-2:before, -.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } -.#{$fa-css-prefix}-battery-1:before, -.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } -.#{$fa-css-prefix}-battery-0:before, -.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } -.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } -.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } -.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } -.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } -.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } -.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } -.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } -.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } -.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } -.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } -.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } -.#{$fa-css-prefix}-hourglass-1:before, -.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } -.#{$fa-css-prefix}-hourglass-2:before, -.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } -.#{$fa-css-prefix}-hourglass-3:before, -.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } -.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } -.#{$fa-css-prefix}-hand-grab-o:before, -.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } -.#{$fa-css-prefix}-hand-stop-o:before, -.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } -.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } -.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } -.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } -.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } -.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } -.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } -.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } -.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } -.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } -.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } -.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } -.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } -.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } -.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } -.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } -.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } -.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } -.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } -.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } -.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } -.#{$fa-css-prefix}-tv:before, -.#{$fa-css-prefix}-television:before { content: $fa-var-television; } -.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } -.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } -.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } -.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } -.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } -.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } -.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } -.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } -.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } -.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } -.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } -.#{$fa-css-prefix}-map:before { content: $fa-var-map; } -.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } -.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } -.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } -.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } -.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } -.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } -.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } -.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } -.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } -.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } -.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } -.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } -.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } -.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } -.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } -.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } -.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } -.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } -.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } -.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } -.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } -.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } -.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } -.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } -.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } -.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } -.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } -.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } -.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } -.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } -.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } -.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } -.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } -.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } -.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } -.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } -.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } -.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } -.#{$fa-css-prefix}-asl-interpreting:before, -.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } -.#{$fa-css-prefix}-deafness:before, -.#{$fa-css-prefix}-hard-of-hearing:before, -.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } -.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } -.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } -.#{$fa-css-prefix}-signing:before, -.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } -.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } -.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } -.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } -.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } -.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } -.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } -.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } -.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; } -.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; } -.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; } -.#{$fa-css-prefix}-google-plus-circle:before, -.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } -.#{$fa-css-prefix}-fa:before, -.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } -.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; } -.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; } -.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; } -.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; } -.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; } -.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; } -.#{$fa-css-prefix}-vcard:before, -.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; } -.#{$fa-css-prefix}-vcard-o:before, -.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; } -.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; } -.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; } -.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; } -.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; } -.#{$fa-css-prefix}-drivers-license:before, -.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; } -.#{$fa-css-prefix}-drivers-license-o:before, -.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; } -.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; } -.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; } -.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; } -.#{$fa-css-prefix}-thermometer-4:before, -.#{$fa-css-prefix}-thermometer:before, -.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; } -.#{$fa-css-prefix}-thermometer-3:before, -.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; } -.#{$fa-css-prefix}-thermometer-2:before, -.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; } -.#{$fa-css-prefix}-thermometer-1:before, -.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; } -.#{$fa-css-prefix}-thermometer-0:before, -.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; } -.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; } -.#{$fa-css-prefix}-bathtub:before, -.#{$fa-css-prefix}-s15:before, -.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; } -.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; } -.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; } -.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; } -.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; } -.#{$fa-css-prefix}-times-rectangle:before, -.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; } -.#{$fa-css-prefix}-times-rectangle-o:before, -.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; } -.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; } -.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; } -.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; } -.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; } -.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; } -.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; } -.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; } -.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; } -.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; } -.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; } -.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; } diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_larger.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_larger.scss deleted file mode 100644 index 41e9a8184a..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_larger.scss +++ /dev/null @@ -1,13 +0,0 @@ -// Icon Sizes -// ------------------------- - -/* makes the font 33% larger relative to the icon container */ -.#{$fa-css-prefix}-lg { - font-size: (4em / 3); - line-height: (3em / 4); - vertical-align: -15%; -} -.#{$fa-css-prefix}-2x { font-size: 2em; } -.#{$fa-css-prefix}-3x { font-size: 3em; } -.#{$fa-css-prefix}-4x { font-size: 4em; } -.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_list.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_list.scss deleted file mode 100644 index 7d1e4d54d6..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_list.scss +++ /dev/null @@ -1,19 +0,0 @@ -// List Icons -// ------------------------- - -.#{$fa-css-prefix}-ul { - padding-left: 0; - margin-left: $fa-li-width; - list-style-type: none; - > li { position: relative; } -} -.#{$fa-css-prefix}-li { - position: absolute; - left: -$fa-li-width; - width: $fa-li-width; - top: (2em / 14); - text-align: center; - &.#{$fa-css-prefix}-lg { - left: -$fa-li-width + (4em / 14); - } -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_mixins.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_mixins.scss deleted file mode 100644 index c3bbd5745d..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_mixins.scss +++ /dev/null @@ -1,60 +0,0 @@ -// Mixins -// -------------------------- - -@mixin fa-icon() { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} - -@mixin fa-icon-rotate($degrees, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; - -webkit-transform: rotate($degrees); - -ms-transform: rotate($degrees); - transform: rotate($degrees); -} - -@mixin fa-icon-flip($horiz, $vert, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; - -webkit-transform: scale($horiz, $vert); - -ms-transform: scale($horiz, $vert); - transform: scale($horiz, $vert); -} - - -// Only display content to screen readers. A la Bootstrap 4. -// -// See: http://a11yproject.com/posts/how-to-hide-content/ - -@mixin sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0,0,0,0); - border: 0; -} - -// Use in conjunction with .sr-only to only display content when it's focused. -// -// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 -// -// Credit: HTML5 Boilerplate - -@mixin sr-only-focusable { - &:active, - &:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_path.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_path.scss deleted file mode 100644 index bb457c23a8..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_path.scss +++ /dev/null @@ -1,15 +0,0 @@ -/* FONT PATH - * -------------------------- */ - -@font-face { - font-family: 'FontAwesome'; - src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); - src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), - url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), - url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), - url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), - url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); -// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts - font-weight: normal; - font-style: normal; -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_rotated-flipped.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_rotated-flipped.scss deleted file mode 100644 index a3558fd09c..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_rotated-flipped.scss +++ /dev/null @@ -1,20 +0,0 @@ -// Rotated & Flipped Icons -// ------------------------- - -.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } -.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } -.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } - -.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } -.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } - -// Hook for IE8-9 -// ------------------------- - -:root .#{$fa-css-prefix}-rotate-90, -:root .#{$fa-css-prefix}-rotate-180, -:root .#{$fa-css-prefix}-rotate-270, -:root .#{$fa-css-prefix}-flip-horizontal, -:root .#{$fa-css-prefix}-flip-vertical { - filter: none; -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_screen-reader.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_screen-reader.scss deleted file mode 100644 index 637426f0da..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_screen-reader.scss +++ /dev/null @@ -1,5 +0,0 @@ -// Screen Readers -// ------------------------- - -.sr-only { @include sr-only(); } -.sr-only-focusable { @include sr-only-focusable(); } diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_stacked.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_stacked.scss deleted file mode 100644 index aef7403660..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_stacked.scss +++ /dev/null @@ -1,20 +0,0 @@ -// Stacked Icons -// ------------------------- - -.#{$fa-css-prefix}-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.#{$fa-css-prefix}-stack-1x { line-height: inherit; } -.#{$fa-css-prefix}-stack-2x { font-size: 2em; } -.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_variables.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_variables.scss deleted file mode 100644 index 498fc4a087..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/_variables.scss +++ /dev/null @@ -1,800 +0,0 @@ -// Variables -// -------------------------- - -$fa-font-path: "../fonts" !default; -$fa-font-size-base: 14px !default; -$fa-line-height-base: 1 !default; -//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly -$fa-css-prefix: fa !default; -$fa-version: "4.7.0" !default; -$fa-border-color: #eee !default; -$fa-inverse: #fff !default; -$fa-li-width: (30em / 14) !default; - -$fa-var-500px: "\f26e"; -$fa-var-address-book: "\f2b9"; -$fa-var-address-book-o: "\f2ba"; -$fa-var-address-card: "\f2bb"; -$fa-var-address-card-o: "\f2bc"; -$fa-var-adjust: "\f042"; -$fa-var-adn: "\f170"; -$fa-var-align-center: "\f037"; -$fa-var-align-justify: "\f039"; -$fa-var-align-left: "\f036"; -$fa-var-align-right: "\f038"; -$fa-var-amazon: "\f270"; -$fa-var-ambulance: "\f0f9"; -$fa-var-american-sign-language-interpreting: "\f2a3"; -$fa-var-anchor: "\f13d"; -$fa-var-android: "\f17b"; -$fa-var-angellist: "\f209"; -$fa-var-angle-double-down: "\f103"; -$fa-var-angle-double-left: "\f100"; -$fa-var-angle-double-right: "\f101"; -$fa-var-angle-double-up: "\f102"; -$fa-var-angle-down: "\f107"; -$fa-var-angle-left: "\f104"; -$fa-var-angle-right: "\f105"; -$fa-var-angle-up: "\f106"; -$fa-var-apple: "\f179"; -$fa-var-archive: "\f187"; -$fa-var-area-chart: "\f1fe"; -$fa-var-arrow-circle-down: "\f0ab"; -$fa-var-arrow-circle-left: "\f0a8"; -$fa-var-arrow-circle-o-down: "\f01a"; -$fa-var-arrow-circle-o-left: "\f190"; -$fa-var-arrow-circle-o-right: "\f18e"; -$fa-var-arrow-circle-o-up: "\f01b"; -$fa-var-arrow-circle-right: "\f0a9"; -$fa-var-arrow-circle-up: "\f0aa"; -$fa-var-arrow-down: "\f063"; -$fa-var-arrow-left: "\f060"; -$fa-var-arrow-right: "\f061"; -$fa-var-arrow-up: "\f062"; -$fa-var-arrows: "\f047"; -$fa-var-arrows-alt: "\f0b2"; -$fa-var-arrows-h: "\f07e"; -$fa-var-arrows-v: "\f07d"; -$fa-var-asl-interpreting: "\f2a3"; -$fa-var-assistive-listening-systems: "\f2a2"; -$fa-var-asterisk: "\f069"; -$fa-var-at: "\f1fa"; -$fa-var-audio-description: "\f29e"; -$fa-var-automobile: "\f1b9"; -$fa-var-backward: "\f04a"; -$fa-var-balance-scale: "\f24e"; -$fa-var-ban: "\f05e"; -$fa-var-bandcamp: "\f2d5"; -$fa-var-bank: "\f19c"; -$fa-var-bar-chart: "\f080"; -$fa-var-bar-chart-o: "\f080"; -$fa-var-barcode: "\f02a"; -$fa-var-bars: "\f0c9"; -$fa-var-bath: "\f2cd"; -$fa-var-bathtub: "\f2cd"; -$fa-var-battery: "\f240"; -$fa-var-battery-0: "\f244"; -$fa-var-battery-1: "\f243"; -$fa-var-battery-2: "\f242"; -$fa-var-battery-3: "\f241"; -$fa-var-battery-4: "\f240"; -$fa-var-battery-empty: "\f244"; -$fa-var-battery-full: "\f240"; -$fa-var-battery-half: "\f242"; -$fa-var-battery-quarter: "\f243"; -$fa-var-battery-three-quarters: "\f241"; -$fa-var-bed: "\f236"; -$fa-var-beer: "\f0fc"; -$fa-var-behance: "\f1b4"; -$fa-var-behance-square: "\f1b5"; -$fa-var-bell: "\f0f3"; -$fa-var-bell-o: "\f0a2"; -$fa-var-bell-slash: "\f1f6"; -$fa-var-bell-slash-o: "\f1f7"; -$fa-var-bicycle: "\f206"; -$fa-var-binoculars: "\f1e5"; -$fa-var-birthday-cake: "\f1fd"; -$fa-var-bitbucket: "\f171"; -$fa-var-bitbucket-square: "\f172"; -$fa-var-bitcoin: "\f15a"; -$fa-var-black-tie: "\f27e"; -$fa-var-blind: "\f29d"; -$fa-var-bluetooth: "\f293"; -$fa-var-bluetooth-b: "\f294"; -$fa-var-bold: "\f032"; -$fa-var-bolt: "\f0e7"; -$fa-var-bomb: "\f1e2"; -$fa-var-book: "\f02d"; -$fa-var-bookmark: "\f02e"; -$fa-var-bookmark-o: "\f097"; -$fa-var-braille: "\f2a1"; -$fa-var-briefcase: "\f0b1"; -$fa-var-btc: "\f15a"; -$fa-var-bug: "\f188"; -$fa-var-building: "\f1ad"; -$fa-var-building-o: "\f0f7"; -$fa-var-bullhorn: "\f0a1"; -$fa-var-bullseye: "\f140"; -$fa-var-bus: "\f207"; -$fa-var-buysellads: "\f20d"; -$fa-var-cab: "\f1ba"; -$fa-var-calculator: "\f1ec"; -$fa-var-calendar: "\f073"; -$fa-var-calendar-check-o: "\f274"; -$fa-var-calendar-minus-o: "\f272"; -$fa-var-calendar-o: "\f133"; -$fa-var-calendar-plus-o: "\f271"; -$fa-var-calendar-times-o: "\f273"; -$fa-var-camera: "\f030"; -$fa-var-camera-retro: "\f083"; -$fa-var-car: "\f1b9"; -$fa-var-caret-down: "\f0d7"; -$fa-var-caret-left: "\f0d9"; -$fa-var-caret-right: "\f0da"; -$fa-var-caret-square-o-down: "\f150"; -$fa-var-caret-square-o-left: "\f191"; -$fa-var-caret-square-o-right: "\f152"; -$fa-var-caret-square-o-up: "\f151"; -$fa-var-caret-up: "\f0d8"; -$fa-var-cart-arrow-down: "\f218"; -$fa-var-cart-plus: "\f217"; -$fa-var-cc: "\f20a"; -$fa-var-cc-amex: "\f1f3"; -$fa-var-cc-diners-club: "\f24c"; -$fa-var-cc-discover: "\f1f2"; -$fa-var-cc-jcb: "\f24b"; -$fa-var-cc-mastercard: "\f1f1"; -$fa-var-cc-paypal: "\f1f4"; -$fa-var-cc-stripe: "\f1f5"; -$fa-var-cc-visa: "\f1f0"; -$fa-var-certificate: "\f0a3"; -$fa-var-chain: "\f0c1"; -$fa-var-chain-broken: "\f127"; -$fa-var-check: "\f00c"; -$fa-var-check-circle: "\f058"; -$fa-var-check-circle-o: "\f05d"; -$fa-var-check-square: "\f14a"; -$fa-var-check-square-o: "\f046"; -$fa-var-chevron-circle-down: "\f13a"; -$fa-var-chevron-circle-left: "\f137"; -$fa-var-chevron-circle-right: "\f138"; -$fa-var-chevron-circle-up: "\f139"; -$fa-var-chevron-down: "\f078"; -$fa-var-chevron-left: "\f053"; -$fa-var-chevron-right: "\f054"; -$fa-var-chevron-up: "\f077"; -$fa-var-child: "\f1ae"; -$fa-var-chrome: "\f268"; -$fa-var-circle: "\f111"; -$fa-var-circle-o: "\f10c"; -$fa-var-circle-o-notch: "\f1ce"; -$fa-var-circle-thin: "\f1db"; -$fa-var-clipboard: "\f0ea"; -$fa-var-clock-o: "\f017"; -$fa-var-clone: "\f24d"; -$fa-var-close: "\f00d"; -$fa-var-cloud: "\f0c2"; -$fa-var-cloud-download: "\f0ed"; -$fa-var-cloud-upload: "\f0ee"; -$fa-var-cny: "\f157"; -$fa-var-code: "\f121"; -$fa-var-code-fork: "\f126"; -$fa-var-codepen: "\f1cb"; -$fa-var-codiepie: "\f284"; -$fa-var-coffee: "\f0f4"; -$fa-var-cog: "\f013"; -$fa-var-cogs: "\f085"; -$fa-var-columns: "\f0db"; -$fa-var-comment: "\f075"; -$fa-var-comment-o: "\f0e5"; -$fa-var-commenting: "\f27a"; -$fa-var-commenting-o: "\f27b"; -$fa-var-comments: "\f086"; -$fa-var-comments-o: "\f0e6"; -$fa-var-compass: "\f14e"; -$fa-var-compress: "\f066"; -$fa-var-connectdevelop: "\f20e"; -$fa-var-contao: "\f26d"; -$fa-var-copy: "\f0c5"; -$fa-var-copyright: "\f1f9"; -$fa-var-creative-commons: "\f25e"; -$fa-var-credit-card: "\f09d"; -$fa-var-credit-card-alt: "\f283"; -$fa-var-crop: "\f125"; -$fa-var-crosshairs: "\f05b"; -$fa-var-css3: "\f13c"; -$fa-var-cube: "\f1b2"; -$fa-var-cubes: "\f1b3"; -$fa-var-cut: "\f0c4"; -$fa-var-cutlery: "\f0f5"; -$fa-var-dashboard: "\f0e4"; -$fa-var-dashcube: "\f210"; -$fa-var-database: "\f1c0"; -$fa-var-deaf: "\f2a4"; -$fa-var-deafness: "\f2a4"; -$fa-var-dedent: "\f03b"; -$fa-var-delicious: "\f1a5"; -$fa-var-desktop: "\f108"; -$fa-var-deviantart: "\f1bd"; -$fa-var-diamond: "\f219"; -$fa-var-digg: "\f1a6"; -$fa-var-dollar: "\f155"; -$fa-var-dot-circle-o: "\f192"; -$fa-var-download: "\f019"; -$fa-var-dribbble: "\f17d"; -$fa-var-drivers-license: "\f2c2"; -$fa-var-drivers-license-o: "\f2c3"; -$fa-var-dropbox: "\f16b"; -$fa-var-drupal: "\f1a9"; -$fa-var-edge: "\f282"; -$fa-var-edit: "\f044"; -$fa-var-eercast: "\f2da"; -$fa-var-eject: "\f052"; -$fa-var-ellipsis-h: "\f141"; -$fa-var-ellipsis-v: "\f142"; -$fa-var-empire: "\f1d1"; -$fa-var-envelope: "\f0e0"; -$fa-var-envelope-o: "\f003"; -$fa-var-envelope-open: "\f2b6"; -$fa-var-envelope-open-o: "\f2b7"; -$fa-var-envelope-square: "\f199"; -$fa-var-envira: "\f299"; -$fa-var-eraser: "\f12d"; -$fa-var-etsy: "\f2d7"; -$fa-var-eur: "\f153"; -$fa-var-euro: "\f153"; -$fa-var-exchange: "\f0ec"; -$fa-var-exclamation: "\f12a"; -$fa-var-exclamation-circle: "\f06a"; -$fa-var-exclamation-triangle: "\f071"; -$fa-var-expand: "\f065"; -$fa-var-expeditedssl: "\f23e"; -$fa-var-external-link: "\f08e"; -$fa-var-external-link-square: "\f14c"; -$fa-var-eye: "\f06e"; -$fa-var-eye-slash: "\f070"; -$fa-var-eyedropper: "\f1fb"; -$fa-var-fa: "\f2b4"; -$fa-var-facebook: "\f09a"; -$fa-var-facebook-f: "\f09a"; -$fa-var-facebook-official: "\f230"; -$fa-var-facebook-square: "\f082"; -$fa-var-fast-backward: "\f049"; -$fa-var-fast-forward: "\f050"; -$fa-var-fax: "\f1ac"; -$fa-var-feed: "\f09e"; -$fa-var-female: "\f182"; -$fa-var-fighter-jet: "\f0fb"; -$fa-var-file: "\f15b"; -$fa-var-file-archive-o: "\f1c6"; -$fa-var-file-audio-o: "\f1c7"; -$fa-var-file-code-o: "\f1c9"; -$fa-var-file-excel-o: "\f1c3"; -$fa-var-file-image-o: "\f1c5"; -$fa-var-file-movie-o: "\f1c8"; -$fa-var-file-o: "\f016"; -$fa-var-file-pdf-o: "\f1c1"; -$fa-var-file-photo-o: "\f1c5"; -$fa-var-file-picture-o: "\f1c5"; -$fa-var-file-powerpoint-o: "\f1c4"; -$fa-var-file-sound-o: "\f1c7"; -$fa-var-file-text: "\f15c"; -$fa-var-file-text-o: "\f0f6"; -$fa-var-file-video-o: "\f1c8"; -$fa-var-file-word-o: "\f1c2"; -$fa-var-file-zip-o: "\f1c6"; -$fa-var-files-o: "\f0c5"; -$fa-var-film: "\f008"; -$fa-var-filter: "\f0b0"; -$fa-var-fire: "\f06d"; -$fa-var-fire-extinguisher: "\f134"; -$fa-var-firefox: "\f269"; -$fa-var-first-order: "\f2b0"; -$fa-var-flag: "\f024"; -$fa-var-flag-checkered: "\f11e"; -$fa-var-flag-o: "\f11d"; -$fa-var-flash: "\f0e7"; -$fa-var-flask: "\f0c3"; -$fa-var-flickr: "\f16e"; -$fa-var-floppy-o: "\f0c7"; -$fa-var-folder: "\f07b"; -$fa-var-folder-o: "\f114"; -$fa-var-folder-open: "\f07c"; -$fa-var-folder-open-o: "\f115"; -$fa-var-font: "\f031"; -$fa-var-font-awesome: "\f2b4"; -$fa-var-fonticons: "\f280"; -$fa-var-fort-awesome: "\f286"; -$fa-var-forumbee: "\f211"; -$fa-var-forward: "\f04e"; -$fa-var-foursquare: "\f180"; -$fa-var-free-code-camp: "\f2c5"; -$fa-var-frown-o: "\f119"; -$fa-var-futbol-o: "\f1e3"; -$fa-var-gamepad: "\f11b"; -$fa-var-gavel: "\f0e3"; -$fa-var-gbp: "\f154"; -$fa-var-ge: "\f1d1"; -$fa-var-gear: "\f013"; -$fa-var-gears: "\f085"; -$fa-var-genderless: "\f22d"; -$fa-var-get-pocket: "\f265"; -$fa-var-gg: "\f260"; -$fa-var-gg-circle: "\f261"; -$fa-var-gift: "\f06b"; -$fa-var-git: "\f1d3"; -$fa-var-git-square: "\f1d2"; -$fa-var-github: "\f09b"; -$fa-var-github-alt: "\f113"; -$fa-var-github-square: "\f092"; -$fa-var-gitlab: "\f296"; -$fa-var-gittip: "\f184"; -$fa-var-glass: "\f000"; -$fa-var-glide: "\f2a5"; -$fa-var-glide-g: "\f2a6"; -$fa-var-globe: "\f0ac"; -$fa-var-google: "\f1a0"; -$fa-var-google-plus: "\f0d5"; -$fa-var-google-plus-circle: "\f2b3"; -$fa-var-google-plus-official: "\f2b3"; -$fa-var-google-plus-square: "\f0d4"; -$fa-var-google-wallet: "\f1ee"; -$fa-var-graduation-cap: "\f19d"; -$fa-var-gratipay: "\f184"; -$fa-var-grav: "\f2d6"; -$fa-var-group: "\f0c0"; -$fa-var-h-square: "\f0fd"; -$fa-var-hacker-news: "\f1d4"; -$fa-var-hand-grab-o: "\f255"; -$fa-var-hand-lizard-o: "\f258"; -$fa-var-hand-o-down: "\f0a7"; -$fa-var-hand-o-left: "\f0a5"; -$fa-var-hand-o-right: "\f0a4"; -$fa-var-hand-o-up: "\f0a6"; -$fa-var-hand-paper-o: "\f256"; -$fa-var-hand-peace-o: "\f25b"; -$fa-var-hand-pointer-o: "\f25a"; -$fa-var-hand-rock-o: "\f255"; -$fa-var-hand-scissors-o: "\f257"; -$fa-var-hand-spock-o: "\f259"; -$fa-var-hand-stop-o: "\f256"; -$fa-var-handshake-o: "\f2b5"; -$fa-var-hard-of-hearing: "\f2a4"; -$fa-var-hashtag: "\f292"; -$fa-var-hdd-o: "\f0a0"; -$fa-var-header: "\f1dc"; -$fa-var-headphones: "\f025"; -$fa-var-heart: "\f004"; -$fa-var-heart-o: "\f08a"; -$fa-var-heartbeat: "\f21e"; -$fa-var-history: "\f1da"; -$fa-var-home: "\f015"; -$fa-var-hospital-o: "\f0f8"; -$fa-var-hotel: "\f236"; -$fa-var-hourglass: "\f254"; -$fa-var-hourglass-1: "\f251"; -$fa-var-hourglass-2: "\f252"; -$fa-var-hourglass-3: "\f253"; -$fa-var-hourglass-end: "\f253"; -$fa-var-hourglass-half: "\f252"; -$fa-var-hourglass-o: "\f250"; -$fa-var-hourglass-start: "\f251"; -$fa-var-houzz: "\f27c"; -$fa-var-html5: "\f13b"; -$fa-var-i-cursor: "\f246"; -$fa-var-id-badge: "\f2c1"; -$fa-var-id-card: "\f2c2"; -$fa-var-id-card-o: "\f2c3"; -$fa-var-ils: "\f20b"; -$fa-var-image: "\f03e"; -$fa-var-imdb: "\f2d8"; -$fa-var-inbox: "\f01c"; -$fa-var-indent: "\f03c"; -$fa-var-industry: "\f275"; -$fa-var-info: "\f129"; -$fa-var-info-circle: "\f05a"; -$fa-var-inr: "\f156"; -$fa-var-instagram: "\f16d"; -$fa-var-institution: "\f19c"; -$fa-var-internet-explorer: "\f26b"; -$fa-var-intersex: "\f224"; -$fa-var-ioxhost: "\f208"; -$fa-var-italic: "\f033"; -$fa-var-joomla: "\f1aa"; -$fa-var-jpy: "\f157"; -$fa-var-jsfiddle: "\f1cc"; -$fa-var-key: "\f084"; -$fa-var-keyboard-o: "\f11c"; -$fa-var-krw: "\f159"; -$fa-var-language: "\f1ab"; -$fa-var-laptop: "\f109"; -$fa-var-lastfm: "\f202"; -$fa-var-lastfm-square: "\f203"; -$fa-var-leaf: "\f06c"; -$fa-var-leanpub: "\f212"; -$fa-var-legal: "\f0e3"; -$fa-var-lemon-o: "\f094"; -$fa-var-level-down: "\f149"; -$fa-var-level-up: "\f148"; -$fa-var-life-bouy: "\f1cd"; -$fa-var-life-buoy: "\f1cd"; -$fa-var-life-ring: "\f1cd"; -$fa-var-life-saver: "\f1cd"; -$fa-var-lightbulb-o: "\f0eb"; -$fa-var-line-chart: "\f201"; -$fa-var-link: "\f0c1"; -$fa-var-linkedin: "\f0e1"; -$fa-var-linkedin-square: "\f08c"; -$fa-var-linode: "\f2b8"; -$fa-var-linux: "\f17c"; -$fa-var-list: "\f03a"; -$fa-var-list-alt: "\f022"; -$fa-var-list-ol: "\f0cb"; -$fa-var-list-ul: "\f0ca"; -$fa-var-location-arrow: "\f124"; -$fa-var-lock: "\f023"; -$fa-var-long-arrow-down: "\f175"; -$fa-var-long-arrow-left: "\f177"; -$fa-var-long-arrow-right: "\f178"; -$fa-var-long-arrow-up: "\f176"; -$fa-var-low-vision: "\f2a8"; -$fa-var-magic: "\f0d0"; -$fa-var-magnet: "\f076"; -$fa-var-mail-forward: "\f064"; -$fa-var-mail-reply: "\f112"; -$fa-var-mail-reply-all: "\f122"; -$fa-var-male: "\f183"; -$fa-var-map: "\f279"; -$fa-var-map-marker: "\f041"; -$fa-var-map-o: "\f278"; -$fa-var-map-pin: "\f276"; -$fa-var-map-signs: "\f277"; -$fa-var-mars: "\f222"; -$fa-var-mars-double: "\f227"; -$fa-var-mars-stroke: "\f229"; -$fa-var-mars-stroke-h: "\f22b"; -$fa-var-mars-stroke-v: "\f22a"; -$fa-var-maxcdn: "\f136"; -$fa-var-meanpath: "\f20c"; -$fa-var-medium: "\f23a"; -$fa-var-medkit: "\f0fa"; -$fa-var-meetup: "\f2e0"; -$fa-var-meh-o: "\f11a"; -$fa-var-mercury: "\f223"; -$fa-var-microchip: "\f2db"; -$fa-var-microphone: "\f130"; -$fa-var-microphone-slash: "\f131"; -$fa-var-minus: "\f068"; -$fa-var-minus-circle: "\f056"; -$fa-var-minus-square: "\f146"; -$fa-var-minus-square-o: "\f147"; -$fa-var-mixcloud: "\f289"; -$fa-var-mobile: "\f10b"; -$fa-var-mobile-phone: "\f10b"; -$fa-var-modx: "\f285"; -$fa-var-money: "\f0d6"; -$fa-var-moon-o: "\f186"; -$fa-var-mortar-board: "\f19d"; -$fa-var-motorcycle: "\f21c"; -$fa-var-mouse-pointer: "\f245"; -$fa-var-music: "\f001"; -$fa-var-navicon: "\f0c9"; -$fa-var-neuter: "\f22c"; -$fa-var-newspaper-o: "\f1ea"; -$fa-var-object-group: "\f247"; -$fa-var-object-ungroup: "\f248"; -$fa-var-odnoklassniki: "\f263"; -$fa-var-odnoklassniki-square: "\f264"; -$fa-var-opencart: "\f23d"; -$fa-var-openid: "\f19b"; -$fa-var-opera: "\f26a"; -$fa-var-optin-monster: "\f23c"; -$fa-var-outdent: "\f03b"; -$fa-var-pagelines: "\f18c"; -$fa-var-paint-brush: "\f1fc"; -$fa-var-paper-plane: "\f1d8"; -$fa-var-paper-plane-o: "\f1d9"; -$fa-var-paperclip: "\f0c6"; -$fa-var-paragraph: "\f1dd"; -$fa-var-paste: "\f0ea"; -$fa-var-pause: "\f04c"; -$fa-var-pause-circle: "\f28b"; -$fa-var-pause-circle-o: "\f28c"; -$fa-var-paw: "\f1b0"; -$fa-var-paypal: "\f1ed"; -$fa-var-pencil: "\f040"; -$fa-var-pencil-square: "\f14b"; -$fa-var-pencil-square-o: "\f044"; -$fa-var-percent: "\f295"; -$fa-var-phone: "\f095"; -$fa-var-phone-square: "\f098"; -$fa-var-photo: "\f03e"; -$fa-var-picture-o: "\f03e"; -$fa-var-pie-chart: "\f200"; -$fa-var-pied-piper: "\f2ae"; -$fa-var-pied-piper-alt: "\f1a8"; -$fa-var-pied-piper-pp: "\f1a7"; -$fa-var-pinterest: "\f0d2"; -$fa-var-pinterest-p: "\f231"; -$fa-var-pinterest-square: "\f0d3"; -$fa-var-plane: "\f072"; -$fa-var-play: "\f04b"; -$fa-var-play-circle: "\f144"; -$fa-var-play-circle-o: "\f01d"; -$fa-var-plug: "\f1e6"; -$fa-var-plus: "\f067"; -$fa-var-plus-circle: "\f055"; -$fa-var-plus-square: "\f0fe"; -$fa-var-plus-square-o: "\f196"; -$fa-var-podcast: "\f2ce"; -$fa-var-power-off: "\f011"; -$fa-var-print: "\f02f"; -$fa-var-product-hunt: "\f288"; -$fa-var-puzzle-piece: "\f12e"; -$fa-var-qq: "\f1d6"; -$fa-var-qrcode: "\f029"; -$fa-var-question: "\f128"; -$fa-var-question-circle: "\f059"; -$fa-var-question-circle-o: "\f29c"; -$fa-var-quora: "\f2c4"; -$fa-var-quote-left: "\f10d"; -$fa-var-quote-right: "\f10e"; -$fa-var-ra: "\f1d0"; -$fa-var-random: "\f074"; -$fa-var-ravelry: "\f2d9"; -$fa-var-rebel: "\f1d0"; -$fa-var-recycle: "\f1b8"; -$fa-var-reddit: "\f1a1"; -$fa-var-reddit-alien: "\f281"; -$fa-var-reddit-square: "\f1a2"; -$fa-var-refresh: "\f021"; -$fa-var-registered: "\f25d"; -$fa-var-remove: "\f00d"; -$fa-var-renren: "\f18b"; -$fa-var-reorder: "\f0c9"; -$fa-var-repeat: "\f01e"; -$fa-var-reply: "\f112"; -$fa-var-reply-all: "\f122"; -$fa-var-resistance: "\f1d0"; -$fa-var-retweet: "\f079"; -$fa-var-rmb: "\f157"; -$fa-var-road: "\f018"; -$fa-var-rocket: "\f135"; -$fa-var-rotate-left: "\f0e2"; -$fa-var-rotate-right: "\f01e"; -$fa-var-rouble: "\f158"; -$fa-var-rss: "\f09e"; -$fa-var-rss-square: "\f143"; -$fa-var-rub: "\f158"; -$fa-var-ruble: "\f158"; -$fa-var-rupee: "\f156"; -$fa-var-s15: "\f2cd"; -$fa-var-safari: "\f267"; -$fa-var-save: "\f0c7"; -$fa-var-scissors: "\f0c4"; -$fa-var-scribd: "\f28a"; -$fa-var-search: "\f002"; -$fa-var-search-minus: "\f010"; -$fa-var-search-plus: "\f00e"; -$fa-var-sellsy: "\f213"; -$fa-var-send: "\f1d8"; -$fa-var-send-o: "\f1d9"; -$fa-var-server: "\f233"; -$fa-var-share: "\f064"; -$fa-var-share-alt: "\f1e0"; -$fa-var-share-alt-square: "\f1e1"; -$fa-var-share-square: "\f14d"; -$fa-var-share-square-o: "\f045"; -$fa-var-shekel: "\f20b"; -$fa-var-sheqel: "\f20b"; -$fa-var-shield: "\f132"; -$fa-var-ship: "\f21a"; -$fa-var-shirtsinbulk: "\f214"; -$fa-var-shopping-bag: "\f290"; -$fa-var-shopping-basket: "\f291"; -$fa-var-shopping-cart: "\f07a"; -$fa-var-shower: "\f2cc"; -$fa-var-sign-in: "\f090"; -$fa-var-sign-language: "\f2a7"; -$fa-var-sign-out: "\f08b"; -$fa-var-signal: "\f012"; -$fa-var-signing: "\f2a7"; -$fa-var-simplybuilt: "\f215"; -$fa-var-sitemap: "\f0e8"; -$fa-var-skyatlas: "\f216"; -$fa-var-skype: "\f17e"; -$fa-var-slack: "\f198"; -$fa-var-sliders: "\f1de"; -$fa-var-slideshare: "\f1e7"; -$fa-var-smile-o: "\f118"; -$fa-var-snapchat: "\f2ab"; -$fa-var-snapchat-ghost: "\f2ac"; -$fa-var-snapchat-square: "\f2ad"; -$fa-var-snowflake-o: "\f2dc"; -$fa-var-soccer-ball-o: "\f1e3"; -$fa-var-sort: "\f0dc"; -$fa-var-sort-alpha-asc: "\f15d"; -$fa-var-sort-alpha-desc: "\f15e"; -$fa-var-sort-amount-asc: "\f160"; -$fa-var-sort-amount-desc: "\f161"; -$fa-var-sort-asc: "\f0de"; -$fa-var-sort-desc: "\f0dd"; -$fa-var-sort-down: "\f0dd"; -$fa-var-sort-numeric-asc: "\f162"; -$fa-var-sort-numeric-desc: "\f163"; -$fa-var-sort-up: "\f0de"; -$fa-var-soundcloud: "\f1be"; -$fa-var-space-shuttle: "\f197"; -$fa-var-spinner: "\f110"; -$fa-var-spoon: "\f1b1"; -$fa-var-spotify: "\f1bc"; -$fa-var-square: "\f0c8"; -$fa-var-square-o: "\f096"; -$fa-var-stack-exchange: "\f18d"; -$fa-var-stack-overflow: "\f16c"; -$fa-var-star: "\f005"; -$fa-var-star-half: "\f089"; -$fa-var-star-half-empty: "\f123"; -$fa-var-star-half-full: "\f123"; -$fa-var-star-half-o: "\f123"; -$fa-var-star-o: "\f006"; -$fa-var-steam: "\f1b6"; -$fa-var-steam-square: "\f1b7"; -$fa-var-step-backward: "\f048"; -$fa-var-step-forward: "\f051"; -$fa-var-stethoscope: "\f0f1"; -$fa-var-sticky-note: "\f249"; -$fa-var-sticky-note-o: "\f24a"; -$fa-var-stop: "\f04d"; -$fa-var-stop-circle: "\f28d"; -$fa-var-stop-circle-o: "\f28e"; -$fa-var-street-view: "\f21d"; -$fa-var-strikethrough: "\f0cc"; -$fa-var-stumbleupon: "\f1a4"; -$fa-var-stumbleupon-circle: "\f1a3"; -$fa-var-subscript: "\f12c"; -$fa-var-subway: "\f239"; -$fa-var-suitcase: "\f0f2"; -$fa-var-sun-o: "\f185"; -$fa-var-superpowers: "\f2dd"; -$fa-var-superscript: "\f12b"; -$fa-var-support: "\f1cd"; -$fa-var-table: "\f0ce"; -$fa-var-tablet: "\f10a"; -$fa-var-tachometer: "\f0e4"; -$fa-var-tag: "\f02b"; -$fa-var-tags: "\f02c"; -$fa-var-tasks: "\f0ae"; -$fa-var-taxi: "\f1ba"; -$fa-var-telegram: "\f2c6"; -$fa-var-television: "\f26c"; -$fa-var-tencent-weibo: "\f1d5"; -$fa-var-terminal: "\f120"; -$fa-var-text-height: "\f034"; -$fa-var-text-width: "\f035"; -$fa-var-th: "\f00a"; -$fa-var-th-large: "\f009"; -$fa-var-th-list: "\f00b"; -$fa-var-themeisle: "\f2b2"; -$fa-var-thermometer: "\f2c7"; -$fa-var-thermometer-0: "\f2cb"; -$fa-var-thermometer-1: "\f2ca"; -$fa-var-thermometer-2: "\f2c9"; -$fa-var-thermometer-3: "\f2c8"; -$fa-var-thermometer-4: "\f2c7"; -$fa-var-thermometer-empty: "\f2cb"; -$fa-var-thermometer-full: "\f2c7"; -$fa-var-thermometer-half: "\f2c9"; -$fa-var-thermometer-quarter: "\f2ca"; -$fa-var-thermometer-three-quarters: "\f2c8"; -$fa-var-thumb-tack: "\f08d"; -$fa-var-thumbs-down: "\f165"; -$fa-var-thumbs-o-down: "\f088"; -$fa-var-thumbs-o-up: "\f087"; -$fa-var-thumbs-up: "\f164"; -$fa-var-ticket: "\f145"; -$fa-var-times: "\f00d"; -$fa-var-times-circle: "\f057"; -$fa-var-times-circle-o: "\f05c"; -$fa-var-times-rectangle: "\f2d3"; -$fa-var-times-rectangle-o: "\f2d4"; -$fa-var-tint: "\f043"; -$fa-var-toggle-down: "\f150"; -$fa-var-toggle-left: "\f191"; -$fa-var-toggle-off: "\f204"; -$fa-var-toggle-on: "\f205"; -$fa-var-toggle-right: "\f152"; -$fa-var-toggle-up: "\f151"; -$fa-var-trademark: "\f25c"; -$fa-var-train: "\f238"; -$fa-var-transgender: "\f224"; -$fa-var-transgender-alt: "\f225"; -$fa-var-trash: "\f1f8"; -$fa-var-trash-o: "\f014"; -$fa-var-tree: "\f1bb"; -$fa-var-trello: "\f181"; -$fa-var-tripadvisor: "\f262"; -$fa-var-trophy: "\f091"; -$fa-var-truck: "\f0d1"; -$fa-var-try: "\f195"; -$fa-var-tty: "\f1e4"; -$fa-var-tumblr: "\f173"; -$fa-var-tumblr-square: "\f174"; -$fa-var-turkish-lira: "\f195"; -$fa-var-tv: "\f26c"; -$fa-var-twitch: "\f1e8"; -$fa-var-twitter: "\f099"; -$fa-var-twitter-square: "\f081"; -$fa-var-umbrella: "\f0e9"; -$fa-var-underline: "\f0cd"; -$fa-var-undo: "\f0e2"; -$fa-var-universal-access: "\f29a"; -$fa-var-university: "\f19c"; -$fa-var-unlink: "\f127"; -$fa-var-unlock: "\f09c"; -$fa-var-unlock-alt: "\f13e"; -$fa-var-unsorted: "\f0dc"; -$fa-var-upload: "\f093"; -$fa-var-usb: "\f287"; -$fa-var-usd: "\f155"; -$fa-var-user: "\f007"; -$fa-var-user-circle: "\f2bd"; -$fa-var-user-circle-o: "\f2be"; -$fa-var-user-md: "\f0f0"; -$fa-var-user-o: "\f2c0"; -$fa-var-user-plus: "\f234"; -$fa-var-user-secret: "\f21b"; -$fa-var-user-times: "\f235"; -$fa-var-users: "\f0c0"; -$fa-var-vcard: "\f2bb"; -$fa-var-vcard-o: "\f2bc"; -$fa-var-venus: "\f221"; -$fa-var-venus-double: "\f226"; -$fa-var-venus-mars: "\f228"; -$fa-var-viacoin: "\f237"; -$fa-var-viadeo: "\f2a9"; -$fa-var-viadeo-square: "\f2aa"; -$fa-var-video-camera: "\f03d"; -$fa-var-vimeo: "\f27d"; -$fa-var-vimeo-square: "\f194"; -$fa-var-vine: "\f1ca"; -$fa-var-vk: "\f189"; -$fa-var-volume-control-phone: "\f2a0"; -$fa-var-volume-down: "\f027"; -$fa-var-volume-off: "\f026"; -$fa-var-volume-up: "\f028"; -$fa-var-warning: "\f071"; -$fa-var-wechat: "\f1d7"; -$fa-var-weibo: "\f18a"; -$fa-var-weixin: "\f1d7"; -$fa-var-whatsapp: "\f232"; -$fa-var-wheelchair: "\f193"; -$fa-var-wheelchair-alt: "\f29b"; -$fa-var-wifi: "\f1eb"; -$fa-var-wikipedia-w: "\f266"; -$fa-var-window-close: "\f2d3"; -$fa-var-window-close-o: "\f2d4"; -$fa-var-window-maximize: "\f2d0"; -$fa-var-window-minimize: "\f2d1"; -$fa-var-window-restore: "\f2d2"; -$fa-var-windows: "\f17a"; -$fa-var-won: "\f159"; -$fa-var-wordpress: "\f19a"; -$fa-var-wpbeginner: "\f297"; -$fa-var-wpexplorer: "\f2de"; -$fa-var-wpforms: "\f298"; -$fa-var-wrench: "\f0ad"; -$fa-var-xing: "\f168"; -$fa-var-xing-square: "\f169"; -$fa-var-y-combinator: "\f23b"; -$fa-var-y-combinator-square: "\f1d4"; -$fa-var-yahoo: "\f19e"; -$fa-var-yc: "\f23b"; -$fa-var-yc-square: "\f1d4"; -$fa-var-yelp: "\f1e9"; -$fa-var-yen: "\f157"; -$fa-var-yoast: "\f2b1"; -$fa-var-youtube: "\f167"; -$fa-var-youtube-play: "\f16a"; -$fa-var-youtube-square: "\f166"; - diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/font-awesome.css b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/font-awesome.css deleted file mode 100644 index 67872a82a1..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/font-awesome.css +++ /dev/null @@ -1,3045 +0,0 @@ -@charset "UTF-8"; -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'FontAwesome'; - src: url("../fonts/fontawesome-webfont.eot?v=4.7.0"); - src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg"); - font-weight: normal; - font-style: normal; -} - -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -/* makes the font 33% larger relative to the icon container */ -.fa-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -15%; -} - -.fa-2x { - font-size: 2em; -} - -.fa-3x { - font-size: 3em; -} - -.fa-4x { - font-size: 4em; -} - -.fa-5x { - font-size: 5em; -} - -.fa-fw { - width: 1.28571em; - text-align: center; -} - -.fa-ul { - padding-left: 0; - margin-left: 2.14286em; - list-style-type: none; -} - -.fa-ul > li { - position: relative; -} - -.fa-li { - position: absolute; - left: -2.14286em; - width: 2.14286em; - top: 0.14286em; - text-align: center; -} - -.fa-li.fa-lg { - left: -1.85714em; -} - -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eee; - border-radius: .1em; -} - -.fa-pull-left { - float: left; -} - -.fa-pull-right { - float: right; -} - -.fa.fa-pull-left { - margin-right: .3em; -} - -.fa.fa-pull-right { - margin-left: .3em; -} - -/* Deprecated as of 4.4.0 */ -.pull-right { - float: right; -} - -.pull-left { - float: left; -} - -.fa.pull-left { - margin-right: .3em; -} - -.fa.pull-right { - margin-left: .3em; -} - -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - transform: rotate(90deg); -} - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - transform: rotate(180deg); -} - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - transform: rotate(270deg); -} - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - transform: scale(-1, 1); -} - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - transform: scale(1, -1); -} - -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - -webkit-filter: none; - filter: none; -} - -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} - -.fa-stack-1x, .fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} - -.fa-stack-1x { - line-height: inherit; -} - -.fa-stack-2x { - font-size: 2em; -} - -.fa-inverse { - color: #fff; -} - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.fa-glass:before { - content: ""; -} - -.fa-music:before { - content: ""; -} - -.fa-search:before { - content: ""; -} - -.fa-envelope-o:before { - content: ""; -} - -.fa-heart:before { - content: ""; -} - -.fa-star:before { - content: ""; -} - -.fa-star-o:before { - content: ""; -} - -.fa-user:before { - content: ""; -} - -.fa-film:before { - content: ""; -} - -.fa-th-large:before { - content: ""; -} - -.fa-th:before { - content: ""; -} - -.fa-th-list:before { - content: ""; -} - -.fa-check:before { - content: ""; -} - -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: ""; -} - -.fa-search-plus:before { - content: ""; -} - -.fa-search-minus:before { - content: ""; -} - -.fa-power-off:before { - content: ""; -} - -.fa-signal:before { - content: ""; -} - -.fa-gear:before, -.fa-cog:before { - content: ""; -} - -.fa-trash-o:before { - content: ""; -} - -.fa-home:before { - content: ""; -} - -.fa-file-o:before { - content: ""; -} - -.fa-clock-o:before { - content: ""; -} - -.fa-road:before { - content: ""; -} - -.fa-download:before { - content: ""; -} - -.fa-arrow-circle-o-down:before { - content: ""; -} - -.fa-arrow-circle-o-up:before { - content: ""; -} - -.fa-inbox:before { - content: ""; -} - -.fa-play-circle-o:before { - content: ""; -} - -.fa-rotate-right:before, -.fa-repeat:before { - content: ""; -} - -.fa-refresh:before { - content: ""; -} - -.fa-list-alt:before { - content: ""; -} - -.fa-lock:before { - content: ""; -} - -.fa-flag:before { - content: ""; -} - -.fa-headphones:before { - content: ""; -} - -.fa-volume-off:before { - content: ""; -} - -.fa-volume-down:before { - content: ""; -} - -.fa-volume-up:before { - content: ""; -} - -.fa-qrcode:before { - content: ""; -} - -.fa-barcode:before { - content: ""; -} - -.fa-tag:before { - content: ""; -} - -.fa-tags:before { - content: ""; -} - -.fa-book:before { - content: ""; -} - -.fa-bookmark:before { - content: ""; -} - -.fa-print:before { - content: ""; -} - -.fa-camera:before { - content: ""; -} - -.fa-font:before { - content: ""; -} - -.fa-bold:before { - content: ""; -} - -.fa-italic:before { - content: ""; -} - -.fa-text-height:before { - content: ""; -} - -.fa-text-width:before { - content: ""; -} - -.fa-align-left:before { - content: ""; -} - -.fa-align-center:before { - content: ""; -} - -.fa-align-right:before { - content: ""; -} - -.fa-align-justify:before { - content: ""; -} - -.fa-list:before { - content: ""; -} - -.fa-dedent:before, -.fa-outdent:before { - content: ""; -} - -.fa-indent:before { - content: ""; -} - -.fa-video-camera:before { - content: ""; -} - -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: ""; -} - -.fa-pencil:before { - content: ""; -} - -.fa-map-marker:before { - content: ""; -} - -.fa-adjust:before { - content: ""; -} - -.fa-tint:before { - content: ""; -} - -.fa-edit:before, -.fa-pencil-square-o:before { - content: ""; -} - -.fa-share-square-o:before { - content: ""; -} - -.fa-check-square-o:before { - content: ""; -} - -.fa-arrows:before { - content: ""; -} - -.fa-step-backward:before { - content: ""; -} - -.fa-fast-backward:before { - content: ""; -} - -.fa-backward:before { - content: ""; -} - -.fa-play:before { - content: ""; -} - -.fa-pause:before { - content: ""; -} - -.fa-stop:before { - content: ""; -} - -.fa-forward:before { - content: ""; -} - -.fa-fast-forward:before { - content: ""; -} - -.fa-step-forward:before { - content: ""; -} - -.fa-eject:before { - content: ""; -} - -.fa-chevron-left:before { - content: ""; -} - -.fa-chevron-right:before { - content: ""; -} - -.fa-plus-circle:before { - content: ""; -} - -.fa-minus-circle:before { - content: ""; -} - -.fa-times-circle:before { - content: ""; -} - -.fa-check-circle:before { - content: ""; -} - -.fa-question-circle:before { - content: ""; -} - -.fa-info-circle:before { - content: ""; -} - -.fa-crosshairs:before { - content: ""; -} - -.fa-times-circle-o:before { - content: ""; -} - -.fa-check-circle-o:before { - content: ""; -} - -.fa-ban:before { - content: ""; -} - -.fa-arrow-left:before { - content: ""; -} - -.fa-arrow-right:before { - content: ""; -} - -.fa-arrow-up:before { - content: ""; -} - -.fa-arrow-down:before { - content: ""; -} - -.fa-mail-forward:before, -.fa-share:before { - content: ""; -} - -.fa-expand:before { - content: ""; -} - -.fa-compress:before { - content: ""; -} - -.fa-plus:before { - content: ""; -} - -.fa-minus:before { - content: ""; -} - -.fa-asterisk:before { - content: ""; -} - -.fa-exclamation-circle:before { - content: ""; -} - -.fa-gift:before { - content: ""; -} - -.fa-leaf:before { - content: ""; -} - -.fa-fire:before { - content: ""; -} - -.fa-eye:before { - content: ""; -} - -.fa-eye-slash:before { - content: ""; -} - -.fa-warning:before, -.fa-exclamation-triangle:before { - content: ""; -} - -.fa-plane:before { - content: ""; -} - -.fa-calendar:before { - content: ""; -} - -.fa-random:before { - content: ""; -} - -.fa-comment:before { - content: ""; -} - -.fa-magnet:before { - content: ""; -} - -.fa-chevron-up:before { - content: ""; -} - -.fa-chevron-down:before { - content: ""; -} - -.fa-retweet:before { - content: ""; -} - -.fa-shopping-cart:before { - content: ""; -} - -.fa-folder:before { - content: ""; -} - -.fa-folder-open:before { - content: ""; -} - -.fa-arrows-v:before { - content: ""; -} - -.fa-arrows-h:before { - content: ""; -} - -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: ""; -} - -.fa-twitter-square:before { - content: ""; -} - -.fa-facebook-square:before { - content: ""; -} - -.fa-camera-retro:before { - content: ""; -} - -.fa-key:before { - content: ""; -} - -.fa-gears:before, -.fa-cogs:before { - content: ""; -} - -.fa-comments:before { - content: ""; -} - -.fa-thumbs-o-up:before { - content: ""; -} - -.fa-thumbs-o-down:before { - content: ""; -} - -.fa-star-half:before { - content: ""; -} - -.fa-heart-o:before { - content: ""; -} - -.fa-sign-out:before { - content: ""; -} - -.fa-linkedin-square:before { - content: ""; -} - -.fa-thumb-tack:before { - content: ""; -} - -.fa-external-link:before { - content: ""; -} - -.fa-sign-in:before { - content: ""; -} - -.fa-trophy:before { - content: ""; -} - -.fa-github-square:before { - content: ""; -} - -.fa-upload:before { - content: ""; -} - -.fa-lemon-o:before { - content: ""; -} - -.fa-phone:before { - content: ""; -} - -.fa-square-o:before { - content: ""; -} - -.fa-bookmark-o:before { - content: ""; -} - -.fa-phone-square:before { - content: ""; -} - -.fa-twitter:before { - content: ""; -} - -.fa-facebook-f:before, -.fa-facebook:before { - content: ""; -} - -.fa-github:before { - content: ""; -} - -.fa-unlock:before { - content: ""; -} - -.fa-credit-card:before { - content: ""; -} - -.fa-feed:before, -.fa-rss:before { - content: ""; -} - -.fa-hdd-o:before { - content: ""; -} - -.fa-bullhorn:before { - content: ""; -} - -.fa-bell:before { - content: ""; -} - -.fa-certificate:before { - content: ""; -} - -.fa-hand-o-right:before { - content: ""; -} - -.fa-hand-o-left:before { - content: ""; -} - -.fa-hand-o-up:before { - content: ""; -} - -.fa-hand-o-down:before { - content: ""; -} - -.fa-arrow-circle-left:before { - content: ""; -} - -.fa-arrow-circle-right:before { - content: ""; -} - -.fa-arrow-circle-up:before { - content: ""; -} - -.fa-arrow-circle-down:before { - content: ""; -} - -.fa-globe:before { - content: ""; -} - -.fa-wrench:before { - content: ""; -} - -.fa-tasks:before { - content: ""; -} - -.fa-filter:before { - content: ""; -} - -.fa-briefcase:before { - content: ""; -} - -.fa-arrows-alt:before { - content: ""; -} - -.fa-group:before, -.fa-users:before { - content: ""; -} - -.fa-chain:before, -.fa-link:before { - content: ""; -} - -.fa-cloud:before { - content: ""; -} - -.fa-flask:before { - content: ""; -} - -.fa-cut:before, -.fa-scissors:before { - content: ""; -} - -.fa-copy:before, -.fa-files-o:before { - content: ""; -} - -.fa-paperclip:before { - content: ""; -} - -.fa-save:before, -.fa-floppy-o:before { - content: ""; -} - -.fa-square:before { - content: ""; -} - -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: ""; -} - -.fa-list-ul:before { - content: ""; -} - -.fa-list-ol:before { - content: ""; -} - -.fa-strikethrough:before { - content: ""; -} - -.fa-underline:before { - content: ""; -} - -.fa-table:before { - content: ""; -} - -.fa-magic:before { - content: ""; -} - -.fa-truck:before { - content: ""; -} - -.fa-pinterest:before { - content: ""; -} - -.fa-pinterest-square:before { - content: ""; -} - -.fa-google-plus-square:before { - content: ""; -} - -.fa-google-plus:before { - content: ""; -} - -.fa-money:before { - content: ""; -} - -.fa-caret-down:before { - content: ""; -} - -.fa-caret-up:before { - content: ""; -} - -.fa-caret-left:before { - content: ""; -} - -.fa-caret-right:before { - content: ""; -} - -.fa-columns:before { - content: ""; -} - -.fa-unsorted:before, -.fa-sort:before { - content: ""; -} - -.fa-sort-down:before, -.fa-sort-desc:before { - content: ""; -} - -.fa-sort-up:before, -.fa-sort-asc:before { - content: ""; -} - -.fa-envelope:before { - content: ""; -} - -.fa-linkedin:before { - content: ""; -} - -.fa-rotate-left:before, -.fa-undo:before { - content: ""; -} - -.fa-legal:before, -.fa-gavel:before { - content: ""; -} - -.fa-dashboard:before, -.fa-tachometer:before { - content: ""; -} - -.fa-comment-o:before { - content: ""; -} - -.fa-comments-o:before { - content: ""; -} - -.fa-flash:before, -.fa-bolt:before { - content: ""; -} - -.fa-sitemap:before { - content: ""; -} - -.fa-umbrella:before { - content: ""; -} - -.fa-paste:before, -.fa-clipboard:before { - content: ""; -} - -.fa-lightbulb-o:before { - content: ""; -} - -.fa-exchange:before { - content: ""; -} - -.fa-cloud-download:before { - content: ""; -} - -.fa-cloud-upload:before { - content: ""; -} - -.fa-user-md:before { - content: ""; -} - -.fa-stethoscope:before { - content: ""; -} - -.fa-suitcase:before { - content: ""; -} - -.fa-bell-o:before { - content: ""; -} - -.fa-coffee:before { - content: ""; -} - -.fa-cutlery:before { - content: ""; -} - -.fa-file-text-o:before { - content: ""; -} - -.fa-building-o:before { - content: ""; -} - -.fa-hospital-o:before { - content: ""; -} - -.fa-ambulance:before { - content: ""; -} - -.fa-medkit:before { - content: ""; -} - -.fa-fighter-jet:before { - content: ""; -} - -.fa-beer:before { - content: ""; -} - -.fa-h-square:before { - content: ""; -} - -.fa-plus-square:before { - content: ""; -} - -.fa-angle-double-left:before { - content: ""; -} - -.fa-angle-double-right:before { - content: ""; -} - -.fa-angle-double-up:before { - content: ""; -} - -.fa-angle-double-down:before { - content: ""; -} - -.fa-angle-left:before { - content: ""; -} - -.fa-angle-right:before { - content: ""; -} - -.fa-angle-up:before { - content: ""; -} - -.fa-angle-down:before { - content: ""; -} - -.fa-desktop:before { - content: ""; -} - -.fa-laptop:before { - content: ""; -} - -.fa-tablet:before { - content: ""; -} - -.fa-mobile-phone:before, -.fa-mobile:before { - content: ""; -} - -.fa-circle-o:before { - content: ""; -} - -.fa-quote-left:before { - content: ""; -} - -.fa-quote-right:before { - content: ""; -} - -.fa-spinner:before { - content: ""; -} - -.fa-circle:before { - content: ""; -} - -.fa-mail-reply:before, -.fa-reply:before { - content: ""; -} - -.fa-github-alt:before { - content: ""; -} - -.fa-folder-o:before { - content: ""; -} - -.fa-folder-open-o:before { - content: ""; -} - -.fa-smile-o:before { - content: ""; -} - -.fa-frown-o:before { - content: ""; -} - -.fa-meh-o:before { - content: ""; -} - -.fa-gamepad:before { - content: ""; -} - -.fa-keyboard-o:before { - content: ""; -} - -.fa-flag-o:before { - content: ""; -} - -.fa-flag-checkered:before { - content: ""; -} - -.fa-terminal:before { - content: ""; -} - -.fa-code:before { - content: ""; -} - -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: ""; -} - -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: ""; -} - -.fa-location-arrow:before { - content: ""; -} - -.fa-crop:before { - content: ""; -} - -.fa-code-fork:before { - content: ""; -} - -.fa-unlink:before, -.fa-chain-broken:before { - content: ""; -} - -.fa-question:before { - content: ""; -} - -.fa-info:before { - content: ""; -} - -.fa-exclamation:before { - content: ""; -} - -.fa-superscript:before { - content: ""; -} - -.fa-subscript:before { - content: ""; -} - -.fa-eraser:before { - content: ""; -} - -.fa-puzzle-piece:before { - content: ""; -} - -.fa-microphone:before { - content: ""; -} - -.fa-microphone-slash:before { - content: ""; -} - -.fa-shield:before { - content: ""; -} - -.fa-calendar-o:before { - content: ""; -} - -.fa-fire-extinguisher:before { - content: ""; -} - -.fa-rocket:before { - content: ""; -} - -.fa-maxcdn:before { - content: ""; -} - -.fa-chevron-circle-left:before { - content: ""; -} - -.fa-chevron-circle-right:before { - content: ""; -} - -.fa-chevron-circle-up:before { - content: ""; -} - -.fa-chevron-circle-down:before { - content: ""; -} - -.fa-html5:before { - content: ""; -} - -.fa-css3:before { - content: ""; -} - -.fa-anchor:before { - content: ""; -} - -.fa-unlock-alt:before { - content: ""; -} - -.fa-bullseye:before { - content: ""; -} - -.fa-ellipsis-h:before { - content: ""; -} - -.fa-ellipsis-v:before { - content: ""; -} - -.fa-rss-square:before { - content: ""; -} - -.fa-play-circle:before { - content: ""; -} - -.fa-ticket:before { - content: ""; -} - -.fa-minus-square:before { - content: ""; -} - -.fa-minus-square-o:before { - content: ""; -} - -.fa-level-up:before { - content: ""; -} - -.fa-level-down:before { - content: ""; -} - -.fa-check-square:before { - content: ""; -} - -.fa-pencil-square:before { - content: ""; -} - -.fa-external-link-square:before { - content: ""; -} - -.fa-share-square:before { - content: ""; -} - -.fa-compass:before { - content: ""; -} - -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: ""; -} - -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: ""; -} - -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: ""; -} - -.fa-euro:before, -.fa-eur:before { - content: ""; -} - -.fa-gbp:before { - content: ""; -} - -.fa-dollar:before, -.fa-usd:before { - content: ""; -} - -.fa-rupee:before, -.fa-inr:before { - content: ""; -} - -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: ""; -} - -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: ""; -} - -.fa-won:before, -.fa-krw:before { - content: ""; -} - -.fa-bitcoin:before, -.fa-btc:before { - content: ""; -} - -.fa-file:before { - content: ""; -} - -.fa-file-text:before { - content: ""; -} - -.fa-sort-alpha-asc:before { - content: ""; -} - -.fa-sort-alpha-desc:before { - content: ""; -} - -.fa-sort-amount-asc:before { - content: ""; -} - -.fa-sort-amount-desc:before { - content: ""; -} - -.fa-sort-numeric-asc:before { - content: ""; -} - -.fa-sort-numeric-desc:before { - content: ""; -} - -.fa-thumbs-up:before { - content: ""; -} - -.fa-thumbs-down:before { - content: ""; -} - -.fa-youtube-square:before { - content: ""; -} - -.fa-youtube:before { - content: ""; -} - -.fa-xing:before { - content: ""; -} - -.fa-xing-square:before { - content: ""; -} - -.fa-youtube-play:before { - content: ""; -} - -.fa-dropbox:before { - content: ""; -} - -.fa-stack-overflow:before { - content: ""; -} - -.fa-instagram:before { - content: ""; -} - -.fa-flickr:before { - content: ""; -} - -.fa-adn:before { - content: ""; -} - -.fa-bitbucket:before { - content: ""; -} - -.fa-bitbucket-square:before { - content: ""; -} - -.fa-tumblr:before { - content: ""; -} - -.fa-tumblr-square:before { - content: ""; -} - -.fa-long-arrow-down:before { - content: ""; -} - -.fa-long-arrow-up:before { - content: ""; -} - -.fa-long-arrow-left:before { - content: ""; -} - -.fa-long-arrow-right:before { - content: ""; -} - -.fa-apple:before { - content: ""; -} - -.fa-windows:before { - content: ""; -} - -.fa-android:before { - content: ""; -} - -.fa-linux:before { - content: ""; -} - -.fa-dribbble:before { - content: ""; -} - -.fa-skype:before { - content: ""; -} - -.fa-foursquare:before { - content: ""; -} - -.fa-trello:before { - content: ""; -} - -.fa-female:before { - content: ""; -} - -.fa-male:before { - content: ""; -} - -.fa-gittip:before, -.fa-gratipay:before { - content: ""; -} - -.fa-sun-o:before { - content: ""; -} - -.fa-moon-o:before { - content: ""; -} - -.fa-archive:before { - content: ""; -} - -.fa-bug:before { - content: ""; -} - -.fa-vk:before { - content: ""; -} - -.fa-weibo:before { - content: ""; -} - -.fa-renren:before { - content: ""; -} - -.fa-pagelines:before { - content: ""; -} - -.fa-stack-exchange:before { - content: ""; -} - -.fa-arrow-circle-o-right:before { - content: ""; -} - -.fa-arrow-circle-o-left:before { - content: ""; -} - -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: ""; -} - -.fa-dot-circle-o:before { - content: ""; -} - -.fa-wheelchair:before { - content: ""; -} - -.fa-vimeo-square:before { - content: ""; -} - -.fa-turkish-lira:before, -.fa-try:before { - content: ""; -} - -.fa-plus-square-o:before { - content: ""; -} - -.fa-space-shuttle:before { - content: ""; -} - -.fa-slack:before { - content: ""; -} - -.fa-envelope-square:before { - content: ""; -} - -.fa-wordpress:before { - content: ""; -} - -.fa-openid:before { - content: ""; -} - -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: ""; -} - -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: ""; -} - -.fa-yahoo:before { - content: ""; -} - -.fa-google:before { - content: ""; -} - -.fa-reddit:before { - content: ""; -} - -.fa-reddit-square:before { - content: ""; -} - -.fa-stumbleupon-circle:before { - content: ""; -} - -.fa-stumbleupon:before { - content: ""; -} - -.fa-delicious:before { - content: ""; -} - -.fa-digg:before { - content: ""; -} - -.fa-pied-piper-pp:before { - content: ""; -} - -.fa-pied-piper-alt:before { - content: ""; -} - -.fa-drupal:before { - content: ""; -} - -.fa-joomla:before { - content: ""; -} - -.fa-language:before { - content: ""; -} - -.fa-fax:before { - content: ""; -} - -.fa-building:before { - content: ""; -} - -.fa-child:before { - content: ""; -} - -.fa-paw:before { - content: ""; -} - -.fa-spoon:before { - content: ""; -} - -.fa-cube:before { - content: ""; -} - -.fa-cubes:before { - content: ""; -} - -.fa-behance:before { - content: ""; -} - -.fa-behance-square:before { - content: ""; -} - -.fa-steam:before { - content: ""; -} - -.fa-steam-square:before { - content: ""; -} - -.fa-recycle:before { - content: ""; -} - -.fa-automobile:before, -.fa-car:before { - content: ""; -} - -.fa-cab:before, -.fa-taxi:before { - content: ""; -} - -.fa-tree:before { - content: ""; -} - -.fa-spotify:before { - content: ""; -} - -.fa-deviantart:before { - content: ""; -} - -.fa-soundcloud:before { - content: ""; -} - -.fa-database:before { - content: ""; -} - -.fa-file-pdf-o:before { - content: ""; -} - -.fa-file-word-o:before { - content: ""; -} - -.fa-file-excel-o:before { - content: ""; -} - -.fa-file-powerpoint-o:before { - content: ""; -} - -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: ""; -} - -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: ""; -} - -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: ""; -} - -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: ""; -} - -.fa-file-code-o:before { - content: ""; -} - -.fa-vine:before { - content: ""; -} - -.fa-codepen:before { - content: ""; -} - -.fa-jsfiddle:before { - content: ""; -} - -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: ""; -} - -.fa-circle-o-notch:before { - content: ""; -} - -.fa-ra:before, -.fa-resistance:before, -.fa-rebel:before { - content: ""; -} - -.fa-ge:before, -.fa-empire:before { - content: ""; -} - -.fa-git-square:before { - content: ""; -} - -.fa-git:before { - content: ""; -} - -.fa-y-combinator-square:before, -.fa-yc-square:before, -.fa-hacker-news:before { - content: ""; -} - -.fa-tencent-weibo:before { - content: ""; -} - -.fa-qq:before { - content: ""; -} - -.fa-wechat:before, -.fa-weixin:before { - content: ""; -} - -.fa-send:before, -.fa-paper-plane:before { - content: ""; -} - -.fa-send-o:before, -.fa-paper-plane-o:before { - content: ""; -} - -.fa-history:before { - content: ""; -} - -.fa-circle-thin:before { - content: ""; -} - -.fa-header:before { - content: ""; -} - -.fa-paragraph:before { - content: ""; -} - -.fa-sliders:before { - content: ""; -} - -.fa-share-alt:before { - content: ""; -} - -.fa-share-alt-square:before { - content: ""; -} - -.fa-bomb:before { - content: ""; -} - -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: ""; -} - -.fa-tty:before { - content: ""; -} - -.fa-binoculars:before { - content: ""; -} - -.fa-plug:before { - content: ""; -} - -.fa-slideshare:before { - content: ""; -} - -.fa-twitch:before { - content: ""; -} - -.fa-yelp:before { - content: ""; -} - -.fa-newspaper-o:before { - content: ""; -} - -.fa-wifi:before { - content: ""; -} - -.fa-calculator:before { - content: ""; -} - -.fa-paypal:before { - content: ""; -} - -.fa-google-wallet:before { - content: ""; -} - -.fa-cc-visa:before { - content: ""; -} - -.fa-cc-mastercard:before { - content: ""; -} - -.fa-cc-discover:before { - content: ""; -} - -.fa-cc-amex:before { - content: ""; -} - -.fa-cc-paypal:before { - content: ""; -} - -.fa-cc-stripe:before { - content: ""; -} - -.fa-bell-slash:before { - content: ""; -} - -.fa-bell-slash-o:before { - content: ""; -} - -.fa-trash:before { - content: ""; -} - -.fa-copyright:before { - content: ""; -} - -.fa-at:before { - content: ""; -} - -.fa-eyedropper:before { - content: ""; -} - -.fa-paint-brush:before { - content: ""; -} - -.fa-birthday-cake:before { - content: ""; -} - -.fa-area-chart:before { - content: ""; -} - -.fa-pie-chart:before { - content: ""; -} - -.fa-line-chart:before { - content: ""; -} - -.fa-lastfm:before { - content: ""; -} - -.fa-lastfm-square:before { - content: ""; -} - -.fa-toggle-off:before { - content: ""; -} - -.fa-toggle-on:before { - content: ""; -} - -.fa-bicycle:before { - content: ""; -} - -.fa-bus:before { - content: ""; -} - -.fa-ioxhost:before { - content: ""; -} - -.fa-angellist:before { - content: ""; -} - -.fa-cc:before { - content: ""; -} - -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: ""; -} - -.fa-meanpath:before { - content: ""; -} - -.fa-buysellads:before { - content: ""; -} - -.fa-connectdevelop:before { - content: ""; -} - -.fa-dashcube:before { - content: ""; -} - -.fa-forumbee:before { - content: ""; -} - -.fa-leanpub:before { - content: ""; -} - -.fa-sellsy:before { - content: ""; -} - -.fa-shirtsinbulk:before { - content: ""; -} - -.fa-simplybuilt:before { - content: ""; -} - -.fa-skyatlas:before { - content: ""; -} - -.fa-cart-plus:before { - content: ""; -} - -.fa-cart-arrow-down:before { - content: ""; -} - -.fa-diamond:before { - content: ""; -} - -.fa-ship:before { - content: ""; -} - -.fa-user-secret:before { - content: ""; -} - -.fa-motorcycle:before { - content: ""; -} - -.fa-street-view:before { - content: ""; -} - -.fa-heartbeat:before { - content: ""; -} - -.fa-venus:before { - content: ""; -} - -.fa-mars:before { - content: ""; -} - -.fa-mercury:before { - content: ""; -} - -.fa-intersex:before, -.fa-transgender:before { - content: ""; -} - -.fa-transgender-alt:before { - content: ""; -} - -.fa-venus-double:before { - content: ""; -} - -.fa-mars-double:before { - content: ""; -} - -.fa-venus-mars:before { - content: ""; -} - -.fa-mars-stroke:before { - content: ""; -} - -.fa-mars-stroke-v:before { - content: ""; -} - -.fa-mars-stroke-h:before { - content: ""; -} - -.fa-neuter:before { - content: ""; -} - -.fa-genderless:before { - content: ""; -} - -.fa-facebook-official:before { - content: ""; -} - -.fa-pinterest-p:before { - content: ""; -} - -.fa-whatsapp:before { - content: ""; -} - -.fa-server:before { - content: ""; -} - -.fa-user-plus:before { - content: ""; -} - -.fa-user-times:before { - content: ""; -} - -.fa-hotel:before, -.fa-bed:before { - content: ""; -} - -.fa-viacoin:before { - content: ""; -} - -.fa-train:before { - content: ""; -} - -.fa-subway:before { - content: ""; -} - -.fa-medium:before { - content: ""; -} - -.fa-yc:before, -.fa-y-combinator:before { - content: ""; -} - -.fa-optin-monster:before { - content: ""; -} - -.fa-opencart:before { - content: ""; -} - -.fa-expeditedssl:before { - content: ""; -} - -.fa-battery-4:before, -.fa-battery:before, -.fa-battery-full:before { - content: ""; -} - -.fa-battery-3:before, -.fa-battery-three-quarters:before { - content: ""; -} - -.fa-battery-2:before, -.fa-battery-half:before { - content: ""; -} - -.fa-battery-1:before, -.fa-battery-quarter:before { - content: ""; -} - -.fa-battery-0:before, -.fa-battery-empty:before { - content: ""; -} - -.fa-mouse-pointer:before { - content: ""; -} - -.fa-i-cursor:before { - content: ""; -} - -.fa-object-group:before { - content: ""; -} - -.fa-object-ungroup:before { - content: ""; -} - -.fa-sticky-note:before { - content: ""; -} - -.fa-sticky-note-o:before { - content: ""; -} - -.fa-cc-jcb:before { - content: ""; -} - -.fa-cc-diners-club:before { - content: ""; -} - -.fa-clone:before { - content: ""; -} - -.fa-balance-scale:before { - content: ""; -} - -.fa-hourglass-o:before { - content: ""; -} - -.fa-hourglass-1:before, -.fa-hourglass-start:before { - content: ""; -} - -.fa-hourglass-2:before, -.fa-hourglass-half:before { - content: ""; -} - -.fa-hourglass-3:before, -.fa-hourglass-end:before { - content: ""; -} - -.fa-hourglass:before { - content: ""; -} - -.fa-hand-grab-o:before, -.fa-hand-rock-o:before { - content: ""; -} - -.fa-hand-stop-o:before, -.fa-hand-paper-o:before { - content: ""; -} - -.fa-hand-scissors-o:before { - content: ""; -} - -.fa-hand-lizard-o:before { - content: ""; -} - -.fa-hand-spock-o:before { - content: ""; -} - -.fa-hand-pointer-o:before { - content: ""; -} - -.fa-hand-peace-o:before { - content: ""; -} - -.fa-trademark:before { - content: ""; -} - -.fa-registered:before { - content: ""; -} - -.fa-creative-commons:before { - content: ""; -} - -.fa-gg:before { - content: ""; -} - -.fa-gg-circle:before { - content: ""; -} - -.fa-tripadvisor:before { - content: ""; -} - -.fa-odnoklassniki:before { - content: ""; -} - -.fa-odnoklassniki-square:before { - content: ""; -} - -.fa-get-pocket:before { - content: ""; -} - -.fa-wikipedia-w:before { - content: ""; -} - -.fa-safari:before { - content: ""; -} - -.fa-chrome:before { - content: ""; -} - -.fa-firefox:before { - content: ""; -} - -.fa-opera:before { - content: ""; -} - -.fa-internet-explorer:before { - content: ""; -} - -.fa-tv:before, -.fa-television:before { - content: ""; -} - -.fa-contao:before { - content: ""; -} - -.fa-500px:before { - content: ""; -} - -.fa-amazon:before { - content: ""; -} - -.fa-calendar-plus-o:before { - content: ""; -} - -.fa-calendar-minus-o:before { - content: ""; -} - -.fa-calendar-times-o:before { - content: ""; -} - -.fa-calendar-check-o:before { - content: ""; -} - -.fa-industry:before { - content: ""; -} - -.fa-map-pin:before { - content: ""; -} - -.fa-map-signs:before { - content: ""; -} - -.fa-map-o:before { - content: ""; -} - -.fa-map:before { - content: ""; -} - -.fa-commenting:before { - content: ""; -} - -.fa-commenting-o:before { - content: ""; -} - -.fa-houzz:before { - content: ""; -} - -.fa-vimeo:before { - content: ""; -} - -.fa-black-tie:before { - content: ""; -} - -.fa-fonticons:before { - content: ""; -} - -.fa-reddit-alien:before { - content: ""; -} - -.fa-edge:before { - content: ""; -} - -.fa-credit-card-alt:before { - content: ""; -} - -.fa-codiepie:before { - content: ""; -} - -.fa-modx:before { - content: ""; -} - -.fa-fort-awesome:before { - content: ""; -} - -.fa-usb:before { - content: ""; -} - -.fa-product-hunt:before { - content: ""; -} - -.fa-mixcloud:before { - content: ""; -} - -.fa-scribd:before { - content: ""; -} - -.fa-pause-circle:before { - content: ""; -} - -.fa-pause-circle-o:before { - content: ""; -} - -.fa-stop-circle:before { - content: ""; -} - -.fa-stop-circle-o:before { - content: ""; -} - -.fa-shopping-bag:before { - content: ""; -} - -.fa-shopping-basket:before { - content: ""; -} - -.fa-hashtag:before { - content: ""; -} - -.fa-bluetooth:before { - content: ""; -} - -.fa-bluetooth-b:before { - content: ""; -} - -.fa-percent:before { - content: ""; -} - -.fa-gitlab:before { - content: ""; -} - -.fa-wpbeginner:before { - content: ""; -} - -.fa-wpforms:before { - content: ""; -} - -.fa-envira:before { - content: ""; -} - -.fa-universal-access:before { - content: ""; -} - -.fa-wheelchair-alt:before { - content: ""; -} - -.fa-question-circle-o:before { - content: ""; -} - -.fa-blind:before { - content: ""; -} - -.fa-audio-description:before { - content: ""; -} - -.fa-volume-control-phone:before { - content: ""; -} - -.fa-braille:before { - content: ""; -} - -.fa-assistive-listening-systems:before { - content: ""; -} - -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: ""; -} - -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: ""; -} - -.fa-glide:before { - content: ""; -} - -.fa-glide-g:before { - content: ""; -} - -.fa-signing:before, -.fa-sign-language:before { - content: ""; -} - -.fa-low-vision:before { - content: ""; -} - -.fa-viadeo:before { - content: ""; -} - -.fa-viadeo-square:before { - content: ""; -} - -.fa-snapchat:before { - content: ""; -} - -.fa-snapchat-ghost:before { - content: ""; -} - -.fa-snapchat-square:before { - content: ""; -} - -.fa-pied-piper:before { - content: ""; -} - -.fa-first-order:before { - content: ""; -} - -.fa-yoast:before { - content: ""; -} - -.fa-themeisle:before { - content: ""; -} - -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: ""; -} - -.fa-fa:before, -.fa-font-awesome:before { - content: ""; -} - -.fa-handshake-o:before { - content: ""; -} - -.fa-envelope-open:before { - content: ""; -} - -.fa-envelope-open-o:before { - content: ""; -} - -.fa-linode:before { - content: ""; -} - -.fa-address-book:before { - content: ""; -} - -.fa-address-book-o:before { - content: ""; -} - -.fa-vcard:before, -.fa-address-card:before { - content: ""; -} - -.fa-vcard-o:before, -.fa-address-card-o:before { - content: ""; -} - -.fa-user-circle:before { - content: ""; -} - -.fa-user-circle-o:before { - content: ""; -} - -.fa-user-o:before { - content: ""; -} - -.fa-id-badge:before { - content: ""; -} - -.fa-drivers-license:before, -.fa-id-card:before { - content: ""; -} - -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: ""; -} - -.fa-quora:before { - content: ""; -} - -.fa-free-code-camp:before { - content: ""; -} - -.fa-telegram:before { - content: ""; -} - -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: ""; -} - -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: ""; -} - -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: ""; -} - -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: ""; -} - -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: ""; -} - -.fa-shower:before { - content: ""; -} - -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: ""; -} - -.fa-podcast:before { - content: ""; -} - -.fa-window-maximize:before { - content: ""; -} - -.fa-window-minimize:before { - content: ""; -} - -.fa-window-restore:before { - content: ""; -} - -.fa-times-rectangle:before, -.fa-window-close:before { - content: ""; -} - -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: ""; -} - -.fa-bandcamp:before { - content: ""; -} - -.fa-grav:before { - content: ""; -} - -.fa-etsy:before { - content: ""; -} - -.fa-imdb:before { - content: ""; -} - -.fa-ravelry:before { - content: ""; -} - -.fa-eercast:before { - content: ""; -} - -.fa-microchip:before { - content: ""; -} - -.fa-snowflake-o:before { - content: ""; -} - -.fa-superpowers:before { - content: ""; -} - -.fa-wpexplorer:before { - content: ""; -} - -.fa-meetup:before { - content: ""; -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} - -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} -/*# sourceMappingURL=font-awesome.css.map */ \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/font-awesome.css.map b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/font-awesome.css.map deleted file mode 100644 index 2d801fbde9..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/font-awesome.css.map +++ /dev/null @@ -1,22 +0,0 @@ -{ - "version": 3, - "mappings": "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", - "sources": [ - "font-awesome.scss", - "_variables.scss", - "_mixins.scss", - "_path.scss", - "_core.scss", - "_larger.scss", - "_fixed-width.scss", - "_list.scss", - "_bordered-pulled.scss", - "_animated.scss", - "_rotated-flipped.scss", - "_stacked.scss", - "_icons.scss", - "_screen-reader.scss" - ], - "names": [], - "file": "font-awesome.css" -} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/font-awesome.scss b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/font-awesome.scss deleted file mode 100644 index f1c83aaa5d..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fa/scss/font-awesome.scss +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - -@import "variables"; -@import "mixins"; -@import "path"; -@import "core"; -@import "larger"; -@import "fixed-width"; -@import "list"; -@import "bordered-pulled"; -@import "animated"; -@import "rotated-flipped"; -@import "stacked"; -@import "icons"; -@import "screen-reader"; diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/familiar.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/familiar.png deleted file mode 100644 index 7c60b61784..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/familiar.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/android-chrome-144x144.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/android-chrome-144x144.png deleted file mode 100644 index 918f55076d..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/android-chrome-144x144.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/apple-touch-icon.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/apple-touch-icon.png deleted file mode 100644 index 513237d4ea..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/apple-touch-icon.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/browserconfig.xml b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/browserconfig.xml deleted file mode 100644 index b3930d0f04..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/browserconfig.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - #da532c - - - diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/favicon-16x16.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/favicon-16x16.png deleted file mode 100644 index dc7bc1334d..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/favicon-16x16.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/favicon-32x32.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/favicon-32x32.png deleted file mode 100644 index a4e6694129..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/favicon-32x32.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/favicon.ico b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/favicon.ico deleted file mode 100644 index f82aa24395..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/favicon.ico and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/mstile-150x150.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/mstile-150x150.png deleted file mode 100644 index 8d8a39f01e..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/mstile-150x150.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/safari-pinned-tab.svg b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/safari-pinned-tab.svg deleted file mode 100644 index 70615e24df..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/safari-pinned-tab.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - -Created by potrace 1.11, written by Peter Selinger 2001-2013 - - - - - - - - - diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/site.webmanifest b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/site.webmanifest deleted file mode 100644 index 8af025f70d..0000000000 --- a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/favicon.ico/site.webmanifest +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "", - "short_name": "", - "icons": [ - { - "src": "/android-chrome-144x144.png", - "sizes": "144x144", - "type": "image/png" - } - ], - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -} diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fork.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fork.png deleted file mode 100644 index 96ed376501..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fork.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fork.psb b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fork.psb deleted file mode 100644 index 896dbaf621..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/fork.psb and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/1-modular.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/1-modular.png deleted file mode 100644 index d82cefd478..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/1-modular.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/2-micro.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/2-micro.png deleted file mode 100644 index 14b76ee000..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/2-micro.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/3-ddd.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/3-ddd.png deleted file mode 100644 index dda81009dc..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/3-ddd.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/4-autho.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/4-autho.png deleted file mode 100644 index 15617b0310..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/4-autho.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/5-multi-tenancy.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/5-multi-tenancy.png deleted file mode 100644 index 7dcabac7db..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/5-multi-tenancy.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/bg-job.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/bg-job.png deleted file mode 100644 index 32e11ba096..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/bg-job.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/bundle.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/bundle.png deleted file mode 100644 index f0be165535..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/bundle.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/cross.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/cross.png deleted file mode 100644 index 5085a1b8b2..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/cross.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/custom.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/custom.png deleted file mode 100644 index e0da743eb3..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/custom.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/request.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/request.png deleted file mode 100644 index 9e925f6ae0..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/request.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/theming.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/theming.png deleted file mode 100644 index 4e6c6ac6ce..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/theming.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/virtualfile.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/virtualfile.png deleted file mode 100644 index 5a3cabc8d7..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/icons/virtualfile.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/multiple-db.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/multiple-db.png deleted file mode 100644 index 4701355351..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/multiple-db.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/rain.mp4 b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/rain.mp4 deleted file mode 100644 index a0d6909ec2..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/rain.mp4 and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/1.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/1.png deleted file mode 100644 index 45986babb7..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/1.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/10.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/10.png deleted file mode 100644 index 959c1a0290..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/10.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/11.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/11.png deleted file mode 100644 index f6b91e8213..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/11.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/12.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/12.png deleted file mode 100644 index 8f9b1f09ee..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/12.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/13.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/13.png deleted file mode 100644 index e9ed695222..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/13.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/14.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/14.png deleted file mode 100644 index 6c8541ad80..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/14.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/15.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/15.png deleted file mode 100644 index bf4100f1df..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/15.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/16.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/16.png deleted file mode 100644 index b65bd25846..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/16.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/17.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/17.png deleted file mode 100644 index c4d75ecfd6..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/17.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/18.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/18.png deleted file mode 100644 index e6e73d148d..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/18.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/2.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/2.png deleted file mode 100644 index 7262528186..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/2.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/3.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/3.png deleted file mode 100644 index 7876cd24fa..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/3.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/4.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/4.png deleted file mode 100644 index 850c8aefe3..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/4.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/5.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/5.png deleted file mode 100644 index 9a917b5201..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/5.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/6.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/6.png deleted file mode 100644 index b675fe7eed..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/6.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/7.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/7.png deleted file mode 100644 index 1df2781cf1..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/7.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/8.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/8.png deleted file mode 100644 index f862ea1788..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/8.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/9.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/9.png deleted file mode 100644 index 7c9d0082f0..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/9.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/bg.jpg b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/bg.jpg deleted file mode 100644 index be89ceb73d..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/bg.jpg and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/bg.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/bg.png deleted file mode 100644 index e0cc9d5b54..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/tools/bg.png and /dev/null differ diff --git a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/underline.png b/modules/docs/src/Volo.Docs.Web/wwwroot/assets/underline.png deleted file mode 100644 index c0f3af26e1..0000000000 Binary files a/modules/docs/src/Volo.Docs.Web/wwwroot/assets/underline.png and /dev/null differ diff --git a/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo.Docs.Admin.Application.Tests.csproj b/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo.Docs.Admin.Application.Tests.csproj index 390476a38f..467f3014f4 100644 --- a/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo.Docs.Admin.Application.Tests.csproj +++ b/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo.Docs.Admin.Application.Tests.csproj @@ -1,12 +1,12 @@  - netcoreapp2.2 + netcoreapp3.0 - + diff --git a/modules/docs/test/Volo.Docs.Application.Tests/Volo.Docs.Application.Tests.csproj b/modules/docs/test/Volo.Docs.Application.Tests/Volo.Docs.Application.Tests.csproj index 87144ccfe9..f29ec82969 100644 --- a/modules/docs/test/Volo.Docs.Application.Tests/Volo.Docs.Application.Tests.csproj +++ b/modules/docs/test/Volo.Docs.Application.Tests/Volo.Docs.Application.Tests.csproj @@ -1,12 +1,12 @@  - netcoreapp2.2 + netcoreapp3.0 - + diff --git a/modules/docs/test/Volo.Docs.Domain.Tests/Volo.Docs.Domain.Tests.csproj b/modules/docs/test/Volo.Docs.Domain.Tests/Volo.Docs.Domain.Tests.csproj index ba1185b397..ecf90bd202 100644 --- a/modules/docs/test/Volo.Docs.Domain.Tests/Volo.Docs.Domain.Tests.csproj +++ b/modules/docs/test/Volo.Docs.Domain.Tests/Volo.Docs.Domain.Tests.csproj @@ -1,12 +1,12 @@  - netcoreapp2.2 + netcoreapp3.0 - + diff --git a/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj b/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj index 71a466828b..5db0a3c007 100644 --- a/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj +++ b/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj @@ -1,15 +1,15 @@  - netcoreapp2.2 + netcoreapp3.0 - - - - + + + + diff --git a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo.Docs.MongoDB.Tests.csproj b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo.Docs.MongoDB.Tests.csproj index 1366f0d593..5c174000a7 100644 --- a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo.Docs.MongoDB.Tests.csproj +++ b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo.Docs.MongoDB.Tests.csproj @@ -1,14 +1,13 @@  - netcoreapp2.2 - - false + netcoreapp3.0 + - - + + diff --git a/modules/docs/test/Volo.Docs.TestBase/Volo.Docs.TestBase.csproj b/modules/docs/test/Volo.Docs.TestBase/Volo.Docs.TestBase.csproj index a92946140a..b8f81507f4 100644 --- a/modules/docs/test/Volo.Docs.TestBase/Volo.Docs.TestBase.csproj +++ b/modules/docs/test/Volo.Docs.TestBase/Volo.Docs.TestBase.csproj @@ -1,12 +1,12 @@  - netcoreapp2.2 + netcoreapp3.0 - + diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs index 75f5722ee8..1128cfd2e2 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs @@ -7,6 +7,8 @@ namespace Volo.Abp.FeatureManagement { public string Name { get; set; } + public string DisplayName { get; set; } + public string Value { get; set; } public string Description { get; set; } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs index ca2ea995c7..71b41c26e8 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs @@ -44,6 +44,7 @@ namespace Volo.Abp.FeatureManagement features.Add(new FeatureDto { Name = featureDefinition.Name, + DisplayName = featureDefinition.DisplayName?.Localize(_stringLocalizerFactory), ValueType = featureDefinition.ValueType, Description = featureDefinition.Description?.Localize(_stringLocalizerFactory), ParentName = featureDefinition.Parent?.Name, diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj index a4405067cf..1772c74748 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj @@ -9,9 +9,6 @@ - - - diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en.json index 68af08b6a1..2e8812968d 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en.json @@ -1,6 +1,7 @@ { "culture": "en", "texts": { - "Features": "Features" + "Features": "Features", + "NoFeatureFoundMessage": "There is't any available feature." } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.csproj index 9a3ebac4f3..15145798e2 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.csproj @@ -15,9 +15,6 @@ - - - diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.csproj index 776a415939..297d7fcaa4 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.csproj @@ -3,15 +3,12 @@ - netstandard2.0 + netstandard2.1 - - - diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.csproj index a4e1ce7e62..d5cd6e4777 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.csproj @@ -3,15 +3,12 @@ - netstandard2.0 + netcoreapp3.0 - - - diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.csproj index 5b01128a6d..4724d3dae9 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.csproj @@ -3,15 +3,12 @@ - netstandard2.0 + netcoreapp3.0 - - - diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.csproj index 2c03150aa9..5f4d23bf4e 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.csproj @@ -9,9 +9,6 @@ - - - diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/AbpFeatureManagementWebModule.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/AbpFeatureManagementWebModule.cs index ca7f6f31ea..67a178dfbd 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/AbpFeatureManagementWebModule.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/AbpFeatureManagementWebModule.cs @@ -1,12 +1,9 @@ -using Localization.Resources.AbpUi; -using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AutoMapper; using Volo.Abp.FeatureManagement.Localization; -using Volo.Abp.Localization; -using Volo.Abp.Localization.Resources.AbpValidation; using Volo.Abp.Modularity; using Volo.Abp.VirtualFileSystem; diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml index b52ea264b4..59e80e236c 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml @@ -12,49 +12,58 @@
- - - - @for (var i = 0; i < Model.FeatureListDto.Features.Count; i++) - { - var feature = Model.FeatureListDto.Features[i]; -
+ @if (Model.FeatureListDto?.Features != null && Model.FeatureListDto.Features.Any()) + { + + + + @for (var i = 0; i < Model.FeatureListDto.Features.Count; i++) + { + var feature = Model.FeatureListDto.Features[i]; +
- @feature.Name + @feature.Name - - @if (feature.ValueType is FreeTextStringValueType) - { - - - } - @if (feature.ValueType is SelectionStringValueType) - { - - + @if (feature.ValueType is FreeTextStringValueType) + { + + + } + @if (feature.ValueType is SelectionStringValueType) + { + + - } - @if (feature.ValueType is ToggleStringValueType) - { - - - } -
- } -
- + + } + @if (feature.ValueType is ToggleStringValueType) + { + + + } +
+ } +
+ + } + else + { + + @L["NoFeatureFoundMessage"] + + }
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj index ccc5f00200..66949c9194 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; true Library @@ -22,9 +22,6 @@ - - - diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.Application.Tests/Volo.Abp.FeatureManagement.Application.Tests.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.Application.Tests/Volo.Abp.FeatureManagement.Application.Tests.csproj index 1c41a820e6..f8ba6bca58 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.Application.Tests/Volo.Abp.FeatureManagement.Application.Tests.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.Application.Tests/Volo.Abp.FeatureManagement.Application.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp2.2 + netcoreapp3.0 @@ -13,7 +13,7 @@
- +
diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo.Abp.FeatureManagement.Domain.Tests.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo.Abp.FeatureManagement.Domain.Tests.csproj index 242262f35e..b7ab166f0f 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo.Abp.FeatureManagement.Domain.Tests.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo.Abp.FeatureManagement.Domain.Tests.csproj @@ -3,15 +3,12 @@ - netcoreapp2.2 + netcoreapp3.0 - - - - + diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj index 5566f756d8..a9c6ea391f 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp2.2 + netcoreapp3.0 @@ -13,10 +13,10 @@
- - - - + + + +
diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo.Abp.FeatureManagement.MongoDB.Tests.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo.Abp.FeatureManagement.MongoDB.Tests.csproj index 8bed0f0aa9..4006abf8f7 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo.Abp.FeatureManagement.MongoDB.Tests.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo.Abp.FeatureManagement.MongoDB.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp2.2 + netcoreapp3.0 @@ -13,8 +13,8 @@
- - + +
diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo.Abp.FeatureManagement.TestBase.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo.Abp.FeatureManagement.TestBase.csproj index 83288c97ec..08f71c7c2b 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo.Abp.FeatureManagement.TestBase.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo.Abp.FeatureManagement.TestBase.csproj @@ -3,7 +3,7 @@ - netcoreapp2.2 + netcoreapp3.0 @@ -14,7 +14,7 @@
- + diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj index 6c3ba1b676..8eac9e9162 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj @@ -16,9 +16,7 @@ - - diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModule.cs b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModule.cs index 4abdda3796..15f057db8a 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModule.cs @@ -6,7 +6,7 @@ using Volo.Abp.PermissionManagement; namespace Volo.Abp.Identity { [DependsOn( - typeof(AbpIdentityDomainModule), + typeof(AbpIdentityDomainModule), typeof(AbpIdentityApplicationContractsModule), typeof(AbpAutoMapperModule), typeof(AbpPermissionManagementApplicationModule) @@ -15,9 +15,11 @@ namespace Volo.Abp.Identity { public override void ConfigureServices(ServiceConfigurationContext context) { + context.Services.AddAutoMapperObjectMapper(); + Configure(options => { - options.AddProfile(); + options.AddProfile(validate: true); }); } } diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityAppServiceBase.cs b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityAppServiceBase.cs index 0c98e5b5dd..4c01a885c0 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityAppServiceBase.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityAppServiceBase.cs @@ -1,9 +1,14 @@ using Volo.Abp.Application.Services; +using Volo.Abp.Identity.Localization; namespace Volo.Abp.Identity { public abstract class IdentityAppServiceBase : ApplicationService { - + protected IdentityAppServiceBase() + { + ObjectMapperContext = typeof(AbpIdentityApplicationModule); + LocalizationResource = typeof(IdentityResource); + } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityRoleAppService.cs b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityRoleAppService.cs index 939d9739d2..8cdeac0ce2 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityRoleAppService.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityRoleAppService.cs @@ -4,14 +4,11 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Volo.Abp.Application.Dtos; -using Volo.Abp.Application.Services; -using Volo.Abp.Authorization.Permissions; -using Volo.Abp.PermissionManagement; namespace Volo.Abp.Identity { [Authorize(IdentityPermissions.Roles.Default)] - public class IdentityRoleAppService : ApplicationService, IIdentityRoleAppService + public class IdentityRoleAppService : IdentityAppServiceBase, IIdentityRoleAppService { private readonly IdentityRoleManager _roleManager; private readonly IIdentityRoleRepository _roleRepository; diff --git a/modules/identity/src/Volo.Abp.Identity.AspNetCore/Properties/launchSettings.json b/modules/identity/src/Volo.Abp.Identity.AspNetCore/Properties/launchSettings.json new file mode 100644 index 0000000000..fc5b1a72f7 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.AspNetCore/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:53901/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.Identity.AspNetCore": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:53902/" + } + } +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo.Abp.Identity.AspNetCore.csproj b/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo.Abp.Identity.AspNetCore.csproj index 12b84640c0..948dd4b7b3 100644 --- a/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo.Abp.Identity.AspNetCore.csproj +++ b/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo.Abp.Identity.AspNetCore.csproj @@ -1,20 +1,21 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.Identity.AspNetCore Volo.Abp.Identity.AspNetCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false + true + Library - diff --git a/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo/Abp/Identity/AspNetCore/AbpSecurityStampValidator.cs b/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo/Abp/Identity/AspNetCore/AbpSecurityStampValidator.cs index 5259047096..cf6e1f8d50 100644 --- a/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo/Abp/Identity/AspNetCore/AbpSecurityStampValidator.cs +++ b/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo/Abp/Identity/AspNetCore/AbpSecurityStampValidator.cs @@ -2,21 +2,24 @@ using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Identity; +using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Volo.Abp.Uow; -namespace Volo.Abp.Identity +namespace Volo.Abp.Identity.AspNetCore { public class AbpSecurityStampValidator : SecurityStampValidator { public AbpSecurityStampValidator( IOptions options, SignInManager signInManager, - ISystemClock systemClock) + ISystemClock systemClock, + ILoggerFactory loggerFactory) : base( options, signInManager, - systemClock) + systemClock, + loggerFactory) { } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj index e86a7221de..6b58f2e433 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj @@ -15,15 +15,11 @@ - - - - diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj index 0919140b8c..0dc0ba9712 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj @@ -28,7 +28,7 @@ - +
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs index 304662a99c..938b4050d7 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs @@ -4,11 +4,8 @@ using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; using Volo.Abp.Domain; using Volo.Abp.EventBus.Distributed; -using Volo.Abp.Identity.Localization; -using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.Users; -using Volo.Abp.VirtualFileSystem; namespace Volo.Abp.Identity { diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentitySettingDefinitionProvider.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentitySettingDefinitionProvider.cs index c5cbb16a1f..188cc4d48c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentitySettingDefinitionProvider.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentitySettingDefinitionProvider.cs @@ -8,23 +8,22 @@ namespace Volo.Abp.Identity public override void Define(ISettingDefinitionContext context) { context.Add( + new SettingDefinition(IdentitySettingNames.Password.RequiredLength, null, null, null, true), + new SettingDefinition(IdentitySettingNames.Password.RequiredUniqueChars, null, null, null, true), + new SettingDefinition(IdentitySettingNames.Password.RequireNonAlphanumeric, null, null, null, true), + new SettingDefinition(IdentitySettingNames.Password.RequireLowercase, null, null, null, true), + new SettingDefinition(IdentitySettingNames.Password.RequireUppercase, null, null, null, true), + new SettingDefinition(IdentitySettingNames.Password.RequireDigit, null, null, null, true), - new SettingDefinition(IdentitySettingNames.Password.RequiredLength), - new SettingDefinition(IdentitySettingNames.Password.RequiredUniqueChars), - new SettingDefinition(IdentitySettingNames.Password.RequireNonAlphanumeric), - new SettingDefinition(IdentitySettingNames.Password.RequireLowercase), - new SettingDefinition(IdentitySettingNames.Password.RequireUppercase), - new SettingDefinition(IdentitySettingNames.Password.RequireDigit), + new SettingDefinition(IdentitySettingNames.Lockout.AllowedForNewUsers, null, null, null, true), + new SettingDefinition(IdentitySettingNames.Lockout.LockoutDuration, null, null, null, true), + new SettingDefinition(IdentitySettingNames.Lockout.MaxFailedAccessAttempts, null, null, null, true), - new SettingDefinition(IdentitySettingNames.Lockout.AllowedForNewUsers), - new SettingDefinition(IdentitySettingNames.Lockout.LockoutDuration), - new SettingDefinition(IdentitySettingNames.Lockout.MaxFailedAccessAttempts), + new SettingDefinition(IdentitySettingNames.SignIn.RequireConfirmedEmail, null, null, null, true), + new SettingDefinition(IdentitySettingNames.SignIn.RequireConfirmedPhoneNumber, null, null, null, true), - new SettingDefinition(IdentitySettingNames.SignIn.RequireConfirmedEmail), - new SettingDefinition(IdentitySettingNames.SignIn.RequireConfirmedPhoneNumber), - - new SettingDefinition(IdentitySettingNames.User.IsUserNameUpdateEnabled, "true"), - new SettingDefinition(IdentitySettingNames.User.IsEmailUpdateEnabled, "true") + new SettingDefinition(IdentitySettingNames.User.IsUserNameUpdateEnabled, "true", null, null, true), + new SettingDefinition(IdentitySettingNames.User.IsEmailUpdateEnabled, "true", null, null, true) ); } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIDentityClaimTypeRepository.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIDentityClaimTypeRepository.cs index c2d5b4fd5c..0e952bded9 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIDentityClaimTypeRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIDentityClaimTypeRepository.cs @@ -17,6 +17,6 @@ namespace Volo.Abp.Identity /// Task AnyAsync(string name, Guid? ignoredId = null); - Task> GetListAsync(string sorting, int maxResultCount, int skipCount); + Task> GetListAsync(string sorting, int maxResultCount, int skipCount, string filter); } } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityClaim.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityClaim.cs index 6b40b59ddb..d64218a68f 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityClaim.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityClaim.cs @@ -20,11 +20,6 @@ namespace Volo.Abp.Identity /// public virtual string ClaimValue { get; protected set; } - public virtual bool Equals([NotNull] string claimType, [NotNull] string claimValue) - { - return ClaimType == claimType && ClaimValue == claimValue; - } - protected IdentityClaim() { diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs index 20fb67dd06..70945c2546 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs @@ -46,7 +46,7 @@ namespace Volo.Abp.Identity //"admin" user const string adminUserName = "admin"; var adminUser = await _userRepository.FindByNormalizedUserNameAsync( - _lookupNormalizer.Normalize(adminUserName) + _lookupNormalizer.NormalizeName(adminUserName) ); if (adminUser != null) @@ -69,7 +69,7 @@ namespace Volo.Abp.Identity //"admin" role const string adminRoleName = "admin"; - var adminRole = await _roleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize(adminRoleName)); + var adminRole = await _roleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName(adminRoleName)); if (adminRole == null) { adminRole = new IdentityRole( diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs index f75bf32aaf..23632efce0 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs @@ -283,7 +283,7 @@ namespace Volo.Abp.Identity UserEto IMapTo.MapTo() { - //TODO: Instead, consider to user automapper (but it makes dependency just for a small code part)?? + //TODO: Instead, consider to use automapper (but it makes dependency just for a small code part)?? return new UserEto { diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserRepositoryExternalUserLookupServiceProvider.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserRepositoryExternalUserLookupServiceProvider.cs index 684eec938f..bbbebb81cd 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserRepositoryExternalUserLookupServiceProvider.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserRepositoryExternalUserLookupServiceProvider.cs @@ -39,7 +39,7 @@ namespace Volo.Abp.Identity { return ( await _userRepository.FindByNormalizedUserNameAsync( - _lookupNormalizer.Normalize(userName), + _lookupNormalizer.NormalizeName(userName), includeDetails: false, cancellationToken: cancellationToken ) diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.csproj b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.csproj index 6b934006bc..945905d75f 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.csproj +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 Volo.Abp.Identity.EntityFrameworkCore Volo.Abp.Identity.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,7 +15,6 @@ - diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityClaimTypeRepository.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityClaimTypeRepository.cs index 50a4578cae..95b7a7fe42 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityClaimTypeRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityClaimTypeRepository.cs @@ -24,9 +24,15 @@ namespace Volo.Abp.Identity.EntityFrameworkCore .CountAsync(ct => ct.Name == name) > 0; } - public async Task> GetListAsync(string sorting, int maxResultCount, int skipCount) + public async Task> GetListAsync(string sorting, int maxResultCount, int skipCount, string filter) { - var identityClaimTypes = await DbSet.OrderBy(sorting ?? "name desc") + var identityClaimTypes = await DbSet + .WhereIf( + !filter.IsNullOrWhiteSpace(), + u => + u.Name.Contains(filter) + ) + .OrderBy(sorting ?? "name desc") .PageBy(skipCount, maxResultCount) .ToListAsync(); diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs index 946db12050..5df9e6de60 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs @@ -48,6 +48,8 @@ namespace Volo.Abp.Identity.EntityFrameworkCore { b.ToTable(options.TablePrefix + "UserClaims", options.Schema); + b.Property(x => x.Id).ValueGeneratedNever(); + b.Property(uc => uc.ClaimType).HasMaxLength(IdentityUserClaimConsts.MaxClaimTypeLength).IsRequired(); b.Property(uc => uc.ClaimValue).HasMaxLength(IdentityUserClaimConsts.MaxClaimValueLength); @@ -112,6 +114,8 @@ namespace Volo.Abp.Identity.EntityFrameworkCore { b.ToTable(options.TablePrefix + "RoleClaims", options.Schema); + b.Property(x => x.Id).ValueGeneratedNever(); + b.Property(uc => uc.ClaimType).HasMaxLength(IdentityRoleClaimConsts.MaxClaimTypeLength).IsRequired(); b.Property(uc => uc.ClaimValue).HasMaxLength(IdentityRoleClaimConsts.MaxClaimValueLength); diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Properties/launchSettings.json b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Properties/launchSettings.json new file mode 100644 index 0000000000..6ba85345ab --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:53978/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.Identity.HttpApi.Client": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:53980/" + } + } +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.csproj b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.csproj index b7e8a18755..a32fc8b2d0 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.csproj +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.csproj @@ -1,15 +1,17 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.Identity.HttpApi.Client Volo.Abp.Identity.HttpApi.Client $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false + Library + true diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Properties/launchSettings.json b/modules/identity/src/Volo.Abp.Identity.HttpApi/Properties/launchSettings.json new file mode 100644 index 0000000000..2323768a18 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:53977/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.Identity.HttpApi": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:53979/" + } + } +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.csproj b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.csproj index 01aba07d39..0ca4ef5564 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.csproj +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.csproj @@ -1,21 +1,22 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.Identity.HttpApi Volo.Abp.Identity.HttpApi $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false + Library + true - diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.csproj b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.csproj index ae04586f3e..06e5717e03 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.csproj +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.csproj @@ -1,4 +1,4 @@ - + @@ -15,7 +15,6 @@ - diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs index c2bbd56a6d..16ba528412 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs @@ -32,9 +32,14 @@ namespace Volo.Abp.Identity.MongoDB } } - public async Task> GetListAsync(string sorting, int maxResultCount, int skipCount) + public async Task> GetListAsync(string sorting, int maxResultCount, int skipCount, string filter) { return await GetMongoQueryable() + .WhereIf>( + !filter.IsNullOrWhiteSpace(), + u => + u.Name.Contains(filter) + ) .OrderBy(sorting ?? nameof(IdentityClaimType.Name)) .As>() .PageBy>(skipCount, maxResultCount) diff --git a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebAutoMapperProfile.cs b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebAutoMapperProfile.cs index 4c991466e9..c8651d8e88 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebAutoMapperProfile.cs +++ b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebAutoMapperProfile.cs @@ -1,6 +1,5 @@ using AutoMapper; using Volo.Abp.Identity.Web.Pages.Identity.Roles; -using Volo.Abp.Identity.Web.Pages.Identity.Shared; using CreateUserModalModel = Volo.Abp.Identity.Web.Pages.Identity.Users.CreateModalModel; using EditUserModalModel = Volo.Abp.Identity.Web.Pages.Identity.Users.EditModalModel; @@ -12,7 +11,6 @@ namespace Volo.Abp.Identity.Web { CreateUserMappings(); CreateRoleMappings(); - CreateProfileMappings(); } private void CreateUserMappings() @@ -33,10 +31,6 @@ namespace Volo.Abp.Identity.Web CreateMap() .ForMember(dest => dest.IsAssigned, opt => opt.Ignore()); - - CreateMap(); - - CreateMap(); } private void CreateRoleMappings() @@ -50,11 +44,5 @@ namespace Volo.Abp.Identity.Web //EditModal CreateMap(); } - - private void CreateProfileMappings() - { - CreateMap(); - CreateMap(); - } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs index 072c8f3584..1fe917221f 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs @@ -1,16 +1,11 @@ -using Localization.Resources.AbpUi; -using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; -using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; -using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Bundling; using Volo.Abp.AutoMapper; using Volo.Abp.Identity.Localization; using Volo.Abp.Identity.Web.Navigation; -using Volo.Abp.Localization; -using Volo.Abp.Localization.Resources.AbpValidation; using Volo.Abp.Modularity; using Volo.Abp.PermissionManagement.Web; using Volo.Abp.UI.Navigation; @@ -45,6 +40,8 @@ namespace Volo.Abp.Identity.Web options.FileSets.AddEmbedded("Volo.Abp.Identity.Web"); }); + context.Services.AddAutoMapperObjectMapper(); + Configure(options => { options.AddProfile(validate: true); @@ -59,15 +56,6 @@ namespace Volo.Abp.Identity.Web options.Conventions.AuthorizePage("/Identity/Roles/CreateModal", IdentityPermissions.Roles.Create); options.Conventions.AuthorizePage("/Identity/Roles/EditModal", IdentityPermissions.Roles.Update); }); - - Configure(options => - { - options - .ScriptBundles - .Get(StandardBundles.Scripts.Global) - .AddFiles("/Pages/Identity/Shared/change-password-modal.js") - .AddFiles("/Pages/Identity/Shared/personal-settings-modal.js"); - }); } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/IdentityPageModel.cs b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/IdentityPageModel.cs new file mode 100644 index 0000000000..fab6685d07 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/IdentityPageModel.cs @@ -0,0 +1,12 @@ +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; + +namespace Volo.Abp.Identity.Web.Pages.Identity +{ + public abstract class IdentityPageModel : AbpPageModel + { + protected IdentityPageModel() + { + ObjectMapperContext = typeof(AbpIdentityWebModule); + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/CreateModal.cshtml.cs b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/CreateModal.cshtml.cs index 7477439821..b3fdad3a95 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/CreateModal.cshtml.cs +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/CreateModal.cshtml.cs @@ -1,11 +1,10 @@ using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; namespace Volo.Abp.Identity.Web.Pages.Identity.Roles { - public class CreateModalModel : AbpPageModel + public class CreateModalModel : IdentityPageModel { [BindProperty] public RoleInfoModel Role { get; set; } diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/EditModal.cshtml.cs b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/EditModal.cshtml.cs index 66259c6ba0..8416e171b0 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/EditModal.cshtml.cs +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/EditModal.cshtml.cs @@ -2,12 +2,11 @@ using System; using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Abp.Domain.Entities; namespace Volo.Abp.Identity.Web.Pages.Identity.Roles { - public class EditModalModel : AbpPageModel + public class EditModalModel : IdentityPageModel { [BindProperty] public RoleInfoModel Role { get; set; } diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/Index.cshtml.cs b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/Index.cshtml.cs index 11e84ed0b0..db83e82003 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/Index.cshtml.cs +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/Index.cshtml.cs @@ -1,8 +1,6 @@ -using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; - namespace Volo.Abp.Identity.Web.Pages.Identity.Roles { - public class IndexModel : AbpPageModel + public class IndexModel : IdentityPageModel { public void OnGet() { diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/ChangePasswordModal.cshtml b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/ChangePasswordModal.cshtml deleted file mode 100644 index 54bae13cbe..0000000000 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/ChangePasswordModal.cshtml +++ /dev/null @@ -1,20 +0,0 @@ -@page -@using Microsoft.AspNetCore.Mvc.Localization -@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal -@using Volo.Abp.Identity.Localization -@using Volo.Abp.Identity.Web.Pages.Identity.Shared -@model ChangePasswordModal -@inject IHtmlLocalizer L -@{ - Layout = null; -} - - - - - - - - - - \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/ChangePasswordModal.cshtml.cs b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/ChangePasswordModal.cshtml.cs deleted file mode 100644 index c698b6b6f6..0000000000 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/ChangePasswordModal.cshtml.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Localization; -using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; -using Volo.Abp.Identity.Localization; - -namespace Volo.Abp.Identity.Web.Pages.Identity.Shared -{ - public class ChangePasswordModal : AbpPageModel - { - [BindProperty] - public ChangePasswordInfoModel ChangePasswordInfoModel { get; set; } - - private readonly IProfileAppService _profileAppService; - private readonly IStringLocalizer _localizer; - - public ChangePasswordModal( - IProfileAppService profileAppService, - IStringLocalizer localizer) - { - _profileAppService = profileAppService; - _localizer = localizer; - } - - public async Task OnPostAsync() - { - ValidateModel(); - - if (ChangePasswordInfoModel.NewPassword != ChangePasswordInfoModel.NewPasswordConfirm) - { - throw new UserFriendlyException(_localizer.GetString("Identity.PasswordConfirmationFailed").Value); - } - - await _profileAppService.ChangePasswordAsync( - new ChangePasswordInput() - { - CurrentPassword = ChangePasswordInfoModel.CurrentPassword, - NewPassword = ChangePasswordInfoModel.NewPassword - } - ); - - return NoContent(); - } - } - - public class ChangePasswordInfoModel - { - [Required] - [StringLength(IdentityUserConsts.MaxPasswordLength)] - [Display(Name = "DisplayName:CurrentPassword")] - [DataType(DataType.Password)] - public string CurrentPassword { get; set; } - - [Required] - [StringLength(IdentityUserConsts.MaxPasswordLength)] - [Display(Name = "DisplayName:NewPassword")] - [DataType(DataType.Password)] - public string NewPassword { get; set; } - - [Required] - [StringLength(IdentityUserConsts.MaxPasswordLength)] - [Display(Name = "DisplayName:NewPasswordConfirm")] - [DataType(DataType.Password)] - public string NewPasswordConfirm { get; set; } - } -} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/PersonalSettingsModal.cshtml b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/PersonalSettingsModal.cshtml deleted file mode 100644 index 4c18be54eb..0000000000 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/PersonalSettingsModal.cshtml +++ /dev/null @@ -1,40 +0,0 @@ -@page -@using Microsoft.AspNetCore.Mvc.Localization -@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal -@using Volo.Abp.Identity.Localization -@using Volo.Abp.Identity.Settings -@using Volo.Abp.Identity.Web.Pages.Identity.Shared -@using Volo.Abp.Settings -@model PersonalSettingsModal -@inject IHtmlLocalizer L -@inject ISettingProvider SettingProvider -@{ - Layout = null; - var isUserNameUpdateEnabled = await SettingProvider.IsTrueAsync(IdentitySettingNames.User.IsUserNameUpdateEnabled); - var isEmailUpdateEnabled = await SettingProvider.IsTrueAsync(IdentitySettingNames.User.IsEmailUpdateEnabled); -} - -
- - - - - - - - - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/PersonalSettingsModal.cshtml.cs b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/PersonalSettingsModal.cshtml.cs deleted file mode 100644 index 8d1152b3fb..0000000000 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/PersonalSettingsModal.cshtml.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; - -namespace Volo.Abp.Identity.Web.Pages.Identity.Shared -{ - public class PersonalSettingsModal : AbpPageModel - { - [BindProperty] - public PersonalSettingsInfoModel PersonalSettingsInfoModel { get; set; } - - private readonly IProfileAppService _profileAppService; - - public PersonalSettingsModal(IProfileAppService profileAppService) - { - _profileAppService = profileAppService; - } - - public async Task OnGetAsync() - { - var user = await _profileAppService.GetAsync(); - - PersonalSettingsInfoModel = ObjectMapper.Map(user); - } - - public async Task OnPostAsync() - { - ValidateModel(); - - var updateDto = ObjectMapper.Map(PersonalSettingsInfoModel); - - await _profileAppService.UpdateAsync(updateDto); - - return NoContent(); - } - } - - public class PersonalSettingsInfoModel - { - [Required] - [StringLength(IdentityUserConsts.MaxUserNameLength)] - [Display(Name = "DisplayName:UserName")] - public string UserName { get; set; } - - [Required] - [StringLength(IdentityUserConsts.MaxEmailLength)] - [Display(Name = "DisplayName:Email")] - public string Email { get; set; } - - [StringLength(IdentityUserConsts.MaxNameLength)] - [Display(Name = "DisplayName:Name")] - public string Name { get; set; } - - [StringLength(IdentityUserConsts.MaxSurnameLength)] - [Display(Name = "DisplayName:Surname")] - public string Surname { get; set; } - - [StringLength(IdentityUserConsts.MaxPhoneNumberLength)] - [Display(Name = "DisplayName:PhoneNumber")] - public string PhoneNumber { get; set; } - } -} diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/change-password-modal.js b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/change-password-modal.js deleted file mode 100644 index c377ea718b..0000000000 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/change-password-modal.js +++ /dev/null @@ -1,18 +0,0 @@ -(function ($) { - - var l = abp.localization.getResource('AbpIdentity'); - var _changePasswordModal = new abp.ModalManager(abp.appPath + 'Identity/Shared/ChangePasswordModal'); - - $(function () { - - $("#abp-account-change-password").click(function (e) { - e.preventDefault(); - _changePasswordModal.open(); - }); - - _changePasswordModal.onResult(function () { - abp.message.success(l("PasswordChangedMessage")); - }); - }); - -})(jQuery); diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/personal-settings-modal.js b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/personal-settings-modal.js deleted file mode 100644 index 36cd526a29..0000000000 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Shared/personal-settings-modal.js +++ /dev/null @@ -1,18 +0,0 @@ -(function ($) { - - var l = abp.localization.getResource('AbpIdentity'); - var _personalSettingsModal = new abp.ModalManager(abp.appPath + 'Identity/Shared/PersonalSettingsModal'); - - $(function () { - - $("#abp-account-personal-settings").click(function (e) { - e.preventDefault(); - _personalSettingsModal.open(); - }); - - _personalSettingsModal.onResult(function () { - //abp.message.success(l("PersonalSettingsSavedMessage")); - }); - }); - -})(jQuery); diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml.cs b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml.cs index 4d36736501..3c5451208a 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml.cs +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml.cs @@ -3,11 +3,10 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; namespace Volo.Abp.Identity.Web.Pages.Identity.Users { - public class CreateModalModel : AbpPageModel + public class CreateModalModel : IdentityPageModel { [BindProperty] public UserInfoViewModel UserInfo { get; set; } diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/EditModal.cshtml.cs b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/EditModal.cshtml.cs index 1b166b881f..771b4fbcd9 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/EditModal.cshtml.cs +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/EditModal.cshtml.cs @@ -4,12 +4,11 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Abp.Domain.Entities; namespace Volo.Abp.Identity.Web.Pages.Identity.Users { - public class EditModalModel : AbpPageModel + public class EditModalModel : IdentityPageModel { [BindProperty] public UserInfoViewModel UserInfo { get; set; } diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/Index.cshtml.cs b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/Index.cshtml.cs index fa1e8e16af..c8d4e84e82 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/Index.cshtml.cs +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/Index.cshtml.cs @@ -1,8 +1,6 @@ -using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; - -namespace Volo.Abp.Identity.Web.Pages.Identity.Users +namespace Volo.Abp.Identity.Web.Pages.Identity.Users { - public class IndexModel : AbpPageModel + public class IndexModel : IdentityPageModel { public void OnGet() { diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj index 8209c1c303..3561790e74 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj @@ -3,19 +3,21 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.Identity.Web Volo.Abp.Identity.Web - true $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false false Library + true - + + + diff --git a/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo.Abp.Identity.Application.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo.Abp.Identity.Application.Tests.csproj index e4f89cb750..6474dec386 100644 --- a/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo.Abp.Identity.Application.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo.Abp.Identity.Application.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.Identity.Application.Tests Volo.Abp.Identity.Application.Tests true @@ -17,7 +17,7 @@ - +
diff --git a/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityUserLookupAppService_Tests.cs b/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityUserLookupAppService_Tests.cs index 7358238294..227977cf15 100644 --- a/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityUserLookupAppService_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityUserLookupAppService_Tests.cs @@ -24,7 +24,7 @@ namespace Volo.Abp.Identity [Fact] public async Task FindByIdAsync() { - var user = await _identityUserRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _identityUserRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserLookupAppService.FindByIdAsync(user.Id)).UserName.ShouldBe(user.UserName); @@ -40,7 +40,7 @@ namespace Volo.Abp.Identity [Fact] public async Task FindByUserNameAsync() { - var user = await _identityUserRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _identityUserRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserLookupAppService.FindByUserNameAsync(user.UserName)).UserName.ShouldBe(user.UserName); diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj index 2e53b10544..9f94e6283e 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.Identity.Domain.Tests Volo.Abp.Identity.Domain.Tests true @@ -18,7 +18,7 @@
- +
diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/Distributed_User_Change_Event_Tests.cs b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/Distributed_User_Change_Event_Tests.cs index 221adca6d5..bc6a8cd27b 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/Distributed_User_Change_Event_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/Distributed_User_Change_Event_Tests.cs @@ -31,7 +31,7 @@ namespace Volo.Abp.Identity public async Task Should_Register_Handler() { var options = GetRequiredService>().Value; - options.EtoMappings.ShouldContain(m => m.Key == typeof(IdentityUser) && m.Value == typeof(UserEto)); + options.EtoMappings.ShouldContain(m => m.Key == typeof(IdentityUser) && m.Value.EtoType == typeof(UserEto)); options.Handlers.ShouldContain(h => h == typeof(DistributedUserUpdateHandler)); } @@ -40,7 +40,7 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); await _userManager.SetEmailAsync(user, "john.nash_UPDATED@abp.io"); _testCounter.GetValue("EntityUpdatedEto").ShouldBe(0); diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityRoleManager_Tests.cs b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityRoleManager_Tests.cs index 9cdafa10bb..4314f3eac6 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityRoleManager_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityRoleManager_Tests.cs @@ -37,7 +37,7 @@ namespace Volo.Abp.Identity [Fact] public async Task SetRoleNameAsync() { - var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); + var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); role.ShouldNotBeNull(); (await _identityRoleManager.SetRoleNameAsync(role, "teacher")).Succeeded.ShouldBeTrue(); @@ -48,12 +48,12 @@ namespace Volo.Abp.Identity [Fact] public async Task DeleteAsync() { - var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); + var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); role.ShouldNotBeNull(); await _identityRoleManager.DeleteAsync(role); - (await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator"))).ShouldBeNull(); + (await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator"))).ShouldBeNull(); } } diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityRoleStore_Tests.cs b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityRoleStore_Tests.cs index d2f674411b..11345a4a46 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityRoleStore_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityRoleStore_Tests.cs @@ -43,7 +43,7 @@ namespace Volo.Abp.Identity [Fact] public async Task UpdateAsync() { - var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); + var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); role.ShouldNotBeNull(); role.IsDefault = true; @@ -56,7 +56,7 @@ namespace Volo.Abp.Identity [Fact] public async Task DeleteAsync() { - var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); + var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); role.ShouldNotBeNull(); await _identityRoleStore.DeleteAsync(role); @@ -67,7 +67,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetRoleIdAsync() { - var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); + var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); role.ShouldNotBeNull(); (await _identityRoleStore.GetRoleIdAsync(role)).ShouldBe(_testData.RoleModeratorId.ToString()); @@ -76,7 +76,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetRoleNameAsync() { - var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); + var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); role.ShouldNotBeNull(); (await _identityRoleStore.GetRoleNameAsync(role)).ShouldBe(role.Name); @@ -86,7 +86,7 @@ namespace Volo.Abp.Identity [Fact] public async Task SetRoleNameAsync() { - var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); + var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); role.ShouldNotBeNull(); await _identityRoleStore.SetRoleNameAsync(role, "teacher"); @@ -106,7 +106,7 @@ namespace Volo.Abp.Identity [Fact] public async Task FindByNameAsync() { - var role = await _identityRoleStore.FindByNameAsync(_lookupNormalizer.Normalize("moderator")); + var role = await _identityRoleStore.FindByNameAsync(_lookupNormalizer.NormalizeName("moderator")); role.ShouldNotBeNull(); role.Name.ShouldBe("moderator"); @@ -115,7 +115,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetNormalizedRoleNameAsync() { - var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); + var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); role.ShouldNotBeNull(); (await _identityRoleStore.GetNormalizedRoleNameAsync(role)).ShouldBe(role.NormalizedName); @@ -124,12 +124,12 @@ namespace Volo.Abp.Identity [Fact] public async Task SetNormalizedRoleNameAsync() { - var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); + var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); role.ShouldNotBeNull(); - await _identityRoleStore.SetNormalizedRoleNameAsync(role, _lookupNormalizer.Normalize("teacher")); + await _identityRoleStore.SetNormalizedRoleNameAsync(role, _lookupNormalizer.NormalizeName("teacher")); - role.NormalizedName.ShouldBe(_lookupNormalizer.Normalize("teacher")); + role.NormalizedName.ShouldBe(_lookupNormalizer.NormalizeName("teacher")); } [Fact] @@ -137,7 +137,7 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); + var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); role.ShouldNotBeNull(); var claims = await _identityRoleStore.GetClaimsAsync(role); @@ -149,30 +149,41 @@ namespace Volo.Abp.Identity } } - [Fact] public async Task AddClaimAsync() { - using (var uow = _unitOfWorkManager.Begin()) + try { - var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); - role.ShouldNotBeNull(); + using (var uow = _unitOfWorkManager.Begin()) + { + var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); + role.ShouldNotBeNull(); - await _identityRoleStore.AddClaimAsync(role, new Claim("my-claim", "my-value")); + role.Claims.Add(new IdentityRoleClaim(Guid.NewGuid(), role.Id, "my-claim", "my-value", role.TenantId)); + //await _identityRoleStore.AddClaimAsync(role, new Claim("my-claim", "my-value")); - role.Claims.ShouldContain(x => x.ClaimType == "my-claim" && x.ClaimValue == "my-value"); + //role.Claims.ShouldContain(x => x.ClaimType == "my-claim" && x.ClaimValue == "my-value"); - await uow.CompleteAsync(); + await uow.CompleteAsync(); + } + + } + catch (Exception e) + { + throw; } + + var role2 = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); + role2.ShouldNotBeNull(); + role2.Claims.ShouldContain(x => x.ClaimType == "my-claim" && x.ClaimValue == "my-value"); } - [Fact] public async Task RemoveClaimAsync() { using (var uow = _unitOfWorkManager.Begin()) { - var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("moderator")); + var role = await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("moderator")); role.ShouldNotBeNull(); await _identityRoleStore.RemoveClaimAsync(role, new Claim("test-claim", "test-value")); diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityUserManager_Tests.cs b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityUserManager_Tests.cs index 3755342375..761655deb2 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityUserManager_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityUserManager_Tests.cs @@ -43,7 +43,7 @@ namespace Volo.Abp.Identity using (var uow = _unitOfWorkManager.Begin()) { var user = await _identityUserRepository.FindByNormalizedUserNameAsync( - _lookupNormalizer.Normalize("david")); + _lookupNormalizer.NormalizeName("david")); user.ShouldNotBeNull(); var identityResult = await _identityUserManager.SetRolesAsync(user, new List() @@ -64,11 +64,11 @@ namespace Volo.Abp.Identity using (var uow = _unitOfWorkManager.Begin()) { var roleSupporter = - await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("supporter")); + await _identityRoleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("supporter")); roleSupporter.ShouldNotBeNull(); var user = await _identityUserRepository.FindByNormalizedUserNameAsync( - _lookupNormalizer.Normalize("john.nash")); + _lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); var identityResult = await _identityUserManager.SetRolesAsync(user, new List() diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityUserStore_Tests.cs b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityUserStore_Tests.cs index 0e4c1e8bc6..6e84a88450 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityUserStore_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityUserStore_Tests.cs @@ -1,11 +1,9 @@ using System; using System.Collections.Generic; using System.Security.Claims; -using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Identity; using Shouldly; -using Volo.Abp.Guids; using Volo.Abp.Uow; using Xunit; @@ -31,7 +29,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetUserIdAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetUserIdAsync(user)).ShouldBe(user.Id.ToString()); @@ -41,7 +39,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetUserNameAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetUserNameAsync(user)).ShouldBe(user.UserName); @@ -50,7 +48,7 @@ namespace Volo.Abp.Identity [Fact] public async Task SetUserNameAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.SetUserNameAsync(user, "bob.lee"); @@ -62,7 +60,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetNormalizedUserNameAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetNormalizedUserNameAsync(user)).ShouldBe(user.NormalizedUserName); @@ -71,12 +69,12 @@ namespace Volo.Abp.Identity [Fact] public async Task SetNormalizedUserNameAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); - await _identityUserStore.SetNormalizedUserNameAsync(user, _lookupNormalizer.Normalize("bob.lee")); + await _identityUserStore.SetNormalizedUserNameAsync(user, _lookupNormalizer.NormalizeName("bob.lee")); - user.NormalizedUserName.ShouldBe(_lookupNormalizer.Normalize("bob.lee")); + user.NormalizedUserName.ShouldBe(_lookupNormalizer.NormalizeName("bob.lee")); } [Fact] @@ -87,7 +85,7 @@ namespace Volo.Abp.Identity await _identityUserStore.CreateAsync(user); - var bobLee = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("bob.lee")); + var bobLee = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("bob.lee")); bobLee.ShouldNotBeNull(); bobLee.UserName.ShouldBe("bob.lee"); bobLee.Email.ShouldBe("bob.lee@abp.io"); @@ -96,20 +94,20 @@ namespace Volo.Abp.Identity [Fact] public async Task UpdateAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); user.Name = "lee"; (await _identityUserStore.UpdateAsync(user)).Succeeded.ShouldBeTrue(); - (await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash"))).Name + (await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash"))).Name .ShouldBe("lee"); } [Fact] public async Task Update_Concurrency() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.UpdateAsync(user)).Succeeded.ShouldBeTrue(); @@ -128,12 +126,12 @@ namespace Volo.Abp.Identity [Fact] public async Task DeleteAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.DeleteAsync(user)).Succeeded.ShouldBeTrue(); - (await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash"))).ShouldBeNull(); + (await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash"))).ShouldBeNull(); } @@ -150,7 +148,7 @@ namespace Volo.Abp.Identity [Fact] public async Task FindByNameAsync() { - var user = await _identityUserStore.FindByNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _identityUserStore.FindByNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); user.UserName.ShouldBe("john.nash"); @@ -160,7 +158,7 @@ namespace Volo.Abp.Identity [Fact] public async Task SetPasswordHashAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); user.PasswordHash.ShouldBeNull(); @@ -172,7 +170,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetPasswordHashAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.SetPasswordHashAsync(user, "P@ssw0rd"); @@ -183,7 +181,7 @@ namespace Volo.Abp.Identity [Fact] public async Task HasPasswordAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.HasPasswordAsync(user)).ShouldBeFalse(); @@ -191,17 +189,16 @@ namespace Volo.Abp.Identity (await _identityUserStore.HasPasswordAsync(user)).ShouldBeTrue(); } - [Fact] public async Task AddToRoleAsync() { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("david")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("david")); user.ShouldNotBeNull(); user.Roles.ShouldBeEmpty(); - await _identityUserStore.AddToRoleAsync(user, _lookupNormalizer.Normalize("moderator")); + await _identityUserStore.AddToRoleAsync(user, _lookupNormalizer.NormalizeName("moderator")); user.Roles.ShouldContain(x => x.RoleId == _testData.RoleModeratorId); @@ -209,17 +206,16 @@ namespace Volo.Abp.Identity } } - [Fact] public async Task RemoveFromRoleAsync() { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); user.Roles.ShouldContain(x => x.RoleId == _testData.RoleModeratorId); - await _identityUserStore.RemoveFromRoleAsync(user, _lookupNormalizer.Normalize("moderator")); + await _identityUserStore.RemoveFromRoleAsync(user, _lookupNormalizer.NormalizeName("moderator")); user.Roles.ShouldNotContain(x => x.RoleId == _testData.RoleModeratorId); @@ -231,7 +227,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetRolesAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); var roleNames = await _identityUserStore.GetRolesAsync(user); @@ -245,23 +241,22 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); - (await _identityUserStore.IsInRoleAsync(user, _lookupNormalizer.Normalize("moderator"))).ShouldBeTrue(); - (await _identityUserStore.IsInRoleAsync(user, _lookupNormalizer.Normalize("moderatorNotExist"))).ShouldBeFalse(); + (await _identityUserStore.IsInRoleAsync(user, _lookupNormalizer.NormalizeName("moderator"))).ShouldBeTrue(); + (await _identityUserStore.IsInRoleAsync(user, _lookupNormalizer.NormalizeName("moderatorNotExist"))).ShouldBeFalse(); await uow.CompleteAsync(); } } - [Fact] public async Task GetClaimsAsync() { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); var claims = await _identityUserStore.GetClaimsAsync(user); @@ -277,8 +272,9 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); + user.Claims.ShouldNotContain(x => x.ClaimType == "MyClaimType" && x.ClaimValue == "MyClaimValue"); await _identityUserStore.AddClaimsAsync(user, new List() { @@ -291,13 +287,12 @@ namespace Volo.Abp.Identity } } - [Fact] public async Task ReplaceClaimAsync() { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.ReplaceClaimAsync(user, new Claim("TestClaimType", "42"), new Claim("MyClaimType", "MyClaimValue")); @@ -308,14 +303,13 @@ namespace Volo.Abp.Identity await uow.CompleteAsync(); } } - - + [Fact] public async Task RemoveClaimsAsync() { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.RemoveClaimsAsync(user, new List() @@ -329,13 +323,12 @@ namespace Volo.Abp.Identity } } - [Fact] public async Task AddLoginAsync() { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); user.Logins.ShouldNotContain(x => x.LoginProvider == "facebook" && x.ProviderKey == "john"); @@ -352,7 +345,7 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); user.Logins.ShouldContain(x => x.LoginProvider == "github" && x.ProviderKey == "john"); @@ -370,7 +363,7 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); var logins = await _identityUserStore.GetLoginsAsync(user); @@ -396,7 +389,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetEmailConfirmedAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetEmailConfirmedAsync(user)).ShouldBe(user.EmailConfirmed); @@ -406,7 +399,7 @@ namespace Volo.Abp.Identity [Fact] public async Task SetEmailConfirmedAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); var emailConfirmed = user.EmailConfirmed; @@ -418,7 +411,7 @@ namespace Volo.Abp.Identity [Fact] public async Task SetEmailAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.SetEmailAsync(user, "john.nash.kobe@abp.io"); @@ -430,7 +423,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetEmailAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetEmailAsync(user)).ShouldBe(user.Email); @@ -439,7 +432,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetNormalizedEmailAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetNormalizedEmailAsync(user)).ShouldBe(user.NormalizedEmail); @@ -448,18 +441,18 @@ namespace Volo.Abp.Identity [Fact] public async Task SetNormalizedEmailAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); - await _identityUserStore.SetNormalizedEmailAsync(user, _lookupNormalizer.Normalize("john.nash.kobe@abp.io")); + await _identityUserStore.SetNormalizedEmailAsync(user, _lookupNormalizer.NormalizeEmail("john.nash.kobe@abp.io")); - user.NormalizedEmail.ShouldBe(_lookupNormalizer.Normalize("john.nash.kobe@abp.io")); + user.NormalizedEmail.ShouldBe(_lookupNormalizer.NormalizeEmail("john.nash.kobe@abp.io")); } [Fact] public async Task FindByEmailAsync() { - var user = await _identityUserStore.FindByEmailAsync(_lookupNormalizer.Normalize("john.nash@abp.io")); + var user = await _identityUserStore.FindByEmailAsync(_lookupNormalizer.NormalizeEmail("john.nash@abp.io")); user.ShouldNotBeNull(); user.Email.ShouldBe("john.nash@abp.io"); @@ -468,7 +461,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetLockoutEndDateAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetLockoutEndDateAsync(user)).ShouldBe(user.LockoutEnd); @@ -477,7 +470,7 @@ namespace Volo.Abp.Identity [Fact] public async Task SetLockoutEndDateAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.SetLockoutEndDateAsync(user, DateTimeOffset.Parse("01/01/2019")); @@ -489,7 +482,7 @@ namespace Volo.Abp.Identity [Fact] public async Task IncrementAccessFailedCountAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); var count = user.AccessFailedCount; @@ -501,7 +494,7 @@ namespace Volo.Abp.Identity [Fact] public async Task ResetAccessFailedCountAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.ResetAccessFailedCountAsync(user); @@ -512,7 +505,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetAccessFailedCountAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetAccessFailedCountAsync(user)).ShouldBe(user.AccessFailedCount); @@ -521,7 +514,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetLockoutEnabledAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetLockoutEnabledAsync(user)).ShouldBe(user.LockoutEnabled); @@ -530,7 +523,7 @@ namespace Volo.Abp.Identity [Fact] public async Task SetLockoutEnabledAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); var lockoutEnabled = user.LockoutEnabled; @@ -543,7 +536,7 @@ namespace Volo.Abp.Identity [Fact] public async Task SetPhoneNumberAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.SetPhoneNumberAsync(user, "13800138000"); @@ -555,7 +548,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetPhoneNumberAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetPhoneNumberAsync(user)).ShouldBe(user.PhoneNumber); @@ -564,7 +557,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetPhoneNumberConfirmedAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetPhoneNumberConfirmedAsync(user)).ShouldBe(user.PhoneNumberConfirmed); @@ -574,7 +567,7 @@ namespace Volo.Abp.Identity [Fact] public async Task SetPhoneNumberConfirmedAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); var phoneNumberConfirmed = user.PhoneNumberConfirmed; @@ -587,7 +580,7 @@ namespace Volo.Abp.Identity [Fact] public async Task SetSecurityStampAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); var securityStamp = Guid.NewGuid().ToString(); @@ -599,7 +592,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetSecurityStampAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetSecurityStampAsync(user)).ShouldBe(user.SecurityStamp); @@ -609,7 +602,7 @@ namespace Volo.Abp.Identity [Fact] public async Task SetTwoFactorEnabledAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); var twoFactorEnabled = user.TwoFactorEnabled; @@ -622,7 +615,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetTwoFactorEnabledAsync() { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetTwoFactorEnabledAsync(user)).ShouldBe(user.TwoFactorEnabled); @@ -640,7 +633,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetUsersInRoleAsync() { - var user = await _identityUserStore.GetUsersInRoleAsync(_lookupNormalizer.Normalize("moderator")); + var user = await _identityUserStore.GetUsersInRoleAsync(_lookupNormalizer.NormalizeName("moderator")); user.ShouldNotBeNull(); user.ShouldContain(x => x.UserName == "john.nash"); } @@ -650,7 +643,7 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.SetTokenAsync(user, "test-provider", "test-name", "123123"); @@ -667,7 +660,7 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.RemoveTokenAsync(user, "test-provider", "test-name"); @@ -683,7 +676,7 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); (await _identityUserStore.GetTokenAsync(user, "test-provider", "test-name")).ShouldBe("test-value"); @@ -697,7 +690,7 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.SetAuthenticatorKeyAsync(user, "testKey"); @@ -713,7 +706,7 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.SetAuthenticatorKeyAsync(user, "testKey"); @@ -729,7 +722,7 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.SetTokenAsync(user, "[AspNetUserStore]", "RecoveryCodes", "testKey;testKey2"); @@ -744,7 +737,7 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.ReplaceCodesAsync(user, new List() @@ -764,7 +757,7 @@ namespace Volo.Abp.Identity { using (var uow = _unitOfWorkManager.Begin()) { - var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("john.nash")); + var user = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("john.nash")); user.ShouldNotBeNull(); await _identityUserStore.SetTokenAsync(user, "[AspNetUserStore]", "RecoveryCodes", "testKey;testKey2"); diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/TestPermissionDataBuilder.cs b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/TestPermissionDataBuilder.cs index b5272ed0e7..0fc834ccc0 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/TestPermissionDataBuilder.cs +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/TestPermissionDataBuilder.cs @@ -45,7 +45,7 @@ namespace Volo.Abp.Identity private void AddUserPermissions() { - var david = _userRepository.FindByNormalizedUserName(_lookupNormalizer.Normalize("david")); + var david = _userRepository.FindByNormalizedUserName(_lookupNormalizer.NormalizeName("david")); AddPermission(TestPermissionNames.MyPermission1, UserPermissionValueProvider.ProviderName, david.Id.ToString()); } diff --git a/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj index c10e693a69..6a6567ba20 100644 --- a/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.Identity.EntityFrameworkCore.Tests Volo.Abp.Identity.EntityFrameworkCore.Tests true @@ -20,10 +20,10 @@
- - - - + + + +
diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo.Abp.Identity.MongoDB.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo.Abp.Identity.MongoDB.Tests.csproj index ee3d4cfe5a..9648fd3500 100644 --- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo.Abp.Identity.MongoDB.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo.Abp.Identity.MongoDB.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.Identity.MongoDB.Tests Volo.Abp.Identity.MongoDB.Tests true @@ -19,8 +19,8 @@ - - + + diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo.Abp.Identity.TestBase.csproj b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo.Abp.Identity.TestBase.csproj index 6ab303021c..96eafd0ac1 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo.Abp.Identity.TestBase.csproj +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo.Abp.Identity.TestBase.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.Identity.TestBase Volo.Abp.Identity.TestBase true @@ -19,7 +19,7 @@ - + diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/AbpIdentityTestDataBuilder.cs b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/AbpIdentityTestDataBuilder.cs index ee5fc56fd9..6df6fd8cb3 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/AbpIdentityTestDataBuilder.cs +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/AbpIdentityTestDataBuilder.cs @@ -43,7 +43,7 @@ namespace Volo.Abp.Identity private void AddRoles() { - _adminRole = _roleRepository.FindByNormalizedName(_lookupNormalizer.Normalize("admin")); + _adminRole = _roleRepository.FindByNormalizedName(_lookupNormalizer.NormalizeName("admin")); _moderator = new IdentityRole(_testData.RoleModeratorId, "moderator"); _moderator.AddClaim(_guidGenerator, new Claim("test-claim", "test-value")); diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityDataSeeder_Tests.cs b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityDataSeeder_Tests.cs index a30cb6dd05..65eac5bc9d 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityDataSeeder_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityDataSeeder_Tests.cs @@ -27,9 +27,9 @@ namespace Volo.Abp.Identity { await _identityDataSeeder.SeedAsync("admin@abp.io", "1q2w3E*"); - (await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("admin"))).ShouldNotBeNull(); - (await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("admin"))).Name.ShouldBe("admin"); - (await _roleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("admin"))).ShouldNotBeNull(); + (await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("admin"))).ShouldNotBeNull(); + (await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.NormalizeName("admin"))).Name.ShouldBe("admin"); + (await _roleRepository.FindByNormalizedNameAsync(_lookupNormalizer.NormalizeName("admin"))).ShouldNotBeNull(); } } } diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityRoleRepository_Tests.cs b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityRoleRepository_Tests.cs index c753c1958b..e4a15d15f1 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityRoleRepository_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityRoleRepository_Tests.cs @@ -23,8 +23,8 @@ namespace Volo.Abp.Identity [Fact] public async Task FindByNormalizedNameAsync() { - (await RoleRepository.FindByNormalizedNameAsync(LookupNormalizer.Normalize("admin"))).ShouldNotBeNull(); - (await RoleRepository.FindByNormalizedNameAsync(LookupNormalizer.Normalize("undefined-role"))).ShouldBeNull(); + (await RoleRepository.FindByNormalizedNameAsync(LookupNormalizer.NormalizeName("admin"))).ShouldNotBeNull(); + (await RoleRepository.FindByNormalizedNameAsync(LookupNormalizer.NormalizeName("undefined-role"))).ShouldBeNull(); } [Fact] @@ -45,7 +45,7 @@ namespace Volo.Abp.Identity [Fact] public async Task Should_Eager_Load_Role_Collections() { - var role = await RoleRepository.FindByNormalizedNameAsync(LookupNormalizer.Normalize("moderator")); + var role = await RoleRepository.FindByNormalizedNameAsync(LookupNormalizer.NormalizeName("moderator")); role.Claims.ShouldNotBeNull(); role.Claims.Any().ShouldBeTrue(); } diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityUserRepository_Tests.cs b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityUserRepository_Tests.cs index 7ad01100e8..dca811da0b 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityUserRepository_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityUserRepository_Tests.cs @@ -25,22 +25,22 @@ namespace Volo.Abp.Identity [Fact] public async Task FindByNormalizedUserNameAsync() { - (await UserRepository.FindByNormalizedUserNameAsync(LookupNormalizer.Normalize("john.nash"))).ShouldNotBeNull(); - (await UserRepository.FindByNormalizedUserNameAsync(LookupNormalizer.Normalize("undefined-user"))).ShouldBeNull(); + (await UserRepository.FindByNormalizedUserNameAsync(LookupNormalizer.NormalizeName("john.nash"))).ShouldNotBeNull(); + (await UserRepository.FindByNormalizedUserNameAsync(LookupNormalizer.NormalizeName("undefined-user"))).ShouldBeNull(); } [Fact] public async Task FindByNormalizedEmailAsync() { - (await UserRepository.FindByNormalizedEmailAsync(LookupNormalizer.Normalize("john.nash@abp.io"))).ShouldNotBeNull(); - (await UserRepository.FindByNormalizedEmailAsync(LookupNormalizer.Normalize("david@abp.io"))).ShouldNotBeNull(); - (await UserRepository.FindByNormalizedEmailAsync(LookupNormalizer.Normalize("undefined-user@abp.io"))).ShouldBeNull(); + (await UserRepository.FindByNormalizedEmailAsync(LookupNormalizer.NormalizeEmail("john.nash@abp.io"))).ShouldNotBeNull(); + (await UserRepository.FindByNormalizedEmailAsync(LookupNormalizer.NormalizeEmail("david@abp.io"))).ShouldNotBeNull(); + (await UserRepository.FindByNormalizedEmailAsync(LookupNormalizer.NormalizeEmail("undefined-user@abp.io"))).ShouldBeNull(); } [Fact] public async Task GetRoleNamesAsync() { - var john = await UserRepository.FindByNormalizedUserNameAsync(LookupNormalizer.Normalize("john.nash")); + var john = await UserRepository.FindByNormalizedUserNameAsync(LookupNormalizer.NormalizeName("john.nash")); var roles = await UserRepository.GetRoleNamesAsync(john.Id); roles.Count.ShouldBe(2); roles.ShouldContain("moderator"); @@ -80,7 +80,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetListByNormalizedRoleNameAsync() { - var users = await UserRepository.GetListByNormalizedRoleNameAsync(LookupNormalizer.Normalize("supporter")); + var users = await UserRepository.GetListByNormalizedRoleNameAsync(LookupNormalizer.NormalizeName("supporter")); users.Count.ShouldBe(2); users.ShouldContain(u => u.UserName == "john.nash"); users.ShouldContain(u => u.UserName == "neo"); @@ -114,7 +114,7 @@ namespace Volo.Abp.Identity [Fact] public async Task GetRolesAsync() { - var john = await UserRepository.FindByNormalizedUserNameAsync(LookupNormalizer.Normalize("john.nash")); + var john = await UserRepository.FindByNormalizedUserNameAsync(LookupNormalizer.NormalizeName("john.nash")); var roles = await UserRepository.GetRolesAsync(john.Id); roles.Count.ShouldBe(2); roles.ShouldContain(r => r.Name == "moderator"); @@ -131,7 +131,7 @@ namespace Volo.Abp.Identity [Fact] public async Task Should_Eager_Load_User_Collections() { - var john = await UserRepository.FindByNormalizedUserNameAsync(LookupNormalizer.Normalize("john.nash")); + var john = await UserRepository.FindByNormalizedUserNameAsync(LookupNormalizer.NormalizeName("john.nash")); john.Roles.ShouldNotBeNull(); john.Roles.Any().ShouldBeTrue(); diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/LazyLoading_Tests.cs b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/LazyLoading_Tests.cs index 2a8f7c81a3..1ae671dd4f 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/LazyLoading_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/LazyLoading_Tests.cs @@ -28,7 +28,7 @@ namespace Volo.Abp.Identity { using (var uow = GetRequiredService().Begin()) { - var role = await RoleRepository.FindByNormalizedNameAsync(LookupNormalizer.Normalize("moderator"), includeDetails: false); + var role = await RoleRepository.FindByNormalizedNameAsync(LookupNormalizer.NormalizeName("moderator"), includeDetails: false); role.Claims.ShouldNotBeNull(); role.Claims.Any().ShouldBeTrue(); @@ -41,7 +41,7 @@ namespace Volo.Abp.Identity { using (var uow = GetRequiredService().Begin()) { - var john = await UserRepository.FindByNormalizedUserNameAsync(LookupNormalizer.Normalize("john.nash"), includeDetails: false); + var john = await UserRepository.FindByNormalizedUserNameAsync(LookupNormalizer.NormalizeName("john.nash"), includeDetails: false); john.Roles.ShouldNotBeNull(); john.Roles.Any().ShouldBeTrue(); diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.csproj b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.csproj index 6894c3f60b..bcd99cd524 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.csproj +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.csproj @@ -13,6 +13,14 @@ + + + + + + + + diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/AbpIdentityServerDomainSharedModule.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/AbpIdentityServerDomainSharedModule.cs index 141bd1a5fb..8d2bf66576 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/AbpIdentityServerDomainSharedModule.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/AbpIdentityServerDomainSharedModule.cs @@ -1,6 +1,9 @@ using Volo.Abp.IdentityServer.Localization; using Volo.Abp.Localization; +using Volo.Abp.Localization.ExceptionHandling; +using Volo.Abp.Localization.Resources.AbpValidation; using Volo.Abp.Modularity; +using Volo.Abp.VirtualFileSystem; namespace Volo.Abp.IdentityServer { @@ -11,9 +14,22 @@ namespace Volo.Abp.IdentityServer { public override void ConfigureServices(ServiceConfigurationContext context) { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + Configure(options => { - options.Resources.Add("en"); + options.Resources.Add("en") + .AddBaseTypes( + typeof(AbpValidationResource) + ).AddVirtualJson("/Volo/Abp/IdentityServer/Localization/Resources"); + }); + + Configure(options => + { + options.MapCodeNamespace("Volo.IdentityServer", typeof(AbpIdentityServerResource)); }); } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/en.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/en.json new file mode 100644 index 0000000000..6b2757a963 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/en.json @@ -0,0 +1,8 @@ +{ + "culture": "en", + "texts": { + "Volo.IdentityServer:DuplicateIdentityResourceName": "Identity Resource name already exist: {Name}", + "Volo.IdentityServer:DuplicateApiResourceName": "Api Resource name already exist: {Name}", + "Volo.IdentityServer:DuplicateClientId": "ClientId already exist: {ClientId}" + } +} \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/pt-BR.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/pt-BR.json new file mode 100644 index 0000000000..8c0353cea3 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/pt-BR.json @@ -0,0 +1,8 @@ +{ + "culture": "pt-BR", + "texts": { + "Volo.IdentityServer:DuplicateIdentityResourceName": "O nome da Identity Resource já existe: {Name}", + "Volo.IdentityServer:DuplicateApiResourceName": "O nome da Api Resource já existe: {Name}", + "Volo.IdentityServer:DuplicateClientId": "ClientId já existe: {ClientId}" + } +} \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.csproj b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.csproj index d485c69016..91ff89e7aa 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.csproj +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.IdentityServer.Domain Volo.Abp.IdentityServer.Domain $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -23,8 +23,8 @@ - - + + diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/IApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/IApiResourceRepository.cs index e229f361d5..5b9b8a2e26 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/IApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/IApiResourceRepository.cs @@ -32,5 +32,11 @@ namespace Volo.Abp.IdentityServer.ApiResources bool includeDetails = false, CancellationToken cancellationToken = default ); + + Task CheckNameExistAsync( + string name, + Guid? expectedId = null, + CancellationToken cancellationToken = default + ); } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/AbpProfileService.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/AbpProfileService.cs index 63cbad5a87..f3bca6dba9 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/AbpProfileService.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/AbpProfileService.cs @@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Identity; using Volo.Abp.Identity; using Volo.Abp.MultiTenancy; using Volo.Abp.Uow; +using IdentityUser = Volo.Abp.Identity.IdentityUser; namespace Volo.Abp.IdentityServer.AspNetIdentity { diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/AbpResourceOwnerPasswordValidator.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/AbpResourceOwnerPasswordValidator.cs index 60af80e1da..f427d9edf1 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/AbpResourceOwnerPasswordValidator.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/AbpResourceOwnerPasswordValidator.cs @@ -9,10 +9,10 @@ using IdentityServer4.Services; using IdentityServer4.Validation; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.Logging; -using Volo.Abp.Identity; using Volo.Abp.Security.Claims; using Volo.Abp.Uow; using Volo.Abp.Validation; +using IdentityUser = Volo.Abp.Identity.IdentityUser; namespace Volo.Abp.IdentityServer.AspNetIdentity { diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/IClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/IClientRepository.cs index 6b0e2816db..fb21202d9c 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/IClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/IClientRepository.cs @@ -24,5 +24,11 @@ namespace Volo.Abp.IdentityServer.Clients ); Task> GetAllDistinctAllowedCorsOriginsAsync(CancellationToken cancellationToken = default); + + Task CheckClientIdExistAsync( + string clientId, + Guid? expectedId = null, + CancellationToken cancellationToken = default + ); } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Grants/PersistedGrantStore.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Grants/PersistedGrantStore.cs index ab8bb6ffbd..400b5c0e26 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Grants/PersistedGrantStore.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Grants/PersistedGrantStore.cs @@ -2,6 +2,7 @@ using System.Linq; using System.Threading.Tasks; using IdentityServer4.Stores; +using Volo.Abp.Domain.Entities; using Volo.Abp.Guids; using Volo.Abp.ObjectMapping; @@ -26,7 +27,7 @@ namespace Volo.Abp.IdentityServer.Grants if (entity == null) { entity = _objectMapper.Map(grant); - entity.Id = _guidGenerator.Create(); + EntityHelper.TrySetId(entity, () => _guidGenerator.Create()); await _persistentGrantRepository.InsertAsync(entity); } else diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IIdentityResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IIdentityResourceRepository.cs index 0ae9754b91..7fcf64255d 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IIdentityResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IIdentityResourceRepository.cs @@ -27,5 +27,11 @@ namespace Volo.Abp.IdentityServer.IdentityResources bool includeDetails = true, CancellationToken cancellationToken = default ); + + Task CheckNameExistAsync( + string name, + Guid? expectedId = null, + CancellationToken cancellationToken = default + ); } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceDataSeeder.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceDataSeeder.cs index 362fef9ae1..024f8bea13 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceDataSeeder.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceDataSeeder.cs @@ -46,7 +46,7 @@ namespace Volo.Abp.IdentityServer.IdentityResources protected virtual async Task AddIdentityResourceIfNotExistsAsync(IdentityServer4.Models.IdentityResource resource) { - if (await IdentityResourceRepository.FindByNameAsync(resource.Name) != null) + if (await IdentityResourceRepository.CheckNameExistAsync(resource.Name)) { return; } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.csproj b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.csproj index ec2eb3e809..787c285cfb 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.csproj +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.IdentityServer.EntityFrameworkCore Volo.Abp.IdentityServer.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,7 +15,6 @@ - diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs index 7b6acd495a..5f7d6369af 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs @@ -61,6 +61,11 @@ namespace Volo.Abp.IdentityServer.ApiResources .ToListAsync(GetCancellationToken(cancellationToken)); } + public async Task CheckNameExistAsync(string name, Guid? expectedId = null, CancellationToken cancellationToken = default) + { + return await DbSet.AnyAsync(ar => ar.Id != expectedId && ar.Name == name, cancellationToken: cancellationToken); + } + public override async Task DeleteAsync(Guid id, bool autoSave = false, CancellationToken cancellationToken = default) { var scopeClaims = DbContext.Set().Where(sc => sc.ApiResourceId == id); diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs index e62e330029..44218470fd 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs @@ -39,13 +39,17 @@ namespace Volo.Abp.IdentityServer.Clients public async Task> GetAllDistinctAllowedCorsOriginsAsync(CancellationToken cancellationToken = default) { - return await DbSet - .AsNoTracking() - .SelectMany(x => x.AllowedCorsOrigins.Select(y => y.Origin)) + return await DbContext.ClientCorsOrigins + .Select(x => x.Origin) .Distinct() .ToListAsync(GetCancellationToken(cancellationToken)); } + public async Task CheckClientIdExistAsync(string clientId, Guid? expectedId = null, CancellationToken cancellationToken = default) + { + return await DbSet.AnyAsync(c => c.Id != expectedId && c.ClientId == clientId, cancellationToken: cancellationToken); + } + public override IQueryable WithDetails() { return GetQueryable().IncludeDetails(); diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IdentityServerDbContextModelCreatingExtensions.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IdentityServerDbContextModelCreatingExtensions.cs index 1c0adbc6b6..2c722f58ab 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IdentityServerDbContextModelCreatingExtensions.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/EntityFrameworkCore/IdentityServerDbContextModelCreatingExtensions.cs @@ -52,7 +52,7 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore client.HasMany(x => x.Claims).WithOne().HasForeignKey(x => x.ClientId).IsRequired(); client.HasMany(x => x.Properties).WithOne().HasForeignKey(x => x.ClientId).IsRequired(); - client.HasIndex(x => x.ClientId).IsUnique(); + client.HasIndex(x => x.ClientId); }); builder.Entity(grantType => diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceRepository.cs index a5237a6cc8..20789ecca8 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceRepository.cs @@ -56,5 +56,10 @@ namespace Volo.Abp.IdentityServer.IdentityResources .Where(x => x.Name == name) .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); } + + public async Task CheckNameExistAsync(string name, Guid? expectedId = null, CancellationToken cancellationToken = default) + { + return await DbSet.AnyAsync(ir => ir.Id != expectedId && ir.Name == name, cancellationToken: cancellationToken); + } } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.csproj b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.csproj index 4c3c98f6bf..d6d5c806de 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.csproj +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.IdentityServer.MongoDB Volo.Abp.IdentityServer.MongoDB $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,7 +15,6 @@ - diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs index 81ea680720..e148bbe216 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs @@ -47,5 +47,10 @@ namespace Volo.Abp.IdentityServer.MongoDB { return await GetCountAsync(); } + + public async Task CheckNameExistAsync(string name, Guid? expectedId = null, CancellationToken cancellationToken = default) + { + return await GetMongoQueryable().AnyAsync(ar => ar.Id != expectedId && ar.Name == name, cancellationToken: cancellationToken); + } } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs index 7f95e4c981..61488edc3d 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs @@ -53,6 +53,11 @@ namespace Volo.Abp.IdentityServer.MongoDB .ToListAsync(GetCancellationToken(cancellationToken)); } + public async Task CheckClientIdExistAsync(string clientId, Guid? expectedId = null, CancellationToken cancellationToken = default) + { + return await GetMongoQueryable().AnyAsync(c => c.Id != expectedId && c.ClientId == clientId, cancellationToken: cancellationToken); + } + public virtual async Task GetTotalCount() { return await GetCountAsync(); diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs index 85505c2987..d25faa9622 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs @@ -10,7 +10,6 @@ using Volo.Abp.IdentityServer.IdentityResources; using Volo.Abp.MongoDB; using System.Linq.Dynamic.Core; - namespace Volo.Abp.IdentityServer.MongoDB { public class MongoIdentityResourceRepository : MongoDbRepository, IIdentityResourceRepository @@ -50,5 +49,10 @@ namespace Volo.Abp.IdentityServer.MongoDB { return await GetCountAsync(); } + + public async Task CheckNameExistAsync(string name, Guid? expectedId = null, CancellationToken cancellationToken = default) + { + return await GetMongoQueryable().AnyAsync(ir => ir.Id != expectedId && ir.Name == name, cancellationToken: cancellationToken); + } } } diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo.Abp.IdentityServer.Domain.Tests.csproj b/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo.Abp.IdentityServer.Domain.Tests.csproj index b6c251bd3f..c136a6bce0 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo.Abp.IdentityServer.Domain.Tests.csproj +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo.Abp.IdentityServer.Domain.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.IdentityServer.Domain.Tests Volo.Abp.IdentityServer.Domain.Tests true diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo/Abp/IdentityServer/Clients/PersistentGrant_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo/Abp/IdentityServer/Clients/PersistentGrant_Tests.cs index 4621daa3f4..8e83f57c51 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo/Abp/IdentityServer/Clients/PersistentGrant_Tests.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo/Abp/IdentityServer/Clients/PersistentGrant_Tests.cs @@ -138,7 +138,10 @@ namespace Volo.Abp.IdentityServer.Clients //Arrange await _persistedGrantStore.StoreAsync(new PersistedGrant { - Key = "#1P3R" + Key = "#1P3R", + Type = "Type", + ClientId = "ClientId", + Data = "" }); //Act diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests.csproj b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests.csproj index 10325012d9..9d25226963 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests.csproj +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.IdentityServer.EntityFrameworkCore.Tests Volo.Abp.IdentityServer.EntityFrameworkCore.Tests true @@ -13,14 +13,13 @@ - - + diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs index b5515026de..627ae45e38 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs @@ -1,11 +1,12 @@ -using System; +using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.Identity.EntityFrameworkCore; using Volo.Abp.IdentityServer.EntityFrameworkCore; using Volo.Abp.Modularity; -using Volo.Abp.Uow; namespace Volo.Abp.IdentityServer { @@ -18,22 +19,15 @@ namespace Volo.Abp.IdentityServer { public override void ConfigureServices(ServiceConfigurationContext context) { - context.Services.AddEntityFrameworkInMemoryDatabase(); - - var databaseName = Guid.NewGuid().ToString(); + var sqliteConnection = CreateDatabaseAndGetConnection(); Configure(options => { options.Configure(abpDbContextConfigurationContext => { - abpDbContextConfigurationContext.DbContextOptions.UseInMemoryDatabase(databaseName); + abpDbContextConfigurationContext.DbContextOptions.UseSqlite(sqliteConnection); }); }); - - Configure(options => - { - options.TransactionBehavior = UnitOfWorkTransactionBehavior.Disabled; //EF in-memory database does not support transactions - }); } public override void OnApplicationInitialization(ApplicationInitializationContext context) @@ -41,6 +35,22 @@ namespace Volo.Abp.IdentityServer SeedTestData(context); } + private static SqliteConnection CreateDatabaseAndGetConnection() + { + var connection = new SqliteConnection("Data Source=:memory:"); + connection.Open(); + + new IdentityDbContext( + new DbContextOptionsBuilder().UseSqlite(connection).Options + ).GetService().CreateTables(); + + new IdentityServerDbContext( + new DbContextOptionsBuilder().UseSqlite(connection).Options + ).GetService().CreateTables(); + + return connection; + } + private static void SeedTestData(ApplicationInitializationContext context) { using (var scope = context.ServiceProvider.CreateScope()) diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj index 0565ad07fc..8bfbcf1e10 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.IdentityServer.MongoDB.Tests Volo.Abp.IdentityServer.MongoDB.Tests true diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo.Abp.IdentityServer.TestBase.csproj b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo.Abp.IdentityServer.TestBase.csproj index 60e1791280..ee0ea3eca9 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo.Abp.IdentityServer.TestBase.csproj +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo.Abp.IdentityServer.TestBase.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.IdentityServer.TestBase Volo.Abp.IdentityServer.TestBase true diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs index 016820af49..f86d060d5b 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs @@ -51,22 +51,29 @@ namespace Volo.Abp.IdentityServer { _persistentGrantRepository.Insert(new PersistedGrant(_guidGenerator.Create()) { - Key = "PersistedGrantKey1", SubjectId = "PersistedGrantSubjectId1", ClientId = "PersistedGrantClientId1", - Type = "PersistedGrantType1" + Type = "PersistedGrantType1", + Data = "" }); + _persistentGrantRepository.Insert(new PersistedGrant(_guidGenerator.Create()) { Key = "PersistedGrantKey2", - SubjectId = "PersistedGrantSubjectId2" + SubjectId = "PersistedGrantSubjectId2", + ClientId = "c1", + Type = "c1type", + Data = "" }); _persistentGrantRepository.Insert(new PersistedGrant(_guidGenerator.Create()) { Key = "PersistedGrantKey3", - SubjectId = "PersistedGrantSubjectId3" + SubjectId = "PersistedGrantSubjectId3", + ClientId = "c1", + Type = "c1type", + Data = "" }); } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj index 300065764f..fd4d602045 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj @@ -15,9 +15,6 @@ - - - diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.csproj index dd65cffbea..c13b3da80b 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.csproj @@ -1,9 +1,9 @@ - + - netstandard2.0 + netstandard2.1 Volo.Abp.PermissionManagement.EntityFrameworkCore Volo.Abp.PermissionManagement.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,7 +15,6 @@ - diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.csproj index 4a719f72c3..0b0cfa49ca 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.PermissionManagement.HttpApi.Client Volo.Abp.PermissionManagement.HttpApi.Client $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj index d650ca2e06..88f98c7eef 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.PermissionManagement.HttpApi Volo.Abp.PermissionManagement.HttpApi $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo.Abp.PermissionManagement.MongoDB.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo.Abp.PermissionManagement.MongoDB.csproj index ed623b39d1..53ad2adde2 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo.Abp.PermissionManagement.MongoDB.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo.Abp.PermissionManagement.MongoDB.csproj @@ -1,4 +1,4 @@ - + @@ -15,7 +15,6 @@ - diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj index 820d477af3..b501ab1a71 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj @@ -3,12 +3,12 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.PermissionManagement.Web Volo.Abp.PermissionManagement.Web - true $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Library + true diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Application.Tests/Volo.Abp.PermissionManagement.Application.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.Application.Tests/Volo.Abp.PermissionManagement.Application.Tests.csproj index 7e817abf24..cf445a30ef 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.Application.Tests/Volo.Abp.PermissionManagement.Application.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Application.Tests/Volo.Abp.PermissionManagement.Application.Tests.csproj @@ -1,13 +1,11 @@  - netcoreapp2.2 - - false + netcoreapp3.0 - + diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj index c31040474a..63a2424273 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests true @@ -17,8 +17,8 @@ - - + + \ No newline at end of file diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj index 47932e4c38..d9552b8639 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.PermissionManagement.MongoDB.Tests Volo.Abp.PermissionManagement.MongoDB.Tests true @@ -17,8 +17,8 @@ - - + + \ No newline at end of file diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo.Abp.PermissionManagement.TestBase.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo.Abp.PermissionManagement.TestBase.csproj index e4fe696695..9a9dffc2eb 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo.Abp.PermissionManagement.TestBase.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo.Abp.PermissionManagement.TestBase.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.PermissionManagement.TestBase Volo.Abp.PermissionManagement.TestBase true @@ -18,7 +18,7 @@ - + diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Tests/Volo.Abp.PermissionManagement.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.Tests/Volo.Abp.PermissionManagement.Tests.csproj index b4ecce9e40..58815ba741 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.Tests/Volo.Abp.PermissionManagement.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Tests/Volo.Abp.PermissionManagement.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.PermissionManagement.Tests Volo.Abp.PermissionManagement.Tests true @@ -17,8 +17,8 @@ - - + + \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj index a7ba339c3e..8de8ec1923 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj @@ -13,12 +13,9 @@ - - - - + diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json index 343e299acd..bc354c5292 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json @@ -1,6 +1,7 @@ { "culture": "pt-BR", "texts": { - "Settings": "Configurações" + "Settings": "Configurações", + "SuccessfullySaved": "Salvo com sucesso!" } } \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.csproj index 0261b31704..f5e1761cc5 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 Volo.Abp.SettingManagement.EntityFrameworkCore Volo.Abp.SettingManagement.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,7 +15,6 @@ - diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.csproj index 0f86335627..8f068d1f12 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.csproj @@ -15,7 +15,6 @@ - diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj index 3361037ae1..59d35e028e 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Library true $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -19,10 +19,9 @@ - - - - + + + diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests.csproj b/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests.csproj index 53ff012ea6..77ba0b139f 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.SettingManagement.EntityFrameworkCore.Tests Volo.Abp.SettingManagement.EntityFrameworkCore.Tests true @@ -17,9 +17,9 @@ - - - + + + diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo.Abp.SettingManagement.MongoDB.Tests.csproj b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo.Abp.SettingManagement.MongoDB.Tests.csproj index bec724072d..ecb74b4710 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo.Abp.SettingManagement.MongoDB.Tests.csproj +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo.Abp.SettingManagement.MongoDB.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.SettingManagement.MongoDB.Tests Volo.Abp.SettingManagement.MongoDB.Tests true @@ -17,8 +17,8 @@ - - + + diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo.Abp.SettingManagement.TestBase.csproj b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo.Abp.SettingManagement.TestBase.csproj index 71919bfbbc..a5c7f139fe 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo.Abp.SettingManagement.TestBase.csproj +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo.Abp.SettingManagement.TestBase.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.SettingManagement.TestBase Volo.Abp.SettingManagement.TestBase true @@ -18,7 +18,7 @@ - + diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo.Abp.SettingManagement.Tests.csproj b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo.Abp.SettingManagement.Tests.csproj index b73f434279..908d633863 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo.Abp.SettingManagement.Tests.csproj +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo.Abp.SettingManagement.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.SettingManagement.Tests Volo.Abp.SettingManagement.Tests true @@ -12,14 +12,12 @@ - - - + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj index f99d3f8609..57f177df96 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj @@ -18,8 +18,4 @@ - - - - diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs index 9ca2c82bdb..deef6f17cd 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementApplicationContractsModule.cs @@ -1,28 +1,13 @@ using Volo.Abp.Application; -using Volo.Abp.Localization; using Volo.Abp.Modularity; -using Volo.Abp.TenantManagement.Localization; -using Volo.Abp.VirtualFileSystem; namespace Volo.Abp.TenantManagement { - [DependsOn(typeof(AbpDddApplicationModule))] - [DependsOn(typeof(AbpTenantManagementDomainSharedModule))] + [DependsOn( + typeof(AbpDddApplicationModule), + typeof(AbpTenantManagementDomainSharedModule))] public class AbpTenantManagementApplicationContractsModule : AbpModule { - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - options.FileSets.AddEmbedded(); - }); - Configure(options => - { - options.Resources - .Get() - .AddVirtualJson("/Volo/Abp/TenantManagement/Localization/ApplicationContracts"); - }); - } } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/cs.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/cs.json deleted file mode 100644 index 415294c34a..0000000000 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/cs.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "culture": "cs", - "texts": { - "Permission:TenantManagement": "Správa tenantů", - "Permission:Create": "Vytvořit", - "Permission:Edit": "Upravit", - "Permission:Delete": "Smazat", - "Permission:ManageConnectionStrings": "Spravovat connection stringy", - "Permission:ManageFeatures": "Spravovat funkce" - } -} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/en.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/en.json deleted file mode 100644 index 5107cd269b..0000000000 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/en.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "culture": "en", - "texts": { - "Permission:TenantManagement": "Tenant management", - "Permission:Create": "Create", - "Permission:Edit": "Edit", - "Permission:Delete": "Delete", - "Permission:ManageConnectionStrings": "Manage connection strings", - "Permission:ManageFeatures": "Manage features" - } -} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/pl.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/pl.json deleted file mode 100644 index 500b784dfd..0000000000 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/pl.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "culture": "pl", - "texts": { - "Permission:TenantManagement": "Zarządzanie tenantami", - "Permission:Create": "Utwórz", - "Permission:Edit": "Edytuj", - "Permission:Delete": "Usuń", - "Permission:ManageConnectionStrings": "Zarządzaj connection string'ami", - "Permission:ManageFeatures": "Zarządzaj fukcjami" - } -} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/pt-BR.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/pt-BR.json deleted file mode 100644 index 6631be849a..0000000000 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/pt-BR.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "culture": "pt-BR", - "texts": { - "Permission:TenantManagement": "Inquilinos", - "Permission:Create": "Criar", - "Permission:Edit": "Editar", - "Permission:Delete": "Excluir", - "Permission:ManageConnectionStrings": "Gerenciar conexões (connection strings)", - "Permission:ManageFeatures": "Gerenciar Funcionalidades" - } -} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/tr.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/tr.json deleted file mode 100644 index d745a400c3..0000000000 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/tr.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "culture": "tr", - "texts": { - "Permission:TenantManagement": "Müşteri yönetimi", - "Permission:Create": "Oluşturma", - "Permission:Edit": "Düzenleme", - "Permission:Delete": "Silme", - "Permission:ManageConnectionStrings": "Bağlantı cümlelerini yönet", - "Permission:ManageFeatures": "Özellikleri yönet" - } -} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/vi.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/vi.json deleted file mode 100644 index 3518883435..0000000000 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/vi.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "culture": "vi", - "texts": { - "Permission:TenantManagement": "Quản lý khách thuê", - "Permission:Create": "Tạo", - "Permission:Edit": "Sửa", - "Permission:Delete": "Xóa", - "Permission:ManageConnectionStrings": "Quản lý chuỗi kết nối", - "Permission:ManageFeatures": "Quản lý các tính năng" - } -} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/zh-Hans.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/zh-Hans.json deleted file mode 100644 index ca1c428755..0000000000 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/zh-Hans.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "culture": "zh-Hans", - "texts": { - "Permission:TenantManagement": "租户管理", - "Permission:Create": "创建", - "Permission:Edit": "编辑", - "Permission:Delete": "删除", - "Permission:ManageConnectionStrings": "管理连接字符串", - "Permission:ManageFeatures": "管理功能" - } - } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj index 81c0265dd8..dec1cabd46 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj @@ -13,14 +13,11 @@ - - - - + - + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/cs.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/cs.json index df819c5798..16f967139f 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/cs.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/cs.json @@ -9,6 +9,12 @@ "TenantDeletionConfirmationMessage": "Tenant '{0}' bude smazán. Jste si jistí?", "ConnectionStrings": "Connection stringy", "DisplayName:DefaultConnectionString": "Výchozí connection string", - "DisplayName:UseSharedDatabase": "Použít sdílenou databázi" + "DisplayName:UseSharedDatabase": "Použít sdílenou databázi", + "Permission:TenantManagement": "Správa tenantů", + "Permission:Create": "Vytvořit", + "Permission:Edit": "Upravit", + "Permission:Delete": "Smazat", + "Permission:ManageConnectionStrings": "Spravovat connection stringy", + "Permission:ManageFeatures": "Spravovat funkce" } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/en.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/en.json index f38deeea89..fc51f00750 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/en.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/en.json @@ -9,6 +9,12 @@ "TenantDeletionConfirmationMessage": "Tenant '{0}' will be deleted. Do you confirm that?", "ConnectionStrings": "Connection Strings", "DisplayName:DefaultConnectionString": "Default Connection String", - "DisplayName:UseSharedDatabase": "Use the Shared Database" + "DisplayName:UseSharedDatabase": "Use the Shared Database", + "Permission:TenantManagement": "Tenant management", + "Permission:Create": "Create", + "Permission:Edit": "Edit", + "Permission:Delete": "Delete", + "Permission:ManageConnectionStrings": "Manage connection strings", + "Permission:ManageFeatures": "Manage features" } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pl.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pl.json index 537d235293..18891c3633 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pl.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pl.json @@ -9,6 +9,12 @@ "TenantDeletionConfirmationMessage": "Tenant '{0}' zostanie usunięty. Czy na pewno?", "ConnectionStrings": "Connection Strings", "DisplayName:DefaultConnectionString": "Domyślny Connection String", - "DisplayName:UseSharedDatabase": "Użyj współdzielonej bazy danych" + "DisplayName:UseSharedDatabase": "Użyj współdzielonej bazy danych", + "Permission:TenantManagement": "Zarządzanie tenantami", + "Permission:Create": "Utwórz", + "Permission:Edit": "Edytuj", + "Permission:Delete": "Usuń", + "Permission:ManageConnectionStrings": "Zarządzaj connection string'ami", + "Permission:ManageFeatures": "Zarządzaj fukcjami" } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pt-BR.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pt-BR.json index 5f310218a6..13d26b1b47 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pt-BR.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pt-BR.json @@ -7,8 +7,14 @@ "TenantName": "Inquilino", "DisplayName:TenantName": "Inquilino", "TenantDeletionConfirmationMessage": "Inquilino '{0}' será excluído. Tem certeza?", - "ConnectionStrings": "Cordas de Conexão", + "ConnectionStrings": "String de Conexão", "DisplayName:DefaultConnectionString": "String de Conexão Padrão", - "DisplayName:UseSharedDatabase": "Use o banco de dados compartilhado" + "DisplayName:UseSharedDatabase": "Use o banco de dados compartilhado", + "Permission:TenantManagement": "Inquilinos", + "Permission:Create": "Criar", + "Permission:Edit": "Editar", + "Permission:Delete": "Excluir", + "Permission:ManageConnectionStrings": "Gerenciar conexões (connection strings)", + "Permission:ManageFeatures": "Gerenciar Funcionalidades" } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/tr.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/tr.json index a3d40067f7..1b6bdca2c2 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/tr.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/tr.json @@ -9,6 +9,12 @@ "TenantDeletionConfirmationMessage": "'{0}' isimli müşteri silinecektir. Onaylıyor musunuz?", "ConnectionStrings": "Bağlantı cümlesi", "DisplayName:DefaultConnectionString": "Varsayılan bağlantı cümlesi", - "DisplayName:UseSharedDatabase": "Paylaşılan veritabanını kullan" + "DisplayName:UseSharedDatabase": "Paylaşılan veritabanını kullan", + "Permission:TenantManagement": "Müşteri yönetimi", + "Permission:Create": "Oluşturma", + "Permission:Edit": "Düzenleme", + "Permission:Delete": "Silme", + "Permission:ManageConnectionStrings": "Bağlantı cümlelerini yönet", + "Permission:ManageFeatures": "Özellikleri yönet" } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/vi.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/vi.json index 1818cbdffd..cedefb842f 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/vi.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/vi.json @@ -9,6 +9,12 @@ "TenantDeletionConfirmationMessage": "Người thuê '{0}' sẽ bị xóa. Bạn có xác nhận không?", "ConnectionStrings": "Chuỗi kết nối", "DisplayName:DefaultConnectionString": "Chuỗi kết nối mặc định", - "DisplayName:UseSharedDatabase": "Sử dụng cơ sở dữ liệu dùng chung" + "DisplayName:UseSharedDatabase": "Sử dụng cơ sở dữ liệu dùng chung", + "Permission:TenantManagement": "Quản lý khách thuê", + "Permission:Create": "Tạo", + "Permission:Edit": "Sửa", + "Permission:Delete": "Xóa", + "Permission:ManageConnectionStrings": "Quản lý chuỗi kết nối", + "Permission:ManageFeatures": "Quản lý các tính năng" } } diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/zh-Hans.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/zh-Hans.json index da5951a7f4..b60c68e2e0 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/zh-Hans.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/zh-Hans.json @@ -9,6 +9,12 @@ "TenantDeletionConfirmationMessage": "租户 '{0}' 将被删除. 你确定吗?", "ConnectionStrings": "连接字符串", "DisplayName:DefaultConnectionString": "默认连接字符串", - "DisplayName:UseSharedDatabase": "使用共享数据库" + "DisplayName:UseSharedDatabase": "使用共享数据库", + "Permission:TenantManagement": "租户管理", + "Permission:Create": "创建", + "Permission:Edit": "编辑", + "Permission:Delete": "删除", + "Permission:ManageConnectionStrings": "管理连接字符串", + "Permission:ManageFeatures": "管理功能" } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.csproj index d83470ecf8..259f5e7a73 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.csproj @@ -1,9 +1,9 @@ - + - netstandard2.0 + netstandard2.1 Volo.Abp.TenantManagement.EntityFrameworkCore Volo.Abp.TenantManagement.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,7 +15,6 @@ - diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.csproj index 7e473b1335..ad2458e35d 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.csproj @@ -1,9 +1,9 @@ - + - netstandard2.0 + netcoreapp3.0 Volo.Abp.TenantManagement.HttpApi.Client Volo.Abp.TenantManagement.HttpApi.Client $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,7 +15,6 @@ - diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.csproj index 28fb85137c..13d7ea68b8 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.TenantManagement.HttpApi Volo.Abp.TenantManagement.HttpApi $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.csproj index d55f759611..aa7c7f9340 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.csproj @@ -1,4 +1,4 @@ - + @@ -15,7 +15,6 @@ - diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj index 1bcf4f99a9..27f3944a26 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netcoreapp3.0 Volo.Abp.TenantManagement.Web Volo.Abp.TenantManagement.Web true @@ -12,10 +12,9 @@ - - - - + + + diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Application.Tests/Volo.Abp.TenantManagement.Application.Tests.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.Application.Tests/Volo.Abp.TenantManagement.Application.Tests.csproj index 5363fb8365..93f9df3f28 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.Application.Tests/Volo.Abp.TenantManagement.Application.Tests.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Application.Tests/Volo.Abp.TenantManagement.Application.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.TenantManagement.Application.Tests Volo.Abp.TenantManagement.Application.Tests true @@ -17,7 +17,7 @@ - + diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.csproj index 0993f200ea..1df4e17e3c 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.csproj @@ -1,12 +1,12 @@  - netcoreapp2.2 + netcoreapp3.0 - + diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj index b1c51dbd86..cf48c0e1fb 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.TenantManagement.EntityFrameworkCore.Tests Volo.Abp.TenantManagement.EntityFrameworkCore.Tests true @@ -17,9 +17,9 @@ - - - + + + diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo/Abp/TenantManagement/EntityFrameworkCore/AbpTenantManagementEntityFrameworkCoreTestModule.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo/Abp/TenantManagement/EntityFrameworkCore/AbpTenantManagementEntityFrameworkCoreTestModule.cs index fac45a1b9a..dd5d9f8ae2 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo/Abp/TenantManagement/EntityFrameworkCore/AbpTenantManagementEntityFrameworkCoreTestModule.cs +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo/Abp/TenantManagement/EntityFrameworkCore/AbpTenantManagementEntityFrameworkCoreTestModule.cs @@ -1,6 +1,8 @@ using System; +using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.Modularity; using Volo.Abp.Uow; @@ -15,15 +17,13 @@ namespace Volo.Abp.TenantManagement.EntityFrameworkCore { public override void ConfigureServices(ServiceConfigurationContext context) { - context.Services.AddEntityFrameworkInMemoryDatabase(); - - var databaseName = Guid.NewGuid().ToString(); + var sqliteConnection = CreateDatabaseAndGetConnection(); Configure(options => { options.Configure(abpDbContextConfigurationContext => { - abpDbContextConfigurationContext.DbContextOptions.UseInMemoryDatabase(databaseName); + abpDbContextConfigurationContext.DbContextOptions.UseSqlite(sqliteConnection); }); }); @@ -32,5 +32,17 @@ namespace Volo.Abp.TenantManagement.EntityFrameworkCore options.TransactionBehavior = UnitOfWorkTransactionBehavior.Disabled; //EF in-memory database does not support transactions }); } + + private static SqliteConnection CreateDatabaseAndGetConnection() + { + var connection = new SqliteConnection("Data Source=:memory:"); + connection.Open(); + + new TenantManagementDbContext( + new DbContextOptionsBuilder().UseSqlite(connection).Options + ).GetService().CreateTables(); + + return connection; + } } } diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.csproj index 5e7268131c..d659b29068 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.TenantManagement.MongoDB.Tests Volo.Abp.TenantManagement.MongoDB.Tests true @@ -17,8 +17,8 @@ - - + + diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.TestBase/Volo.Abp.TenantManagement.TestBase.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.TestBase/Volo.Abp.TenantManagement.TestBase.csproj index 61473146ae..84bfb56b48 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.TestBase/Volo.Abp.TenantManagement.TestBase.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.TestBase/Volo.Abp.TenantManagement.TestBase.csproj @@ -1,7 +1,7 @@  - netcoreapp2.2 + netcoreapp3.0 Volo.Abp.TenantManagement.TestBase Volo.Abp.TenantManagement.TestBase true @@ -18,7 +18,7 @@ - + diff --git a/modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo.Abp.Users.EntityFrameworkCore.csproj b/modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo.Abp.Users.EntityFrameworkCore.csproj index 16617a7694..d70b92e1a4 100644 --- a/modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo.Abp.Users.EntityFrameworkCore.csproj +++ b/modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo.Abp.Users.EntityFrameworkCore.csproj @@ -1,9 +1,9 @@ - + - netstandard2.0 + netstandard2.1 Volo.Abp.Users.EntityFrameworkCore Volo.Abp.Users.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/users/test/Volo.Abp.Users.MongoDB.Tests/Volo.Abp.Users.MongoDB.Tests.csproj b/modules/users/test/Volo.Abp.Users.MongoDB.Tests/Volo.Abp.Users.MongoDB.Tests.csproj index a814f2ae47..2ba192fe5f 100644 --- a/modules/users/test/Volo.Abp.Users.MongoDB.Tests/Volo.Abp.Users.MongoDB.Tests.csproj +++ b/modules/users/test/Volo.Abp.Users.MongoDB.Tests/Volo.Abp.Users.MongoDB.Tests.csproj @@ -19,7 +19,7 @@ - + diff --git a/npm/lerna.json b/npm/lerna.json index c101f6c54c..158a66e225 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "0.8.3", + "version": "0.9.0", "packages": [ "ng-packs/dist/*", "packs/*" diff --git a/npm/ng-packs/.vscode/settings.json b/npm/ng-packs/.vscode/settings.json index a768ac15eb..ba819b4f57 100644 --- a/npm/ng-packs/.vscode/settings.json +++ b/npm/ng-packs/.vscode/settings.json @@ -1,5 +1,22 @@ { "search.exclude": { "**/dist": true - } -} \ No newline at end of file + }, + "tslint.rulesDirectory": "../node_modules/codelyzer", + "typescript.tsdk": "../node_modules/typescript/lib", + "workbench.colorCustomizations": { + "activityBar.background": "#df7fa2", + "activityBar.foreground": "#15202b", + "activityBar.inactiveForeground": "#15202b99", + "activityBarBadge.background": "#c7ecb3", + "activityBarBadge.foreground": "#15202b", + "titleBar.activeBackground": "#d55685", + "titleBar.inactiveBackground": "#d5568599", + "titleBar.activeForeground": "#15202b", + "titleBar.inactiveForeground": "#15202b99", + "statusBar.background": "#d55685", + "statusBarItem.hoverBackground": "#c73169", + "statusBar.foreground": "#15202b" + }, + "peacock.color": "#d55685" +} diff --git a/npm/ng-packs/angular.json b/npm/ng-packs/angular.json index 617e907f3f..fb32a2d757 100644 --- a/npm/ng-packs/angular.json +++ b/npm/ng-packs/angular.json @@ -282,9 +282,257 @@ "packages/setting-management/tsconfig.lib.json", "packages/setting-management/tsconfig.spec.json" ], - "exclude": [ - "**/node_modules/**" - ] + "exclude": ["**/node_modules/**"] + } + } + } + }, + "setting-management-config": { + "projectType": "library", + "root": "packages/setting-management-config", + "sourceRoot": "packages/setting-management-config/src", + "prefix": "abp", + "architect": { + "build": { + "builder": "@angular-devkit/build-ng-packagr:build", + "options": { + "tsConfig": "packages/setting-management-config/tsconfig.lib.json", + "project": "packages/setting-management-config/ng-package.json" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "packages/setting-management-config/src/test.ts", + "tsConfig": "packages/setting-management-config/tsconfig.spec.json", + "karmaConfig": "packages/setting-management-config/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "packages/setting-management-config/tsconfig.lib.json", + "packages/setting-management-config/tsconfig.spec.json" + ], + "exclude": ["**/node_modules/**"] + } + } + } + }, + "identity-config": { + "projectType": "library", + "root": "packages/identity-config", + "sourceRoot": "packages/identity-config/src", + "prefix": "abp", + "architect": { + "build": { + "builder": "@angular-devkit/build-ng-packagr:build", + "options": { + "tsConfig": "packages/identity-config/tsconfig.lib.json", + "project": "packages/identity-config/ng-package.json" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "packages/identity-config/src/test.ts", + "tsConfig": "packages/identity-config/tsconfig.spec.json", + "karmaConfig": "packages/identity-config/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": ["packages/identity-config/tsconfig.lib.json", "packages/identity-config/tsconfig.spec.json"], + "exclude": ["**/node_modules/**"] + } + } + } + }, + "account-config": { + "projectType": "library", + "root": "packages/account-config", + "sourceRoot": "packages/account-config/src", + "prefix": "abp", + "architect": { + "build": { + "builder": "@angular-devkit/build-ng-packagr:build", + "options": { + "tsConfig": "packages/account-config/tsconfig.lib.json", + "project": "packages/account-config/ng-package.json" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "packages/account-config/src/test.ts", + "tsConfig": "packages/account-config/tsconfig.spec.json", + "karmaConfig": "packages/account-config/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": ["packages/account-config/tsconfig.lib.json", "packages/account-config/tsconfig.spec.json"], + "exclude": ["**/node_modules/**"] + } + } + } + }, + "tenant-management-config": { + "projectType": "library", + "root": "packages/tenant-management-config", + "sourceRoot": "packages/tenant-management-config/src", + "prefix": "abp", + "architect": { + "build": { + "builder": "@angular-devkit/build-ng-packagr:build", + "options": { + "tsConfig": "packages/tenant-management-config/tsconfig.lib.json", + "project": "packages/tenant-management-config/ng-package.json" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "packages/tenant-management-config/src/test.ts", + "tsConfig": "packages/tenant-management-config/tsconfig.spec.json", + "karmaConfig": "packages/tenant-management-config/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "packages/tenant-management-config/tsconfig.lib.json", + "packages/tenant-management-config/tsconfig.spec.json" + ], + "exclude": ["**/node_modules/**"] + } + } + } + }, + "dev-app": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "apps/dev-app", + "sourceRoot": "apps/dev-app/src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/dev-app", + "index": "apps/dev-app/src/index.html", + "main": "apps/dev-app/src/main.ts", + "polyfills": "apps/dev-app/src/polyfills.ts", + "tsConfig": "apps/dev-app/tsconfig.app.json", + "aot": false, + "assets": ["apps/dev-app/src/favicon.ico", "apps/dev-app/src/assets"], + "styles": [ + "apps/dev-app/src/styles.scss", + "node_modules/bootstrap/dist/css/bootstrap.min.css", + "node_modules/font-awesome/css/font-awesome.min.css", + "node_modules/primeng/resources/themes/nova-light/theme.css", + "node_modules/primeicons/primeicons.css", + "node_modules/primeng/resources/primeng.min.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "apps/dev-app/src/environments/environment.ts", + "with": "apps/dev-app/src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "6kb", + "maximumError": "10kb" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "dev-app:build" + }, + "configurations": { + "production": { + "browserTarget": "dev-app:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "dev-app:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "apps/dev-app/src/test.ts", + "polyfills": "apps/dev-app/src/polyfills.ts", + "tsConfig": "apps/dev-app/tsconfig.spec.json", + "karmaConfig": "apps/dev-app/karma.conf.js", + "assets": ["apps/dev-app/src/favicon.ico", "apps/dev-app/src/assets"], + "styles": [ + "apps/dev-app/src/styles.scss", + "node_modules/bootstrap/dist/css/bootstrap.min.css", + "node_modules/font-awesome/css/font-awesome.min.css", + "node_modules/primeng/resources/themes/nova-light/theme.css", + "node_modules/primeicons/primeicons.css", + "node_modules/primeng/resources/primeng.min.css" + ], + "scripts": [] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "apps/dev-app/tsconfig.app.json", + "apps/dev-app/tsconfig.spec.json", + "apps/dev-app/e2e/tsconfig.json" + ], + "exclude": ["**/node_modules/**"] + } + }, + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "apps/dev-app/e2e/protractor.conf.js", + "devServerTarget": "dev-app:serve" + }, + "configurations": { + "production": { + "devServerTarget": "dev-app:serve:production" + } } } } diff --git a/npm/ng-packs/apps/dev-app/browserslist b/npm/ng-packs/apps/dev-app/browserslist new file mode 100644 index 0000000000..80848532e4 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/browserslist @@ -0,0 +1,12 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +> 0.5% +last 2 versions +Firefox ESR +not dead +not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/npm/ng-packs/apps/dev-app/e2e/protractor.conf.js b/npm/ng-packs/apps/dev-app/e2e/protractor.conf.js new file mode 100644 index 0000000000..5c23d8477d --- /dev/null +++ b/npm/ng-packs/apps/dev-app/e2e/protractor.conf.js @@ -0,0 +1,30 @@ +// @ts-check +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter } = require('jasmine-spec-reporter'); + +/** + * @type { import("protractor").Config } + */ +exports.config = { + allScriptsTimeout: 11000, + specs: ['./src/**/*.e2e-spec.ts'], + capabilities: { + browserName: 'chrome', + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {}, + }, + onPrepare() { + require('ts-node').register({ + project: require('path').join(__dirname, './tsconfig.json'), + }); + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); + }, +}; diff --git a/npm/ng-packs/apps/dev-app/e2e/src/app.e2e-spec.ts b/npm/ng-packs/apps/dev-app/e2e/src/app.e2e-spec.ts new file mode 100644 index 0000000000..96edba0042 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/e2e/src/app.e2e-spec.ts @@ -0,0 +1,28 @@ +import { AppPage } from './app.po'; +import { browser, logging } from 'protractor'; + +describe('workspace-project App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + + it('should display welcome message', () => { + page.navigateTo(); + expect(page.getTitleText()).toEqual('dev-app app is running!'); + }); + + afterEach(async () => { + // Assert that there are no errors emitted from the browser + const logs = await browser + .manage() + .logs() + .get(logging.Type.BROWSER); + expect(logs).not.toContain( + jasmine.objectContaining({ + level: logging.Level.SEVERE, + } as logging.Entry), + ); + }); +}); diff --git a/npm/ng-packs/apps/dev-app/e2e/src/app.po.ts b/npm/ng-packs/apps/dev-app/e2e/src/app.po.ts new file mode 100644 index 0000000000..b8498c26f2 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/e2e/src/app.po.ts @@ -0,0 +1,11 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + navigateTo() { + return browser.get(browser.baseUrl) as Promise; + } + + getTitleText() { + return element(by.css('app-root .content span')).getText() as Promise; + } +} diff --git a/npm/ng-packs/apps/dev-app/e2e/tsconfig.json b/npm/ng-packs/apps/dev-app/e2e/tsconfig.json new file mode 100644 index 0000000000..201351434e --- /dev/null +++ b/npm/ng-packs/apps/dev-app/e2e/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "outDir": "../../../out-tsc/e2e", + "module": "commonjs", + "target": "es5", + "types": ["jasmine", "jasminewd2", "node"] + } +} diff --git a/npm/ng-packs/apps/dev-app/karma.conf.js b/npm/ng-packs/apps/dev-app/karma.conf.js new file mode 100644 index 0000000000..54492af159 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function(config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma'), + ], + client: { + clearContext: false, // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../../coverage/dev-app'), + reports: ['html', 'lcovonly', 'text-summary'], + fixWebpackSourcePaths: true, + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true, + }); +}; diff --git a/npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts b/npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts new file mode 100644 index 0000000000..d6fa06f853 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts @@ -0,0 +1,34 @@ +import { ABP } from '@abp/ng.core'; +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +const routes: Routes = [ + { + path: '', + loadChildren: () => import('./home/home.module').then(m => m.HomeModule), + data: { + routes: { + name: '::Menu:Home', + } as ABP.Route, + }, + }, + { + path: 'account', + loadChildren: () => import('./lazy-libs/account-wrapper.module').then(m => m.AccountWrapperModule), + }, + { + path: 'identity', + loadChildren: () => import('./lazy-libs/identity-wrapper.module').then(m => m.IdentityWrapperModule), + }, + { + path: 'tenant-management', + loadChildren: () => + import('./lazy-libs/tenant-management-wrapper.module').then(m => m.TenantManagementWrapperModule), + }, +]; + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule], +}) +export class AppRoutingModule {} diff --git a/npm/ng-packs/apps/dev-app/src/app/app.component.ts b/npm/ng-packs/apps/dev-app/src/app/app.component.ts new file mode 100644 index 0000000000..bf2a27962a --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/app.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-root', + template: ` + + + `, +}) +export class AppComponent {} diff --git a/npm/ng-packs/apps/dev-app/src/app/app.module.ts b/npm/ng-packs/apps/dev-app/src/app/app.module.ts new file mode 100644 index 0000000000..14c9a7bb4f --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/app.module.ts @@ -0,0 +1,43 @@ +import { CoreModule } from '@abp/ng.core'; +import { LAYOUTS } from '@abp/ng.theme.basic'; +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { NgxsReduxDevtoolsPluginModule } from '@ngxs/devtools-plugin'; +import { NgxsModule } from '@ngxs/store'; +import { OAuthModule } from 'angular-oauth2-oidc'; +import { environment } from '../environments/environment'; +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; +import { SharedModule } from './shared/shared.module'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { AccountConfigModule } from '@abp/ng.account.config'; +import { IdentityConfigModule } from '@abp/ng.identity.config'; +import { TenantManagementConfigModule } from '@abp/ng.tenant-management.config'; + +@NgModule({ + declarations: [AppComponent], + imports: [ + CoreModule.forRoot({ + environment, + requirements: { + layouts: LAYOUTS, + }, + }), + ThemeSharedModule.forRoot(), + AccountConfigModule.forRoot({ redirectUrl: '/' }), + IdentityConfigModule, + TenantManagementConfigModule, + BrowserModule, + BrowserAnimationsModule, + AppRoutingModule, + SharedModule, + + OAuthModule.forRoot(), + NgxsModule.forRoot([]), + + NgxsReduxDevtoolsPluginModule.forRoot(), + ], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/npm/ng-packs/apps/dev-app/src/app/home/home-routing.module.ts b/npm/ng-packs/apps/dev-app/src/app/home/home-routing.module.ts new file mode 100644 index 0000000000..367affb583 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/home/home-routing.module.ts @@ -0,0 +1,18 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { HomeComponent } from './home.component'; +import { ApplicationLayoutComponent } from '@abp/ng.theme.basic'; + +const routes: Routes = [ + { + path: '', + component: ApplicationLayoutComponent, + children: [{ path: '', component: HomeComponent }], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class HomeRoutingModule {} 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 new file mode 100644 index 0000000000..4fafc67398 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/home/home.component.html @@ -0,0 +1,15 @@ +
+
{{ '::Welcome' | abpLocalization }}
+
+

+ {{ '::LongWelcomeMessage' | abpLocalization }} +

+

+ {{ 'AbpIdentity::Login' | abpLocalization }} +

+
+

abp.io

+
+
diff --git a/npm/ng-packs/apps/dev-app/src/app/home/home.component.ts b/npm/ng-packs/apps/dev-app/src/app/home/home.component.ts new file mode 100644 index 0000000000..a42b960493 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/home/home.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; +import { OAuthService } from 'angular-oauth2-oidc'; + +@Component({ + selector: 'app-home', + templateUrl: './home.component.html', +}) +export class HomeComponent { + get hasLoggedIn(): boolean { + return this.oAuthService.hasValidAccessToken(); + } + + constructor(private oAuthService: OAuthService) {} +} diff --git a/npm/ng-packs/apps/dev-app/src/app/home/home.module.ts b/npm/ng-packs/apps/dev-app/src/app/home/home.module.ts new file mode 100644 index 0000000000..72d20ccc65 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/home/home.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from '@angular/core'; +import { SharedModule } from '../shared/shared.module'; +import { HomeRoutingModule } from './home-routing.module'; +import { HomeComponent } from './home.component'; + +@NgModule({ + declarations: [HomeComponent], + imports: [SharedModule, HomeRoutingModule], +}) +export class HomeModule {} diff --git a/npm/ng-packs/apps/dev-app/src/app/lazy-libs/account-wrapper.module.ts b/npm/ng-packs/apps/dev-app/src/app/lazy-libs/account-wrapper.module.ts new file mode 100644 index 0000000000..7130bb1a1a --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/lazy-libs/account-wrapper.module.ts @@ -0,0 +1,7 @@ +import { NgModule } from '@angular/core'; +import { AccountModule } from '@abp/ng.account'; + +@NgModule({ + imports: [AccountModule], +}) +export class AccountWrapperModule {} diff --git a/npm/ng-packs/apps/dev-app/src/app/lazy-libs/identity-wrapper.module.ts b/npm/ng-packs/apps/dev-app/src/app/lazy-libs/identity-wrapper.module.ts new file mode 100644 index 0000000000..fed1dcd1ec --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/lazy-libs/identity-wrapper.module.ts @@ -0,0 +1,7 @@ +import { NgModule } from '@angular/core'; +import { IdentityModule } from '@abp/ng.identity'; + +@NgModule({ + imports: [IdentityModule], +}) +export class IdentityWrapperModule {} diff --git a/npm/ng-packs/apps/dev-app/src/app/lazy-libs/tenant-management-wrapper.module.ts b/npm/ng-packs/apps/dev-app/src/app/lazy-libs/tenant-management-wrapper.module.ts new file mode 100644 index 0000000000..63eabda505 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/lazy-libs/tenant-management-wrapper.module.ts @@ -0,0 +1,7 @@ +import { NgModule } from '@angular/core'; +import { TenantManagementModule } from '@abp/ng.tenant-management'; + +@NgModule({ + imports: [TenantManagementModule], +}) +export class TenantManagementWrapperModule {} diff --git a/npm/ng-packs/apps/dev-app/src/app/shared/shared.module.ts b/npm/ng-packs/apps/dev-app/src/app/shared/shared.module.ts new file mode 100644 index 0000000000..6bae4ea332 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/shared/shared.module.ts @@ -0,0 +1,14 @@ +import { CoreModule } from '@abp/ng.core'; +import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgModule } from '@angular/core'; +import { ThemeBasicModule } from '@abp/ng.theme.basic'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { TableModule } from 'primeng/table'; + +@NgModule({ + declarations: [], + imports: [CoreModule, ThemeSharedModule, ThemeBasicModule, TableModule, NgbDropdownModule], + exports: [CoreModule, ThemeSharedModule, ThemeBasicModule, TableModule, NgbDropdownModule], + providers: [], +}) +export class SharedModule {} diff --git a/npm/ng-packs/apps/dev-app/src/assets/.gitkeep b/npm/ng-packs/apps/dev-app/src/assets/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/npm/ng-packs/apps/dev-app/src/environments/environment.prod.ts b/npm/ng-packs/apps/dev-app/src/environments/environment.prod.ts new file mode 100644 index 0000000000..5b42ebace3 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/environments/environment.prod.ts @@ -0,0 +1,25 @@ +export const environment = { + production: true, + hmr: false, + application: { + name: 'MyProjectName', + logoUrl: '', + }, + oAuthConfig: { + issuer: 'https://localhost:44305', + clientId: 'MyProjectName_App', + dummyClientSecret: '1q2w3e*', + scope: 'MyProjectName', + showDebugInformation: true, + oidc: false, + requireHttps: true, + }, + apis: { + default: { + url: 'https://localhost:44305', + }, + }, + localization: { + defaultResourceName: 'MyProjectName', + }, +}; diff --git a/npm/ng-packs/apps/dev-app/src/environments/environment.ts b/npm/ng-packs/apps/dev-app/src/environments/environment.ts new file mode 100644 index 0000000000..ca462ff043 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/environments/environment.ts @@ -0,0 +1,25 @@ +export const environment = { + production: false, + hmr: false, + application: { + name: 'MyProjectName', + logoUrl: '', + }, + oAuthConfig: { + issuer: 'https://localhost:44305', + clientId: 'MyProjectName_App', + dummyClientSecret: '1q2w3e*', + scope: 'MyProjectName', + showDebugInformation: true, + oidc: false, + requireHttps: true, + }, + apis: { + default: { + url: 'https://localhost:44305', + }, + }, + localization: { + defaultResourceName: 'MyProjectName', + }, +}; diff --git a/npm/ng-packs/apps/dev-app/src/favicon.ico b/npm/ng-packs/apps/dev-app/src/favicon.ico new file mode 100644 index 0000000000..997406ad22 Binary files /dev/null and b/npm/ng-packs/apps/dev-app/src/favicon.ico differ diff --git a/npm/ng-packs/apps/dev-app/src/index.html b/npm/ng-packs/apps/dev-app/src/index.html new file mode 100644 index 0000000000..b0c15da536 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/index.html @@ -0,0 +1,13 @@ + + + + + DevApp + + + + + + + + diff --git a/npm/ng-packs/apps/dev-app/src/main.ts b/npm/ng-packs/apps/dev-app/src/main.ts new file mode 100644 index 0000000000..fa4e0aef33 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/main.ts @@ -0,0 +1,13 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic() + .bootstrapModule(AppModule) + .catch(err => console.error(err)); diff --git a/npm/ng-packs/apps/dev-app/src/polyfills.ts b/npm/ng-packs/apps/dev-app/src/polyfills.ts new file mode 100644 index 0000000000..2f258e56c6 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/polyfills.ts @@ -0,0 +1,62 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags.ts'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/npm/ng-packs/apps/dev-app/src/styles.scss b/npm/ng-packs/apps/dev-app/src/styles.scss new file mode 100644 index 0000000000..90d4ee0072 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/styles.scss @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/npm/ng-packs/apps/dev-app/src/test.ts b/npm/ng-packs/apps/dev-app/src/test.ts new file mode 100644 index 0000000000..da9049dc63 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/test.ts @@ -0,0 +1,14 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/npm/ng-packs/apps/dev-app/tsconfig.app.json b/npm/ng-packs/apps/dev-app/tsconfig.app.json new file mode 100644 index 0000000000..cc22d70d1c --- /dev/null +++ b/npm/ng-packs/apps/dev-app/tsconfig.app.json @@ -0,0 +1,38 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/app", + "types": [], + "paths": { + "@abp/ng.core": ["packages/core/src/public-api.ts"], + "@abp/ng.core/*": ["packages/core/src/lib/*"], + // "@abp/ng.theme.shared": ["packages/theme-shared/src/public-api.ts"], + // "@abp/ng.theme.shared/*": ["packages/theme-shared/src/lib/*"], + "@abp/ng.theme.basic": ["packages/theme-basic/src/public-api.ts"], + "@abp/ng.theme.basic/*": ["packages/theme-basic/src/lib/*"], + "@abp/ng.account": ["packages/account/src/public-api.ts"], + "@abp/ng.account/*": ["packages/account/src/lib/*"], + "@abp/ng.account.config": ["packages/account-config/src/public-api.ts"], + "@abp/ng.account.config/*": ["packages/account-config/src/lib/*"], + "@abp/ng.identity": ["packages/identity/src/public-api.ts"], + "@abp/ng.identity/*": ["packages/identity/src/lib/*"], + "@abp/ng.identity.config": ["packages/identity-config/src/public-api.ts"], + "@abp/ng.identity.config/*": ["packages/identity-config/src/lib/*"], + "@abp/ng.tenant-management": ["packages/tenant-management/src/public-api.ts"], + "@abp/ng.tenant-management/*": ["packages/tenant-management/src/lib/*"], + "@abp/ng.tenant-management.config": ["packages/tenant-management-config/src/public-api.ts"], + "@abp/ng.tenant-management.config/*": ["packages/tenant-management-config/src/lib/*"], + "@abp/ng.setting-management": ["packages/setting-management/src/public-api.ts"], + "@abp/ng.setting-management/*": ["packages/setting-management/src/lib/*"], + "@abp/ng.setting-management.config": ["packages/setting-management-config/src/public-api.ts"], + "@abp/ng.setting-management.config/*": ["packages/setting-management-config/src/lib/*"], + "@abp/ng.permission-management": ["packages/permission-management/src/public-api.ts"], + "@abp/ng.permission-management/*": ["packages/permission-management/src/lib/*"], + "@abp/ng.feature-management": ["packages/feature-management/src/public-api.ts"], + "@abp/ng.feature-management/*": ["packages/feature-management/src/lib/*"] + } + }, + "files": ["src/main.ts", "src/polyfills.ts"], + "include": ["src/**/*.ts"], + "exclude": ["src/test.ts", "src/**/*.spec.ts"] +} diff --git a/npm/ng-packs/apps/dev-app/tsconfig.spec.json b/npm/ng-packs/apps/dev-app/tsconfig.spec.json new file mode 100644 index 0000000000..8eec07d40a --- /dev/null +++ b/npm/ng-packs/apps/dev-app/tsconfig.spec.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": ["jasmine", "node"] + }, + "files": ["src/test.ts", "src/polyfills.ts"], + "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/npm/ng-packs/apps/dev-app/tslint.json b/npm/ng-packs/apps/dev-app/tslint.json new file mode 100644 index 0000000000..8006e74e96 --- /dev/null +++ b/npm/ng-packs/apps/dev-app/tslint.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tslint.json", + "rules": { + "directive-selector": [true, "attribute", "app", "camelCase"], + "component-selector": [true, "element", "app", "kebab-case"] + } +} diff --git a/npm/ng-packs/dist/account/abp-ng.account.d.ts b/npm/ng-packs/dist/account/abp-ng.account.d.ts index aaae6c9d74..97bc6d1b63 100644 --- a/npm/ng-packs/dist/account/abp-ng.account.d.ts +++ b/npm/ng-packs/dist/account/abp-ng.account.d.ts @@ -2,10 +2,10 @@ * Generated bundle index. Do not edit. */ export * from './public-api'; -export { AccountRoutingModule as ɵh } from './lib/account-routing.module'; -export { LoginComponent as ɵc } from './lib/components/login/login.component'; -export { RegisterComponent as ɵe } from './lib/components/register/register.component'; -export { TenantBoxComponent as ɵg } from './lib/components/tenant-box/tenant-box.component'; -export { Options as ɵd } from './lib/models/options'; -export { AccountService as ɵf } from './lib/services/account.service'; -export { ACCOUNT_OPTIONS as ɵb, optionsFactory as ɵa } from './lib/tokens/options.token'; +export { AccountRoutingModule as ɵf } from './lib/account-routing.module'; +export { LoginComponent as ɵa } from './lib/components/login/login.component'; +export { RegisterComponent as ɵc } from './lib/components/register/register.component'; +export { TenantBoxComponent as ɵe } from './lib/components/tenant-box/tenant-box.component'; +export { Options as ɵb } from './lib/models/options'; +export { AccountService as ɵd } from './lib/services/account.service'; +export { ACCOUNT_OPTIONS as ɵh, optionsFactory as ɵg } from './lib/tokens/options.token'; diff --git a/npm/ng-packs/dist/account/abp-ng.account.metadata.json b/npm/ng-packs/dist/account/abp-ng.account.metadata.json index d3a0fa6dec..02f6e7599b 100644 --- a/npm/ng-packs/dist/account/abp-ng.account.metadata.json +++ b/npm/ng-packs/dist/account/abp-ng.account.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"exports":[{"from":"./lib/options"},{"from":"./lib/user"},{"from":"./lib/tenant"}],"metadata":{"RootAccountModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["options"],"defaults":[{}],"value":{"ngModule":{"__symbolic":"reference","name":"RootAccountModule"},"providers":[{"provide":{"__symbolic":"reference","name":"ɵb"},"useValue":{"__symbolic":"reference","name":"options"}},{"provide":"ACCOUNT_OPTIONS","useFactory":{"__symbolic":"reference","name":"ɵa"},"deps":[{"__symbolic":"reference","name":"ɵb"}]}]}}}},"AccountModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":13,"character":12},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":13,"character":46},{"__symbolic":"reference","module":"primeng/table","name":"TableModule","line":13,"character":65},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":13,"character":78},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":13,"character":97}],"exports":[]}]}],"members":{}},"ACCOUNT_ROUTES":{"routes":[{"name":"Account","path":"account","invisible":true,"layout":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":8,"character":14},"member":"application"},"children":[{"path":"login","name":"Login","order":1},{"path":"register","name":"Register","order":2}]}],"settings":[]},"ɵa":{"__symbolic":"function","parameters":["options"],"value":{"redirectUrl":"/"}},"ɵb":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":10,"character":35},"arguments":["ACCOUNT_OPTIONS"]},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"abp-login","template":"
\n
\n \n\n \n
\n
\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":28,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":28,"character":17},"arguments":["ACCOUNT_OPTIONS"]}]],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":24,"character":16},{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":25,"character":26},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":26,"character":19},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ToasterService","line":27,"character":28},{"__symbolic":"reference","name":"ɵd"}]}],"onSubmit":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"interface"},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"abp-register","template":"
\n
\n \n\n \n
\n
\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":24,"character":16},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":26,"character":26},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":27,"character":19},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ToasterService","line":28,"character":28}]}],"onSubmit":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":9,"character":28}]}],"findTenant":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"abp-tenant-box","template":"\n {{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: \n \n {{ tenantName || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}\n \n ({{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }})\n
\n\n\n \n
Switch Tenant
\n
\n \n
\n
\n
\n \n \n
\n

{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}

\n
\n
\n
\n \n \n \n \n
\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":14,"character":29},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ToasterService","line":14,"character":60},{"__symbolic":"reference","name":"ɵf"}]}],"ngOnInit":[{"__symbolic":"method"}],"onSwitch":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":16,"character":12},"member":"forChild"},"arguments":[[{"path":"","pathMatch":"full","redirectTo":"login"},{"path":"","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":10,"character":15},"children":[{"path":"login","component":{"__symbolic":"reference","name":"ɵc"}},{"path":"register","component":{"__symbolic":"reference","name":"ɵe"}}]}]]}],"exports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":17,"character":12}]}]}],"members":{}}},"origins":{"RootAccountModule":"./lib/root-account.module","AccountModule":"./lib/account.module","ACCOUNT_ROUTES":"./lib/constants/routes","ɵa":"./lib/tokens/options.token","ɵb":"./lib/tokens/options.token","ɵc":"./lib/components/login/login.component","ɵd":"./lib/models/options","ɵe":"./lib/components/register/register.component","ɵf":"./lib/services/account.service","ɵg":"./lib/components/tenant-box/tenant-box.component","ɵh":"./lib/account-routing.module"},"importAs":"@abp/ng.account"} \ No newline at end of file +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/options"},{"from":"./lib/user"},{"from":"./lib/tenant"}],"metadata":{"AccountModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵe"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":15,"character":12},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":15,"character":46},{"__symbolic":"reference","module":"primeng/table","name":"TableModule","line":15,"character":65},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":15,"character":78},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":15,"character":97}],"exports":[]}]}],"members":{}},"AccountProviders":{"__symbolic":"function","parameters":["options"],"defaults":[{}],"value":[{"provide":{"__symbolic":"reference","name":"ɵh"},"useValue":{"__symbolic":"reference","name":"options"}},{"provide":"ACCOUNT_OPTIONS","useFactory":{"__symbolic":"reference","name":"ɵg"},"deps":[{"__symbolic":"reference","name":"ɵh"}]}]},"ACCOUNT_ROUTES":{"routes":[{"name":"Account","path":"account","invisible":true,"layout":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":8,"character":14},"member":"application"},"children":[{"path":"login","name":"Login","order":1},{"path":"register","name":"Register","order":2}]}]},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"abp-login","template":"
\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":28,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":28,"character":17},"arguments":["ACCOUNT_OPTIONS"]}]],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":24,"character":16},{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":25,"character":26},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":26,"character":19},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ToasterService","line":27,"character":28},{"__symbolic":"reference","name":"ɵb"}]}],"onSubmit":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"interface"},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"abp-register","template":"
\n
\n \n\n \n
\n
\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":24,"character":16},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":26,"character":26},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":27,"character":19},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ToasterService","line":28,"character":28}]}],"onSubmit":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":9,"character":28}]}],"findTenant":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"abp-tenant-box","template":"\n {{ 'AbpUiMultiTenancy::Tenant' | abpLocalization }}: \n \n {{ tenantName || ('AbpUiMultiTenancy::NotSelected' | abpLocalization) }}\n \n ({{\n 'AbpUiMultiTenancy::Switch' | abpLocalization\n }})\n
\n\n\n \n
Switch Tenant
\n
\n \n
\n
\n
\n \n \n
\n

{{ 'AbpUiMultiTenancy::SwitchTenantHint' | abpLocalization }}

\n
\n
\n
\n \n \n \n \n
\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":14,"character":29},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ToasterService","line":14,"character":60},{"__symbolic":"reference","name":"ɵd"}]}],"ngOnInit":[{"__symbolic":"method"}],"onSwitch":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":16,"character":12},"member":"forChild"},"arguments":[[{"path":"","pathMatch":"full","redirectTo":"login"},{"path":"","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":10,"character":15},"children":[{"path":"login","component":{"__symbolic":"reference","name":"ɵa"}},{"path":"register","component":{"__symbolic":"reference","name":"ɵc"}}]}]]}],"exports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":17,"character":12}]}]}],"members":{}},"ɵg":{"__symbolic":"function","parameters":["options"],"value":{"redirectUrl":"/"}},"ɵh":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":10,"character":35},"arguments":["ACCOUNT_OPTIONS"]}},"origins":{"AccountModule":"./lib/account.module","AccountProviders":"./lib/account.module","ACCOUNT_ROUTES":"./lib/constants/routes","ɵa":"./lib/components/login/login.component","ɵb":"./lib/models/options","ɵc":"./lib/components/register/register.component","ɵd":"./lib/services/account.service","ɵe":"./lib/components/tenant-box/tenant-box.component","ɵf":"./lib/account-routing.module","ɵg":"./lib/tokens/options.token","ɵh":"./lib/tokens/options.token"},"importAs":"@abp/ng.account"} \ No newline at end of file diff --git a/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.js b/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.js index 328d8e5820..f822ccd28c 100644 --- a/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.js +++ b/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.js @@ -1,8 +1,8 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@abp/ng.core'), require('@abp/ng.theme.shared'), require('@ng-bootstrap/ng-bootstrap'), require('@ngx-validate/core'), require('primeng/table'), require('@angular/router'), require('@angular/forms'), require('@ngxs/router-plugin'), require('@ngxs/store'), require('angular-oauth2-oidc'), require('rxjs'), require('rxjs/operators'), require('snq')) : - typeof define === 'function' && define.amd ? define('@abp/ng.account', ['exports', '@angular/core', '@abp/ng.core', '@abp/ng.theme.shared', '@ng-bootstrap/ng-bootstrap', '@ngx-validate/core', 'primeng/table', '@angular/router', '@angular/forms', '@ngxs/router-plugin', '@ngxs/store', 'angular-oauth2-oidc', 'rxjs', 'rxjs/operators', 'snq'], factory) : - (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.account = {}), global.ng.core, global.ng_core, global.ng_theme_shared, global.ngBootstrap, global.core$1, global.table, global.ng.router, global.ng.forms, global.routerPlugin, global.store, global.angularOauth2Oidc, global.rxjs, global.rxjs.operators, global.snq)); -}(this, function (exports, core, ng_core, ng_theme_shared, ngBootstrap, core$1, table, router, forms, routerPlugin, store, angularOauth2Oidc, rxjs, operators, snq) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@abp/ng.theme.shared'), require('@angular/core'), require('@ng-bootstrap/ng-bootstrap'), require('@ngx-validate/core'), require('primeng/table'), require('@angular/router'), require('@angular/forms'), require('@ngxs/router-plugin'), require('@ngxs/store'), require('angular-oauth2-oidc'), require('rxjs'), require('rxjs/operators'), require('snq')) : + typeof define === 'function' && define.amd ? define('@abp/ng.account', ['exports', '@abp/ng.core', '@abp/ng.theme.shared', '@angular/core', '@ng-bootstrap/ng-bootstrap', '@ngx-validate/core', 'primeng/table', '@angular/router', '@angular/forms', '@ngxs/router-plugin', '@ngxs/store', 'angular-oauth2-oidc', 'rxjs', 'rxjs/operators', 'snq'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.account = {}), global.ng_core, global.ng_theme_shared, global.ng.core, global.ngBootstrap, global.core$1, global.table, global.ng.router, global.ng.forms, global.routerPlugin, global.store, global.angularOauth2Oidc, global.rxjs, global.rxjs.operators, global.snq)); +}(this, function (exports, ng_core, ng_theme_shared, core, ngBootstrap, core$1, table, router, forms, routerPlugin, store, angularOauth2Oidc, rxjs, operators, snq) { 'use strict'; snq = snq && snq.hasOwnProperty('default') ? snq['default'] : snq; @@ -203,55 +203,6 @@ return (mod && mod.__esModule) ? mod : { default: mod }; } - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * @param {?} options - * @return {?} - */ - function optionsFactory(options) { - return __assign({ redirectUrl: '/' }, options); - } - /** @type {?} */ - var ACCOUNT_OPTIONS = new core.InjectionToken('ACCOUNT_OPTIONS'); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var RootAccountModule = /** @class */ (function () { - function RootAccountModule() { - } - /** - * @param {?=} options - * @return {?} - */ - RootAccountModule.forRoot = /** - * @param {?=} options - * @return {?} - */ - function (options) { - if (options === void 0) { options = (/** @type {?} */ ({})); } - return { - ngModule: RootAccountModule, - providers: [ - { provide: ACCOUNT_OPTIONS, useValue: options }, - { - provide: 'ACCOUNT_OPTIONS', - useFactory: optionsFactory, - deps: [ACCOUNT_OPTIONS], - }, - ], - }; - }; - RootAccountModule.decorators = [ - { type: core.NgModule, args: [{},] } - ]; - return RootAccountModule; - }()); - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -386,7 +337,7 @@ /** @type {?} */ var request = { method: 'GET', - url: "/api/abp/multi-tenancy/find-tenant/" + tenantName, + url: "/api/abp/multi-tenancy/tenants/by-name/" + tenantName, }; return this.rest.request(request); }; @@ -688,6 +639,20 @@ TenantBoxComponent.prototype.accountService; } + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @param {?} options + * @return {?} + */ + function optionsFactory(options) { + return __assign({ redirectUrl: '/' }, options); + } + /** @type {?} */ + var ACCOUNT_OPTIONS = new core.InjectionToken('ACCOUNT_OPTIONS'); + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -704,6 +669,21 @@ ]; return AccountModule; }()); + /** + * @param {?=} options + * @return {?} + */ + function AccountProviders(options) { + if (options === void 0) { options = (/** @type {?} */ ({})); } + return [ + { provide: ACCOUNT_OPTIONS, useValue: options }, + { + provide: 'ACCOUNT_OPTIONS', + useFactory: optionsFactory, + deps: [ACCOUNT_OPTIONS], + }, + ]; + } /** * @fileoverview added by tsickle @@ -725,7 +705,6 @@ children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], }, ])), - settings: [], }; /** @@ -829,17 +808,17 @@ exports.ACCOUNT_OPTIONS = ACCOUNT_OPTIONS; exports.ACCOUNT_ROUTES = ACCOUNT_ROUTES; exports.AccountModule = AccountModule; + exports.AccountProviders = AccountProviders; exports.LoginComponent = LoginComponent; exports.RegisterComponent = RegisterComponent; - exports.RootAccountModule = RootAccountModule; exports.optionsFactory = optionsFactory; - exports.ɵa = optionsFactory; - exports.ɵb = ACCOUNT_OPTIONS; - exports.ɵc = LoginComponent; - exports.ɵe = RegisterComponent; - exports.ɵf = AccountService; - exports.ɵg = TenantBoxComponent; - exports.ɵh = AccountRoutingModule; + exports.ɵa = LoginComponent; + exports.ɵc = RegisterComponent; + exports.ɵd = AccountService; + exports.ɵe = TenantBoxComponent; + exports.ɵf = AccountRoutingModule; + exports.ɵg = optionsFactory; + exports.ɵh = ACCOUNT_OPTIONS; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.js.map b/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.js.map index 181962bf2f..d55fcae9dc 100644 --- a/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.js.map +++ b/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.account.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.account/lib/tokens/options.token.ts","ng://@abp/ng.account/lib/root-account.module.ts","ng://@abp/ng.account/lib/components/login/login.component.ts","ng://@abp/ng.account/lib/services/account.service.ts","ng://@abp/ng.account/lib/components/register/register.component.ts","ng://@abp/ng.account/lib/account-routing.module.ts","ng://@abp/ng.account/lib/components/tenant-box/tenant-box.component.ts","ng://@abp/ng.account/lib/account.module.ts","ng://@abp/ng.account/lib/constants/routes.ts","ng://@abp/ng.account/lib/models/options.ts","ng://@abp/ng.account/lib/models/user.ts","ng://@abp/ng.account/lib/models/tenant.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { Options } from '../models/options';\n\nexport function optionsFactory(options: Options) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n\nexport const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS');\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { Options } from './models/options';\nimport { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token';\n\n@NgModule({})\nexport class RootAccountModule {\n static forRoot(options = {} as Options): ModuleWithProviders {\n return {\n ngModule: RootAccountModule,\n providers: [\n { provide: ACCOUNT_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: optionsFactory,\n deps: [ACCOUNT_OPTIONS],\n },\n ],\n };\n }\n}\n","import { GetAppConfiguration, ConfigState } from '@abp/ng.core';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { Options } from '../../models/options';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { catchError, finalize, switchMap, tap } from 'rxjs/operators';\nimport snq from 'snq';\n\nconst { maxLength, minLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n remember: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n // this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage);\n\n this.inProgress = true;\n from(\n this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value),\n )\n .pipe(\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => {\n const redirectUrl = snq(() => window.history.state).redirectUrl || (this.options || {}).redirectUrl || '/';\n this.store.dispatch(new Navigate([redirectUrl]));\n }),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { RegisterResponse, RegisterRequest, TenantIdResponse } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountService {\n constructor(private rest: RestService) {}\n\n findTenant(tenantName: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/abp/multi-tenancy/find-tenant/${tenantName}`,\n };\n\n return this.rest.request(request);\n }\n\n register(body: RegisterRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/account/register`,\n body,\n };\n\n return this.rest.request(request, { skipHandleError: true });\n }\n}\n","import { ConfigState, GetAppConfiguration } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { catchError, finalize, switchMap, take, tap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { RegisterRequest } from '../../models';\nimport { AccountService } from '../../services/account.service';\nconst { maxLength, minLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private accountService: AccountService,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.inProgress = true;\n\n const newUser = {\n userName: this.form.get('username').value,\n password: this.form.get('password').value,\n emailAddress: this.form.get('email').value,\n appName: 'Angular',\n } as RegisterRequest;\n\n this.accountService\n .register(newUser)\n .pipe(\n switchMap(() => from(this.oauthService.fetchTokenUsingPasswordFlow(newUser.userName, newUser.password))),\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => this.store.dispatch(new Navigate(['/']))),\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { DynamicLayoutComponent } from '@abp/ng.core';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { ABP, SetTenant, SessionState } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, OnInit } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AccountService } from '../../services/account.service';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n})\nexport class TenantBoxComponent implements OnInit {\n constructor(private store: Store, private toasterService: ToasterService, private accountService: AccountService) {}\n\n tenant = {} as ABP.BasicItem;\n\n tenantName: string;\n\n isModalVisible: boolean;\n\n ngOnInit() {\n this.tenant = this.store.selectSnapshot(SessionState.getTenant) || ({} as ABP.BasicItem);\n this.tenantName = this.tenant.name || '';\n }\n\n onSwitch() {\n this.isModalVisible = true;\n }\n\n save() {\n if (this.tenant.name) {\n this.accountService\n .findTenant(this.tenant.name)\n .pipe(\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description, 'AbpUi::DefaultErrorMessage'),\n 'AbpUi::Error',\n );\n return throwError(err);\n }),\n )\n .subscribe(({ success, tenantId }) => {\n if (success) {\n this.tenant = {\n id: tenantId,\n name: this.tenant.name,\n };\n this.tenantName = this.tenant.name;\n this.isModalVisible = false;\n } else {\n this.toasterService.error(`AbpUiMultiTenancy::GivenTenantIsNotAvailable`, 'AbpUi::Error', {\n messageLocalizationParams: [this.tenant.name],\n });\n this.tenant = {} as ABP.BasicItem;\n }\n this.store.dispatch(new SetTenant(success ? this.tenant : null));\n });\n } else {\n this.store.dispatch(new SetTenant(null));\n this.tenantName = null;\n this.isModalVisible = false;\n }\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { TableModule } from 'primeng/table';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\n\n@NgModule({\n declarations: [LoginComponent, RegisterComponent, TenantBoxComponent],\n imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule],\n exports: [],\n})\nexport class AccountModule {}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const ACCOUNT_ROUTES = {\n routes: [\n {\n name: 'Account',\n path: 'account',\n invisible: true,\n layout: eLayoutType.application,\n children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }],\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n","export interface Options {\n redirectUrl?: string;\n}\n","export interface RegisterRequest {\n userName: string;\n emailAddress: string;\n password: string;\n appName?: string;\n}\n\nexport interface RegisterResponse {\n tenantId: string;\n userName: string;\n name: string;\n surname: string;\n email: string;\n emailConfirmed: boolean;\n phoneNumber: string;\n phoneNumberConfirmed: boolean;\n twoFactorEnabled: boolean;\n lockoutEnabled: boolean;\n lockoutEnd: string;\n concurrencyStamp: string;\n isDeleted: boolean;\n deleterId: string;\n deletionTime: string;\n lastModificationTime: string;\n lastModifierId: string;\n creationTime: string;\n creatorId: string;\n id: string;\n}\n","export interface TenantIdResponse {\n success: boolean;\n tenantId: string;\n}\n"],"names":["InjectionToken","NgModule","ConfigState","from","switchMap","GetAppConfiguration","tap","Navigate","catchError","throwError","finalize","Component","FormBuilder","OAuthService","Store","ToasterService","Optional","Inject","Injectable","RestService","maxLength","minLength","required","take","DynamicLayoutComponent","RouterModule","SessionState","SetTenant","CoreModule","ThemeSharedModule","TableModule","NgbDropdownModule","NgxValidateCoreModule"],"mappings":";;;;;;;;IAAA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;IACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;IACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;;AAEF,IAAO,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;IAChC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IAC3C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;;AAED,IAAO,IAAI,QAAQ,GAAG,WAAW;IACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,MAAK;IACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,EAAC;;AAED,IAAO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;IACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,SAAS;IACT,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;;AAED,IAAO,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IAC1D,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;;AAED,IAAO,SAAS,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE;IAC/C,IAAI,OAAO,UAAU,MAAM,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE;IACzE,CAAC;;AAED,IAAO,SAAS,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE;IACvD,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;;AAED,IAAO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;IAC7D,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;IAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;IACvJ,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,CAAC;IACP,CAAC;;AAED,IAAO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;IAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrH,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;IACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;IACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACtE,QAAQ,OAAO,CAAC,EAAE,IAAI;IACtB,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;IAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IACjE,gBAAgB;IAChB,oBAAoB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;IAChI,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;IAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;IACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IAC3C,aAAa;IACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzF,KAAK;IACL,CAAC;;AAED,IAAO,SAAS,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE;IACzC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;;AAED,IAAO,SAAS,QAAQ,CAAC,CAAC,EAAE;IAC5B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,OAAO;IACX,QAAQ,IAAI,EAAE,YAAY;IAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,YAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IACpD,SAAS;IACT,KAAK,CAAC;IACN,CAAC;;AAED,IAAO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,IAAI;IACR,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,KAAK;IACL,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3C,YAAY;IACZ,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,SAAS;IACT,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;IACzC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;;AAED,IAAO,SAAS,QAAQ,GAAG;IAC3B,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;;AAED,IAAO,SAAS,cAAc,GAAG;IACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IACpD,QAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;IACzE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;;AAEF,IAAO,SAAS,OAAO,CAAC,CAAC,EAAE;IAC3B,IAAI,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;;AAED,IAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;IACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAClE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1H,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9I,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACtF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IAC5H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;;AAED,IAAO,SAAS,gBAAgB,CAAC,CAAC,EAAE;IACpC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChJ,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;;AAED,IAAO,SAAS,aAAa,CAAC,CAAC,EAAE;IACjC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IACpK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;;AAED,IAAO,SAAS,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE;IAClD,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE;IACnH,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;;AAEF,IAAO,SAAS,YAAY,CAAC,GAAG,EAAE;IAClC,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACzB,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;;AAED,IAAO,SAAS,eAAe,CAAC,GAAG,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;;;;;;;;;;IChMD,SAAgB,cAAc,CAAC,OAAgB;QAC7C,kBACE,WAAW,EAAE,GAAG,IACb,OAAO,EACV;KACH;;AAED,QAAa,eAAe,GAAG,IAAIA,mBAAc,CAAC,iBAAiB,CAAC;;;;;;ACVpE;QAIA;SAeC;;;;;QAbQ,yBAAO;;;;QAAd,UAAe,OAAuB;YAAvB,wBAAA,EAAA,6BAAU,EAAE,EAAW;YACpC,OAAO;gBACL,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS,EAAE;oBACT,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE;oBAC/C;wBACE,OAAO,EAAE,iBAAiB;wBAC1B,UAAU,EAAE,cAAc;wBAC1B,IAAI,EAAE,CAAC,eAAe,CAAC;qBACxB;iBACF;aACF,CAAC;SACH;;oBAdFC,aAAQ,SAAC,EAAE;;QAeZ,wBAAC;KAfD;;;;;;ICQQ,IAAA,sCAAS,EAAE,sCAAS,EAAE,oCAAQ;AAEtC;QASE,wBACU,EAAe,EACf,YAA0B,EAC1B,KAAY,EACZ,cAA8B,EACS,OAAgB;YAJvD,OAAE,GAAF,EAAE,CAAa;YACf,iBAAY,GAAZ,YAAY,CAAc;YAC1B,UAAK,GAAL,KAAK,CAAO;YACZ,mBAAc,GAAd,cAAc,CAAgB;YACS,YAAO,GAAP,OAAO,CAAS;YAE/D,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAACC,mBAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACtG,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;YAE1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzC,QAAQ,EAAE,CAAC,KAAK,CAAC;aAClB,CAAC,CAAC;SACJ;;;;QAED,iCAAQ;;;QAAR;YAAA,iBA0BC;YAzBC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;;YAG9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvBC,SAAI,CACF,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAChH;iBACE,IAAI,CACHC,mBAAS;;;YAAC,cAAM,OAAA,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAIC,2BAAmB,EAAE,CAAC,GAAA,EAAC,EAC/DC,aAAG;;;YAAC;;oBACI,WAAW,GAAG,GAAG;;;gBAAC,cAAM,OAAA,MAAM,CAAC,OAAO,CAAC,KAAK,GAAA,EAAC,CAAC,WAAW,IAAI,CAAC,KAAI,CAAC,OAAO,IAAI,EAAE,EAAE,WAAW,IAAI,GAAG;gBAC1G,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAIC,qBAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aAClD,EAAC,EACFC,oBAAU;;;;YAAC,UAAA,GAAG;gBACZ,KAAI,CAAC,cAAc,CAAC,KAAK,CACvB,GAAG;;;gBAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,iBAAiB,GAAA,EAAC;oBACpC,GAAG;;;oBAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAA,GAAE,iCAAiC,CAAC,EACvE,OAAO,EACP,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;gBACF,OAAOC,eAAU,CAAC,GAAG,CAAC,CAAC;aACxB,EAAC,EACFC,kBAAQ;;;YAAC,cAAM,QAAC,KAAI,CAAC,UAAU,GAAG,KAAK,IAAC,EAAC,CAC1C;iBACA,SAAS,EAAE,CAAC;SAChB;;oBApDFC,cAAS,SAAC;wBACT,QAAQ,EAAE,WAAW;wBACrB,6tDAAqC;qBACtC;;;;oBAfQC,iBAAW;oBAGXC,8BAAY;oBADZC,WAAK;oBAILC,8BAAc;oDAoBlBC,aAAQ,YAAIC,WAAM,SAAC,iBAAiB;;QAuCzC,qBAAC;KArDD,IAqDC;;;QAhDC,8BAAgB;;QAEhB,oCAAoB;;;;;QAGlB,4BAAuB;;;;;QACvB,sCAAkC;;;;;QAClC,+BAAoB;;;;;QACpB,wCAAsC;;;;;QACtC,iCAA+D;;;;;;;AC5BnE;QASE,wBAAoB,IAAiB;YAAjB,SAAI,GAAJ,IAAI,CAAa;SAAI;;;;;QAEzC,mCAAU;;;;QAAV,UAAW,UAAkB;;gBACrB,OAAO,GAAuB;gBAClC,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,wCAAsC,UAAY;aACxD;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAyB,OAAO,CAAC,CAAC;SAC3D;;;;;QAED,iCAAQ;;;;QAAR,UAAS,IAAqB;;gBACtB,OAAO,GAAkC;gBAC7C,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,uBAAuB;gBAC5B,IAAI,MAAA;aACL;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoC,OAAO,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;SACjG;;oBAvBFC,eAAU,SAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;oBALQC,mBAAW;;;6BAFpB;KAKA,IAwBC;;;;;;QApBa,8BAAyB;;;;;;;ICG/B,IAAAC,wCAAS,EAAEC,wCAAS,EAAEC,sCAAQ,EAAE,8BAAK;AAE7C;QASE,2BACU,EAAe,EACf,cAA8B,EAC9B,YAA0B,EAC1B,KAAY,EACZ,cAA8B;YAJ9B,OAAE,GAAF,EAAE,CAAa;YACf,mBAAc,GAAd,cAAc,CAAgB;YAC9B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,UAAK,GAAL,KAAK,CAAO;YACZ,mBAAc,GAAd,cAAc,CAAgB;YAEtC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAACpB,mBAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACtG,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;YAE1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,CAACoB,UAAQ,EAAEF,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,CAACE,UAAQ,EAAEF,WAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzC,KAAK,EAAE,CAAC,EAAE,EAAE,CAACE,UAAQ,EAAE,KAAK,CAAC,CAAC;aAC/B,CAAC,CAAC;SACJ;;;;QAED,oCAAQ;;;QAAR;YAAA,iBA+BC;YA9BC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAE9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;;gBAEjB,OAAO,sBAAG;gBACd,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;gBACzC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;gBACzC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK;gBAC1C,OAAO,EAAE,SAAS;aACnB,EAAmB;YAEpB,IAAI,CAAC,cAAc;iBAChB,QAAQ,CAAC,OAAO,CAAC;iBACjB,IAAI,CACHlB,mBAAS;;;YAAC,cAAM,OAAAD,SAAI,CAAC,KAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAA,EAAC,EACxGC,mBAAS;;;YAAC,cAAM,OAAA,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAIC,2BAAmB,EAAE,CAAC,GAAA,EAAC,EAC/DC,aAAG;;;YAAC,cAAM,OAAA,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAIC,qBAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAA,EAAC,EACnDgB,cAAI,CAAC,CAAC,CAAC,EACPf,oBAAU;;;;YAAC,UAAA,GAAG;gBACZ,KAAI,CAAC,cAAc,CAAC,KAAK,CACvB,GAAG;;;gBAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,iBAAiB,GAAA,EAAC;oBACpC,GAAG;;;oBAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAA,GAAE,iCAAiC,CAAC,EACvE,OAAO,EACP,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;gBACF,OAAOC,eAAU,CAAC,GAAG,CAAC,CAAC;aACxB,EAAC,EACFC,kBAAQ;;;YAAC,cAAM,QAAC,KAAI,CAAC,UAAU,GAAG,KAAK,IAAC,EAAC,CAC1C;iBACA,SAAS,EAAE,CAAC;SAChB;;oBAzDFC,cAAS,SAAC;wBACT,QAAQ,EAAE,cAAc;wBACxB,i9CAAwC;qBACzC;;;;oBAdQC,iBAAW;oBAQX,cAAc;oBALdC,8BAAY;oBADZC,WAAK;oBAJLC,8BAAc;;QAuEvB,wBAAC;KA1DD,IA0DC;;;QArDC,iCAAgB;;QAEhB,uCAAoB;;;;;QAGlB,+BAAuB;;;;;QACvB,2CAAsC;;;;;QACtC,yCAAkC;;;;;QAClC,kCAAoB;;;;;QACpB,2CAAsC;;;;;;;IC5B1C;QAMM,MAAM,GAAW;QACrB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE;QACpD;YACE,IAAI,EAAE,EAAE;YACR,SAAS,EAAES,8BAAsB;YACjC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;SAC7G;KACF;AAED;QAAA;SAIoC;;oBAJnCvB,aAAQ,SAAC;wBACR,OAAO,EAAE,CAACwB,mBAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACxC,OAAO,EAAE,CAACA,mBAAY,CAAC;qBACxB;;QACkC,2BAAC;KAJpC;;;;;;ACfA;QAcE,4BAAoB,KAAY,EAAU,cAA8B,EAAU,cAA8B;YAA5F,UAAK,GAAL,KAAK,CAAO;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAEhH,WAAM,sBAAG,EAAE,EAAiB,CAAC;SAFuF;;;;QAQpH,qCAAQ;;;QAAR;YACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAACC,oBAAY,CAAC,SAAS,CAAC,wBAAK,EAAE,GAAkB,CAAC;YACzF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;SAC1C;;;;QAED,qCAAQ;;;QAAR;YACE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;;;;QAED,iCAAI;;;QAAJ;YAAA,iBAmCC;YAlCC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;gBACpB,IAAI,CAAC,cAAc;qBAChB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;qBAC5B,IAAI,CACHH,cAAI,CAAC,CAAC,CAAC,EACPf,oBAAU;;;;gBAAC,UAAA,GAAG;oBACZ,KAAI,CAAC,cAAc,CAAC,KAAK,CACvB,GAAG;;;oBAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,iBAAiB,GAAA,GAAE,4BAA4B,CAAC,EACpE,cAAc,CACf,CAAC;oBACF,OAAOC,eAAU,CAAC,GAAG,CAAC,CAAC;iBACxB,EAAC,CACH;qBACA,SAAS;;;;gBAAC,UAAC,EAAqB;wBAAnB,oBAAO,EAAE,sBAAQ;oBAC7B,IAAI,OAAO,EAAE;wBACX,KAAI,CAAC,MAAM,GAAG;4BACZ,EAAE,EAAE,QAAQ;4BACZ,IAAI,EAAE,KAAI,CAAC,MAAM,CAAC,IAAI;yBACvB,CAAC;wBACF,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC;wBACnC,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;qBAC7B;yBAAM;wBACL,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,8CAA8C,EAAE,cAAc,EAAE;4BACxF,yBAAyB,EAAE,CAAC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC;yBAC9C,CAAC,CAAC;wBACH,KAAI,CAAC,MAAM,sBAAG,EAAE,EAAiB,CAAC;qBACnC;oBACD,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAIkB,iBAAS,CAAC,OAAO,GAAG,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;iBAClE,EAAC,CAAC;aACN;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAIA,iBAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC7B;SACF;;oBAzDFhB,cAAS,SAAC;wBACT,QAAQ,EAAE,gBAAgB;wBAC1B,0gDAA0C;qBAC3C;;;;oBATQG,WAAK;oBAFLC,8BAAc;oBAMd,cAAc;;QA4DvB,yBAAC;KA1DD,IA0DC;;;QAnDC,oCAA6B;;QAE7B,wCAAmB;;QAEnB,4CAAwB;;;;;QANZ,mCAAoB;;;;;QAAE,4CAAsC;;;;;QAAE,4CAAsC;;;;;;;ACdlH;QAWA;SAK6B;;oBAL5Bd,aAAQ,SAAC;wBACR,YAAY,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;wBACrE,OAAO,EAAE,CAAC2B,kBAAU,EAAE,oBAAoB,EAAEC,iCAAiB,EAAEC,iBAAW,EAAEC,6BAAiB,EAAEC,4BAAqB,CAAC;wBACrH,OAAO,EAAE,EAAE;qBACZ;;QAC2B,oBAAC;KAL7B;;;;;;;;;;;;ACTA,QAAa,cAAc,GAAG;QAC5B,MAAM,qBAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,IAAI;gBACf,MAAM;gBACN,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;aACzG;SACF,EAAmB;QACpB,QAAQ,EAAE,EAAE;KACb;;;;;;;;;;;;;;ICbD,sBAEC;;;QADC,8BAAqB;;;;;;;;;;ICDvB,8BAKC;;;QAJC,mCAAiB;;QACjB,uCAAqB;;QACrB,mCAAiB;;QACjB,kCAAiB;;;;;IAGnB,+BAqBC;;;QApBC,oCAAiB;;QACjB,oCAAiB;;QACjB,gCAAa;;QACb,mCAAgB;;QAChB,iCAAc;;QACd,0CAAwB;;QACxB,uCAAoB;;QACpB,gDAA8B;;QAC9B,4CAA0B;;QAC1B,0CAAwB;;QACxB,sCAAmB;;QACnB,4CAAyB;;QACzB,qCAAmB;;QACnB,qCAAkB;;QAClB,wCAAqB;;QACrB,gDAA6B;;QAC7B,0CAAuB;;QACvB,wCAAqB;;QACrB,qCAAkB;;QAClB,8BAAW;;;;;;;;;;IC3Bb,+BAGC;;;QAFC,mCAAiB;;QACjB,oCAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"abp-ng.account.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.account/lib/components/login/login.component.ts","ng://@abp/ng.account/lib/services/account.service.ts","ng://@abp/ng.account/lib/components/register/register.component.ts","ng://@abp/ng.account/lib/account-routing.module.ts","ng://@abp/ng.account/lib/components/tenant-box/tenant-box.component.ts","ng://@abp/ng.account/lib/tokens/options.token.ts","ng://@abp/ng.account/lib/account.module.ts","ng://@abp/ng.account/lib/constants/routes.ts","ng://@abp/ng.account/lib/models/options.ts","ng://@abp/ng.account/lib/models/user.ts","ng://@abp/ng.account/lib/models/tenant.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { GetAppConfiguration, ConfigState } from '@abp/ng.core';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { Options } from '../../models/options';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { catchError, finalize, switchMap, tap } from 'rxjs/operators';\nimport snq from 'snq';\n\nconst { maxLength, minLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n remember: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n // this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage);\n\n this.inProgress = true;\n from(\n this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value),\n )\n .pipe(\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => {\n const redirectUrl = snq(() => window.history.state).redirectUrl || (this.options || {}).redirectUrl || '/';\n this.store.dispatch(new Navigate([redirectUrl]));\n }),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { RegisterResponse, RegisterRequest, TenantIdResponse } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountService {\n constructor(private rest: RestService) {}\n\n findTenant(tenantName: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/abp/multi-tenancy/tenants/by-name/${tenantName}`,\n };\n\n return this.rest.request(request);\n }\n\n register(body: RegisterRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/account/register`,\n body,\n };\n\n return this.rest.request(request, { skipHandleError: true });\n }\n}\n","import { ConfigState, GetAppConfiguration } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { catchError, finalize, switchMap, take, tap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { RegisterRequest } from '../../models';\nimport { AccountService } from '../../services/account.service';\nconst { maxLength, minLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private accountService: AccountService,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.inProgress = true;\n\n const newUser = {\n userName: this.form.get('username').value,\n password: this.form.get('password').value,\n emailAddress: this.form.get('email').value,\n appName: 'Angular',\n } as RegisterRequest;\n\n this.accountService\n .register(newUser)\n .pipe(\n switchMap(() => from(this.oauthService.fetchTokenUsingPasswordFlow(newUser.userName, newUser.password))),\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => this.store.dispatch(new Navigate(['/']))),\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { DynamicLayoutComponent } from '@abp/ng.core';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { ABP, SetTenant, SessionState } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, OnInit } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AccountService } from '../../services/account.service';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n})\nexport class TenantBoxComponent implements OnInit {\n constructor(private store: Store, private toasterService: ToasterService, private accountService: AccountService) {}\n\n tenant = {} as ABP.BasicItem;\n\n tenantName: string;\n\n isModalVisible: boolean;\n\n ngOnInit() {\n this.tenant = this.store.selectSnapshot(SessionState.getTenant) || ({} as ABP.BasicItem);\n this.tenantName = this.tenant.name || '';\n }\n\n onSwitch() {\n this.isModalVisible = true;\n }\n\n save() {\n if (this.tenant.name) {\n this.accountService\n .findTenant(this.tenant.name)\n .pipe(\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description, 'AbpUi::DefaultErrorMessage'),\n 'AbpUi::Error',\n );\n return throwError(err);\n }),\n )\n .subscribe(({ success, tenantId }) => {\n if (success) {\n this.tenant = {\n id: tenantId,\n name: this.tenant.name,\n };\n this.tenantName = this.tenant.name;\n this.isModalVisible = false;\n } else {\n this.toasterService.error(`AbpUiMultiTenancy::GivenTenantIsNotAvailable`, 'AbpUi::Error', {\n messageLocalizationParams: [this.tenant.name],\n });\n this.tenant = {} as ABP.BasicItem;\n }\n this.store.dispatch(new SetTenant(success ? this.tenant : null));\n });\n } else {\n this.store.dispatch(new SetTenant(null));\n this.tenantName = null;\n this.isModalVisible = false;\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Options } from '../models/options';\n\nexport function optionsFactory(options: Options) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n\nexport const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS');\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule, Provider } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { TableModule } from 'primeng/table';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\nimport { Options } from './models/options';\nimport { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token';\n\n@NgModule({\n declarations: [LoginComponent, RegisterComponent, TenantBoxComponent],\n imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule],\n exports: [],\n})\nexport class AccountModule {}\n\nexport function AccountProviders(options = {} as Options): Provider[] {\n return [\n { provide: ACCOUNT_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: optionsFactory,\n deps: [ACCOUNT_OPTIONS],\n },\n ];\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const ACCOUNT_ROUTES = {\n routes: [\n {\n name: 'Account',\n path: 'account',\n invisible: true,\n layout: eLayoutType.application,\n children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }],\n },\n ] as ABP.FullRoute[],\n};\n","export interface Options {\n redirectUrl?: string;\n}\n","export interface RegisterRequest {\n userName: string;\n emailAddress: string;\n password: string;\n appName?: string;\n}\n\nexport interface RegisterResponse {\n tenantId: string;\n userName: string;\n name: string;\n surname: string;\n email: string;\n emailConfirmed: boolean;\n phoneNumber: string;\n phoneNumberConfirmed: boolean;\n twoFactorEnabled: boolean;\n lockoutEnabled: boolean;\n lockoutEnd: string;\n concurrencyStamp: string;\n isDeleted: boolean;\n deleterId: string;\n deletionTime: string;\n lastModificationTime: string;\n lastModifierId: string;\n creationTime: string;\n creatorId: string;\n id: string;\n}\n","export interface TenantIdResponse {\n success: boolean;\n tenantId: string;\n}\n"],"names":["ConfigState","from","switchMap","GetAppConfiguration","tap","Navigate","catchError","throwError","finalize","Component","FormBuilder","OAuthService","Store","ToasterService","Optional","Inject","Injectable","RestService","maxLength","minLength","required","take","DynamicLayoutComponent","NgModule","RouterModule","SessionState","SetTenant","InjectionToken","CoreModule","ThemeSharedModule","TableModule","NgbDropdownModule","NgxValidateCoreModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.min.js b/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.min.js index 680ff5ea4f..2c8f177c55 100644 --- a/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.min.js +++ b/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@ng-bootstrap/ng-bootstrap"),require("@ngx-validate/core"),require("primeng/table"),require("@angular/router"),require("@angular/forms"),require("@ngxs/router-plugin"),require("@ngxs/store"),require("angular-oauth2-oidc"),require("rxjs"),require("rxjs/operators"),require("snq")):"function"==typeof define&&define.amd?define("@abp/ng.account",["exports","@angular/core","@abp/ng.core","@abp/ng.theme.shared","@ng-bootstrap/ng-bootstrap","@ngx-validate/core","primeng/table","@angular/router","@angular/forms","@ngxs/router-plugin","@ngxs/store","angular-oauth2-oidc","rxjs","rxjs/operators","snq"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng.account={}),e.ng.core,e.ng_core,e.ng_theme_shared,e.ngBootstrap,e.core$1,e.table,e.ng.router,e.ng.forms,e.routerPlugin,e.store,e.angularOauth2Oidc,e.rxjs,e.rxjs.operators,e.snq)}(this,function(e,t,n,r,o,a,i,s,c,u,p,l,d,m,b){"use strict";b=b&&b.hasOwnProperty("default")?b.default:b;var f=function(){return(f=Object.assign||function(e){for(var t,n=1,r=arguments.length;n\n
\n
\n'}]}],e.ctorParameters=function(){return[{type:c.FormBuilder},{type:l.OAuthService},{type:p.Store},{type:r.ToasterService},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:["ACCOUNT_OPTIONS"]}]}]},e}();var w=function(){function e(e){this.rest=e}return e.prototype.findTenant=function(e){var t={method:"GET",url:"/api/abp/multi-tenancy/find-tenant/"+e};return this.rest.request(t)},e.prototype.register=function(e){var t={method:"POST",url:"/api/account/register",body:e};return this.rest.request(t,{skipHandleError:!0})},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:n.RestService}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(n.RestService))},token:e,providedIn:"root"}),e}();var T=c.Validators.maxLength,x=(c.Validators.minLength,c.Validators.required),M=c.Validators.email,N=function(){function e(e,t,r,o,a){this.fb=e,this.accountService=t,this.oauthService=r,this.store=o,this.toasterService=a,this.oauthService.configure(this.store.selectSnapshot(n.ConfigState.getOne("environment")).oAuthConfig),this.oauthService.loadDiscoveryDocument(),this.form=this.fb.group({username:["",[x,T(255)]],password:["",[x,T(32)]],email:["",[x,M]]})}return e.prototype.onSubmit=function(){var e=this;if(!this.form.invalid){this.inProgress=!0;var t={userName:this.form.get("username").value,password:this.form.get("password").value,emailAddress:this.form.get("email").value,appName:"Angular"};this.accountService.register(t).pipe(m.switchMap(function(){return d.from(e.oauthService.fetchTokenUsingPasswordFlow(t.userName,t.password))}),m.switchMap(function(){return e.store.dispatch(new n.GetAppConfiguration)}),m.tap(function(){return e.store.dispatch(new u.Navigate(["/"]))}),m.take(1),m.catchError(function(t){return e.toasterService.error(b(function(){return t.error.error_description})||b(function(){return t.error.error.message},"AbpAccount::DefaultErrorMessage"),"Error",{life:7e3}),d.throwError(t)}),m.finalize(function(){return e.inProgress=!1})).subscribe()}},e.decorators=[{type:t.Component,args:[{selector:"abp-register",template:'
\n
\n \n\n \n
\n
\n'}]}],e.ctorParameters=function(){return[{type:c.FormBuilder},{type:w},{type:l.OAuthService},{type:p.Store},{type:r.ToasterService}]},e}();var C=[{path:"",pathMatch:"full",redirectTo:"login"},{path:"",component:n.DynamicLayoutComponent,children:[{path:"login",component:A},{path:"register",component:N}]}],L=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[s.RouterModule.forChild(C)],exports:[s.RouterModule]}]}],e}(),O=function(){function e(e,t,n){this.store=e,this.toasterService=t,this.accountService=n,this.tenant={}}return e.prototype.ngOnInit=function(){this.tenant=this.store.selectSnapshot(n.SessionState.getTenant)||{},this.tenantName=this.tenant.name||""},e.prototype.onSwitch=function(){this.isModalVisible=!0},e.prototype.save=function(){var e=this;this.tenant.name?this.accountService.findTenant(this.tenant.name).pipe(m.take(1),m.catchError(function(t){return e.toasterService.error(b(function(){return t.error.error_description},"AbpUi::DefaultErrorMessage"),"AbpUi::Error"),d.throwError(t)})).subscribe(function(t){var r=t.success,o=t.tenantId;r?(e.tenant={id:o,name:e.tenant.name},e.tenantName=e.tenant.name,e.isModalVisible=!1):(e.toasterService.error("AbpUiMultiTenancy::GivenTenantIsNotAvailable","AbpUi::Error",{messageLocalizationParams:[e.tenant.name]}),e.tenant={}),e.store.dispatch(new n.SetTenant(r?e.tenant:null))}):(this.store.dispatch(new n.SetTenant(null)),this.tenantName=null,this.isModalVisible=!1)},e.decorators=[{type:t.Component,args:[{selector:"abp-tenant-box",template:'\n {{ \'AbpUiMultiTenancy::Tenant\' | abpLocalization }}: \n \n {{ tenantName || (\'AbpUiMultiTenancy::NotSelected\' | abpLocalization) }}\n \n ({{\n \'AbpUiMultiTenancy::Switch\' | abpLocalization\n }})\n
\n\n\n \n
Switch Tenant
\n
\n \n
\n
\n
\n \n \n
\n

{{ \'AbpUiMultiTenancy::SwitchTenantHint\' | abpLocalization }}

\n
\n
\n
\n \n \n \n \n
\n'}]}],e.ctorParameters=function(){return[{type:p.Store},{type:r.ToasterService},{type:w}]},e}();var P=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[A,N,O],imports:[n.CoreModule,L,r.ThemeSharedModule,i.TableModule,o.NgbDropdownModule,a.NgxValidateCoreModule],exports:[]}]}],e}();e.ACCOUNT_OPTIONS=h,e.ACCOUNT_ROUTES={routes:[{name:"Account",path:"account",invisible:!0,layout:"application",children:[{path:"login",name:"Login",order:1},{path:"register",name:"Register",order:2}]}],settings:[]},e.AccountModule=P,e.LoginComponent=A,e.RegisterComponent=N,e.RootAccountModule=v,e.optionsFactory=g,e.ɵa=g,e.ɵb=h,e.ɵc=A,e.ɵe=N,e.ɵf=w,e.ɵg=O,e.ɵh=L,Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@angular/core"),require("@ng-bootstrap/ng-bootstrap"),require("@ngx-validate/core"),require("primeng/table"),require("@angular/router"),require("@angular/forms"),require("@ngxs/router-plugin"),require("@ngxs/store"),require("angular-oauth2-oidc"),require("rxjs"),require("rxjs/operators"),require("snq")):"function"==typeof define&&define.amd?define("@abp/ng.account",["exports","@abp/ng.core","@abp/ng.theme.shared","@angular/core","@ng-bootstrap/ng-bootstrap","@ngx-validate/core","primeng/table","@angular/router","@angular/forms","@ngxs/router-plugin","@ngxs/store","angular-oauth2-oidc","rxjs","rxjs/operators","snq"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng.account={}),e.ng_core,e.ng_theme_shared,e.ng.core,e.ngBootstrap,e.core$1,e.table,e.ng.router,e.ng.forms,e.routerPlugin,e.store,e.angularOauth2Oidc,e.rxjs,e.rxjs.operators,e.snq)}(this,function(e,t,n,r,o,a,i,s,c,u,p,l,d,m,b){"use strict";b=b&&b.hasOwnProperty("default")?b.default:b;var f=function(){return(f=Object.assign||function(e){for(var t,n=1,r=arguments.length;n\n
\n
\n'}]}],e.ctorParameters=function(){return[{type:c.FormBuilder},{type:l.OAuthService},{type:p.Store},{type:n.ToasterService},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:["ACCOUNT_OPTIONS"]}]}]},e}();var y=function(){function e(e){this.rest=e}return e.prototype.findTenant=function(e){var t={method:"GET",url:"/api/abp/multi-tenancy/tenants/by-name/"+e};return this.rest.request(t)},e.prototype.register=function(e){var t={method:"POST",url:"/api/account/register",body:e};return this.rest.request(t,{skipHandleError:!0})},e.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:t.RestService}]},e.ngInjectableDef=r.ɵɵdefineInjectable({factory:function(){return new e(r.ɵɵinject(t.RestService))},token:e,providedIn:"root"}),e}();var S=c.Validators.maxLength,A=(c.Validators.minLength,c.Validators.required),w=c.Validators.email,T=function(){function e(e,n,r,o,a){this.fb=e,this.accountService=n,this.oauthService=r,this.store=o,this.toasterService=a,this.oauthService.configure(this.store.selectSnapshot(t.ConfigState.getOne("environment")).oAuthConfig),this.oauthService.loadDiscoveryDocument(),this.form=this.fb.group({username:["",[A,S(255)]],password:["",[A,S(32)]],email:["",[A,w]]})}return e.prototype.onSubmit=function(){var e=this;if(!this.form.invalid){this.inProgress=!0;var n={userName:this.form.get("username").value,password:this.form.get("password").value,emailAddress:this.form.get("email").value,appName:"Angular"};this.accountService.register(n).pipe(m.switchMap(function(){return d.from(e.oauthService.fetchTokenUsingPasswordFlow(n.userName,n.password))}),m.switchMap(function(){return e.store.dispatch(new t.GetAppConfiguration)}),m.tap(function(){return e.store.dispatch(new u.Navigate(["/"]))}),m.take(1),m.catchError(function(t){return e.toasterService.error(b(function(){return t.error.error_description})||b(function(){return t.error.error.message},"AbpAccount::DefaultErrorMessage"),"Error",{life:7e3}),d.throwError(t)}),m.finalize(function(){return e.inProgress=!1})).subscribe()}},e.decorators=[{type:r.Component,args:[{selector:"abp-register",template:'
\n
\n \n\n \n
\n
\n'}]}],e.ctorParameters=function(){return[{type:c.FormBuilder},{type:y},{type:l.OAuthService},{type:p.Store},{type:n.ToasterService}]},e}();var x=[{path:"",pathMatch:"full",redirectTo:"login"},{path:"",component:t.DynamicLayoutComponent,children:[{path:"login",component:v},{path:"register",component:T}]}],C=function(){function e(){}return e.decorators=[{type:r.NgModule,args:[{imports:[s.RouterModule.forChild(x)],exports:[s.RouterModule]}]}],e}(),N=function(){function e(e,t,n){this.store=e,this.toasterService=t,this.accountService=n,this.tenant={}}return e.prototype.ngOnInit=function(){this.tenant=this.store.selectSnapshot(t.SessionState.getTenant)||{},this.tenantName=this.tenant.name||""},e.prototype.onSwitch=function(){this.isModalVisible=!0},e.prototype.save=function(){var e=this;this.tenant.name?this.accountService.findTenant(this.tenant.name).pipe(m.take(1),m.catchError(function(t){return e.toasterService.error(b(function(){return t.error.error_description},"AbpUi::DefaultErrorMessage"),"AbpUi::Error"),d.throwError(t)})).subscribe(function(n){var r=n.success,o=n.tenantId;r?(e.tenant={id:o,name:e.tenant.name},e.tenantName=e.tenant.name,e.isModalVisible=!1):(e.toasterService.error("AbpUiMultiTenancy::GivenTenantIsNotAvailable","AbpUi::Error",{messageLocalizationParams:[e.tenant.name]}),e.tenant={}),e.store.dispatch(new t.SetTenant(r?e.tenant:null))}):(this.store.dispatch(new t.SetTenant(null)),this.tenantName=null,this.isModalVisible=!1)},e.decorators=[{type:r.Component,args:[{selector:"abp-tenant-box",template:'\n {{ \'AbpUiMultiTenancy::Tenant\' | abpLocalization }}: \n \n {{ tenantName || (\'AbpUiMultiTenancy::NotSelected\' | abpLocalization) }}\n \n ({{\n \'AbpUiMultiTenancy::Switch\' | abpLocalization\n }})\n
\n\n\n \n
Switch Tenant
\n
\n \n
\n
\n
\n \n \n
\n

{{ \'AbpUiMultiTenancy::SwitchTenantHint\' | abpLocalization }}

\n
\n
\n
\n \n \n \n \n
\n'}]}],e.ctorParameters=function(){return[{type:p.Store},{type:n.ToasterService},{type:y}]},e}();function L(e){return f({redirectUrl:"/"},e)}var M=new r.InjectionToken("ACCOUNT_OPTIONS"),O=function(){function e(){}return e.decorators=[{type:r.NgModule,args:[{declarations:[v,T,N],imports:[t.CoreModule,C,n.ThemeSharedModule,i.TableModule,o.NgbDropdownModule,a.NgxValidateCoreModule],exports:[]}]}],e}();e.ACCOUNT_OPTIONS=M,e.ACCOUNT_ROUTES={routes:[{name:"Account",path:"account",invisible:!0,layout:"application",children:[{path:"login",name:"Login",order:1},{path:"register",name:"Register",order:2}]}]},e.AccountModule=O,e.AccountProviders=function(e){return void 0===e&&(e={}),[{provide:M,useValue:e},{provide:"ACCOUNT_OPTIONS",useFactory:L,deps:[M]}]},e.LoginComponent=v,e.RegisterComponent=T,e.optionsFactory=L,e.ɵa=v,e.ɵc=T,e.ɵd=y,e.ɵe=N,e.ɵf=C,e.ɵg=L,e.ɵh=M,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=abp-ng.account.umd.min.js.map \ No newline at end of file diff --git a/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.min.js.map b/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.min.js.map index 79daa70555..9ccb806d68 100644 --- a/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.min.js.map +++ b/npm/ng-packs/dist/account/bundles/abp-ng.account.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.account/lib/tokens/options.token.ts","ng://@abp/ng.account/lib/root-account.module.ts","ng://@abp/ng.account/lib/components/login/login.component.ts","ng://@abp/ng.account/lib/services/account.service.ts","ng://@abp/ng.account/lib/components/register/register.component.ts","ng://@abp/ng.account/lib/account-routing.module.ts","ng://@abp/ng.account/lib/components/tenant-box/tenant-box.component.ts","ng://@abp/ng.account/lib/account.module.ts","ng://@abp/ng.account/lib/constants/routes.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","optionsFactory","options","redirectUrl","ACCOUNT_OPTIONS","InjectionToken","RootAccountModule","forRoot","ngModule","providers","provide","useValue","useFactory","deps","NgModule","args","maxLength","forms","Validators","required","minLength","LoginComponent","fb","oauthService","store","toasterService","configure","selectSnapshot","ConfigState","getOne","oAuthConfig","loadDiscoveryDocument","form","group","username","password","remember","onSubmit","_this","invalid","inProgress","from","fetchTokenUsingPasswordFlow","get","value","pipe","switchMap","dispatch","GetAppConfiguration","tap","snq","window","history","state","Navigate","catchError","err","error","error_description","message","life","throwError","finalize","subscribe","Component","selector","template","FormBuilder","OAuthService","Store","ToasterService","Optional","type","Inject","AccountService","rest","findTenant","tenantName","request","method","url","register","body","skipHandleError","Injectable","providedIn","RestService","email","RegisterComponent","accountService","newUser","userName","emailAddress","appName","take","routes","path","pathMatch","redirectTo","component","DynamicLayoutComponent","children","AccountRoutingModule","imports","RouterModule","forChild","exports","TenantBoxComponent","tenant","ngOnInit","SessionState","getTenant","name","onSwitch","isModalVisible","save","_a","success","tenantId","id","messageLocalizationParams","SetTenant","AccountModule","declarations","CoreModule","ThemeSharedModule","TableModule","NgbDropdownModule","NgxValidateCoreModule","invisible","layout","order","settings"],"mappings":"ulCA6BO,IAAIA,EAAW,WAQlB,OAPAA,EAAWC,OAAOC,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACOJ,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,IAE9E,OAAON,IAEKU,MAAMC,KAAMP,YClChC,SAAgBQ,EAAeC,GAC7B,OAAAhB,EAAA,CACEiB,YAAa,KACVD,GAIP,IAAaE,EAAkB,IAAIC,EAAAA,eAAe,mBCVlDC,EAAA,WAIA,SAAAA,KAeA,OAbSA,EAAAC,QAAP,SAAeL,GACb,YADa,IAAAA,IAAAA,EAAA,IACN,CACLM,SAAUF,EACVG,UAAW,CACT,CAAEC,QAASN,EAAiBO,SAAUT,GACtC,CACEQ,QAAS,kBACTE,WAAYX,EACZY,KAAM,CAACT,2BAVhBU,EAAAA,SAAQC,KAAA,CAAC,MAeVT,EAnBA,GCYQU,EAAAC,EAAAC,WAAAF,UAAsBG,GAAXF,EAAAC,WAAAE,UAAWH,EAAAC,WAAAC,UAE9BE,EAAA,WASE,SAAAA,EACUC,EACAC,EACAC,EACAC,EACuCvB,GAJvCF,KAAAsB,GAAAA,EACAtB,KAAAuB,aAAAA,EACAvB,KAAAwB,MAAAA,EACAxB,KAAAyB,eAAAA,EACuCzB,KAAAE,QAAAA,EAE/CF,KAAKuB,aAAaG,UAAU1B,KAAKwB,MAAMG,eAAeC,EAAAA,YAAYC,OAAO,gBAAgBC,aACzF9B,KAAKuB,aAAaQ,wBAElB/B,KAAKgC,KAAOhC,KAAKsB,GAAGW,MAAM,CACxBC,SAAU,CAAC,GAAI,CAACf,EAAUH,EAAU,OACpCmB,SAAU,CAAC,GAAI,CAAChB,EAAUH,EAAU,MACpCoB,SAAU,EAAC,KA+BjB,OA3BEf,EAAAzB,UAAAyC,SAAA,WAAA,IAAAC,EAAAtC,KACMA,KAAKgC,KAAKO,UAGdvC,KAAKwC,YAAa,EAClBC,EAAAA,KACEzC,KAAKuB,aAAamB,4BAA4B1C,KAAKgC,KAAKW,IAAI,YAAYC,MAAO5C,KAAKgC,KAAKW,IAAI,YAAYC,QAExGC,KACCC,EAAAA,UAAS,WAAO,OAAAR,EAAKd,MAAMuB,SAAS,IAAIC,EAAAA,uBACxCC,EAAAA,IAAG,eACK9C,EAAc+C,EAAG,WAAO,OAAAC,OAAOC,QAAQC,QAAOlD,cAAgBmC,EAAKpC,SAAW,IAAIC,aAAe,IACvGmC,EAAKd,MAAMuB,SAAS,IAAIO,EAAAA,SAAS,CAACnD,OAEpCoD,EAAAA,WAAU,SAACC,GAOT,OANAlB,EAAKb,eAAegC,MAClBP,EAAG,WAAO,OAAAM,EAAIC,MAAMC,qBAClBR,EAAG,WAAO,OAAAM,EAAIC,MAAMA,MAAME,SAAS,mCACrC,QACA,CAAEC,KAAM,MAEHC,EAAAA,WAAWL,KAEpBM,EAAAA,SAAQ,WAAO,OAACxB,EAAKE,YAAa,KAEnCuB,kCAnDNC,EAAAA,UAASjD,KAAA,CAAC,CACTkD,SAAU,YACVC,SAAA,mtDAdOC,EAAAA,mBAGAC,EAAAA,oBADAC,EAAAA,aAIAC,EAAAA,+CAoBJC,EAAAA,UAAQ,CAAAC,KAAIC,EAAAA,OAAM1D,KAAA,CAAC,wBAuCxBM,EArDA,GCdA,IAAAqD,EAAA,WASE,SAAAA,EAAoBC,GAAA3E,KAAA2E,KAAAA,SAEpBD,EAAA9E,UAAAgF,WAAA,SAAWC,OACHC,EAA8B,CAClCC,OAAQ,MACRC,IAAK,sCAAsCH,GAG7C,OAAO7E,KAAK2E,KAAKG,QAAgCA,IAGnDJ,EAAA9E,UAAAqF,SAAA,SAASC,OACDJ,EAAyC,CAC7CC,OAAQ,OACRC,IAAK,wBACLE,KAAIA,GAGN,OAAOlF,KAAK2E,KAAKG,QAA2CA,EAAS,CAAEK,iBAAiB,yBAtB3FC,EAAAA,WAAUrE,KAAA,CAAC,CACVsE,WAAY,oDAJLC,EAAAA,iJAFT,GCYQ,IAAAtE,EAAAA,EAAAA,WAAAA,UAAsBG,GAAXC,EAAAA,WAAAA,UAAWD,EAAAA,WAAAA,UAAUoE,EAAAtE,EAAAC,WAAAqE,MAExCC,EAAA,WASE,SAAAA,EACUlE,EACAmE,EACAlE,EACAC,EACAC,GAJAzB,KAAAsB,GAAAA,EACAtB,KAAAyF,eAAAA,EACAzF,KAAAuB,aAAAA,EACAvB,KAAAwB,MAAAA,EACAxB,KAAAyB,eAAAA,EAERzB,KAAKuB,aAAaG,UAAU1B,KAAKwB,MAAMG,eAAeC,EAAAA,YAAYC,OAAO,gBAAgBC,aACzF9B,KAAKuB,aAAaQ,wBAElB/B,KAAKgC,KAAOhC,KAAKsB,GAAGW,MAAM,CACxBC,SAAU,CAAC,GAAI,CAACf,EAAUH,EAAU,OACpCmB,SAAU,CAAC,GAAI,CAAChB,EAAUH,EAAU,MACpCuE,MAAO,CAAC,GAAI,CAACpE,EAAUoE,MAoC7B,OAhCEC,EAAA5F,UAAAyC,SAAA,WAAA,IAAAC,EAAAtC,KACE,IAAIA,KAAKgC,KAAKO,QAAd,CAEAvC,KAAKwC,YAAa,MAEZkD,EAAO,CACXC,SAAU3F,KAAKgC,KAAKW,IAAI,YAAYC,MACpCT,SAAUnC,KAAKgC,KAAKW,IAAI,YAAYC,MACpCgD,aAAc5F,KAAKgC,KAAKW,IAAI,SAASC,MACrCiD,QAAS,WAGX7F,KAAKyF,eACFR,SAASS,GACT7C,KACCC,EAAAA,UAAS,WAAO,OAAAL,EAAAA,KAAKH,EAAKf,aAAamB,4BAA4BgD,EAAQC,SAAUD,EAAQvD,aAC7FW,EAAAA,UAAS,WAAO,OAAAR,EAAKd,MAAMuB,SAAS,IAAIC,EAAAA,uBACxCC,EAAAA,IAAG,WAAO,OAAAX,EAAKd,MAAMuB,SAAS,IAAIO,EAAAA,SAAS,CAAC,SAC5CwC,EAAAA,KAAK,GACLvC,EAAAA,WAAU,SAACC,GAOT,OANAlB,EAAKb,eAAegC,MAClBP,EAAG,WAAO,OAAAM,EAAIC,MAAMC,qBAClBR,EAAG,WAAO,OAAAM,EAAIC,MAAMA,MAAME,SAAS,mCACrC,QACA,CAAEC,KAAM,MAEHC,EAAAA,WAAWL,KAEpBM,EAAAA,SAAQ,WAAO,OAACxB,EAAKE,YAAa,KAEnCuB,kCAxDNC,EAAAA,UAASjD,KAAA,CAAC,CACTkD,SAAU,eACVC,SAAA,28CAbOC,EAAAA,mBAQAO,SALAN,EAAAA,oBADAC,EAAAA,aAJAC,EAAAA,kBAuETkB,EA1DA,OCRMO,EAAiB,CACrB,CAAEC,KAAM,GAAIC,UAAW,OAAQC,WAAY,SAC3C,CACEF,KAAM,GACNG,UAAWC,EAAAA,uBACXC,SAAU,CAAC,CAAEL,KAAM,QAASG,UAAW9E,GAAkB,CAAE2E,KAAM,WAAYG,UAAWX,MAI5Fc,EAAA,WAAA,SAAAA,KAImC,2BAJlCxF,EAAAA,SAAQC,KAAA,CAAC,CACRwF,QAAS,CAACC,EAAAA,aAAaC,SAASV,IAChCW,QAAS,CAACF,EAAAA,kBAEuBF,EAJnC,GCfAK,EAAA,WAcE,SAAAA,EAAoBnF,EAAsBC,EAAwCgE,GAA9DzF,KAAAwB,MAAAA,EAAsBxB,KAAAyB,eAAAA,EAAwCzB,KAAAyF,eAAAA,EAElFzF,KAAA4G,OAAM,GAmDR,OA7CED,EAAA/G,UAAAiH,SAAA,WACE7G,KAAK4G,OAAS5G,KAAKwB,MAAMG,eAAemF,EAAAA,aAAaC,YAAU,GAC/D/G,KAAK6E,WAAa7E,KAAK4G,OAAOI,MAAQ,IAGxCL,EAAA/G,UAAAqH,SAAA,WACEjH,KAAKkH,gBAAiB,GAGxBP,EAAA/G,UAAAuH,KAAA,WAAA,IAAA7E,EAAAtC,KACMA,KAAK4G,OAAOI,KACdhH,KAAKyF,eACFb,WAAW5E,KAAK4G,OAAOI,MACvBnE,KACCiD,EAAAA,KAAK,GACLvC,EAAAA,WAAU,SAACC,GAKT,OAJAlB,EAAKb,eAAegC,MAClBP,EAAG,WAAO,OAAAM,EAAIC,MAAMC,mBAAmB,8BACvC,gBAEKG,EAAAA,WAAWL,MAGrBO,UAAS,SAAEqD,OAAEC,EAAAD,EAAAC,QAASC,EAAAF,EAAAE,SACjBD,GACF/E,EAAKsE,OAAS,CACZW,GAAID,EACJN,KAAM1E,EAAKsE,OAAOI,MAEpB1E,EAAKuC,WAAavC,EAAKsE,OAAOI,KAC9B1E,EAAK4E,gBAAiB,IAEtB5E,EAAKb,eAAegC,MAAM,+CAAgD,eAAgB,CACxF+D,0BAA2B,CAAClF,EAAKsE,OAAOI,QAE1C1E,EAAKsE,OAAM,IAEbtE,EAAKd,MAAMuB,SAAS,IAAI0E,EAAAA,UAAUJ,EAAU/E,EAAKsE,OAAS,UAG9D5G,KAAKwB,MAAMuB,SAAS,IAAI0E,EAAAA,UAAU,OAClCzH,KAAK6E,WAAa,KAClB7E,KAAKkH,gBAAiB,wBAvD3BlD,EAAAA,UAASjD,KAAA,CAAC,CACTkD,SAAU,iBACVC,SAAA,8gDAROG,EAAAA,aAFAC,EAAAA,sBAMAI,KA4DTiC,EAnEA,GCAA,IAAAe,EAAA,WAWA,SAAAA,KAK4B,2BAL3B5G,EAAAA,SAAQC,KAAA,CAAC,CACR4G,aAAc,CAACtG,EAAgBmE,EAAmBmB,GAClDJ,QAAS,CAACqB,EAAAA,WAAYtB,EAAsBuB,EAAAA,kBAAmBC,EAAAA,YAAaC,EAAAA,kBAAmBC,EAAAA,uBAC/FtB,QAAS,OAEiBgB,EAhB5B,wCCE8B,CAC5B3B,OAAM,CACJ,CACEiB,KAAM,UACNhB,KAAM,UACNiC,WAAW,EACXC,OAAM,cACN7B,SAAU,CAAC,CAAEL,KAAM,QAASgB,KAAM,QAASmB,MAAO,GAAK,CAAEnC,KAAM,WAAYgB,KAAM,WAAYmB,MAAO,MAGxGC,SAAU","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { Options } from '../models/options';\n\nexport function optionsFactory(options: Options) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n\nexport const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS');\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { Options } from './models/options';\nimport { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token';\n\n@NgModule({})\nexport class RootAccountModule {\n static forRoot(options = {} as Options): ModuleWithProviders {\n return {\n ngModule: RootAccountModule,\n providers: [\n { provide: ACCOUNT_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: optionsFactory,\n deps: [ACCOUNT_OPTIONS],\n },\n ],\n };\n }\n}\n","import { GetAppConfiguration, ConfigState } from '@abp/ng.core';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { Options } from '../../models/options';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { catchError, finalize, switchMap, tap } from 'rxjs/operators';\nimport snq from 'snq';\n\nconst { maxLength, minLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n remember: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n // this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage);\n\n this.inProgress = true;\n from(\n this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value),\n )\n .pipe(\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => {\n const redirectUrl = snq(() => window.history.state).redirectUrl || (this.options || {}).redirectUrl || '/';\n this.store.dispatch(new Navigate([redirectUrl]));\n }),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { RegisterResponse, RegisterRequest, TenantIdResponse } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountService {\n constructor(private rest: RestService) {}\n\n findTenant(tenantName: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/abp/multi-tenancy/find-tenant/${tenantName}`,\n };\n\n return this.rest.request(request);\n }\n\n register(body: RegisterRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/account/register`,\n body,\n };\n\n return this.rest.request(request, { skipHandleError: true });\n }\n}\n","import { ConfigState, GetAppConfiguration } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { catchError, finalize, switchMap, take, tap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { RegisterRequest } from '../../models';\nimport { AccountService } from '../../services/account.service';\nconst { maxLength, minLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private accountService: AccountService,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.inProgress = true;\n\n const newUser = {\n userName: this.form.get('username').value,\n password: this.form.get('password').value,\n emailAddress: this.form.get('email').value,\n appName: 'Angular',\n } as RegisterRequest;\n\n this.accountService\n .register(newUser)\n .pipe(\n switchMap(() => from(this.oauthService.fetchTokenUsingPasswordFlow(newUser.userName, newUser.password))),\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => this.store.dispatch(new Navigate(['/']))),\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { DynamicLayoutComponent } from '@abp/ng.core';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { ABP, SetTenant, SessionState } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, OnInit } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AccountService } from '../../services/account.service';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n})\nexport class TenantBoxComponent implements OnInit {\n constructor(private store: Store, private toasterService: ToasterService, private accountService: AccountService) {}\n\n tenant = {} as ABP.BasicItem;\n\n tenantName: string;\n\n isModalVisible: boolean;\n\n ngOnInit() {\n this.tenant = this.store.selectSnapshot(SessionState.getTenant) || ({} as ABP.BasicItem);\n this.tenantName = this.tenant.name || '';\n }\n\n onSwitch() {\n this.isModalVisible = true;\n }\n\n save() {\n if (this.tenant.name) {\n this.accountService\n .findTenant(this.tenant.name)\n .pipe(\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description, 'AbpUi::DefaultErrorMessage'),\n 'AbpUi::Error',\n );\n return throwError(err);\n }),\n )\n .subscribe(({ success, tenantId }) => {\n if (success) {\n this.tenant = {\n id: tenantId,\n name: this.tenant.name,\n };\n this.tenantName = this.tenant.name;\n this.isModalVisible = false;\n } else {\n this.toasterService.error(`AbpUiMultiTenancy::GivenTenantIsNotAvailable`, 'AbpUi::Error', {\n messageLocalizationParams: [this.tenant.name],\n });\n this.tenant = {} as ABP.BasicItem;\n }\n this.store.dispatch(new SetTenant(success ? this.tenant : null));\n });\n } else {\n this.store.dispatch(new SetTenant(null));\n this.tenantName = null;\n this.isModalVisible = false;\n }\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { TableModule } from 'primeng/table';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\n\n@NgModule({\n declarations: [LoginComponent, RegisterComponent, TenantBoxComponent],\n imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule],\n exports: [],\n})\nexport class AccountModule {}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const ACCOUNT_ROUTES = {\n routes: [\n {\n name: 'Account',\n path: 'account',\n invisible: true,\n layout: eLayoutType.application,\n children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }],\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n"]} \ No newline at end of file +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.account/lib/components/login/login.component.ts","ng://@abp/ng.account/lib/services/account.service.ts","ng://@abp/ng.account/lib/components/register/register.component.ts","ng://@abp/ng.account/lib/account-routing.module.ts","ng://@abp/ng.account/lib/components/tenant-box/tenant-box.component.ts","ng://@abp/ng.account/lib/tokens/options.token.ts","ng://@abp/ng.account/lib/account.module.ts","ng://@abp/ng.account/lib/constants/routes.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","maxLength","forms","Validators","required","minLength","LoginComponent","fb","oauthService","store","toasterService","options","configure","selectSnapshot","ConfigState","getOne","oAuthConfig","loadDiscoveryDocument","form","group","username","password","remember","onSubmit","_this","invalid","inProgress","from","fetchTokenUsingPasswordFlow","get","value","pipe","switchMap","dispatch","GetAppConfiguration","tap","redirectUrl","snq","window","history","state","Navigate","catchError","err","error","error_description","message","life","throwError","finalize","subscribe","Component","args","selector","template","FormBuilder","OAuthService","Store","ToasterService","Optional","type","Inject","AccountService","rest","findTenant","tenantName","request","method","url","register","body","skipHandleError","Injectable","providedIn","RestService","email","RegisterComponent","accountService","newUser","userName","emailAddress","appName","take","routes","path","pathMatch","redirectTo","component","DynamicLayoutComponent","children","AccountRoutingModule","NgModule","imports","RouterModule","forChild","exports","TenantBoxComponent","tenant","ngOnInit","SessionState","getTenant","name","onSwitch","isModalVisible","save","_a","success","tenantId","id","messageLocalizationParams","SetTenant","optionsFactory","ACCOUNT_OPTIONS","InjectionToken","AccountModule","declarations","CoreModule","ThemeSharedModule","TableModule","NgbDropdownModule","NgxValidateCoreModule","invisible","layout","order","provide","useValue","useFactory","deps"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { GetAppConfiguration, ConfigState } from '@abp/ng.core';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { Options } from '../../models/options';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { catchError, finalize, switchMap, tap } from 'rxjs/operators';\nimport snq from 'snq';\n\nconst { maxLength, minLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n remember: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n // this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage);\n\n this.inProgress = true;\n from(\n this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value),\n )\n .pipe(\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => {\n const redirectUrl = snq(() => window.history.state).redirectUrl || (this.options || {}).redirectUrl || '/';\n this.store.dispatch(new Navigate([redirectUrl]));\n }),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { RegisterResponse, RegisterRequest, TenantIdResponse } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountService {\n constructor(private rest: RestService) {}\n\n findTenant(tenantName: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/abp/multi-tenancy/tenants/by-name/${tenantName}`,\n };\n\n return this.rest.request(request);\n }\n\n register(body: RegisterRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/account/register`,\n body,\n };\n\n return this.rest.request(request, { skipHandleError: true });\n }\n}\n","import { ConfigState, GetAppConfiguration } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { catchError, finalize, switchMap, take, tap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { RegisterRequest } from '../../models';\nimport { AccountService } from '../../services/account.service';\nconst { maxLength, minLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private accountService: AccountService,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.inProgress = true;\n\n const newUser = {\n userName: this.form.get('username').value,\n password: this.form.get('password').value,\n emailAddress: this.form.get('email').value,\n appName: 'Angular',\n } as RegisterRequest;\n\n this.accountService\n .register(newUser)\n .pipe(\n switchMap(() => from(this.oauthService.fetchTokenUsingPasswordFlow(newUser.userName, newUser.password))),\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => this.store.dispatch(new Navigate(['/']))),\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { DynamicLayoutComponent } from '@abp/ng.core';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { ABP, SetTenant, SessionState } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, OnInit } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AccountService } from '../../services/account.service';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n})\nexport class TenantBoxComponent implements OnInit {\n constructor(private store: Store, private toasterService: ToasterService, private accountService: AccountService) {}\n\n tenant = {} as ABP.BasicItem;\n\n tenantName: string;\n\n isModalVisible: boolean;\n\n ngOnInit() {\n this.tenant = this.store.selectSnapshot(SessionState.getTenant) || ({} as ABP.BasicItem);\n this.tenantName = this.tenant.name || '';\n }\n\n onSwitch() {\n this.isModalVisible = true;\n }\n\n save() {\n if (this.tenant.name) {\n this.accountService\n .findTenant(this.tenant.name)\n .pipe(\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description, 'AbpUi::DefaultErrorMessage'),\n 'AbpUi::Error',\n );\n return throwError(err);\n }),\n )\n .subscribe(({ success, tenantId }) => {\n if (success) {\n this.tenant = {\n id: tenantId,\n name: this.tenant.name,\n };\n this.tenantName = this.tenant.name;\n this.isModalVisible = false;\n } else {\n this.toasterService.error(`AbpUiMultiTenancy::GivenTenantIsNotAvailable`, 'AbpUi::Error', {\n messageLocalizationParams: [this.tenant.name],\n });\n this.tenant = {} as ABP.BasicItem;\n }\n this.store.dispatch(new SetTenant(success ? this.tenant : null));\n });\n } else {\n this.store.dispatch(new SetTenant(null));\n this.tenantName = null;\n this.isModalVisible = false;\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Options } from '../models/options';\n\nexport function optionsFactory(options: Options) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n\nexport const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS');\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule, Provider } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { TableModule } from 'primeng/table';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\nimport { Options } from './models/options';\nimport { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token';\n\n@NgModule({\n declarations: [LoginComponent, RegisterComponent, TenantBoxComponent],\n imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule],\n exports: [],\n})\nexport class AccountModule {}\n\nexport function AccountProviders(options = {} as Options): Provider[] {\n return [\n { provide: ACCOUNT_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: optionsFactory,\n deps: [ACCOUNT_OPTIONS],\n },\n ];\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const ACCOUNT_ROUTES = {\n routes: [\n {\n name: 'Account',\n path: 'account',\n invisible: true,\n layout: eLayoutType.application,\n children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }],\n },\n ] as ABP.FullRoute[],\n};\n"]} \ No newline at end of file diff --git a/npm/ng-packs/dist/account/esm2015/abp-ng.account.js b/npm/ng-packs/dist/account/esm2015/abp-ng.account.js index c279ccfee1..6a9de79cae 100644 --- a/npm/ng-packs/dist/account/esm2015/abp-ng.account.js +++ b/npm/ng-packs/dist/account/esm2015/abp-ng.account.js @@ -5,11 +5,11 @@ /** * Generated bundle index. Do not edit. */ -export { RootAccountModule, AccountModule, LoginComponent, RegisterComponent, ACCOUNT_ROUTES, optionsFactory, ACCOUNT_OPTIONS } from './public-api'; -export { AccountRoutingModule as ɵh } from './lib/account-routing.module'; -export { LoginComponent as ɵc } from './lib/components/login/login.component'; -export { RegisterComponent as ɵe } from './lib/components/register/register.component'; -export { TenantBoxComponent as ɵg } from './lib/components/tenant-box/tenant-box.component'; -export { AccountService as ɵf } from './lib/services/account.service'; -export { ACCOUNT_OPTIONS as ɵb, optionsFactory as ɵa } from './lib/tokens/options.token'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmFjY291bnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJhYnAtbmcuYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscUlBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFFMUYsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QWNjb3VudFJvdXRpbmdNb2R1bGUgYXMgybVofSBmcm9tICcuL2xpYi9hY2NvdW50LXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7TG9naW5Db21wb25lbnQgYXMgybVjfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5leHBvcnQge1JlZ2lzdGVyQ29tcG9uZW50IGFzIMm1ZX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQnO1xuZXhwb3J0IHtUZW5hbnRCb3hDb21wb25lbnQgYXMgybVnfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbmFudC1ib3gvdGVuYW50LWJveC5jb21wb25lbnQnO1xuZXhwb3J0IHtPcHRpb25zIGFzIMm1ZH0gZnJvbSAnLi9saWIvbW9kZWxzL29wdGlvbnMnO1xuZXhwb3J0IHtBY2NvdW50U2VydmljZSBhcyDJtWZ9IGZyb20gJy4vbGliL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5leHBvcnQge0FDQ09VTlRfT1BUSU9OUyBhcyDJtWIsb3B0aW9uc0ZhY3RvcnkgYXMgybVhfSBmcm9tICcuL2xpYi90b2tlbnMvb3B0aW9ucy50b2tlbic7Il19 \ No newline at end of file +export { AccountProviders, AccountModule, LoginComponent, RegisterComponent, ACCOUNT_ROUTES, optionsFactory, ACCOUNT_OPTIONS } from './public-api'; +export { AccountRoutingModule as ɵf } from './lib/account-routing.module'; +export { LoginComponent as ɵa } from './lib/components/login/login.component'; +export { RegisterComponent as ɵc } from './lib/components/register/register.component'; +export { TenantBoxComponent as ɵe } from './lib/components/tenant-box/tenant-box.component'; +export { AccountService as ɵd } from './lib/services/account.service'; +export { ACCOUNT_OPTIONS as ɵh, optionsFactory as ɵg } from './lib/tokens/options.token'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmFjY291bnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJhYnAtbmcuYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb0lBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFFMUYsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QWNjb3VudFJvdXRpbmdNb2R1bGUgYXMgybVmfSBmcm9tICcuL2xpYi9hY2NvdW50LXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7TG9naW5Db21wb25lbnQgYXMgybVhfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5leHBvcnQge1JlZ2lzdGVyQ29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQnO1xuZXhwb3J0IHtUZW5hbnRCb3hDb21wb25lbnQgYXMgybVlfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbmFudC1ib3gvdGVuYW50LWJveC5jb21wb25lbnQnO1xuZXhwb3J0IHtPcHRpb25zIGFzIMm1Yn0gZnJvbSAnLi9saWIvbW9kZWxzL29wdGlvbnMnO1xuZXhwb3J0IHtBY2NvdW50U2VydmljZSBhcyDJtWR9IGZyb20gJy4vbGliL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5leHBvcnQge0FDQ09VTlRfT1BUSU9OUyBhcyDJtWgsb3B0aW9uc0ZhY3RvcnkgYXMgybVnfSBmcm9tICcuL2xpYi90b2tlbnMvb3B0aW9ucy50b2tlbic7Il19 \ No newline at end of file diff --git a/npm/ng-packs/dist/account/esm2015/lib/account.module.js b/npm/ng-packs/dist/account/esm2015/lib/account.module.js index 310ef81a9a..a67f725856 100644 --- a/npm/ng-packs/dist/account/esm2015/lib/account.module.js +++ b/npm/ng-packs/dist/account/esm2015/lib/account.module.js @@ -12,6 +12,7 @@ import { AccountRoutingModule } from './account-routing.module'; import { LoginComponent } from './components/login/login.component'; import { RegisterComponent } from './components/register/register.component'; import { TenantBoxComponent } from './components/tenant-box/tenant-box.component'; +import { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token'; export class AccountModule { } AccountModule.decorators = [ @@ -21,4 +22,18 @@ AccountModule.decorators = [ exports: [], },] } ]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvYWNjb3VudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU9sRixNQUFNLE9BQU8sYUFBYTs7O1lBTHpCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUM7Z0JBQ3JFLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLENBQUM7Z0JBQ3JILE9BQU8sRUFBRSxFQUFFO2FBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBBY2NvdW50Um91dGluZ01vZHVsZSB9IGZyb20gJy4vYWNjb3VudC1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBMb2dpbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVnaXN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbmFudEJveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTG9naW5Db21wb25lbnQsIFJlZ2lzdGVyQ29tcG9uZW50LCBUZW5hbnRCb3hDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgQWNjb3VudFJvdXRpbmdNb2R1bGUsIFRoZW1lU2hhcmVkTW9kdWxlLCBUYWJsZU1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUsIE5neFZhbGlkYXRlQ29yZU1vZHVsZV0sXG4gIGV4cG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50TW9kdWxlIHt9XG4iXX0= \ No newline at end of file +/** + * @param {?=} options + * @return {?} + */ +export function AccountProviders(options = (/** @type {?} */ ({}))) { + return [ + { provide: ACCOUNT_OPTIONS, useValue: options }, + { + provide: 'ACCOUNT_OPTIONS', + useFactory: optionsFactory, + deps: [ACCOUNT_OPTIONS], + }, + ]; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvYWNjb3VudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVsRixPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBT3pFLE1BQU0sT0FBTyxhQUFhOzs7WUFMekIsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQztnQkFDckUsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQztnQkFDckgsT0FBTyxFQUFFLEVBQUU7YUFDWjs7Ozs7O0FBR0QsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxtQkFBQSxFQUFFLEVBQVc7SUFDdEQsT0FBTztRQUNMLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO1FBQy9DO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixVQUFVLEVBQUUsY0FBYztZQUMxQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7U0FDeEI7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBOZ01vZHVsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBBY2NvdW50Um91dGluZ01vZHVsZSB9IGZyb20gJy4vYWNjb3VudC1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBMb2dpbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVnaXN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbmFudEJveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW5hbnQtYm94L3RlbmFudC1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICcuL21vZGVscy9vcHRpb25zJztcbmltcG9ydCB7IEFDQ09VTlRfT1BUSU9OUywgb3B0aW9uc0ZhY3RvcnkgfSBmcm9tICcuL3Rva2Vucy9vcHRpb25zLnRva2VuJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTG9naW5Db21wb25lbnQsIFJlZ2lzdGVyQ29tcG9uZW50LCBUZW5hbnRCb3hDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgQWNjb3VudFJvdXRpbmdNb2R1bGUsIFRoZW1lU2hhcmVkTW9kdWxlLCBUYWJsZU1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUsIE5neFZhbGlkYXRlQ29yZU1vZHVsZV0sXG4gIGV4cG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50TW9kdWxlIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBBY2NvdW50UHJvdmlkZXJzKG9wdGlvbnMgPSB7fSBhcyBPcHRpb25zKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAgeyBwcm92aWRlOiBBQ0NPVU5UX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0FDQ09VTlRfT1BUSU9OUycsXG4gICAgICB1c2VGYWN0b3J5OiBvcHRpb25zRmFjdG9yeSxcbiAgICAgIGRlcHM6IFtBQ0NPVU5UX09QVElPTlNdLFxuICAgIH0sXG4gIF07XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/account/esm2015/lib/constants/routes.js b/npm/ng-packs/dist/account/esm2015/lib/constants/routes.js index 28900c9c6f..84396b6c7c 100644 --- a/npm/ng-packs/dist/account/esm2015/lib/constants/routes.js +++ b/npm/ng-packs/dist/account/esm2015/lib/constants/routes.js @@ -13,6 +13,5 @@ export const ACCOUNT_ROUTES = { children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], }, ])), - settings: [], }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbnN0YW50cy9yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxNQUFNLE9BQU8sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRSxtQkFBQTtRQUNOO1lBQ0UsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsU0FBUztZQUNmLFNBQVMsRUFBRSxJQUFJO1lBQ2YsTUFBTSxpQ0FBeUI7WUFDL0IsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUN6RztLQUNGLEVBQW1CO0lBQ3BCLFFBQVEsRUFBRSxFQUFFO0NBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGVMYXlvdXRUeXBlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuZXhwb3J0IGNvbnN0IEFDQ09VTlRfUk9VVEVTID0ge1xuICByb3V0ZXM6IFtcbiAgICB7XG4gICAgICBuYW1lOiAnQWNjb3VudCcsXG4gICAgICBwYXRoOiAnYWNjb3VudCcsXG4gICAgICBpbnZpc2libGU6IHRydWUsXG4gICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxuICAgICAgY2hpbGRyZW46IFt7IHBhdGg6ICdsb2dpbicsIG5hbWU6ICdMb2dpbicsIG9yZGVyOiAxIH0sIHsgcGF0aDogJ3JlZ2lzdGVyJywgbmFtZTogJ1JlZ2lzdGVyJywgb3JkZXI6IDIgfV0sXG4gICAgfSxcbiAgXSBhcyBBQlAuRnVsbFJvdXRlW10sXG4gIHNldHRpbmdzOiBbXSxcbn07XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbnN0YW50cy9yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxNQUFNLE9BQU8sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRSxtQkFBQTtRQUNOO1lBQ0UsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsU0FBUztZQUNmLFNBQVMsRUFBRSxJQUFJO1lBQ2YsTUFBTSxpQ0FBeUI7WUFDL0IsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUN6RztLQUNGLEVBQW1CO0NBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBjb25zdCBBQ0NPVU5UX1JPVVRFUyA9IHtcbiAgcm91dGVzOiBbXG4gICAge1xuICAgICAgbmFtZTogJ0FjY291bnQnLFxuICAgICAgcGF0aDogJ2FjY291bnQnLFxuICAgICAgaW52aXNpYmxlOiB0cnVlLFxuICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcbiAgICAgIGNoaWxkcmVuOiBbeyBwYXRoOiAnbG9naW4nLCBuYW1lOiAnTG9naW4nLCBvcmRlcjogMSB9LCB7IHBhdGg6ICdyZWdpc3RlcicsIG5hbWU6ICdSZWdpc3RlcicsIG9yZGVyOiAyIH1dLFxuICAgIH0sXG4gIF0gYXMgQUJQLkZ1bGxSb3V0ZVtdLFxufTtcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/account/esm2015/lib/root-account.module.js b/npm/ng-packs/dist/account/esm2015/lib/root-account.module.js deleted file mode 100644 index 374b07fd9c..0000000000 --- a/npm/ng-packs/dist/account/esm2015/lib/root-account.module.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { NgModule } from '@angular/core'; -import { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token'; -export class RootAccountModule { - /** - * @param {?=} options - * @return {?} - */ - static forRoot(options = (/** @type {?} */ ({}))) { - return { - ngModule: RootAccountModule, - providers: [ - { provide: ACCOUNT_OPTIONS, useValue: options }, - { - provide: 'ACCOUNT_OPTIONS', - useFactory: optionsFactory, - deps: [ACCOUNT_OPTIONS], - }, - ], - }; - } -} -RootAccountModule.decorators = [ - { type: NgModule, args: [{},] } -]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1hY2NvdW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi9yb290LWFjY291bnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3pFLE1BQU0sT0FBTyxpQkFBaUI7Ozs7O0lBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLG1CQUFBLEVBQUUsRUFBVztRQUNwQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQy9DO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFVBQVUsRUFBRSxjQUFjO29CQUMxQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQ3hCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBZEYsUUFBUSxTQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzL29wdGlvbnMnO1xuaW1wb3J0IHsgQUNDT1VOVF9PUFRJT05TLCBvcHRpb25zRmFjdG9yeSB9IGZyb20gJy4vdG9rZW5zL29wdGlvbnMudG9rZW4nO1xuXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgUm9vdEFjY291bnRNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChvcHRpb25zID0ge30gYXMgT3B0aW9ucyk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUm9vdEFjY291bnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBBQ0NPVU5UX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQUNDT1VOVF9PUFRJT05TJyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBvcHRpb25zRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbQUNDT1VOVF9PUFRJT05TXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/account/esm2015/lib/services/account.service.js b/npm/ng-packs/dist/account/esm2015/lib/services/account.service.js index eb44952488..3171de5c12 100644 --- a/npm/ng-packs/dist/account/esm2015/lib/services/account.service.js +++ b/npm/ng-packs/dist/account/esm2015/lib/services/account.service.js @@ -21,7 +21,7 @@ export class AccountService { /** @type {?} */ const request = { method: 'GET', - url: `/api/abp/multi-tenancy/find-tenant/${tenantName}`, + url: `/api/abp/multi-tenancy/tenants/by-name/${tenantName}`, }; return this.rest.request(request); } @@ -56,4 +56,4 @@ if (false) { */ AccountService.prototype.rest; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2FjY291bnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFRLE1BQU0sY0FBYyxDQUFDOzs7QUFNakQsTUFBTSxPQUFPLGNBQWM7Ozs7SUFDekIsWUFBb0IsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUFHLENBQUM7Ozs7O0lBRXpDLFVBQVUsQ0FBQyxVQUFrQjs7Y0FDckIsT0FBTyxHQUF1QjtZQUNsQyxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxzQ0FBc0MsVUFBVSxFQUFFO1NBQ3hEO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBeUIsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7Ozs7SUFFRCxRQUFRLENBQUMsSUFBcUI7O2NBQ3RCLE9BQU8sR0FBa0M7WUFDN0MsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsdUJBQXVCO1lBQzVCLElBQUk7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQW9DLE9BQU8sRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7OztZQXZCRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUFMUSxXQUFXOzs7Ozs7OztJQU9OLDhCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlLCBSZXN0IH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFJlZ2lzdGVyUmVzcG9uc2UsIFJlZ2lzdGVyUmVxdWVzdCwgVGVuYW50SWRSZXNwb25zZSB9IGZyb20gJy4uL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdDogUmVzdFNlcnZpY2UpIHt9XG5cbiAgZmluZFRlbmFudCh0ZW5hbnROYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRlbmFudElkUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8bnVsbD4gPSB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiBgL2FwaS9hYnAvbXVsdGktdGVuYW5jeS9maW5kLXRlbmFudC8ke3RlbmFudE5hbWV9YCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PG51bGwsIFRlbmFudElkUmVzcG9uc2U+KHJlcXVlc3QpO1xuICB9XG5cbiAgcmVnaXN0ZXIoYm9keTogUmVnaXN0ZXJSZXF1ZXN0KTogT2JzZXJ2YWJsZTxSZWdpc3RlclJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PFJlZ2lzdGVyUmVxdWVzdD4gPSB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHVybDogYC9hcGkvYWNjb3VudC9yZWdpc3RlcmAsXG4gICAgICBib2R5LFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8UmVnaXN0ZXJSZXF1ZXN0LCBSZWdpc3RlclJlc3BvbnNlPihyZXF1ZXN0LCB7IHNraXBIYW5kbGVFcnJvcjogdHJ1ZSB9KTtcbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2FjY291bnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFRLE1BQU0sY0FBYyxDQUFDOzs7QUFNakQsTUFBTSxPQUFPLGNBQWM7Ozs7SUFDekIsWUFBb0IsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUFHLENBQUM7Ozs7O0lBRXpDLFVBQVUsQ0FBQyxVQUFrQjs7Y0FDckIsT0FBTyxHQUF1QjtZQUNsQyxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSwwQ0FBMEMsVUFBVSxFQUFFO1NBQzVEO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBeUIsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7Ozs7SUFFRCxRQUFRLENBQUMsSUFBcUI7O2NBQ3RCLE9BQU8sR0FBa0M7WUFDN0MsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsdUJBQXVCO1lBQzVCLElBQUk7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQW9DLE9BQU8sRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7OztZQXZCRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUFMUSxXQUFXOzs7Ozs7OztJQU9OLDhCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlLCBSZXN0IH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFJlZ2lzdGVyUmVzcG9uc2UsIFJlZ2lzdGVyUmVxdWVzdCwgVGVuYW50SWRSZXNwb25zZSB9IGZyb20gJy4uL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdDogUmVzdFNlcnZpY2UpIHt9XG5cbiAgZmluZFRlbmFudCh0ZW5hbnROYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRlbmFudElkUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8bnVsbD4gPSB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiBgL2FwaS9hYnAvbXVsdGktdGVuYW5jeS90ZW5hbnRzL2J5LW5hbWUvJHt0ZW5hbnROYW1lfWAsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxudWxsLCBUZW5hbnRJZFJlc3BvbnNlPihyZXF1ZXN0KTtcbiAgfVxuXG4gIHJlZ2lzdGVyKGJvZHk6IFJlZ2lzdGVyUmVxdWVzdCk6IE9ic2VydmFibGU8UmVnaXN0ZXJSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxSZWdpc3RlclJlcXVlc3Q+ID0ge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB1cmw6IGAvYXBpL2FjY291bnQvcmVnaXN0ZXJgLFxuICAgICAgYm9keSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PFJlZ2lzdGVyUmVxdWVzdCwgUmVnaXN0ZXJSZXNwb25zZT4ocmVxdWVzdCwgeyBza2lwSGFuZGxlRXJyb3I6IHRydWUgfSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/account/esm2015/public-api.js b/npm/ng-packs/dist/account/esm2015/public-api.js index fd11ff2e34..afdd9ba85f 100644 --- a/npm/ng-packs/dist/account/esm2015/public-api.js +++ b/npm/ng-packs/dist/account/esm2015/public-api.js @@ -2,10 +2,9 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { RootAccountModule } from './lib/root-account.module'; -export { AccountModule } from './lib/account.module'; +export { AccountProviders, AccountModule } from './lib/account.module'; export { LoginComponent, RegisterComponent } from './lib/components'; export { ACCOUNT_ROUTES } from './lib/constants/routes'; export { optionsFactory, ACCOUNT_OPTIONS } from './lib/tokens'; export {} from './lib/models'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGtDQUFjLDJCQUEyQixDQUFDO0FBQzFDLDhCQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGtEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLCtCQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGdEQUFjLGNBQWMsQ0FBQztBQUM3QixlQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3Jvb3QtYWNjb3VudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWNjb3VudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMvcm91dGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGdEQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGtEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLCtCQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGdEQUFjLGNBQWMsQ0FBQztBQUM3QixlQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3JvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/account/esm5/abp-ng.account.js b/npm/ng-packs/dist/account/esm5/abp-ng.account.js index c279ccfee1..6a9de79cae 100644 --- a/npm/ng-packs/dist/account/esm5/abp-ng.account.js +++ b/npm/ng-packs/dist/account/esm5/abp-ng.account.js @@ -5,11 +5,11 @@ /** * Generated bundle index. Do not edit. */ -export { RootAccountModule, AccountModule, LoginComponent, RegisterComponent, ACCOUNT_ROUTES, optionsFactory, ACCOUNT_OPTIONS } from './public-api'; -export { AccountRoutingModule as ɵh } from './lib/account-routing.module'; -export { LoginComponent as ɵc } from './lib/components/login/login.component'; -export { RegisterComponent as ɵe } from './lib/components/register/register.component'; -export { TenantBoxComponent as ɵg } from './lib/components/tenant-box/tenant-box.component'; -export { AccountService as ɵf } from './lib/services/account.service'; -export { ACCOUNT_OPTIONS as ɵb, optionsFactory as ɵa } from './lib/tokens/options.token'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmFjY291bnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJhYnAtbmcuYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscUlBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFFMUYsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QWNjb3VudFJvdXRpbmdNb2R1bGUgYXMgybVofSBmcm9tICcuL2xpYi9hY2NvdW50LXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7TG9naW5Db21wb25lbnQgYXMgybVjfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5leHBvcnQge1JlZ2lzdGVyQ29tcG9uZW50IGFzIMm1ZX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQnO1xuZXhwb3J0IHtUZW5hbnRCb3hDb21wb25lbnQgYXMgybVnfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbmFudC1ib3gvdGVuYW50LWJveC5jb21wb25lbnQnO1xuZXhwb3J0IHtPcHRpb25zIGFzIMm1ZH0gZnJvbSAnLi9saWIvbW9kZWxzL29wdGlvbnMnO1xuZXhwb3J0IHtBY2NvdW50U2VydmljZSBhcyDJtWZ9IGZyb20gJy4vbGliL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5leHBvcnQge0FDQ09VTlRfT1BUSU9OUyBhcyDJtWIsb3B0aW9uc0ZhY3RvcnkgYXMgybVhfSBmcm9tICcuL2xpYi90b2tlbnMvb3B0aW9ucy50b2tlbic7Il19 \ No newline at end of file +export { AccountProviders, AccountModule, LoginComponent, RegisterComponent, ACCOUNT_ROUTES, optionsFactory, ACCOUNT_OPTIONS } from './public-api'; +export { AccountRoutingModule as ɵf } from './lib/account-routing.module'; +export { LoginComponent as ɵa } from './lib/components/login/login.component'; +export { RegisterComponent as ɵc } from './lib/components/register/register.component'; +export { TenantBoxComponent as ɵe } from './lib/components/tenant-box/tenant-box.component'; +export { AccountService as ɵd } from './lib/services/account.service'; +export { ACCOUNT_OPTIONS as ɵh, optionsFactory as ɵg } from './lib/tokens/options.token'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmFjY291bnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJhYnAtbmcuYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb0lBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFFMUYsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QWNjb3VudFJvdXRpbmdNb2R1bGUgYXMgybVmfSBmcm9tICcuL2xpYi9hY2NvdW50LXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7TG9naW5Db21wb25lbnQgYXMgybVhfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5leHBvcnQge1JlZ2lzdGVyQ29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQnO1xuZXhwb3J0IHtUZW5hbnRCb3hDb21wb25lbnQgYXMgybVlfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbmFudC1ib3gvdGVuYW50LWJveC5jb21wb25lbnQnO1xuZXhwb3J0IHtPcHRpb25zIGFzIMm1Yn0gZnJvbSAnLi9saWIvbW9kZWxzL29wdGlvbnMnO1xuZXhwb3J0IHtBY2NvdW50U2VydmljZSBhcyDJtWR9IGZyb20gJy4vbGliL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5leHBvcnQge0FDQ09VTlRfT1BUSU9OUyBhcyDJtWgsb3B0aW9uc0ZhY3RvcnkgYXMgybVnfSBmcm9tICcuL2xpYi90b2tlbnMvb3B0aW9ucy50b2tlbic7Il19 \ No newline at end of file diff --git a/npm/ng-packs/dist/account/esm5/lib/account.module.js b/npm/ng-packs/dist/account/esm5/lib/account.module.js index 1e44d84a41..4ffe8eae99 100644 --- a/npm/ng-packs/dist/account/esm5/lib/account.module.js +++ b/npm/ng-packs/dist/account/esm5/lib/account.module.js @@ -12,6 +12,7 @@ import { AccountRoutingModule } from './account-routing.module'; import { LoginComponent } from './components/login/login.component'; import { RegisterComponent } from './components/register/register.component'; import { TenantBoxComponent } from './components/tenant-box/tenant-box.component'; +import { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token'; var AccountModule = /** @class */ (function () { function AccountModule() { } @@ -25,4 +26,19 @@ var AccountModule = /** @class */ (function () { return AccountModule; }()); export { AccountModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvYWNjb3VudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVsRjtJQUFBO0lBSzRCLENBQUM7O2dCQUw1QixRQUFRLFNBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixDQUFDO29CQUNyRSxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDO29CQUNySCxPQUFPLEVBQUUsRUFBRTtpQkFDWjs7SUFDMkIsb0JBQUM7Q0FBQSxBQUw3QixJQUs2QjtTQUFoQixhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgQWNjb3VudFJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2FjY291bnQtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgTG9naW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50JztcbmltcG9ydCB7IFJlZ2lzdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZW5hbnRCb3hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGVuYW50LWJveC90ZW5hbnQtYm94LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0xvZ2luQ29tcG9uZW50LCBSZWdpc3RlckNvbXBvbmVudCwgVGVuYW50Qm94Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIEFjY291bnRSb3V0aW5nTW9kdWxlLCBUaGVtZVNoYXJlZE1vZHVsZSwgVGFibGVNb2R1bGUsIE5nYkRyb3Bkb3duTW9kdWxlLCBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGVdLFxuICBleHBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudE1vZHVsZSB7fVxuIl19 \ No newline at end of file +/** + * @param {?=} options + * @return {?} + */ +export function AccountProviders(options) { + if (options === void 0) { options = (/** @type {?} */ ({})); } + return [ + { provide: ACCOUNT_OPTIONS, useValue: options }, + { + provide: 'ACCOUNT_OPTIONS', + useFactory: optionsFactory, + deps: [ACCOUNT_OPTIONS], + }, + ]; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmFjY291bnQvIiwic291cmNlcyI6WyJsaWIvYWNjb3VudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVsRixPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpFO0lBQUE7SUFLNEIsQ0FBQzs7Z0JBTDVCLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3JFLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLENBQUM7b0JBQ3JILE9BQU8sRUFBRSxFQUFFO2lCQUNaOztJQUMyQixvQkFBQztDQUFBLEFBTDdCLElBSzZCO1NBQWhCLGFBQWE7Ozs7O0FBRTFCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUF1QjtJQUF2Qix3QkFBQSxFQUFBLDZCQUFVLEVBQUUsRUFBVztJQUN0RCxPQUFPO1FBQ0wsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7UUFDL0M7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFVBQVUsRUFBRSxjQUFjO1lBQzFCLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQztTQUN4QjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IE5nTW9kdWxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IEFjY291bnRSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9hY2NvdW50LXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IExvZ2luQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWdpc3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVuYW50Qm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RlbmFudC1ib3gvdGVuYW50LWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzL29wdGlvbnMnO1xuaW1wb3J0IHsgQUNDT1VOVF9PUFRJT05TLCBvcHRpb25zRmFjdG9yeSB9IGZyb20gJy4vdG9rZW5zL29wdGlvbnMudG9rZW4nO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtMb2dpbkNvbXBvbmVudCwgUmVnaXN0ZXJDb21wb25lbnQsIFRlbmFudEJveENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBBY2NvdW50Um91dGluZ01vZHVsZSwgVGhlbWVTaGFyZWRNb2R1bGUsIFRhYmxlTW9kdWxlLCBOZ2JEcm9wZG93bk1vZHVsZSwgTmd4VmFsaWRhdGVDb3JlTW9kdWxlXSxcbiAgZXhwb3J0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFjY291bnRNb2R1bGUge31cblxuZXhwb3J0IGZ1bmN0aW9uIEFjY291bnRQcm92aWRlcnMob3B0aW9ucyA9IHt9IGFzIE9wdGlvbnMpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICB7IHByb3ZpZGU6IEFDQ09VTlRfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnMgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnQUNDT1VOVF9PUFRJT05TJyxcbiAgICAgIHVzZUZhY3Rvcnk6IG9wdGlvbnNGYWN0b3J5LFxuICAgICAgZGVwczogW0FDQ09VTlRfT1BUSU9OU10sXG4gICAgfSxcbiAgXTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/account/esm5/lib/constants/routes.js b/npm/ng-packs/dist/account/esm5/lib/constants/routes.js index 0aea11d931..86024e0b87 100644 --- a/npm/ng-packs/dist/account/esm5/lib/constants/routes.js +++ b/npm/ng-packs/dist/account/esm5/lib/constants/routes.js @@ -13,6 +13,5 @@ export var ACCOUNT_ROUTES = { children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], }, ])), - settings: [], }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbnN0YW50cy9yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxNQUFNLEtBQU8sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRSxtQkFBQTtRQUNOO1lBQ0UsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsU0FBUztZQUNmLFNBQVMsRUFBRSxJQUFJO1lBQ2YsTUFBTSxpQ0FBeUI7WUFDL0IsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUN6RztLQUNGLEVBQW1CO0lBQ3BCLFFBQVEsRUFBRSxFQUFFO0NBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGVMYXlvdXRUeXBlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuZXhwb3J0IGNvbnN0IEFDQ09VTlRfUk9VVEVTID0ge1xuICByb3V0ZXM6IFtcbiAgICB7XG4gICAgICBuYW1lOiAnQWNjb3VudCcsXG4gICAgICBwYXRoOiAnYWNjb3VudCcsXG4gICAgICBpbnZpc2libGU6IHRydWUsXG4gICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxuICAgICAgY2hpbGRyZW46IFt7IHBhdGg6ICdsb2dpbicsIG5hbWU6ICdMb2dpbicsIG9yZGVyOiAxIH0sIHsgcGF0aDogJ3JlZ2lzdGVyJywgbmFtZTogJ1JlZ2lzdGVyJywgb3JkZXI6IDIgfV0sXG4gICAgfSxcbiAgXSBhcyBBQlAuRnVsbFJvdXRlW10sXG4gIHNldHRpbmdzOiBbXSxcbn07XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL2NvbnN0YW50cy9yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxNQUFNLEtBQU8sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRSxtQkFBQTtRQUNOO1lBQ0UsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsU0FBUztZQUNmLFNBQVMsRUFBRSxJQUFJO1lBQ2YsTUFBTSxpQ0FBeUI7WUFDL0IsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUN6RztLQUNGLEVBQW1CO0NBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBjb25zdCBBQ0NPVU5UX1JPVVRFUyA9IHtcbiAgcm91dGVzOiBbXG4gICAge1xuICAgICAgbmFtZTogJ0FjY291bnQnLFxuICAgICAgcGF0aDogJ2FjY291bnQnLFxuICAgICAgaW52aXNpYmxlOiB0cnVlLFxuICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcbiAgICAgIGNoaWxkcmVuOiBbeyBwYXRoOiAnbG9naW4nLCBuYW1lOiAnTG9naW4nLCBvcmRlcjogMSB9LCB7IHBhdGg6ICdyZWdpc3RlcicsIG5hbWU6ICdSZWdpc3RlcicsIG9yZGVyOiAyIH1dLFxuICAgIH0sXG4gIF0gYXMgQUJQLkZ1bGxSb3V0ZVtdLFxufTtcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/account/esm5/lib/root-account.module.js b/npm/ng-packs/dist/account/esm5/lib/root-account.module.js deleted file mode 100644 index de2903e05d..0000000000 --- a/npm/ng-packs/dist/account/esm5/lib/root-account.module.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { NgModule } from '@angular/core'; -import { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token'; -var RootAccountModule = /** @class */ (function () { - function RootAccountModule() { - } - /** - * @param {?=} options - * @return {?} - */ - RootAccountModule.forRoot = /** - * @param {?=} options - * @return {?} - */ - function (options) { - if (options === void 0) { options = (/** @type {?} */ ({})); } - return { - ngModule: RootAccountModule, - providers: [ - { provide: ACCOUNT_OPTIONS, useValue: options }, - { - provide: 'ACCOUNT_OPTIONS', - useFactory: optionsFactory, - deps: [ACCOUNT_OPTIONS], - }, - ], - }; - }; - RootAccountModule.decorators = [ - { type: NgModule, args: [{},] } - ]; - return RootAccountModule; -}()); -export { RootAccountModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1hY2NvdW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbImxpYi9yb290LWFjY291bnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpFO0lBQUE7SUFlQSxDQUFDOzs7OztJQWJRLHlCQUFPOzs7O0lBQWQsVUFBZSxPQUF1QjtRQUF2Qix3QkFBQSxFQUFBLDZCQUFVLEVBQUUsRUFBVztRQUNwQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQy9DO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFVBQVUsRUFBRSxjQUFjO29CQUMxQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQ3hCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7Z0JBZEYsUUFBUSxTQUFDLEVBQUU7O0lBZVosd0JBQUM7Q0FBQSxBQWZELElBZUM7U0FkWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzL29wdGlvbnMnO1xuaW1wb3J0IHsgQUNDT1VOVF9PUFRJT05TLCBvcHRpb25zRmFjdG9yeSB9IGZyb20gJy4vdG9rZW5zL29wdGlvbnMudG9rZW4nO1xuXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgUm9vdEFjY291bnRNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChvcHRpb25zID0ge30gYXMgT3B0aW9ucyk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUm9vdEFjY291bnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBBQ0NPVU5UX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQUNDT1VOVF9PUFRJT05TJyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBvcHRpb25zRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbQUNDT1VOVF9PUFRJT05TXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/account/esm5/lib/services/account.service.js b/npm/ng-packs/dist/account/esm5/lib/services/account.service.js index 394b5a5a41..23df4b5e7c 100644 --- a/npm/ng-packs/dist/account/esm5/lib/services/account.service.js +++ b/npm/ng-packs/dist/account/esm5/lib/services/account.service.js @@ -22,7 +22,7 @@ var AccountService = /** @class */ (function () { /** @type {?} */ var request = { method: 'GET', - url: "/api/abp/multi-tenancy/find-tenant/" + tenantName, + url: "/api/abp/multi-tenancy/tenants/by-name/" + tenantName, }; return this.rest.request(request); }; @@ -63,4 +63,4 @@ if (false) { */ AccountService.prototype.rest; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2FjY291bnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFRLE1BQU0sY0FBYyxDQUFDOzs7QUFHakQ7SUFJRSx3QkFBb0IsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUFHLENBQUM7Ozs7O0lBRXpDLG1DQUFVOzs7O0lBQVYsVUFBVyxVQUFrQjs7WUFDckIsT0FBTyxHQUF1QjtZQUNsQyxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSx3Q0FBc0MsVUFBWTtTQUN4RDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQXlCLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7Ozs7O0lBRUQsaUNBQVE7Ozs7SUFBUixVQUFTLElBQXFCOztZQUN0QixPQUFPLEdBQWtDO1lBQzdDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLHVCQUF1QjtZQUM1QixJQUFJLE1BQUE7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQW9DLE9BQU8sRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7O2dCQXZCRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQUxRLFdBQVc7Ozt5QkFGcEI7Q0E2QkMsQUF4QkQsSUF3QkM7U0FyQlksY0FBYzs7Ozs7O0lBQ2IsOEJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UsIFJlc3QgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgUmVnaXN0ZXJSZXNwb25zZSwgUmVnaXN0ZXJSZXF1ZXN0LCBUZW5hbnRJZFJlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFjY291bnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0OiBSZXN0U2VydmljZSkge31cblxuICBmaW5kVGVuYW50KHRlbmFudE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VGVuYW50SWRSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxudWxsPiA9IHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6IGAvYXBpL2FicC9tdWx0aS10ZW5hbmN5L2ZpbmQtdGVuYW50LyR7dGVuYW50TmFtZX1gLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8bnVsbCwgVGVuYW50SWRSZXNwb25zZT4ocmVxdWVzdCk7XG4gIH1cblxuICByZWdpc3Rlcihib2R5OiBSZWdpc3RlclJlcXVlc3QpOiBPYnNlcnZhYmxlPFJlZ2lzdGVyUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8UmVnaXN0ZXJSZXF1ZXN0PiA9IHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgdXJsOiBgL2FwaS9hY2NvdW50L3JlZ2lzdGVyYCxcbiAgICAgIGJvZHksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxSZWdpc3RlclJlcXVlc3QsIFJlZ2lzdGVyUmVzcG9uc2U+KHJlcXVlc3QsIHsgc2tpcEhhbmRsZUVycm9yOiB0cnVlIH0pO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5hY2NvdW50LyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2FjY291bnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFRLE1BQU0sY0FBYyxDQUFDOzs7QUFHakQ7SUFJRSx3QkFBb0IsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUFHLENBQUM7Ozs7O0lBRXpDLG1DQUFVOzs7O0lBQVYsVUFBVyxVQUFrQjs7WUFDckIsT0FBTyxHQUF1QjtZQUNsQyxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSw0Q0FBMEMsVUFBWTtTQUM1RDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQXlCLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7Ozs7O0lBRUQsaUNBQVE7Ozs7SUFBUixVQUFTLElBQXFCOztZQUN0QixPQUFPLEdBQWtDO1lBQzdDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLHVCQUF1QjtZQUM1QixJQUFJLE1BQUE7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQW9DLE9BQU8sRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7O2dCQXZCRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQUxRLFdBQVc7Ozt5QkFGcEI7Q0E2QkMsQUF4QkQsSUF3QkM7U0FyQlksY0FBYzs7Ozs7O0lBQ2IsOEJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UsIFJlc3QgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgUmVnaXN0ZXJSZXNwb25zZSwgUmVnaXN0ZXJSZXF1ZXN0LCBUZW5hbnRJZFJlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFjY291bnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0OiBSZXN0U2VydmljZSkge31cblxuICBmaW5kVGVuYW50KHRlbmFudE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VGVuYW50SWRSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxudWxsPiA9IHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6IGAvYXBpL2FicC9tdWx0aS10ZW5hbmN5L3RlbmFudHMvYnktbmFtZS8ke3RlbmFudE5hbWV9YCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PG51bGwsIFRlbmFudElkUmVzcG9uc2U+KHJlcXVlc3QpO1xuICB9XG5cbiAgcmVnaXN0ZXIoYm9keTogUmVnaXN0ZXJSZXF1ZXN0KTogT2JzZXJ2YWJsZTxSZWdpc3RlclJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PFJlZ2lzdGVyUmVxdWVzdD4gPSB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHVybDogYC9hcGkvYWNjb3VudC9yZWdpc3RlcmAsXG4gICAgICBib2R5LFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5yZXN0LnJlcXVlc3Q8UmVnaXN0ZXJSZXF1ZXN0LCBSZWdpc3RlclJlc3BvbnNlPihyZXF1ZXN0LCB7IHNraXBIYW5kbGVFcnJvcjogdHJ1ZSB9KTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/account/esm5/public-api.js b/npm/ng-packs/dist/account/esm5/public-api.js index fd11ff2e34..afdd9ba85f 100644 --- a/npm/ng-packs/dist/account/esm5/public-api.js +++ b/npm/ng-packs/dist/account/esm5/public-api.js @@ -2,10 +2,9 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { RootAccountModule } from './lib/root-account.module'; -export { AccountModule } from './lib/account.module'; +export { AccountProviders, AccountModule } from './lib/account.module'; export { LoginComponent, RegisterComponent } from './lib/components'; export { ACCOUNT_ROUTES } from './lib/constants/routes'; export { optionsFactory, ACCOUNT_OPTIONS } from './lib/tokens'; export {} from './lib/models'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGtDQUFjLDJCQUEyQixDQUFDO0FBQzFDLDhCQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGtEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLCtCQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGdEQUFjLGNBQWMsQ0FBQztBQUM3QixlQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3Jvb3QtYWNjb3VudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWNjb3VudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMvcm91dGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuYWNjb3VudC8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGdEQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGtEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLCtCQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGdEQUFjLGNBQWMsQ0FBQztBQUM3QixlQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3JvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/account/fesm2015/abp-ng.account.js b/npm/ng-packs/dist/account/fesm2015/abp-ng.account.js index f20bd893c6..b63d904031 100644 --- a/npm/ng-packs/dist/account/fesm2015/abp-ng.account.js +++ b/npm/ng-packs/dist/account/fesm2015/abp-ng.account.js @@ -1,6 +1,6 @@ -import { InjectionToken, NgModule, Component, Optional, Inject, Injectable, ɵɵdefineInjectable, ɵɵinject } from '@angular/core'; import { ConfigState, GetAppConfiguration, RestService, DynamicLayoutComponent, SessionState, SetTenant, CoreModule } from '@abp/ng.core'; import { ToasterService, ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Component, Optional, Inject, Injectable, ɵɵdefineInjectable, ɵɵinject, NgModule, InjectionToken } from '@angular/core'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; import { NgxValidateCoreModule } from '@ngx-validate/core'; import { TableModule } from 'primeng/table'; @@ -13,47 +13,6 @@ import { from, throwError } from 'rxjs'; import { switchMap, tap, catchError, finalize, take } from 'rxjs/operators'; import snq from 'snq'; -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -/** - * @param {?} options - * @return {?} - */ -function optionsFactory(options) { - return Object.assign({ redirectUrl: '/' }, options); -} -/** @type {?} */ -const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -class RootAccountModule { - /** - * @param {?=} options - * @return {?} - */ - static forRoot(options = (/** @type {?} */ ({}))) { - return { - ngModule: RootAccountModule, - providers: [ - { provide: ACCOUNT_OPTIONS, useValue: options }, - { - provide: 'ACCOUNT_OPTIONS', - useFactory: optionsFactory, - deps: [ACCOUNT_OPTIONS], - }, - ], - }; - } -} -RootAccountModule.decorators = [ - { type: NgModule, args: [{},] } -]; - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -189,7 +148,7 @@ class AccountService { /** @type {?} */ const request = { method: 'GET', - url: `/api/abp/multi-tenancy/find-tenant/${tenantName}`, + url: `/api/abp/multi-tenancy/tenants/by-name/${tenantName}`, }; return this.rest.request(request); } @@ -478,6 +437,20 @@ if (false) { TenantBoxComponent.prototype.accountService; } +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} options + * @return {?} + */ +function optionsFactory(options) { + return Object.assign({ redirectUrl: '/' }, options); +} +/** @type {?} */ +const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -491,6 +464,20 @@ AccountModule.decorators = [ exports: [], },] } ]; +/** + * @param {?=} options + * @return {?} + */ +function AccountProviders(options = (/** @type {?} */ ({}))) { + return [ + { provide: ACCOUNT_OPTIONS, useValue: options }, + { + provide: 'ACCOUNT_OPTIONS', + useFactory: optionsFactory, + deps: [ACCOUNT_OPTIONS], + }, + ]; +} /** * @fileoverview added by tsickle @@ -512,7 +499,6 @@ const ACCOUNT_ROUTES = { children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], }, ])), - settings: [], }; /** @@ -628,5 +614,5 @@ if (false) { * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { ACCOUNT_OPTIONS, ACCOUNT_ROUTES, AccountModule, LoginComponent, RegisterComponent, RootAccountModule, optionsFactory, optionsFactory as ɵa, ACCOUNT_OPTIONS as ɵb, LoginComponent as ɵc, RegisterComponent as ɵe, AccountService as ɵf, TenantBoxComponent as ɵg, AccountRoutingModule as ɵh }; +export { ACCOUNT_OPTIONS, ACCOUNT_ROUTES, AccountModule, AccountProviders, LoginComponent, RegisterComponent, optionsFactory, LoginComponent as ɵa, RegisterComponent as ɵc, AccountService as ɵd, TenantBoxComponent as ɵe, AccountRoutingModule as ɵf, optionsFactory as ɵg, ACCOUNT_OPTIONS as ɵh }; //# sourceMappingURL=abp-ng.account.js.map diff --git a/npm/ng-packs/dist/account/fesm2015/abp-ng.account.js.map b/npm/ng-packs/dist/account/fesm2015/abp-ng.account.js.map index e36db18b33..6a7b350b7a 100644 --- a/npm/ng-packs/dist/account/fesm2015/abp-ng.account.js.map +++ b/npm/ng-packs/dist/account/fesm2015/abp-ng.account.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.account.js","sources":["ng://@abp/ng.account/lib/tokens/options.token.ts","ng://@abp/ng.account/lib/root-account.module.ts","ng://@abp/ng.account/lib/components/login/login.component.ts","ng://@abp/ng.account/lib/services/account.service.ts","ng://@abp/ng.account/lib/components/register/register.component.ts","ng://@abp/ng.account/lib/account-routing.module.ts","ng://@abp/ng.account/lib/components/tenant-box/tenant-box.component.ts","ng://@abp/ng.account/lib/account.module.ts","ng://@abp/ng.account/lib/constants/routes.ts","ng://@abp/ng.account/lib/models/options.ts","ng://@abp/ng.account/lib/models/user.ts","ng://@abp/ng.account/lib/models/tenant.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Options } from '../models/options';\n\nexport function optionsFactory(options: Options) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n\nexport const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS');\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { Options } from './models/options';\nimport { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token';\n\n@NgModule({})\nexport class RootAccountModule {\n static forRoot(options = {} as Options): ModuleWithProviders {\n return {\n ngModule: RootAccountModule,\n providers: [\n { provide: ACCOUNT_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: optionsFactory,\n deps: [ACCOUNT_OPTIONS],\n },\n ],\n };\n }\n}\n","import { GetAppConfiguration, ConfigState } from '@abp/ng.core';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { Options } from '../../models/options';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { catchError, finalize, switchMap, tap } from 'rxjs/operators';\nimport snq from 'snq';\n\nconst { maxLength, minLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n remember: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n // this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage);\n\n this.inProgress = true;\n from(\n this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value),\n )\n .pipe(\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => {\n const redirectUrl = snq(() => window.history.state).redirectUrl || (this.options || {}).redirectUrl || '/';\n this.store.dispatch(new Navigate([redirectUrl]));\n }),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { RegisterResponse, RegisterRequest, TenantIdResponse } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountService {\n constructor(private rest: RestService) {}\n\n findTenant(tenantName: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/abp/multi-tenancy/find-tenant/${tenantName}`,\n };\n\n return this.rest.request(request);\n }\n\n register(body: RegisterRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/account/register`,\n body,\n };\n\n return this.rest.request(request, { skipHandleError: true });\n }\n}\n","import { ConfigState, GetAppConfiguration } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { catchError, finalize, switchMap, take, tap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { RegisterRequest } from '../../models';\nimport { AccountService } from '../../services/account.service';\nconst { maxLength, minLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private accountService: AccountService,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.inProgress = true;\n\n const newUser = {\n userName: this.form.get('username').value,\n password: this.form.get('password').value,\n emailAddress: this.form.get('email').value,\n appName: 'Angular',\n } as RegisterRequest;\n\n this.accountService\n .register(newUser)\n .pipe(\n switchMap(() => from(this.oauthService.fetchTokenUsingPasswordFlow(newUser.userName, newUser.password))),\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => this.store.dispatch(new Navigate(['/']))),\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { DynamicLayoutComponent } from '@abp/ng.core';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { ABP, SetTenant, SessionState } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, OnInit } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AccountService } from '../../services/account.service';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n})\nexport class TenantBoxComponent implements OnInit {\n constructor(private store: Store, private toasterService: ToasterService, private accountService: AccountService) {}\n\n tenant = {} as ABP.BasicItem;\n\n tenantName: string;\n\n isModalVisible: boolean;\n\n ngOnInit() {\n this.tenant = this.store.selectSnapshot(SessionState.getTenant) || ({} as ABP.BasicItem);\n this.tenantName = this.tenant.name || '';\n }\n\n onSwitch() {\n this.isModalVisible = true;\n }\n\n save() {\n if (this.tenant.name) {\n this.accountService\n .findTenant(this.tenant.name)\n .pipe(\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description, 'AbpUi::DefaultErrorMessage'),\n 'AbpUi::Error',\n );\n return throwError(err);\n }),\n )\n .subscribe(({ success, tenantId }) => {\n if (success) {\n this.tenant = {\n id: tenantId,\n name: this.tenant.name,\n };\n this.tenantName = this.tenant.name;\n this.isModalVisible = false;\n } else {\n this.toasterService.error(`AbpUiMultiTenancy::GivenTenantIsNotAvailable`, 'AbpUi::Error', {\n messageLocalizationParams: [this.tenant.name],\n });\n this.tenant = {} as ABP.BasicItem;\n }\n this.store.dispatch(new SetTenant(success ? this.tenant : null));\n });\n } else {\n this.store.dispatch(new SetTenant(null));\n this.tenantName = null;\n this.isModalVisible = false;\n }\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { TableModule } from 'primeng/table';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\n\n@NgModule({\n declarations: [LoginComponent, RegisterComponent, TenantBoxComponent],\n imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule],\n exports: [],\n})\nexport class AccountModule {}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const ACCOUNT_ROUTES = {\n routes: [\n {\n name: 'Account',\n path: 'account',\n invisible: true,\n layout: eLayoutType.application,\n children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }],\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n","export interface Options {\n redirectUrl?: string;\n}\n","export interface RegisterRequest {\n userName: string;\n emailAddress: string;\n password: string;\n appName?: string;\n}\n\nexport interface RegisterResponse {\n tenantId: string;\n userName: string;\n name: string;\n surname: string;\n email: string;\n emailConfirmed: boolean;\n phoneNumber: string;\n phoneNumberConfirmed: boolean;\n twoFactorEnabled: boolean;\n lockoutEnabled: boolean;\n lockoutEnd: string;\n concurrencyStamp: string;\n isDeleted: boolean;\n deleterId: string;\n deletionTime: string;\n lastModificationTime: string;\n lastModifierId: string;\n creationTime: string;\n creatorId: string;\n id: string;\n}\n","export interface TenantIdResponse {\n success: boolean;\n tenantId: string;\n}\n"],"names":["maxLength","minLength","required"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.account.js","sources":["ng://@abp/ng.account/lib/components/login/login.component.ts","ng://@abp/ng.account/lib/services/account.service.ts","ng://@abp/ng.account/lib/components/register/register.component.ts","ng://@abp/ng.account/lib/account-routing.module.ts","ng://@abp/ng.account/lib/components/tenant-box/tenant-box.component.ts","ng://@abp/ng.account/lib/tokens/options.token.ts","ng://@abp/ng.account/lib/account.module.ts","ng://@abp/ng.account/lib/constants/routes.ts","ng://@abp/ng.account/lib/models/options.ts","ng://@abp/ng.account/lib/models/user.ts","ng://@abp/ng.account/lib/models/tenant.ts"],"sourcesContent":["import { GetAppConfiguration, ConfigState } from '@abp/ng.core';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { Options } from '../../models/options';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { catchError, finalize, switchMap, tap } from 'rxjs/operators';\nimport snq from 'snq';\n\nconst { maxLength, minLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n remember: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n // this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage);\n\n this.inProgress = true;\n from(\n this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value),\n )\n .pipe(\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => {\n const redirectUrl = snq(() => window.history.state).redirectUrl || (this.options || {}).redirectUrl || '/';\n this.store.dispatch(new Navigate([redirectUrl]));\n }),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { RegisterResponse, RegisterRequest, TenantIdResponse } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountService {\n constructor(private rest: RestService) {}\n\n findTenant(tenantName: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/abp/multi-tenancy/tenants/by-name/${tenantName}`,\n };\n\n return this.rest.request(request);\n }\n\n register(body: RegisterRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/account/register`,\n body,\n };\n\n return this.rest.request(request, { skipHandleError: true });\n }\n}\n","import { ConfigState, GetAppConfiguration } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { catchError, finalize, switchMap, take, tap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { RegisterRequest } from '../../models';\nimport { AccountService } from '../../services/account.service';\nconst { maxLength, minLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private accountService: AccountService,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.inProgress = true;\n\n const newUser = {\n userName: this.form.get('username').value,\n password: this.form.get('password').value,\n emailAddress: this.form.get('email').value,\n appName: 'Angular',\n } as RegisterRequest;\n\n this.accountService\n .register(newUser)\n .pipe(\n switchMap(() => from(this.oauthService.fetchTokenUsingPasswordFlow(newUser.userName, newUser.password))),\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => this.store.dispatch(new Navigate(['/']))),\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { DynamicLayoutComponent } from '@abp/ng.core';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { ABP, SetTenant, SessionState } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, OnInit } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AccountService } from '../../services/account.service';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n})\nexport class TenantBoxComponent implements OnInit {\n constructor(private store: Store, private toasterService: ToasterService, private accountService: AccountService) {}\n\n tenant = {} as ABP.BasicItem;\n\n tenantName: string;\n\n isModalVisible: boolean;\n\n ngOnInit() {\n this.tenant = this.store.selectSnapshot(SessionState.getTenant) || ({} as ABP.BasicItem);\n this.tenantName = this.tenant.name || '';\n }\n\n onSwitch() {\n this.isModalVisible = true;\n }\n\n save() {\n if (this.tenant.name) {\n this.accountService\n .findTenant(this.tenant.name)\n .pipe(\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description, 'AbpUi::DefaultErrorMessage'),\n 'AbpUi::Error',\n );\n return throwError(err);\n }),\n )\n .subscribe(({ success, tenantId }) => {\n if (success) {\n this.tenant = {\n id: tenantId,\n name: this.tenant.name,\n };\n this.tenantName = this.tenant.name;\n this.isModalVisible = false;\n } else {\n this.toasterService.error(`AbpUiMultiTenancy::GivenTenantIsNotAvailable`, 'AbpUi::Error', {\n messageLocalizationParams: [this.tenant.name],\n });\n this.tenant = {} as ABP.BasicItem;\n }\n this.store.dispatch(new SetTenant(success ? this.tenant : null));\n });\n } else {\n this.store.dispatch(new SetTenant(null));\n this.tenantName = null;\n this.isModalVisible = false;\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Options } from '../models/options';\n\nexport function optionsFactory(options: Options) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n\nexport const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS');\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule, Provider } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { TableModule } from 'primeng/table';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\nimport { Options } from './models/options';\nimport { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token';\n\n@NgModule({\n declarations: [LoginComponent, RegisterComponent, TenantBoxComponent],\n imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule],\n exports: [],\n})\nexport class AccountModule {}\n\nexport function AccountProviders(options = {} as Options): Provider[] {\n return [\n { provide: ACCOUNT_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: optionsFactory,\n deps: [ACCOUNT_OPTIONS],\n },\n ];\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const ACCOUNT_ROUTES = {\n routes: [\n {\n name: 'Account',\n path: 'account',\n invisible: true,\n layout: eLayoutType.application,\n children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }],\n },\n ] as ABP.FullRoute[],\n};\n","export interface Options {\n redirectUrl?: string;\n}\n","export interface RegisterRequest {\n userName: string;\n emailAddress: string;\n password: string;\n appName?: string;\n}\n\nexport interface RegisterResponse {\n tenantId: string;\n userName: string;\n name: string;\n surname: string;\n email: string;\n emailConfirmed: boolean;\n phoneNumber: string;\n phoneNumberConfirmed: boolean;\n twoFactorEnabled: boolean;\n lockoutEnabled: boolean;\n lockoutEnd: string;\n concurrencyStamp: string;\n isDeleted: boolean;\n deleterId: string;\n deletionTime: string;\n lastModificationTime: string;\n lastModifierId: string;\n creationTime: string;\n creatorId: string;\n id: string;\n}\n","export interface TenantIdResponse {\n success: boolean;\n tenantId: string;\n}\n"],"names":["maxLength","minLength","required"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/account/fesm5/abp-ng.account.js b/npm/ng-packs/dist/account/fesm5/abp-ng.account.js index c0abbf1d4d..e304d2b7f9 100644 --- a/npm/ng-packs/dist/account/fesm5/abp-ng.account.js +++ b/npm/ng-packs/dist/account/fesm5/abp-ng.account.js @@ -1,7 +1,6 @@ -import { InjectionToken, NgModule, Component, Optional, Inject, Injectable, ɵɵdefineInjectable, ɵɵinject } from '@angular/core'; -import { __assign } from 'tslib'; import { ConfigState, GetAppConfiguration, RestService, DynamicLayoutComponent, SessionState, SetTenant, CoreModule } from '@abp/ng.core'; import { ToasterService, ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Component, Optional, Inject, Injectable, ɵɵdefineInjectable, ɵɵinject, NgModule, InjectionToken } from '@angular/core'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; import { NgxValidateCoreModule } from '@ngx-validate/core'; import { TableModule } from 'primeng/table'; @@ -13,55 +12,7 @@ import { OAuthService } from 'angular-oauth2-oidc'; import { from, throwError } from 'rxjs'; import { switchMap, tap, catchError, finalize, take } from 'rxjs/operators'; import snq from 'snq'; - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -/** - * @param {?} options - * @return {?} - */ -function optionsFactory(options) { - return __assign({ redirectUrl: '/' }, options); -} -/** @type {?} */ -var ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -var RootAccountModule = /** @class */ (function () { - function RootAccountModule() { - } - /** - * @param {?=} options - * @return {?} - */ - RootAccountModule.forRoot = /** - * @param {?=} options - * @return {?} - */ - function (options) { - if (options === void 0) { options = (/** @type {?} */ ({})); } - return { - ngModule: RootAccountModule, - providers: [ - { provide: ACCOUNT_OPTIONS, useValue: options }, - { - provide: 'ACCOUNT_OPTIONS', - useFactory: optionsFactory, - deps: [ACCOUNT_OPTIONS], - }, - ], - }; - }; - RootAccountModule.decorators = [ - { type: NgModule, args: [{},] } - ]; - return RootAccountModule; -}()); +import { __assign } from 'tslib'; /** * @fileoverview added by tsickle @@ -197,7 +148,7 @@ var AccountService = /** @class */ (function () { /** @type {?} */ var request = { method: 'GET', - url: "/api/abp/multi-tenancy/find-tenant/" + tenantName, + url: "/api/abp/multi-tenancy/tenants/by-name/" + tenantName, }; return this.rest.request(request); }; @@ -499,6 +450,20 @@ if (false) { TenantBoxComponent.prototype.accountService; } +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?} options + * @return {?} + */ +function optionsFactory(options) { + return __assign({ redirectUrl: '/' }, options); +} +/** @type {?} */ +var ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS'); + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -515,6 +480,21 @@ var AccountModule = /** @class */ (function () { ]; return AccountModule; }()); +/** + * @param {?=} options + * @return {?} + */ +function AccountProviders(options) { + if (options === void 0) { options = (/** @type {?} */ ({})); } + return [ + { provide: ACCOUNT_OPTIONS, useValue: options }, + { + provide: 'ACCOUNT_OPTIONS', + useFactory: optionsFactory, + deps: [ACCOUNT_OPTIONS], + }, + ]; +} /** * @fileoverview added by tsickle @@ -536,7 +516,6 @@ var ACCOUNT_ROUTES = { children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }], }, ])), - settings: [], }; /** @@ -652,5 +631,5 @@ if (false) { * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { ACCOUNT_OPTIONS, ACCOUNT_ROUTES, AccountModule, LoginComponent, RegisterComponent, RootAccountModule, optionsFactory, optionsFactory as ɵa, ACCOUNT_OPTIONS as ɵb, LoginComponent as ɵc, RegisterComponent as ɵe, AccountService as ɵf, TenantBoxComponent as ɵg, AccountRoutingModule as ɵh }; +export { ACCOUNT_OPTIONS, ACCOUNT_ROUTES, AccountModule, AccountProviders, LoginComponent, RegisterComponent, optionsFactory, LoginComponent as ɵa, RegisterComponent as ɵc, AccountService as ɵd, TenantBoxComponent as ɵe, AccountRoutingModule as ɵf, optionsFactory as ɵg, ACCOUNT_OPTIONS as ɵh }; //# sourceMappingURL=abp-ng.account.js.map diff --git a/npm/ng-packs/dist/account/fesm5/abp-ng.account.js.map b/npm/ng-packs/dist/account/fesm5/abp-ng.account.js.map index 2fa526547f..e811934794 100644 --- a/npm/ng-packs/dist/account/fesm5/abp-ng.account.js.map +++ b/npm/ng-packs/dist/account/fesm5/abp-ng.account.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.account.js","sources":["ng://@abp/ng.account/lib/tokens/options.token.ts","ng://@abp/ng.account/lib/root-account.module.ts","ng://@abp/ng.account/lib/components/login/login.component.ts","ng://@abp/ng.account/lib/services/account.service.ts","ng://@abp/ng.account/lib/components/register/register.component.ts","ng://@abp/ng.account/lib/account-routing.module.ts","ng://@abp/ng.account/lib/components/tenant-box/tenant-box.component.ts","ng://@abp/ng.account/lib/account.module.ts","ng://@abp/ng.account/lib/constants/routes.ts","ng://@abp/ng.account/lib/models/options.ts","ng://@abp/ng.account/lib/models/user.ts","ng://@abp/ng.account/lib/models/tenant.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Options } from '../models/options';\n\nexport function optionsFactory(options: Options) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n\nexport const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS');\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { Options } from './models/options';\nimport { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token';\n\n@NgModule({})\nexport class RootAccountModule {\n static forRoot(options = {} as Options): ModuleWithProviders {\n return {\n ngModule: RootAccountModule,\n providers: [\n { provide: ACCOUNT_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: optionsFactory,\n deps: [ACCOUNT_OPTIONS],\n },\n ],\n };\n }\n}\n","import { GetAppConfiguration, ConfigState } from '@abp/ng.core';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { Options } from '../../models/options';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { catchError, finalize, switchMap, tap } from 'rxjs/operators';\nimport snq from 'snq';\n\nconst { maxLength, minLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n remember: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n // this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage);\n\n this.inProgress = true;\n from(\n this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value),\n )\n .pipe(\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => {\n const redirectUrl = snq(() => window.history.state).redirectUrl || (this.options || {}).redirectUrl || '/';\n this.store.dispatch(new Navigate([redirectUrl]));\n }),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { RegisterResponse, RegisterRequest, TenantIdResponse } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountService {\n constructor(private rest: RestService) {}\n\n findTenant(tenantName: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/abp/multi-tenancy/find-tenant/${tenantName}`,\n };\n\n return this.rest.request(request);\n }\n\n register(body: RegisterRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/account/register`,\n body,\n };\n\n return this.rest.request(request, { skipHandleError: true });\n }\n}\n","import { ConfigState, GetAppConfiguration } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { catchError, finalize, switchMap, take, tap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { RegisterRequest } from '../../models';\nimport { AccountService } from '../../services/account.service';\nconst { maxLength, minLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private accountService: AccountService,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.inProgress = true;\n\n const newUser = {\n userName: this.form.get('username').value,\n password: this.form.get('password').value,\n emailAddress: this.form.get('email').value,\n appName: 'Angular',\n } as RegisterRequest;\n\n this.accountService\n .register(newUser)\n .pipe(\n switchMap(() => from(this.oauthService.fetchTokenUsingPasswordFlow(newUser.userName, newUser.password))),\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => this.store.dispatch(new Navigate(['/']))),\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { DynamicLayoutComponent } from '@abp/ng.core';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { ABP, SetTenant, SessionState } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, OnInit } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AccountService } from '../../services/account.service';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n})\nexport class TenantBoxComponent implements OnInit {\n constructor(private store: Store, private toasterService: ToasterService, private accountService: AccountService) {}\n\n tenant = {} as ABP.BasicItem;\n\n tenantName: string;\n\n isModalVisible: boolean;\n\n ngOnInit() {\n this.tenant = this.store.selectSnapshot(SessionState.getTenant) || ({} as ABP.BasicItem);\n this.tenantName = this.tenant.name || '';\n }\n\n onSwitch() {\n this.isModalVisible = true;\n }\n\n save() {\n if (this.tenant.name) {\n this.accountService\n .findTenant(this.tenant.name)\n .pipe(\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description, 'AbpUi::DefaultErrorMessage'),\n 'AbpUi::Error',\n );\n return throwError(err);\n }),\n )\n .subscribe(({ success, tenantId }) => {\n if (success) {\n this.tenant = {\n id: tenantId,\n name: this.tenant.name,\n };\n this.tenantName = this.tenant.name;\n this.isModalVisible = false;\n } else {\n this.toasterService.error(`AbpUiMultiTenancy::GivenTenantIsNotAvailable`, 'AbpUi::Error', {\n messageLocalizationParams: [this.tenant.name],\n });\n this.tenant = {} as ABP.BasicItem;\n }\n this.store.dispatch(new SetTenant(success ? this.tenant : null));\n });\n } else {\n this.store.dispatch(new SetTenant(null));\n this.tenantName = null;\n this.isModalVisible = false;\n }\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { TableModule } from 'primeng/table';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\n\n@NgModule({\n declarations: [LoginComponent, RegisterComponent, TenantBoxComponent],\n imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule],\n exports: [],\n})\nexport class AccountModule {}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const ACCOUNT_ROUTES = {\n routes: [\n {\n name: 'Account',\n path: 'account',\n invisible: true,\n layout: eLayoutType.application,\n children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }],\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n","export interface Options {\n redirectUrl?: string;\n}\n","export interface RegisterRequest {\n userName: string;\n emailAddress: string;\n password: string;\n appName?: string;\n}\n\nexport interface RegisterResponse {\n tenantId: string;\n userName: string;\n name: string;\n surname: string;\n email: string;\n emailConfirmed: boolean;\n phoneNumber: string;\n phoneNumberConfirmed: boolean;\n twoFactorEnabled: boolean;\n lockoutEnabled: boolean;\n lockoutEnd: string;\n concurrencyStamp: string;\n isDeleted: boolean;\n deleterId: string;\n deletionTime: string;\n lastModificationTime: string;\n lastModifierId: string;\n creationTime: string;\n creatorId: string;\n id: string;\n}\n","export interface TenantIdResponse {\n success: boolean;\n tenantId: string;\n}\n"],"names":["maxLength","minLength","required"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,SAAgB,cAAc,CAAC,OAAgB;IAC7C,kBACE,WAAW,EAAE,GAAG,IACb,OAAO,EACV;CACH;;AAED,IAAa,eAAe,GAAG,IAAI,cAAc,CAAC,iBAAiB,CAAC;;;;;;ACVpE;IAIA;KAeC;;;;;IAbQ,yBAAO;;;;IAAd,UAAe,OAAuB;QAAvB,wBAAA,EAAA,6BAAU,EAAE,EAAW;QACpC,OAAO;YACL,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAC/C;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,UAAU,EAAE,cAAc;oBAC1B,IAAI,EAAE,CAAC,eAAe,CAAC;iBACxB;aACF;SACF,CAAC;KACH;;gBAdF,QAAQ,SAAC,EAAE;;IAeZ,wBAAC;CAfD;;;;;;ACJA,AAYQ,IAAA,gCAAS,EAAE,gCAAS,EAAE,8BAAQ;AAEtC;IASE,wBACU,EAAe,EACf,YAA0B,EAC1B,KAAY,EACZ,cAA8B,EACS,OAAgB;QAJvD,OAAE,GAAF,EAAE,CAAa;QACf,iBAAY,GAAZ,YAAY,CAAc;QAC1B,UAAK,GAAL,KAAK,CAAO;QACZ,mBAAc,GAAd,cAAc,CAAgB;QACS,YAAO,GAAP,OAAO,CAAS;QAE/D,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACtG,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;QAE1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,QAAQ,EAAE,CAAC,KAAK,CAAC;SAClB,CAAC,CAAC;KACJ;;;;IAED,iCAAQ;;;IAAR;QAAA,iBA0BC;QAzBC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;;QAG9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CACF,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAChH;aACE,IAAI,CACH,SAAS;;;QAAC,cAAM,OAAA,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,GAAA,EAAC,EAC/D,GAAG;;;QAAC;;gBACI,WAAW,GAAG,GAAG;;;YAAC,cAAM,OAAA,MAAM,CAAC,OAAO,CAAC,KAAK,GAAA,EAAC,CAAC,WAAW,IAAI,CAAC,KAAI,CAAC,OAAO,IAAI,EAAE,EAAE,WAAW,IAAI,GAAG;YAC1G,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAClD,EAAC,EACF,UAAU;;;;QAAC,UAAA,GAAG;YACZ,KAAI,CAAC,cAAc,CAAC,KAAK,CACvB,GAAG;;;YAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,iBAAiB,GAAA,EAAC;gBACpC,GAAG;;;gBAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAA,GAAE,iCAAiC,CAAC,EACvE,OAAO,EACP,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;YACF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;SACxB,EAAC,EACF,QAAQ;;;QAAC,cAAM,QAAC,KAAI,CAAC,UAAU,GAAG,KAAK,IAAC,EAAC,CAC1C;aACA,SAAS,EAAE,CAAC;KAChB;;gBApDF,SAAS,SAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,6tDAAqC;iBACtC;;;;gBAfQ,WAAW;gBAGX,YAAY;gBADZ,KAAK;gBAIL,cAAc;gDAoBlB,QAAQ,YAAI,MAAM,SAAC,iBAAiB;;IAuCzC,qBAAC;CArDD,IAqDC;;;IAhDC,8BAAgB;;IAEhB,oCAAoB;;;;;IAGlB,4BAAuB;;;;;IACvB,sCAAkC;;;;;IAClC,+BAAoB;;;;;IACpB,wCAAsC;;;;;IACtC,iCAA+D;;;;;;;AC5BnE;IASE,wBAAoB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;KAAI;;;;;IAEzC,mCAAU;;;;IAAV,UAAW,UAAkB;;YACrB,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,wCAAsC,UAAY;SACxD;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAyB,OAAO,CAAC,CAAC;KAC3D;;;;;IAED,iCAAQ;;;;IAAR,UAAS,IAAqB;;YACtB,OAAO,GAAkC;YAC7C,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,uBAAuB;YAC5B,IAAI,MAAA;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoC,OAAO,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;KACjG;;gBAvBF,UAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;;gBALQ,WAAW;;;yBAFpB;CAKA,IAwBC;;;;;;IApBa,8BAAyB;;;;;;;ACTvC,AAYQ,IAAAA,kCAAS,EAAEC,kCAAS,EAAEC,gCAAQ,EAAE,wBAAK;AAE7C;IASE,2BACU,EAAe,EACf,cAA8B,EAC9B,YAA0B,EAC1B,KAAY,EACZ,cAA8B;QAJ9B,OAAE,GAAF,EAAE,CAAa;QACf,mBAAc,GAAd,cAAc,CAAgB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,UAAK,GAAL,KAAK,CAAO;QACZ,mBAAc,GAAd,cAAc,CAAgB;QAEtC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACtG,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;QAE1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,CAACA,UAAQ,EAAEF,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,CAACE,UAAQ,EAAEF,WAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,KAAK,EAAE,CAAC,EAAE,EAAE,CAACE,UAAQ,EAAE,KAAK,CAAC,CAAC;SAC/B,CAAC,CAAC;KACJ;;;;IAED,oCAAQ;;;IAAR;QAAA,iBA+BC;QA9BC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;;YAEjB,OAAO,sBAAG;YACd,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;YACzC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;YACzC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK;YAC1C,OAAO,EAAE,SAAS;SACnB,EAAmB;QAEpB,IAAI,CAAC,cAAc;aAChB,QAAQ,CAAC,OAAO,CAAC;aACjB,IAAI,CACH,SAAS;;;QAAC,cAAM,OAAA,IAAI,CAAC,KAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAA,EAAC,EACxG,SAAS;;;QAAC,cAAM,OAAA,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,GAAA,EAAC,EAC/D,GAAG;;;QAAC,cAAM,OAAA,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAA,EAAC,EACnD,IAAI,CAAC,CAAC,CAAC,EACP,UAAU;;;;QAAC,UAAA,GAAG;YACZ,KAAI,CAAC,cAAc,CAAC,KAAK,CACvB,GAAG;;;YAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,iBAAiB,GAAA,EAAC;gBACpC,GAAG;;;gBAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAA,GAAE,iCAAiC,CAAC,EACvE,OAAO,EACP,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;YACF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;SACxB,EAAC,EACF,QAAQ;;;QAAC,cAAM,QAAC,KAAI,CAAC,UAAU,GAAG,KAAK,IAAC,EAAC,CAC1C;aACA,SAAS,EAAE,CAAC;KAChB;;gBAzDF,SAAS,SAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,i9CAAwC;iBACzC;;;;gBAdQ,WAAW;gBAQX,cAAc;gBALd,YAAY;gBADZ,KAAK;gBAJL,cAAc;;IAuEvB,wBAAC;CA1DD,IA0DC;;;IArDC,iCAAgB;;IAEhB,uCAAoB;;;;;IAGlB,+BAAuB;;;;;IACvB,2CAAsC;;;;;IACtC,yCAAkC;;;;;IAClC,kCAAoB;;;;;IACpB,2CAAsC;;;;;;;AC5B1C;IAMM,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE;IACpD;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,sBAAsB;QACjC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;KAC7G;CACF;AAED;IAAA;KAIoC;;gBAJnC,QAAQ,SAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB;;IACkC,2BAAC;CAJpC;;;;;;ACfA;IAcE,4BAAoB,KAAY,EAAU,cAA8B,EAAU,cAA8B;QAA5F,UAAK,GAAL,KAAK,CAAO;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAEhH,WAAM,sBAAG,EAAE,EAAiB,CAAC;KAFuF;;;;IAQpH,qCAAQ;;;IAAR;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,wBAAK,EAAE,GAAkB,CAAC;QACzF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;KAC1C;;;;IAED,qCAAQ;;;IAAR;QACE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;;;;IAED,iCAAI;;;IAAJ;QAAA,iBAmCC;QAlCC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACpB,IAAI,CAAC,cAAc;iBAChB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;iBAC5B,IAAI,CACH,IAAI,CAAC,CAAC,CAAC,EACP,UAAU;;;;YAAC,UAAA,GAAG;gBACZ,KAAI,CAAC,cAAc,CAAC,KAAK,CACvB,GAAG;;;gBAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,iBAAiB,GAAA,GAAE,4BAA4B,CAAC,EACpE,cAAc,CACf,CAAC;gBACF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;aACxB,EAAC,CACH;iBACA,SAAS;;;;YAAC,UAAC,EAAqB;oBAAnB,oBAAO,EAAE,sBAAQ;gBAC7B,IAAI,OAAO,EAAE;oBACX,KAAI,CAAC,MAAM,GAAG;wBACZ,EAAE,EAAE,QAAQ;wBACZ,IAAI,EAAE,KAAI,CAAC,MAAM,CAAC,IAAI;qBACvB,CAAC;oBACF,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACnC,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;iBAC7B;qBAAM;oBACL,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,8CAA8C,EAAE,cAAc,EAAE;wBACxF,yBAAyB,EAAE,CAAC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC;qBAC9C,CAAC,CAAC;oBACH,KAAI,CAAC,MAAM,sBAAG,EAAE,EAAiB,CAAC;iBACnC;gBACD,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,GAAG,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;aAClE,EAAC,CAAC;SACN;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B;KACF;;gBAzDF,SAAS,SAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,0gDAA0C;iBAC3C;;;;gBATQ,KAAK;gBAFL,cAAc;gBAMd,cAAc;;IA4DvB,yBAAC;CA1DD,IA0DC;;;IAnDC,oCAA6B;;IAE7B,wCAAmB;;IAEnB,4CAAwB;;;;;IANZ,mCAAoB;;;;;IAAE,4CAAsC;;;;;IAAE,4CAAsC;;;;;;;ACdlH;IAWA;KAK6B;;gBAL5B,QAAQ,SAAC;oBACR,YAAY,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;oBACrE,OAAO,EAAE,CAAC,UAAU,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;oBACrH,OAAO,EAAE,EAAE;iBACZ;;IAC2B,oBAAC;CAL7B;;;;;;;;;;;;ACTA,IAAa,cAAc,GAAG;IAC5B,MAAM,qBAAE;QACN;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,IAAI;YACf,MAAM;YACN,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SACzG;KACF,EAAmB;IACpB,QAAQ,EAAE,EAAE;CACb;;;;;;;;;;;;;;ACbD,sBAEC;;;IADC,8BAAqB;;;;;;;;;;ACDvB,8BAKC;;;IAJC,mCAAiB;;IACjB,uCAAqB;;IACrB,mCAAiB;;IACjB,kCAAiB;;;;;AAGnB,+BAqBC;;;IApBC,oCAAiB;;IACjB,oCAAiB;;IACjB,gCAAa;;IACb,mCAAgB;;IAChB,iCAAc;;IACd,0CAAwB;;IACxB,uCAAoB;;IACpB,gDAA8B;;IAC9B,4CAA0B;;IAC1B,0CAAwB;;IACxB,sCAAmB;;IACnB,4CAAyB;;IACzB,qCAAmB;;IACnB,qCAAkB;;IAClB,wCAAqB;;IACrB,gDAA6B;;IAC7B,0CAAuB;;IACvB,wCAAqB;;IACrB,qCAAkB;;IAClB,8BAAW;;;;;;;;;;AC3Bb,+BAGC;;;IAFC,mCAAiB;;IACjB,oCAAiB;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"abp-ng.account.js","sources":["ng://@abp/ng.account/lib/components/login/login.component.ts","ng://@abp/ng.account/lib/services/account.service.ts","ng://@abp/ng.account/lib/components/register/register.component.ts","ng://@abp/ng.account/lib/account-routing.module.ts","ng://@abp/ng.account/lib/components/tenant-box/tenant-box.component.ts","ng://@abp/ng.account/lib/tokens/options.token.ts","ng://@abp/ng.account/lib/account.module.ts","ng://@abp/ng.account/lib/constants/routes.ts","ng://@abp/ng.account/lib/models/options.ts","ng://@abp/ng.account/lib/models/user.ts","ng://@abp/ng.account/lib/models/tenant.ts"],"sourcesContent":["import { GetAppConfiguration, ConfigState } from '@abp/ng.core';\nimport { Component, Inject, Optional } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { Options } from '../../models/options';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { catchError, finalize, switchMap, tap } from 'rxjs/operators';\nimport snq from 'snq';\n\nconst { maxLength, minLength, required } = Validators;\n\n@Component({\n selector: 'abp-login',\n templateUrl: './login.component.html',\n})\nexport class LoginComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n @Optional() @Inject('ACCOUNT_OPTIONS') private options: Options,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n remember: [false],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n // this.oauthService.setStorage(this.form.value.remember ? localStorage : sessionStorage);\n\n this.inProgress = true;\n from(\n this.oauthService.fetchTokenUsingPasswordFlow(this.form.get('username').value, this.form.get('password').value),\n )\n .pipe(\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => {\n const redirectUrl = snq(() => window.history.state).redirectUrl || (this.options || {}).redirectUrl || '/';\n this.store.dispatch(new Navigate([redirectUrl]));\n }),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { RegisterResponse, RegisterRequest, TenantIdResponse } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountService {\n constructor(private rest: RestService) {}\n\n findTenant(tenantName: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/abp/multi-tenancy/tenants/by-name/${tenantName}`,\n };\n\n return this.rest.request(request);\n }\n\n register(body: RegisterRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/account/register`,\n body,\n };\n\n return this.rest.request(request, { skipHandleError: true });\n }\n}\n","import { ConfigState, GetAppConfiguration } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { from, throwError } from 'rxjs';\nimport { catchError, finalize, switchMap, take, tap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { RegisterRequest } from '../../models';\nimport { AccountService } from '../../services/account.service';\nconst { maxLength, minLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-register',\n templateUrl: './register.component.html',\n})\nexport class RegisterComponent {\n form: FormGroup;\n\n inProgress: boolean;\n\n constructor(\n private fb: FormBuilder,\n private accountService: AccountService,\n private oauthService: OAuthService,\n private store: Store,\n private toasterService: ToasterService,\n ) {\n this.oauthService.configure(this.store.selectSnapshot(ConfigState.getOne('environment')).oAuthConfig);\n this.oauthService.loadDiscoveryDocument();\n\n this.form = this.fb.group({\n username: ['', [required, maxLength(255)]],\n password: ['', [required, maxLength(32)]],\n email: ['', [required, email]],\n });\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n\n this.inProgress = true;\n\n const newUser = {\n userName: this.form.get('username').value,\n password: this.form.get('password').value,\n emailAddress: this.form.get('email').value,\n appName: 'Angular',\n } as RegisterRequest;\n\n this.accountService\n .register(newUser)\n .pipe(\n switchMap(() => from(this.oauthService.fetchTokenUsingPasswordFlow(newUser.userName, newUser.password))),\n switchMap(() => this.store.dispatch(new GetAppConfiguration())),\n tap(() => this.store.dispatch(new Navigate(['/']))),\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description) ||\n snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'),\n 'Error',\n { life: 7000 },\n );\n return throwError(err);\n }),\n finalize(() => (this.inProgress = false)),\n )\n .subscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { DynamicLayoutComponent } from '@abp/ng.core';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: 'login', component: LoginComponent }, { path: 'register', component: RegisterComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { ABP, SetTenant, SessionState } from '@abp/ng.core';\nimport { ToasterService } from '@abp/ng.theme.shared';\nimport { Component, OnInit } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AccountService } from '../../services/account.service';\n\n@Component({\n selector: 'abp-tenant-box',\n templateUrl: './tenant-box.component.html',\n})\nexport class TenantBoxComponent implements OnInit {\n constructor(private store: Store, private toasterService: ToasterService, private accountService: AccountService) {}\n\n tenant = {} as ABP.BasicItem;\n\n tenantName: string;\n\n isModalVisible: boolean;\n\n ngOnInit() {\n this.tenant = this.store.selectSnapshot(SessionState.getTenant) || ({} as ABP.BasicItem);\n this.tenantName = this.tenant.name || '';\n }\n\n onSwitch() {\n this.isModalVisible = true;\n }\n\n save() {\n if (this.tenant.name) {\n this.accountService\n .findTenant(this.tenant.name)\n .pipe(\n take(1),\n catchError(err => {\n this.toasterService.error(\n snq(() => err.error.error_description, 'AbpUi::DefaultErrorMessage'),\n 'AbpUi::Error',\n );\n return throwError(err);\n }),\n )\n .subscribe(({ success, tenantId }) => {\n if (success) {\n this.tenant = {\n id: tenantId,\n name: this.tenant.name,\n };\n this.tenantName = this.tenant.name;\n this.isModalVisible = false;\n } else {\n this.toasterService.error(`AbpUiMultiTenancy::GivenTenantIsNotAvailable`, 'AbpUi::Error', {\n messageLocalizationParams: [this.tenant.name],\n });\n this.tenant = {} as ABP.BasicItem;\n }\n this.store.dispatch(new SetTenant(success ? this.tenant : null));\n });\n } else {\n this.store.dispatch(new SetTenant(null));\n this.tenantName = null;\n this.isModalVisible = false;\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Options } from '../models/options';\n\nexport function optionsFactory(options: Options) {\n return {\n redirectUrl: '/',\n ...options,\n };\n}\n\nexport const ACCOUNT_OPTIONS = new InjectionToken('ACCOUNT_OPTIONS');\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule, Provider } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { TableModule } from 'primeng/table';\nimport { AccountRoutingModule } from './account-routing.module';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { TenantBoxComponent } from './components/tenant-box/tenant-box.component';\nimport { Options } from './models/options';\nimport { ACCOUNT_OPTIONS, optionsFactory } from './tokens/options.token';\n\n@NgModule({\n declarations: [LoginComponent, RegisterComponent, TenantBoxComponent],\n imports: [CoreModule, AccountRoutingModule, ThemeSharedModule, TableModule, NgbDropdownModule, NgxValidateCoreModule],\n exports: [],\n})\nexport class AccountModule {}\n\nexport function AccountProviders(options = {} as Options): Provider[] {\n return [\n { provide: ACCOUNT_OPTIONS, useValue: options },\n {\n provide: 'ACCOUNT_OPTIONS',\n useFactory: optionsFactory,\n deps: [ACCOUNT_OPTIONS],\n },\n ];\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const ACCOUNT_ROUTES = {\n routes: [\n {\n name: 'Account',\n path: 'account',\n invisible: true,\n layout: eLayoutType.application,\n children: [{ path: 'login', name: 'Login', order: 1 }, { path: 'register', name: 'Register', order: 2 }],\n },\n ] as ABP.FullRoute[],\n};\n","export interface Options {\n redirectUrl?: string;\n}\n","export interface RegisterRequest {\n userName: string;\n emailAddress: string;\n password: string;\n appName?: string;\n}\n\nexport interface RegisterResponse {\n tenantId: string;\n userName: string;\n name: string;\n surname: string;\n email: string;\n emailConfirmed: boolean;\n phoneNumber: string;\n phoneNumberConfirmed: boolean;\n twoFactorEnabled: boolean;\n lockoutEnabled: boolean;\n lockoutEnd: string;\n concurrencyStamp: string;\n isDeleted: boolean;\n deleterId: string;\n deletionTime: string;\n lastModificationTime: string;\n lastModifierId: string;\n creationTime: string;\n creatorId: string;\n id: string;\n}\n","export interface TenantIdResponse {\n success: boolean;\n tenantId: string;\n}\n"],"names":["maxLength","minLength","required"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,AAYQ,IAAA,gCAAS,EAAE,gCAAS,EAAE,8BAAQ;AAEtC;IASE,wBACU,EAAe,EACf,YAA0B,EAC1B,KAAY,EACZ,cAA8B,EACS,OAAgB;QAJvD,OAAE,GAAF,EAAE,CAAa;QACf,iBAAY,GAAZ,YAAY,CAAc;QAC1B,UAAK,GAAL,KAAK,CAAO;QACZ,mBAAc,GAAd,cAAc,CAAgB;QACS,YAAO,GAAP,OAAO,CAAS;QAE/D,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACtG,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;QAE1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,QAAQ,EAAE,CAAC,KAAK,CAAC;SAClB,CAAC,CAAC;KACJ;;;;IAED,iCAAQ;;;IAAR;QAAA,iBA0BC;QAzBC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;;QAG9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CACF,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAChH;aACE,IAAI,CACH,SAAS;;;QAAC,cAAM,OAAA,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,GAAA,EAAC,EAC/D,GAAG;;;QAAC;;gBACI,WAAW,GAAG,GAAG;;;YAAC,cAAM,OAAA,MAAM,CAAC,OAAO,CAAC,KAAK,GAAA,EAAC,CAAC,WAAW,IAAI,CAAC,KAAI,CAAC,OAAO,IAAI,EAAE,EAAE,WAAW,IAAI,GAAG;YAC1G,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAClD,EAAC,EACF,UAAU;;;;QAAC,UAAA,GAAG;YACZ,KAAI,CAAC,cAAc,CAAC,KAAK,CACvB,GAAG;;;YAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,iBAAiB,GAAA,EAAC;gBACpC,GAAG;;;gBAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAA,GAAE,iCAAiC,CAAC,EACvE,OAAO,EACP,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;YACF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;SACxB,EAAC,EACF,QAAQ;;;QAAC,cAAM,QAAC,KAAI,CAAC,UAAU,GAAG,KAAK,IAAC,EAAC,CAC1C;aACA,SAAS,EAAE,CAAC;KAChB;;gBApDF,SAAS,SAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,6tDAAqC;iBACtC;;;;gBAfQ,WAAW;gBAGX,YAAY;gBADZ,KAAK;gBAIL,cAAc;gDAoBlB,QAAQ,YAAI,MAAM,SAAC,iBAAiB;;IAuCzC,qBAAC;CArDD,IAqDC;;;IAhDC,8BAAgB;;IAEhB,oCAAoB;;;;;IAGlB,4BAAuB;;;;;IACvB,sCAAkC;;;;;IAClC,+BAAoB;;;;;IACpB,wCAAsC;;;;;IACtC,iCAA+D;;;;;;;AC5BnE;IASE,wBAAoB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;KAAI;;;;;IAEzC,mCAAU;;;;IAAV,UAAW,UAAkB;;YACrB,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,4CAA0C,UAAY;SAC5D;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAyB,OAAO,CAAC,CAAC;KAC3D;;;;;IAED,iCAAQ;;;;IAAR,UAAS,IAAqB;;YACtB,OAAO,GAAkC;YAC7C,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,uBAAuB;YAC5B,IAAI,MAAA;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoC,OAAO,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;KACjG;;gBAvBF,UAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;;gBALQ,WAAW;;;yBAFpB;CAKA,IAwBC;;;;;;IApBa,8BAAyB;;;;;;;ACTvC,AAYQ,IAAAA,kCAAS,EAAEC,kCAAS,EAAEC,gCAAQ,EAAE,wBAAK;AAE7C;IASE,2BACU,EAAe,EACf,cAA8B,EAC9B,YAA0B,EAC1B,KAAY,EACZ,cAA8B;QAJ9B,OAAE,GAAF,EAAE,CAAa;QACf,mBAAc,GAAd,cAAc,CAAgB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,UAAK,GAAL,KAAK,CAAO;QACZ,mBAAc,GAAd,cAAc,CAAgB;QAEtC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACtG,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;QAE1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,CAACA,UAAQ,EAAEF,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,CAACE,UAAQ,EAAEF,WAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,KAAK,EAAE,CAAC,EAAE,EAAE,CAACE,UAAQ,EAAE,KAAK,CAAC,CAAC;SAC/B,CAAC,CAAC;KACJ;;;;IAED,oCAAQ;;;IAAR;QAAA,iBA+BC;QA9BC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;;YAEjB,OAAO,sBAAG;YACd,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;YACzC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK;YACzC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK;YAC1C,OAAO,EAAE,SAAS;SACnB,EAAmB;QAEpB,IAAI,CAAC,cAAc;aAChB,QAAQ,CAAC,OAAO,CAAC;aACjB,IAAI,CACH,SAAS;;;QAAC,cAAM,OAAA,IAAI,CAAC,KAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAA,EAAC,EACxG,SAAS;;;QAAC,cAAM,OAAA,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,GAAA,EAAC,EAC/D,GAAG;;;QAAC,cAAM,OAAA,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAA,EAAC,EACnD,IAAI,CAAC,CAAC,CAAC,EACP,UAAU;;;;QAAC,UAAA,GAAG;YACZ,KAAI,CAAC,cAAc,CAAC,KAAK,CACvB,GAAG;;;YAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,iBAAiB,GAAA,EAAC;gBACpC,GAAG;;;gBAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAA,GAAE,iCAAiC,CAAC,EACvE,OAAO,EACP,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;YACF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;SACxB,EAAC,EACF,QAAQ;;;QAAC,cAAM,QAAC,KAAI,CAAC,UAAU,GAAG,KAAK,IAAC,EAAC,CAC1C;aACA,SAAS,EAAE,CAAC;KAChB;;gBAzDF,SAAS,SAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,i9CAAwC;iBACzC;;;;gBAdQ,WAAW;gBAQX,cAAc;gBALd,YAAY;gBADZ,KAAK;gBAJL,cAAc;;IAuEvB,wBAAC;CA1DD,IA0DC;;;IArDC,iCAAgB;;IAEhB,uCAAoB;;;;;IAGlB,+BAAuB;;;;;IACvB,2CAAsC;;;;;IACtC,yCAAkC;;;;;IAClC,kCAAoB;;;;;IACpB,2CAAsC;;;;;;;AC5B1C;IAMM,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE;IACpD;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,sBAAsB;QACjC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;KAC7G;CACF;AAED;IAAA;KAIoC;;gBAJnC,QAAQ,SAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB;;IACkC,2BAAC;CAJpC;;;;;;ACfA;IAcE,4BAAoB,KAAY,EAAU,cAA8B,EAAU,cAA8B;QAA5F,UAAK,GAAL,KAAK,CAAO;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAEhH,WAAM,sBAAG,EAAE,EAAiB,CAAC;KAFuF;;;;IAQpH,qCAAQ;;;IAAR;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,wBAAK,EAAE,GAAkB,CAAC;QACzF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;KAC1C;;;;IAED,qCAAQ;;;IAAR;QACE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;;;;IAED,iCAAI;;;IAAJ;QAAA,iBAmCC;QAlCC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACpB,IAAI,CAAC,cAAc;iBAChB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;iBAC5B,IAAI,CACH,IAAI,CAAC,CAAC,CAAC,EACP,UAAU;;;;YAAC,UAAA,GAAG;gBACZ,KAAI,CAAC,cAAc,CAAC,KAAK,CACvB,GAAG;;;gBAAC,cAAM,OAAA,GAAG,CAAC,KAAK,CAAC,iBAAiB,GAAA,GAAE,4BAA4B,CAAC,EACpE,cAAc,CACf,CAAC;gBACF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;aACxB,EAAC,CACH;iBACA,SAAS;;;;YAAC,UAAC,EAAqB;oBAAnB,oBAAO,EAAE,sBAAQ;gBAC7B,IAAI,OAAO,EAAE;oBACX,KAAI,CAAC,MAAM,GAAG;wBACZ,EAAE,EAAE,QAAQ;wBACZ,IAAI,EAAE,KAAI,CAAC,MAAM,CAAC,IAAI;qBACvB,CAAC;oBACF,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACnC,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;iBAC7B;qBAAM;oBACL,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,8CAA8C,EAAE,cAAc,EAAE;wBACxF,yBAAyB,EAAE,CAAC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC;qBAC9C,CAAC,CAAC;oBACH,KAAI,CAAC,MAAM,sBAAG,EAAE,EAAiB,CAAC;iBACnC;gBACD,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,GAAG,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;aAClE,EAAC,CAAC;SACN;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B;KACF;;gBAzDF,SAAS,SAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,0gDAA0C;iBAC3C;;;;gBATQ,KAAK;gBAFL,cAAc;gBAMd,cAAc;;IA4DvB,yBAAC;CA1DD,IA0DC;;;IAnDC,oCAA6B;;IAE7B,wCAAmB;;IAEnB,4CAAwB;;;;;IANZ,mCAAoB;;;;;IAAE,4CAAsC;;;;;IAAE,4CAAsC;;;;;;;;;;;ACXlH,SAAgB,cAAc,CAAC,OAAgB;IAC7C,kBACE,WAAW,EAAE,GAAG,IACb,OAAO,EACV;CACH;;AAED,IAAa,eAAe,GAAG,IAAI,cAAc,CAAC,iBAAiB,CAAC;;;;;;ACVpE;IAaA;KAK6B;;gBAL5B,QAAQ,SAAC;oBACR,YAAY,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;oBACrE,OAAO,EAAE,CAAC,UAAU,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;oBACrH,OAAO,EAAE,EAAE;iBACZ;;IAC2B,oBAAC;CAL7B,IAK6B;;;;;AAE7B,SAAgB,gBAAgB,CAAC,OAAuB;IAAvB,wBAAA,EAAA,6BAAU,EAAE,EAAW;IACtD,OAAO;QACL,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE;QAC/C;YACE,OAAO,EAAE,iBAAiB;YAC1B,UAAU,EAAE,cAAc;YAC1B,IAAI,EAAE,CAAC,eAAe,CAAC;SACxB;KACF,CAAC;CACH;;;;;;;;;;;;AC3BD,IAAa,cAAc,GAAG;IAC5B,MAAM,qBAAE;QACN;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,IAAI;YACf,MAAM;YACN,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SACzG;KACF,EAAmB;CACrB;;;;;;;;;;;;;;ACZD,sBAEC;;;IADC,8BAAqB;;;;;;;;;;ACDvB,8BAKC;;;IAJC,mCAAiB;;IACjB,uCAAqB;;IACrB,mCAAiB;;IACjB,kCAAiB;;;;;AAGnB,+BAqBC;;;IApBC,oCAAiB;;IACjB,oCAAiB;;IACjB,gCAAa;;IACb,mCAAgB;;IAChB,iCAAc;;IACd,0CAAwB;;IACxB,uCAAoB;;IACpB,gDAA8B;;IAC9B,4CAA0B;;IAC1B,0CAAwB;;IACxB,sCAAmB;;IACnB,4CAAyB;;IACzB,qCAAmB;;IACnB,qCAAkB;;IAClB,wCAAqB;;IACrB,gDAA6B;;IAC7B,0CAAuB;;IACvB,wCAAqB;;IACrB,qCAAkB;;IAClB,8BAAW;;;;;;;;;;AC3Bb,+BAGC;;;IAFC,mCAAiB;;IACjB,oCAAiB;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/npm/ng-packs/dist/account/lib/account.module.d.ts b/npm/ng-packs/dist/account/lib/account.module.d.ts index ab6f139b3a..7174d1c1c5 100644 --- a/npm/ng-packs/dist/account/lib/account.module.d.ts +++ b/npm/ng-packs/dist/account/lib/account.module.d.ts @@ -1,2 +1,5 @@ +import { Provider } from '@angular/core'; +import { Options } from './models/options'; export declare class AccountModule { } +export declare function AccountProviders(options?: Options): Provider[]; diff --git a/npm/ng-packs/dist/account/lib/constants/routes.d.ts b/npm/ng-packs/dist/account/lib/constants/routes.d.ts index 73eb146b00..09926ecd03 100644 --- a/npm/ng-packs/dist/account/lib/constants/routes.d.ts +++ b/npm/ng-packs/dist/account/lib/constants/routes.d.ts @@ -1,5 +1,4 @@ import { ABP } from '@abp/ng.core'; export declare const ACCOUNT_ROUTES: { routes: ABP.FullRoute[]; - settings: any[]; }; diff --git a/npm/ng-packs/dist/account/lib/root-account.module.d.ts b/npm/ng-packs/dist/account/lib/root-account.module.d.ts deleted file mode 100644 index e182b0e9b3..0000000000 --- a/npm/ng-packs/dist/account/lib/root-account.module.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ModuleWithProviders } from '@angular/core'; -import { Options } from './models/options'; -export declare class RootAccountModule { - static forRoot(options?: Options): ModuleWithProviders; -} diff --git a/npm/ng-packs/dist/account/package.json b/npm/ng-packs/dist/account/package.json index 5001350832..d97e141a19 100644 --- a/npm/ng-packs/dist/account/package.json +++ b/npm/ng-packs/dist/account/package.json @@ -1,8 +1,8 @@ { "name": "@abp/ng.account", - "version": "0.8.3", + "version": "0.9.0", "dependencies": { - "@abp/ng.theme.shared": "^0.8.3", + "@abp/ng.theme.shared": "^0.9.0", "tslib": "^1.9.0" }, "publishConfig": { diff --git a/npm/ng-packs/dist/account/public-api.d.ts b/npm/ng-packs/dist/account/public-api.d.ts index d75f7155f1..0e845f0768 100644 --- a/npm/ng-packs/dist/account/public-api.d.ts +++ b/npm/ng-packs/dist/account/public-api.d.ts @@ -1,4 +1,3 @@ -export * from './lib/root-account.module'; export * from './lib/account.module'; export * from './lib/components'; export * from './lib/constants/routes'; diff --git a/npm/ng-packs/dist/core/abp-ng.core.d.ts b/npm/ng-packs/dist/core/abp-ng.core.d.ts index e6300c00d5..37c51450d9 100644 --- a/npm/ng-packs/dist/core/abp-ng.core.d.ts +++ b/npm/ng-packs/dist/core/abp-ng.core.d.ts @@ -2,29 +2,31 @@ * Generated bundle index. Do not edit. */ export * from './public-api'; +export { AbstractNgModelComponent as ɵbc } from './lib/abstracts/ng-model.component'; export { GetAppConfiguration as ɵp, PatchRouteByName as ɵo } from './lib/actions/config.actions'; export { ChangePassword as ɵf, GetProfile as ɵd, UpdateProfile as ɵe } from './lib/actions/profile.actions'; export { SetLanguage as ɵj, SetTenant as ɵk } from './lib/actions/session.actions'; export { DynamicLayoutComponent as ɵr } from './lib/components/dynamic-layout.component'; export { RouterOutletComponent as ɵq } from './lib/components/router-outlet.component'; -export { AutofocusDirective as ɵt } from './lib/directives/autofocus.directive'; -export { InputEventDebounceDirective as ɵz } from './lib/directives/debounce.directive'; -export { EllipsisDirective as ɵu } from './lib/directives/ellipsis.directive'; +export { AutofocusDirective as ɵs } from './lib/directives/autofocus.directive'; +export { InputEventDebounceDirective as ɵba } from './lib/directives/debounce.directive'; +export { EllipsisDirective as ɵt } from './lib/directives/ellipsis.directive'; +export { ForDirective as ɵu } from './lib/directives/for.directive'; export { FormSubmitDirective as ɵv } from './lib/directives/form-submit.directive'; -export { PermissionDirective as ɵx } from './lib/directives/permission.directive'; -export { ClickEventStopPropagationDirective as ɵba } from './lib/directives/stop-propagation.directive'; -export { VisibilityDirective as ɵy } from './lib/directives/visibility.directive'; -export { ApiInterceptor as ɵbf } from './lib/interceptors/api.interceptor'; +export { PermissionDirective as ɵy } from './lib/directives/permission.directive'; +export { ClickEventStopPropagationDirective as ɵbb } from './lib/directives/stop-propagation.directive'; +export { VisibilityDirective as ɵz } from './lib/directives/visibility.directive'; +export { ApiInterceptor as ɵbh } from './lib/interceptors/api.interceptor'; export { ABP as ɵl, Profile as ɵg } from './lib/models'; export { LocalizationPipe as ɵw } from './lib/pipes/localization.pipe'; -export { ConfigPlugin as ɵbe, NGXS_CONFIG_PLUGIN_OPTIONS as ɵbd } from './lib/plugins/config/config.plugin'; -export { LocaleId as ɵbb, LocaleProvider as ɵbc } from './lib/providers/locale.provider'; +export { SortPipe as ɵx } from './lib/pipes/sort.pipe'; +export { ConfigPlugin as ɵbg, NGXS_CONFIG_PLUGIN_OPTIONS as ɵbf } from './lib/plugins/config/config.plugin'; +export { LocaleId as ɵbd, LocaleProvider as ɵbe } from './lib/providers/locale.provider'; export { ApplicationConfigurationService as ɵn } from './lib/services/application-configuration.service'; export { LocalizationService as ɵi } from './lib/services/localization.service'; export { ProfileService as ɵb } from './lib/services/profile.service'; export { RestService as ɵc } from './lib/services/rest.service'; -export { ConfigState as ɵs } from './lib/states'; export { ConfigState as ɵm } from './lib/states/config.state'; export { ProfileState as ɵa } from './lib/states/profile.state'; export { SessionState as ɵh } from './lib/states/session.state'; -export { getInitialData as ɵbg, localeInitializer as ɵbh } from './lib/utils/initial-utils'; +export { getInitialData as ɵbi, localeInitializer as ɵbj } from './lib/utils/initial-utils'; diff --git a/npm/ng-packs/dist/core/abp-ng.core.metadata.json b/npm/ng-packs/dist/core/abp-ng.core.metadata.json index 0285cce08b..e98d0bfcab 100644 --- a/npm/ng-packs/dist/core/abp-ng.core.metadata.json +++ b/npm/ng-packs/dist/core/abp-ng.core.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"exports":[{"from":"./lib/common-utils"},{"from":"./lib/generator-utils"},{"from":"./lib/initial-utils"},{"from":"./lib/route-utils"},{"from":"./lib/rxjs-utils"},{"from":"./lib/rest.service"}],"metadata":{"CoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":27,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":29,"character":4},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵm"}]]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/storage-plugin","name":"NgxsStoragePluginModule","line":30,"character":4},"member":"forRoot"},"arguments":[{"key":"SessionState"}]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/router-plugin","name":"NgxsRouterPluginModule","line":31,"character":4},"member":"forRoot"}},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":32,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":33,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":34,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":35,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":36,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"ɵy"},{"__symbolic":"reference","name":"ɵz"},{"__symbolic":"reference","name":"ɵba"}],"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":51,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":52,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":53,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":54,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":55,"character":4},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"ɵy"},{"__symbolic":"reference","name":"ɵz"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵba"}],"providers":[{"__symbolic":"reference","name":"ɵw"}],"entryComponents":[{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["options"],"defaults":[{}],"value":{"ngModule":{"__symbolic":"reference","name":"CoreModule"},"providers":[{"__symbolic":"reference","name":"ɵbc"},{"provide":{"__symbolic":"reference","module":"@ngxs/store","name":"NGXS_PLUGINS","line":78,"character":19},"useClass":{"__symbolic":"reference","name":"ɵbe"},"multi":true},{"provide":{"__symbolic":"reference","name":"ɵbd"},"useValue":{"__symbolic":"reference","name":"options"}},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":87,"character":19},"useClass":{"__symbolic":"reference","name":"ɵbf"},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":92,"character":19},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":94,"character":17}],"useFactory":{"__symbolic":"reference","name":"ɵbg"}},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":98,"character":19},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":100,"character":17}],"useFactory":{"__symbolic":"reference","name":"ɵbh"}}]}}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":6,"character":1},"arguments":[{"name":"ProfileState","defaults":{}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"profileGet":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":18,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}]}],"profileUpdate":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":29,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"changePassword":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":40,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵf"}]}]}]},"statics":{"getProfile":{"__symbolic":"function","parameters":["profile"],"value":{"__symbolic":"reference","name":"profile"}}}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"get":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"changePassword":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":13,"character":28},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":13,"character":55}]}],"handleError":[{"__symbolic":"method"}],"request":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","members":{},"statics":{"type":"[Profile] Get"}},"ɵe":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵg"},"member":"Response"}]}]},"statics":{"type":"[Profile] Update"}},"ɵf":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵg"},"member":"ChangePasswordRequest"}]}]},"statics":{"type":"[Profile] Change Password"}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":7,"character":1},"arguments":[{"name":"SessionState","defaults":{}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵi"}]}],"setLanguage":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":24,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵj"}]}]}],"setTenantId":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":33,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵk"}]}]}]},"statics":{"getLanguage":{"__symbolic":"function","parameters":["language"],"value":{"__symbolic":"reference","name":"language"}},"getTenant":{"__symbolic":"function","parameters":["tenant"],"value":{"__symbolic":"reference","name":"tenant"}}}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":20,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":21,"character":5}}]],"parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":17,"character":19},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":18,"character":20},{"__symbolic":"reference","module":"@ngxs/store","name":"Actions","line":19,"character":21},{"__symbolic":"reference","name":"ɵi"}]}],"setRouteReuse":[{"__symbolic":"method"}],"registerLocale":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"instant":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵj":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Session] Set Language"}},"ɵk":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵl"},"member":"BasicItem"}]}]},"statics":{"type":"[Session] Set Tenant"}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":11,"character":1},"arguments":[{"name":"ConfigState","defaults":{}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":172,"character":95}]}],"addData":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":174,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵp"}]}]}],"patchRoute":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":194,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵo"}]}]}]},"statics":{"getAll":{"__symbolic":"function","parameters":["state"],"value":{"__symbolic":"reference","name":"state"}},"getApplicationInfo":{"__symbolic":"function","parameters":["state"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"state"},"member":"environment"},"member":"application"},"right":{}}}}},"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"getConfiguration":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵo":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Could not resolve type","line":4,"character":52,"context":{"typeName":"Partial"},"module":"./lib/actions/config.actions"}]}]},"statics":{"type":"[Config] Patch Route By Name"}},"ɵp":{"__symbolic":"class","members":{},"statics":{"type":"[Config] Get App Configuration"}},"ɵq":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"abp-router-outlet","template":"\n \n "}]}],"members":{}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"abp-dynamic-layout","template":"\n \n\n \n \n "}]}],"members":{"requirements$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":20,"character":3},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵs"},"member":"getOne"},"arguments":["requirements"]}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":25,"character":30},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":25,"character":53}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵt":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[autofocus]"}]}],"members":{"delay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3},"arguments":["autofocus"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":9,"character":29}]}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"ɵu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[abpEllipsis]"}]}],"members":{"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3},"arguments":["abpEllipsis"]}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":9,"character":3},"arguments":["title"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"enabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3},"arguments":["abpEllipsisEnabled"]}]}],"inlineClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":16,"character":3},"arguments":["class.abp-ellipsis-inline"]}]}],"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":21,"character":3},"arguments":["class.abp-ellipsis"]}]}],"maxWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":26,"character":3},"arguments":["style.max-width"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":31,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":31,"character":63}]}],"ngAfterContentInit":[{"__symbolic":"method"}]}},"ɵv":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"form[ngSubmit][formGroup]"}]}],"members":{"notValidateOnSubmit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"ngSubmit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":25,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":31,"character":5}}],null,null],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormGroupDirective","line":31,"character":40},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":32,"character":29,"context":{"typeName":"HTMLFormElement"},"module":"./lib/directives/form-submit.directive"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":33,"character":19}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}]}},"ɵw":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":7,"character":1},"arguments":[{"name":"abpLocalization","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":18,"character":29}]}],"transform":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵx":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[abpPermission]"}]}],"members":{"condition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3},"arguments":["abpPermission"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":11,"character":15}}],null,null],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":11,"character":41},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":11,"character":71},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":11,"character":97}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[abpVisibility]"}]}],"members":{"focusedElement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3},"arguments":["abpVisibility"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":13,"character":15}}],null],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":13,"character":41},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":13,"character":71}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"disconnect":[{"__symbolic":"method"}]}},"ɵz":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[input.debounce]"}]}],"members":{"debounce":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"debounceEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3},"arguments":["input.debounce"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":13,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":13,"character":55}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵba":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[click.stop]"}]}],"members":{"stopPropEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":8,"character":3},"arguments":["click.stop"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":10,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":10,"character":55}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵbb":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"String"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵi"}]}],"toString":[{"__symbolic":"method"}],"valueOf":[{"__symbolic":"method"}]}},"ɵbc":{"provide":{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":20,"character":11},"useClass":{"__symbolic":"reference","name":"ɵbb"},"deps":[{"__symbolic":"reference","name":"ɵi"}]},"ɵbd":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":7,"character":46},"arguments":["NGXS_CONFIG_PLUGIN_OPTIONS"]},"ɵbe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":13,"character":15},"arguments":[{"__symbolic":"reference","name":"ɵbd"}]}],null],"parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵl"},"member":"Root"},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":13,"character":93}]}],"handle":[{"__symbolic":"method"}]}},"ɵbf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":10,"character":36},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":10,"character":65}]}],"intercept":[{"__symbolic":"method"}]}},"ɵbg":{"__symbolic":"function"},"ɵbh":{"__symbolic":"function"}},"origins":{"CoreModule":"./lib/core.module","ɵa":"./lib/states/profile.state","ɵb":"./lib/services/profile.service","ɵc":"./lib/services/rest.service","ɵd":"./lib/actions/profile.actions","ɵe":"./lib/actions/profile.actions","ɵf":"./lib/actions/profile.actions","ɵg":"./lib/models","ɵh":"./lib/states/session.state","ɵi":"./lib/services/localization.service","ɵj":"./lib/actions/session.actions","ɵk":"./lib/actions/session.actions","ɵl":"./lib/models","ɵm":"./lib/states/config.state","ɵn":"./lib/services/application-configuration.service","ɵo":"./lib/actions/config.actions","ɵp":"./lib/actions/config.actions","ɵq":"./lib/components/router-outlet.component","ɵr":"./lib/components/dynamic-layout.component","ɵs":"./lib/states","ɵt":"./lib/directives/autofocus.directive","ɵu":"./lib/directives/ellipsis.directive","ɵv":"./lib/directives/form-submit.directive","ɵw":"./lib/pipes/localization.pipe","ɵx":"./lib/directives/permission.directive","ɵy":"./lib/directives/visibility.directive","ɵz":"./lib/directives/debounce.directive","ɵba":"./lib/directives/stop-propagation.directive","ɵbb":"./lib/providers/locale.provider","ɵbc":"./lib/providers/locale.provider","ɵbd":"./lib/plugins/config/config.plugin","ɵbe":"./lib/plugins/config/config.plugin","ɵbf":"./lib/interceptors/api.interceptor","ɵbg":"./lib/utils/initial-utils","ɵbh":"./lib/utils/initial-utils"},"importAs":"@abp/ng.core"} \ No newline at end of file +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/common-utils"},{"from":"./lib/generator-utils"},{"from":"./lib/initial-utils"},{"from":"./lib/route-utils"},{"from":"./lib/rxjs-utils"},{"from":"./lib/rest.service"}],"metadata":{"CoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":30,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":32,"character":4},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵm"}]]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/storage-plugin","name":"NgxsStoragePluginModule","line":33,"character":4},"member":"forRoot"},"arguments":[{"key":"SessionState"}]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/router-plugin","name":"NgxsRouterPluginModule","line":34,"character":4},"member":"forRoot"}},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":35,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":36,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":37,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":38,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":39,"character":4}],"declarations":[{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"ɵy"},{"__symbolic":"reference","name":"ɵz"},{"__symbolic":"reference","name":"ɵba"},{"__symbolic":"reference","name":"ɵbb"},{"__symbolic":"reference","name":"ɵbc"}],"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":57,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":58,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":59,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":60,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":61,"character":4},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"ɵy"},{"__symbolic":"reference","name":"ɵz"},{"__symbolic":"reference","name":"ɵba"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵbb"},{"__symbolic":"reference","name":"ɵbc"}],"providers":[{"__symbolic":"reference","name":"ɵw"}],"entryComponents":[{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["options"],"defaults":[{}],"value":{"ngModule":{"__symbolic":"reference","name":"CoreModule"},"providers":[{"__symbolic":"reference","name":"ɵbe"},{"provide":{"__symbolic":"reference","module":"@ngxs/store","name":"NGXS_PLUGINS","line":87,"character":19},"useClass":{"__symbolic":"reference","name":"ɵbg"},"multi":true},{"provide":{"__symbolic":"reference","name":"ɵbf"},"useValue":{"__symbolic":"reference","name":"options"}},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":96,"character":19},"useClass":{"__symbolic":"reference","name":"ɵbh"},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":101,"character":19},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":103,"character":17}],"useFactory":{"__symbolic":"reference","name":"ɵbi"}},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":107,"character":19},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":109,"character":17}],"useFactory":{"__symbolic":"reference","name":"ɵbj"}}]}}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":6,"character":1},"arguments":[{"name":"ProfileState","defaults":{}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"profileGet":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":18,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}]}],"profileUpdate":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":29,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"changePassword":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":40,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵf"}]}]}]},"statics":{"getProfile":{"__symbolic":"function","parameters":["profile"],"value":{"__symbolic":"reference","name":"profile"}}}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"get":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"changePassword":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":13,"character":28},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":13,"character":55}]}],"handleError":[{"__symbolic":"method"}],"request":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","members":{},"statics":{"type":"[Profile] Get"}},"ɵe":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵg"},"member":"Response"}]}]},"statics":{"type":"[Profile] Update"}},"ɵf":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵg"},"member":"ChangePasswordRequest"}]}]},"statics":{"type":"[Profile] Change Password"}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":7,"character":1},"arguments":[{"name":"SessionState","defaults":{}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵi"}]}],"setLanguage":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":24,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵj"}]}]}],"setTenantId":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":33,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵk"}]}]}]},"statics":{"getLanguage":{"__symbolic":"function","parameters":["language"],"value":{"__symbolic":"reference","name":"language"}},"getTenant":{"__symbolic":"function","parameters":["tenant"],"value":{"__symbolic":"reference","name":"tenant"}}}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":21,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":22,"character":5}}]],"parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":17,"character":19},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":18,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":19,"character":20},{"__symbolic":"reference","module":"@ngxs/store","name":"Actions","line":20,"character":21},{"__symbolic":"reference","name":"ɵi"}]}],"setRouteReuse":[{"__symbolic":"method"}],"registerLocale":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"instant":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵj":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Session] Set Language"}},"ɵk":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵl"},"member":"BasicItem"}]}]},"statics":{"type":"[Session] Set Tenant"}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":11,"character":1},"arguments":[{"name":"ConfigState","defaults":{}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":162,"character":95}]}],"addData":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":164,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵp"}]}]}],"patchRoute":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":184,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵo"}]}]}]},"statics":{"getAll":{"__symbolic":"function","parameters":["state"],"value":{"__symbolic":"reference","name":"state"}},"getApplicationInfo":{"__symbolic":"function","parameters":["state"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"state"},"member":"environment"},"member":"application"},"right":{}}}}},"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"getConfiguration":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵo":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Could not resolve type","line":4,"character":52,"context":{"typeName":"Partial"},"module":"./lib/actions/config.actions"}]}]},"statics":{"type":"[Config] Patch Route By Name"}},"ɵp":{"__symbolic":"class","members":{},"statics":{"type":"[Config] Get App Configuration"}},"ɵq":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"abp-router-outlet","template":"\n \n "}]}],"members":{}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"abp-dynamic-layout","template":"\n \n\n \n \n "}]}],"members":{"requirements$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":21,"character":3},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵm"},"member":"getOne"},"arguments":["requirements"]}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":26,"character":30},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":26,"character":53},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":26,"character":84}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[autofocus]"}]}],"members":{"delay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3},"arguments":["autofocus"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":9,"character":29}]}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"ɵt":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[abpEllipsis]"}]}],"members":{"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3},"arguments":["abpEllipsis"]}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":9,"character":3},"arguments":["title"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"enabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3},"arguments":["abpEllipsisEnabled"]}]}],"inlineClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":16,"character":3},"arguments":["class.abp-ellipsis-inline"]}]}],"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":21,"character":3},"arguments":["class.abp-ellipsis"]}]}],"maxWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":26,"character":3},"arguments":["style.max-width"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":31,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":31,"character":63}]}],"ngAfterContentInit":[{"__symbolic":"method"}]}},"ɵu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":26,"character":1},"arguments":[{"selector":"[abpFor]"}]}],"members":{"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3},"arguments":["abpForOf"]}]}],"orderBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3},"arguments":["abpForOrderBy"]}]}],"orderDir":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3},"arguments":["abpForOrderDir"]}]}],"filterBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3},"arguments":["abpForFilterBy"]}]}],"filterVal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3},"arguments":["abpForFilterVal"]}]}],"trackBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3},"arguments":["abpForTrackBy"]}]}],"compareBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3},"arguments":["abpForCompareBy"]}]}],"emptyRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3},"arguments":["abpForEmptyRef"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Reference to non-exported class","line":18,"character":0,"context":{"className":"AbpForContext"},"module":"./lib/directives/for.directive"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":68,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"IterableDiffers","line":69,"character":21}]}],"iterateOverAppliedOperations":[{"__symbolic":"method"}],"iterateOverAttachedViews":[{"__symbolic":"method"}],"projectItems":[{"__symbolic":"method"}],"sortItems":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵv":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"form[ngSubmit][formGroup]"}]}],"members":{"notValidateOnSubmit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"ngSubmit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":25,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":31,"character":5}}],null,null],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormGroupDirective","line":31,"character":40},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":32,"character":29,"context":{"typeName":"HTMLFormElement"},"module":"./lib/directives/form-submit.directive"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":33,"character":19}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}]}},"ɵw":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":7,"character":1},"arguments":[{"name":"abpLocalization","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":18,"character":29}]}],"transform":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵx":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":2,"character":1},"arguments":[{"name":"abpSort","pure":false}]}],"members":{"transform":[{"__symbolic":"method"}]}},"ɵy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[abpPermission]"}]}],"members":{"condition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3},"arguments":["abpPermission"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":11,"character":15}}],null,null],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":11,"character":41},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":11,"character":71},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":11,"character":97}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵz":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[abpVisibility]"}]}],"members":{"focusedElement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3},"arguments":["abpVisibility"]}]}],"mutationObserverEnabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":16,"character":15}}],null],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":16,"character":41},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":16,"character":71}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"disconnect":[{"__symbolic":"method"}],"removeFromDOM":[{"__symbolic":"method"}]}},"ɵba":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[input.debounce]"}]}],"members":{"debounce":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"debounceEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3},"arguments":["input.debounce"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":13,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":13,"character":55}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵbb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[click.stop]"}]}],"members":{"stopPropEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":8,"character":3},"arguments":["click.stop"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":10,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":10,"character":55}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵbc":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"template":""}]}],"members":{"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":5,"character":3}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":24,"character":31}]}],"notifyValueChange":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}]}},"ɵbd":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"String"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵi"}]}],"toString":[{"__symbolic":"method"}],"valueOf":[{"__symbolic":"method"}]}},"ɵbe":{"provide":{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":20,"character":11},"useClass":{"__symbolic":"reference","name":"ɵbd"},"deps":[{"__symbolic":"reference","name":"ɵi"}]},"ɵbf":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":8,"character":46},"arguments":["NGXS_CONFIG_PLUGIN_OPTIONS"]},"ɵbg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":14,"character":15},"arguments":[{"__symbolic":"reference","name":"ɵbf"}]}],null],"parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵl"},"member":"Root"},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":14,"character":93}]}],"handle":[{"__symbolic":"method"}]}},"ɵbh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":10,"character":36},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":10,"character":65}]}],"intercept":[{"__symbolic":"method"}]}},"ɵbi":{"__symbolic":"function"},"ɵbj":{"__symbolic":"function"}},"origins":{"CoreModule":"./lib/core.module","ɵa":"./lib/states/profile.state","ɵb":"./lib/services/profile.service","ɵc":"./lib/services/rest.service","ɵd":"./lib/actions/profile.actions","ɵe":"./lib/actions/profile.actions","ɵf":"./lib/actions/profile.actions","ɵg":"./lib/models","ɵh":"./lib/states/session.state","ɵi":"./lib/services/localization.service","ɵj":"./lib/actions/session.actions","ɵk":"./lib/actions/session.actions","ɵl":"./lib/models","ɵm":"./lib/states/config.state","ɵn":"./lib/services/application-configuration.service","ɵo":"./lib/actions/config.actions","ɵp":"./lib/actions/config.actions","ɵq":"./lib/components/router-outlet.component","ɵr":"./lib/components/dynamic-layout.component","ɵs":"./lib/directives/autofocus.directive","ɵt":"./lib/directives/ellipsis.directive","ɵu":"./lib/directives/for.directive","ɵv":"./lib/directives/form-submit.directive","ɵw":"./lib/pipes/localization.pipe","ɵx":"./lib/pipes/sort.pipe","ɵy":"./lib/directives/permission.directive","ɵz":"./lib/directives/visibility.directive","ɵba":"./lib/directives/debounce.directive","ɵbb":"./lib/directives/stop-propagation.directive","ɵbc":"./lib/abstracts/ng-model.component","ɵbd":"./lib/providers/locale.provider","ɵbe":"./lib/providers/locale.provider","ɵbf":"./lib/plugins/config/config.plugin","ɵbg":"./lib/plugins/config/config.plugin","ɵbh":"./lib/interceptors/api.interceptor","ɵbi":"./lib/utils/initial-utils","ɵbj":"./lib/utils/initial-utils"},"importAs":"@abp/ng.core"} \ No newline at end of file diff --git a/npm/ng-packs/dist/core/bundles/abp-ng.core.umd.js b/npm/ng-packs/dist/core/bundles/abp-ng.core.umd.js index c4af371d2f..0bd452a700 100644 --- a/npm/ng-packs/dist/core/bundles/abp-ng.core.umd.js +++ b/npm/ng-packs/dist/core/bundles/abp-ng.core.umd.js @@ -1,10 +1,12 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/router'), require('@ngxs/store'), require('rxjs'), require('@angular/common/http'), require('rxjs/operators'), require('snq'), require('@angular/common'), require('@angular/forms'), require('angular-oauth2-oidc'), require('@ngxs/router-plugin'), require('@ngxs/storage-plugin'), require('@ngx-validate/core')) : - typeof define === 'function' && define.amd ? define('@abp/ng.core', ['exports', '@angular/core', '@angular/router', '@ngxs/store', 'rxjs', '@angular/common/http', 'rxjs/operators', 'snq', '@angular/common', '@angular/forms', 'angular-oauth2-oidc', '@ngxs/router-plugin', '@ngxs/storage-plugin', '@ngx-validate/core'], factory) : - (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.core = {}), global.ng.core, global.ng.router, global.store, global.rxjs, global.ng.common.http, global.rxjs.operators, global.snq, global.ng.common, global.ng.forms, global.angularOauth2Oidc, global.routerPlugin, global.storagePlugin, global.core$1)); -}(this, function (exports, core, router, store, rxjs, http, operators, snq, common, forms, angularOauth2Oidc, routerPlugin, storagePlugin, core$1) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/router'), require('@ngxs/store'), require('rxjs'), require('snq'), require('@angular/common/http'), require('rxjs/operators'), require('@angular/common'), require('just-compare'), require('just-clone'), require('@angular/forms'), require('angular-oauth2-oidc'), require('@ngxs/router-plugin'), require('@ngxs/storage-plugin'), require('@ngx-validate/core')) : + typeof define === 'function' && define.amd ? define('@abp/ng.core', ['exports', '@angular/core', '@angular/router', '@ngxs/store', 'rxjs', 'snq', '@angular/common/http', 'rxjs/operators', '@angular/common', 'just-compare', 'just-clone', '@angular/forms', 'angular-oauth2-oidc', '@ngxs/router-plugin', '@ngxs/storage-plugin', '@ngx-validate/core'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.core = {}), global.ng.core, global.ng.router, global.store, global.rxjs, global.snq, global.ng.common.http, global.rxjs.operators, global.ng.common, global.compare, global.clone, global.ng.forms, global.angularOauth2Oidc, global.routerPlugin, global.storagePlugin, global.core$1)); +}(this, function (exports, core, router, store, rxjs, snq, http, operators, common, compare, clone, forms, angularOauth2Oidc, routerPlugin, storagePlugin, core$1) { 'use strict'; snq = snq && snq.hasOwnProperty('default') ? snq['default'] : snq; + compare = compare && compare.hasOwnProperty('default') ? compare['default'] : compare; + clone = clone && clone.hasOwnProperty('default') ? clone['default'] : clone; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. @@ -203,6 +205,135 @@ return (mod && mod.__esModule) ? mod : { default: mod }; } + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @template T + */ + var AbstractNgModelComponent = /** @class */ (function () { + function AbstractNgModelComponent(injector) { + this.injector = injector; + this.cdRef = injector.get((/** @type {?} */ (core.ChangeDetectorRef))); + } + Object.defineProperty(AbstractNgModelComponent.prototype, "value", { + get: /** + * @return {?} + */ + function () { + return this._value; + }, + set: /** + * @param {?} value + * @return {?} + */ + function (value) { + this._value = value; + this.notifyValueChange(); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + AbstractNgModelComponent.prototype.notifyValueChange = /** + * @return {?} + */ + function () { + if (this.onChange) { + this.onChange(this.value); + } + }; + /** + * @param {?} value + * @return {?} + */ + AbstractNgModelComponent.prototype.writeValue = /** + * @param {?} value + * @return {?} + */ + function (value) { + var _this = this; + this._value = value; + setTimeout((/** + * @return {?} + */ + function () { return _this.cdRef.detectChanges(); }), 0); + }; + /** + * @param {?} fn + * @return {?} + */ + AbstractNgModelComponent.prototype.registerOnChange = /** + * @param {?} fn + * @return {?} + */ + function (fn) { + this.onChange = fn; + }; + /** + * @param {?} fn + * @return {?} + */ + AbstractNgModelComponent.prototype.registerOnTouched = /** + * @param {?} fn + * @return {?} + */ + function (fn) { + this.onTouched = fn; + }; + /** + * @param {?} isDisabled + * @return {?} + */ + AbstractNgModelComponent.prototype.setDisabledState = /** + * @param {?} isDisabled + * @return {?} + */ + function (isDisabled) { + this.disabled = isDisabled; + }; + AbstractNgModelComponent.decorators = [ + { type: core.Component, args: [{ template: '' }] } + ]; + /** @nocollapse */ + AbstractNgModelComponent.ctorParameters = function () { return [ + { type: core.Injector } + ]; }; + AbstractNgModelComponent.propDecorators = { + disabled: [{ type: core.Input }], + value: [{ type: core.Input }] + }; + return AbstractNgModelComponent; + }()); + if (false) { + /** @type {?} */ + AbstractNgModelComponent.prototype.disabled; + /** @type {?} */ + AbstractNgModelComponent.prototype.onChange; + /** @type {?} */ + AbstractNgModelComponent.prototype.onTouched; + /** + * @type {?} + * @protected + */ + AbstractNgModelComponent.prototype._value; + /** + * @type {?} + * @protected + */ + AbstractNgModelComponent.prototype.cdRef; + /** @type {?} */ + AbstractNgModelComponent.prototype.injector; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -360,86 +491,6 @@ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var RestService = /** @class */ (function () { - function RestService(http, store) { - this.http = http; - this.store = store; - } - /** - * @param {?} err - * @return {?} - */ - RestService.prototype.handleError = /** - * @param {?} err - * @return {?} - */ - function (err) { - this.store.dispatch(new RestOccurError(err)); - console.error(err); - return rxjs.throwError(err); - }; - /** - * @template T, R - * @param {?} request - * @param {?=} config - * @param {?=} api - * @return {?} - */ - RestService.prototype.request = /** - * @template T, R - * @param {?} request - * @param {?=} config - * @param {?=} api - * @return {?} - */ - function (request, config, api) { - var _this = this; - if (config === void 0) { config = {}; } - var _a = config.observe, observe = _a === void 0 ? "body" /* Body */ : _a, skipHandleError = config.skipHandleError; - /** @type {?} */ - var url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url; - var method = request.method, options = __rest(request, ["method"]); - return this.http.request(method, url, (/** @type {?} */ (__assign({ observe: observe }, options)))).pipe(observe === "body" /* Body */ ? operators.take(1) : null, operators.catchError((/** - * @param {?} err - * @return {?} - */ - function (err) { - if (skipHandleError) { - return rxjs.throwError(err); - } - return _this.handleError(err); - }))); - }; - RestService.decorators = [ - { type: core.Injectable, args: [{ - providedIn: 'root', - },] } - ]; - /** @nocollapse */ - RestService.ctorParameters = function () { return [ - { type: http.HttpClient }, - { type: store.Store } - ]; }; - /** @nocollapse */ RestService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function RestService_Factory() { return new RestService(core.ɵɵinject(http.HttpClient), core.ɵɵinject(store.Store)); }, token: RestService, providedIn: "root" }); - return RestService; - }()); - if (false) { - /** - * @type {?} - * @private - */ - RestService.prototype.http; - /** - * @type {?} - * @private - */ - RestService.prototype.store; - } - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -637,48 +688,6 @@ ProfileState.prototype.profileService; } - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var ApplicationConfigurationService = /** @class */ (function () { - function ApplicationConfigurationService(rest) { - this.rest = rest; - } - /** - * @return {?} - */ - ApplicationConfigurationService.prototype.getConfiguration = /** - * @return {?} - */ - function () { - /** @type {?} */ - var request = { - method: 'GET', - url: '/api/abp/application-configuration', - }; - return this.rest.request(request); - }; - ApplicationConfigurationService.decorators = [ - { type: core.Injectable, args: [{ - providedIn: 'root', - },] } - ]; - /** @nocollapse */ - ApplicationConfigurationService.ctorParameters = function () { return [ - { type: RestService } - ]; }; - /** @nocollapse */ ApplicationConfigurationService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ApplicationConfigurationService_Factory() { return new ApplicationConfigurationService(core.ɵɵinject(RestService)); }, token: ApplicationConfigurationService, providedIn: "root" }); - return ApplicationConfigurationService; - }()); - if (false) { - /** - * @type {?} - * @private - */ - ApplicationConfigurationService.prototype.rest; - } - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -785,9 +794,10 @@ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var LocalizationService = /** @class */ (function () { - function LocalizationService(store, router, actions, otherInstance) { + function LocalizationService(store, router, ngZone, actions, otherInstance) { this.store = store; this.router = router; + this.ngZone = ngZone; this.actions = actions; if (otherInstance) throw new Error('LocaleService should have only one instance.'); @@ -834,17 +844,22 @@ return registerLocale(locale).then((/** * @return {?} */ - function () { return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.router.navigateByUrl(this.router.url).catch(rxjs.noop)]; - case 1: - _a.sent(); - this.setRouteReuse(shouldReuseRoute); - return [2 /*return*/]; - } - }); - }); })); + function () { + _this.ngZone.run((/** + * @return {?} + */ + function () { return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, this.router.navigateByUrl(this.router.url).catch(rxjs.noop)]; + case 1: + _a.sent(); + this.setRouteReuse(shouldReuseRoute); + return [2 /*return*/]; + } + }); + }); })); + })); }; /** * @param {?} keys @@ -887,10 +902,11 @@ LocalizationService.ctorParameters = function () { return [ { type: store.Store }, { type: router.Router }, + { type: core.NgZone }, { type: store.Actions }, { type: LocalizationService, decorators: [{ type: core.Optional }, { type: core.SkipSelf }] } ]; }; - /** @nocollapse */ LocalizationService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(core.ɵɵinject(store.Store), core.ɵɵinject(router.Router), core.ɵɵinject(store.Actions), core.ɵɵinject(LocalizationService, 12)); }, token: LocalizationService, providedIn: "root" }); + /** @nocollapse */ LocalizationService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(core.ɵɵinject(store.Store), core.ɵɵinject(router.Router), core.ɵɵinject(core.NgZone), core.ɵɵinject(store.Actions), core.ɵɵinject(LocalizationService, 12)); }, token: LocalizationService, providedIn: "root" }); return LocalizationService; }()); if (false) { @@ -904,6 +920,11 @@ * @private */ LocalizationService.prototype.router; + /** + * @type {?} + * @private + */ + LocalizationService.prototype.ngZone; /** * @type {?} * @private @@ -962,61 +983,188 @@ return rxjs.combineLatest([dispatch(new GetAppConfiguration()), rxjs.from(this.localizationService.registerLocale(payload))]); }; /** - * @param {?} __0 - * @param {?} __1 + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + SessionState.prototype.setTenantId = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + patchState({ + tenant: payload, + }); + }; + __decorate([ + store.Action(SetLanguage), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, SetLanguage]), + __metadata("design:returntype", void 0) + ], SessionState.prototype, "setLanguage", null); + __decorate([ + store.Action(SetTenant), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, SetTenant]), + __metadata("design:returntype", void 0) + ], SessionState.prototype, "setTenantId", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", String) + ], SessionState, "getLanguage", null); + __decorate([ + store.Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Object) + ], SessionState, "getTenant", null); + SessionState = __decorate([ + store.State({ + name: 'SessionState', + defaults: (/** @type {?} */ ({})), + }), + __metadata("design:paramtypes", [LocalizationService]) + ], SessionState); + return SessionState; + }()); + if (false) { + /** + * @type {?} + * @private + */ + SessionState.prototype.localizationService; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var RestService = /** @class */ (function () { + function RestService(http, store) { + this.http = http; + this.store = store; + } + /** + * @param {?} err + * @return {?} + */ + RestService.prototype.handleError = /** + * @param {?} err + * @return {?} + */ + function (err) { + this.store.dispatch(new RestOccurError(err)); + console.error(err); + return rxjs.throwError(err); + }; + /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + RestService.prototype.request = /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + function (request, config, api) { + var _this = this; + if (config === void 0) { config = {}; } + var _a = config.observe, observe = _a === void 0 ? "body" /* Body */ : _a, skipHandleError = config.skipHandleError; + /** @type {?} */ + var url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url; + var method = request.method, options = __rest(request, ["method"]); + return this.http.request(method, url, (/** @type {?} */ (__assign({ observe: observe }, options)))).pipe(observe === "body" /* Body */ ? operators.take(1) : null, operators.catchError((/** + * @param {?} err + * @return {?} + */ + function (err) { + if (skipHandleError) { + return rxjs.throwError(err); + } + return _this.handleError(err); + }))); + }; + RestService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + RestService.ctorParameters = function () { return [ + { type: http.HttpClient }, + { type: store.Store } + ]; }; + /** @nocollapse */ RestService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function RestService_Factory() { return new RestService(core.ɵɵinject(http.HttpClient), core.ɵɵinject(store.Store)); }, token: RestService, providedIn: "root" }); + return RestService; + }()); + if (false) { + /** + * @type {?} + * @private + */ + RestService.prototype.http; + /** + * @type {?} + * @private + */ + RestService.prototype.store; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ApplicationConfigurationService = /** @class */ (function () { + function ApplicationConfigurationService(rest) { + this.rest = rest; + } + /** * @return {?} */ - SessionState.prototype.setTenantId = /** - * @param {?} __0 - * @param {?} __1 + ApplicationConfigurationService.prototype.getConfiguration = /** * @return {?} */ - function (_a, _b) { - var patchState = _a.patchState; - var payload = _b.payload; - patchState({ - tenant: payload, - }); + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/abp/application-configuration', + }; + return this.rest.request(request); }; - __decorate([ - store.Action(SetLanguage), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Object, SetLanguage]), - __metadata("design:returntype", void 0) - ], SessionState.prototype, "setLanguage", null); - __decorate([ - store.Action(SetTenant), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Object, SetTenant]), - __metadata("design:returntype", void 0) - ], SessionState.prototype, "setTenantId", null); - __decorate([ - store.Selector(), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Object]), - __metadata("design:returntype", String) - ], SessionState, "getLanguage", null); - __decorate([ - store.Selector(), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Object]), - __metadata("design:returntype", Object) - ], SessionState, "getTenant", null); - SessionState = __decorate([ - store.State({ - name: 'SessionState', - defaults: (/** @type {?} */ ({})), - }), - __metadata("design:paramtypes", [LocalizationService]) - ], SessionState); - return SessionState; + ApplicationConfigurationService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + ApplicationConfigurationService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ ApplicationConfigurationService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ApplicationConfigurationService_Factory() { return new ApplicationConfigurationService(core.ɵɵinject(RestService)); }, token: ApplicationConfigurationService, providedIn: "root" }); + return ApplicationConfigurationService; }()); if (false) { /** * @type {?} * @private */ - SessionState.prototype.localizationService; + ApplicationConfigurationService.prototype.rest; } /** @@ -1143,7 +1291,7 @@ * @return {?} */ function (state) { - return state.environment.application || {}; + return state.environment.application || ((/** @type {?} */ ({}))); }; /** * @param {?} key @@ -1216,7 +1364,19 @@ * @return {?} */ function (state) { - return findRoute(state.routes, path, name); + var flattedRoutes = state.flattedRoutes; + return ((/** @type {?} */ (flattedRoutes))).find((/** + * @param {?} route + * @return {?} + */ + function (route) { + if (path && route.path === path) { + return route; + } + else if (name && route.name === name) { + return route; + } + })); })); return selector; }; @@ -1262,55 +1422,26 @@ return selector; }; /** - * @param {?=} condition + * @param {?} key * @return {?} */ ConfigState.getGrantedPolicy = /** - * @param {?=} condition + * @param {?} key * @return {?} */ - function (condition) { - if (condition === void 0) { condition = ''; } - /** @type {?} */ - var keys = condition - .replace(/\(|\)|\!|\s/g, '') - .split(/\|\||&&/) - .filter((/** - * @param {?} key - * @return {?} - */ - function (key) { return key; })); + function (key) { /** @type {?} */ var selector = store.createSelector([ConfigState_1], (/** * @param {?} state * @return {?} */ function (state) { - if (!keys.length) + if (!key) return true; - /** @type {?} */ - var getPolicy = (/** - * @param {?} key - * @return {?} - */ - function (key) { return snq((/** + return snq((/** * @return {?} */ - function () { return state.auth.grantedPolicies[key]; }), false); }); - if (keys.length > 1) { - keys.forEach((/** - * @param {?} key - * @return {?} - */ - function (key) { - /** @type {?} */ - var value = getPolicy(key); - condition = condition.replace(key, value); - })); - // tslint:disable-next-line: no-eval - return eval("!!" + condition); - } - return getPolicy(condition); + function () { return state.auth.grantedPolicies[key]; }), false); })); return selector; }; @@ -1352,7 +1483,7 @@ function () { return defaultResourceName; })); } /** @type {?} */ - var copy = keys.reduce((/** + var copy = ((/** @type {?} */ (keys))).reduce((/** * @param {?} acc * @param {?} val * @return {?} @@ -1460,7 +1591,7 @@ store.Selector(), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), - __metadata("design:returntype", void 0) + __metadata("design:returntype", Object) ], ConfigState, "getApplicationInfo", null); ConfigState = ConfigState_1 = __decorate([ store.State({ @@ -1521,71 +1652,6 @@ } return organizeRoutes(routes); } - /** - * @param {?} routes - * @param {?=} path - * @param {?=} name - * @return {?} - */ - function findRoute(routes, path, name) { - /** @type {?} */ - var foundRoute; - routes.forEach((/** - * @param {?} route - * @return {?} - */ - function (route) { - if (foundRoute) - return; - if (path && route.path === path) { - foundRoute = route; - } - else if (name && route.name === name) { - foundRoute = route; - return; - } - else if (route.children && route.children.length) { - foundRoute = findRoute(route.children, path, name); - return; - } - })); - return foundRoute; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * @return {?} - */ - function noop() { - /** @type {?} */ - var fn = (/** - * @return {?} - */ - function () { }); - return fn; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * @param {?=} a - * @return {?} - */ - function uuid(a) { - return a - ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) - : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); - } /** * @fileoverview added by tsickle @@ -1632,20 +1698,33 @@ }); }); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var DynamicLayoutComponent = /** @class */ (function () { - function DynamicLayoutComponent(router$1, store) { + function DynamicLayoutComponent(router$1, route, store) { var _this = this; this.router = router$1; + this.route = route; this.store = store; + var _a = this.store.selectSnapshot(ConfigState.getAll), layouts = _a.requirements.layouts, routes = _a.routes; + if ((this.route.snapshot.data || {}).layout) { + this.layout = layouts + .filter((/** + * @param {?} l + * @return {?} + */ + function (l) { return !!l; })) + .find((/** + * @param {?} l + * @return {?} + */ + function (l) { return snq((/** + * @return {?} + */ + function () { return l.type.toLowerCase().indexOf(_this.route.snapshot.data.layout); }), -1) > -1; })); + } this.router.events.pipe(takeUntilDestroy(this)).subscribe((/** * @param {?} event * @return {?} @@ -1653,14 +1732,15 @@ function (event) { if (event instanceof router.NavigationEnd) { var segments = _this.router.parseUrl(event.url).root.children.primary.segments; - var _a = _this.store.selectSnapshot(ConfigState.getAll), layouts = _a.requirements.layouts, routes = _a.routes; /** @type {?} */ - var layout_1 = findLayout(segments, routes); - _this.layout = layouts.filter((/** + var layout_1 = (_this.route.snapshot.data || {}).layout || findLayout(segments, routes); + _this.layout = layouts + .filter((/** * @param {?} l * @return {?} */ - function (l) { return !!l; })).find((/** + function (l) { return !!l; })) + .find((/** * @param {?} l * @return {?} */ @@ -1687,6 +1767,7 @@ /** @nocollapse */ DynamicLayoutComponent.ctorParameters = function () { return [ { type: router.Router }, + { type: router.ActivatedRoute }, { type: store.Store } ]; }; __decorate([ @@ -1705,6 +1786,11 @@ * @private */ DynamicLayoutComponent.prototype.router; + /** + * @type {?} + * @private + */ + DynamicLayoutComponent.prototype.route; /** * @type {?} * @private @@ -1827,101 +1913,430 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ - var EllipsisDirective = /** @class */ (function () { - function EllipsisDirective(cdRef, elRef) { - this.cdRef = cdRef; - this.elRef = elRef; - this.enabled = true; + var EllipsisDirective = /** @class */ (function () { + function EllipsisDirective(cdRef, elRef) { + this.cdRef = cdRef; + this.elRef = elRef; + this.enabled = true; + } + Object.defineProperty(EllipsisDirective.prototype, "inlineClass", { + get: /** + * @return {?} + */ + function () { + return this.enabled && this.width; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(EllipsisDirective.prototype, "class", { + get: /** + * @return {?} + */ + function () { + return this.enabled && !this.width; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(EllipsisDirective.prototype, "maxWidth", { + get: /** + * @return {?} + */ + function () { + return this.enabled && this.width ? this.width || '170px' : undefined; + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + EllipsisDirective.prototype.ngAfterContentInit = /** + * @return {?} + */ + function () { + var _this = this; + setTimeout((/** + * @return {?} + */ + function () { + /** @type {?} */ + var title = _this.title; + _this.title = title || ((/** @type {?} */ (_this.elRef.nativeElement))).innerText; + if (_this.title !== title) { + _this.cdRef.detectChanges(); + } + }), 0); + }; + EllipsisDirective.decorators = [ + { type: core.Directive, args: [{ + selector: '[abpEllipsis]', + },] } + ]; + /** @nocollapse */ + EllipsisDirective.ctorParameters = function () { return [ + { type: core.ChangeDetectorRef }, + { type: core.ElementRef } + ]; }; + EllipsisDirective.propDecorators = { + width: [{ type: core.Input, args: ['abpEllipsis',] }], + title: [{ type: core.HostBinding, args: ['title',] }, { type: core.Input }], + enabled: [{ type: core.Input, args: ['abpEllipsisEnabled',] }], + inlineClass: [{ type: core.HostBinding, args: ['class.abp-ellipsis-inline',] }], + class: [{ type: core.HostBinding, args: ['class.abp-ellipsis',] }], + maxWidth: [{ type: core.HostBinding, args: ['style.max-width',] }] + }; + return EllipsisDirective; + }()); + if (false) { + /** @type {?} */ + EllipsisDirective.prototype.width; + /** @type {?} */ + EllipsisDirective.prototype.title; + /** @type {?} */ + EllipsisDirective.prototype.enabled; + /** + * @type {?} + * @private + */ + EllipsisDirective.prototype.cdRef; + /** + * @type {?} + * @private + */ + EllipsisDirective.prototype.elRef; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var AbpForContext = /** @class */ (function () { + function AbpForContext($implicit, index, count, list) { + this.$implicit = $implicit; + this.index = index; + this.count = count; + this.list = list; } - Object.defineProperty(EllipsisDirective.prototype, "inlineClass", { + return AbpForContext; + }()); + if (false) { + /** @type {?} */ + AbpForContext.prototype.$implicit; + /** @type {?} */ + AbpForContext.prototype.index; + /** @type {?} */ + AbpForContext.prototype.count; + /** @type {?} */ + AbpForContext.prototype.list; + } + var RecordView = /** @class */ (function () { + function RecordView(record, view) { + this.record = record; + this.view = view; + } + return RecordView; + }()); + if (false) { + /** @type {?} */ + RecordView.prototype.record; + /** @type {?} */ + RecordView.prototype.view; + } + var ForDirective = /** @class */ (function () { + function ForDirective(tempRef, vcRef, differs) { + this.tempRef = tempRef; + this.vcRef = vcRef; + this.differs = differs; + } + Object.defineProperty(ForDirective.prototype, "compareFn", { get: /** * @return {?} */ function () { - return this.enabled && this.width; + return this.compareBy || compare; }, enumerable: true, configurable: true }); - Object.defineProperty(EllipsisDirective.prototype, "class", { + Object.defineProperty(ForDirective.prototype, "trackByFn", { get: /** * @return {?} */ function () { - return this.enabled && !this.width; + return this.trackBy || ((/** + * @param {?} index + * @param {?} item + * @return {?} + */ + function (index, item) { return ((/** @type {?} */ (item))).id || index; })); }, enumerable: true, configurable: true }); - Object.defineProperty(EllipsisDirective.prototype, "maxWidth", { - get: /** + /** + * @private + * @param {?} changes + * @return {?} + */ + ForDirective.prototype.iterateOverAppliedOperations = /** + * @private + * @param {?} changes + * @return {?} + */ + function (changes) { + var _this = this; + /** @type {?} */ + var rw = []; + changes.forEachOperation((/** + * @param {?} record + * @param {?} previousIndex + * @param {?} currentIndex * @return {?} */ - function () { - return this.enabled && this.width ? this.width || '170px' : undefined; - }, - enumerable: true, - configurable: true - }); + function (record, previousIndex, currentIndex) { + if (record.previousIndex == null) { + /** @type {?} */ + var view = _this.vcRef.createEmbeddedView(_this.tempRef, new AbpForContext(null, -1, -1, _this.items), currentIndex); + rw.push(new RecordView(record, view)); + } + else if (currentIndex == null) { + _this.vcRef.remove(previousIndex); + } + else { + /** @type {?} */ + var view = _this.vcRef.get(previousIndex); + _this.vcRef.move(view, currentIndex); + rw.push(new RecordView(record, (/** @type {?} */ (view)))); + } + })); + for (var i = 0, l = rw.length; i < l; i++) { + rw[i].view.context.$implicit = rw[i].record.item; + } + }; /** + * @private + * @param {?} changes * @return {?} */ - EllipsisDirective.prototype.ngAfterContentInit = /** + ForDirective.prototype.iterateOverAttachedViews = /** + * @private + * @param {?} changes * @return {?} */ - function () { + function (changes) { var _this = this; - setTimeout((/** + for (var i = 0, l = this.vcRef.length; i < l; i++) { + /** @type {?} */ + var viewRef = (/** @type {?} */ (this.vcRef.get(i))); + viewRef.context.index = i; + viewRef.context.count = l; + viewRef.context.list = this.items; + } + changes.forEachIdentityChange((/** + * @param {?} record * @return {?} */ - function () { + function (record) { /** @type {?} */ - var title = _this.title; - _this.title = title || ((/** @type {?} */ (_this.elRef.nativeElement))).innerText; - if (_this.title !== title) { - _this.cdRef.detectChanges(); + var viewRef = (/** @type {?} */ (_this.vcRef.get(record.currentIndex))); + viewRef.context.$implicit = record.item; + })); + }; + /** + * @private + * @param {?} items + * @return {?} + */ + ForDirective.prototype.projectItems = /** + * @private + * @param {?} items + * @return {?} + */ + function (items) { + if (!items.length && this.emptyRef) { + this.vcRef.createEmbeddedView(this.emptyRef).rootNodes; + this.isShowEmptyRef = true; + return; + } + if (this.emptyRef && this.isShowEmptyRef) { + this.vcRef.clear(); + this.isShowEmptyRef = false; + } + if (!this.differ && items) { + this.differ = this.differs.find(items).create(this.trackByFn); + } + if (this.differ) { + /** @type {?} */ + var changes = this.differ.diff(items); + if (changes) { + this.iterateOverAppliedOperations(changes); + this.iterateOverAttachedViews(changes); } - }), 0); + } }; - EllipsisDirective.decorators = [ + /** + * @private + * @param {?} items + * @return {?} + */ + ForDirective.prototype.sortItems = /** + * @private + * @param {?} items + * @return {?} + */ + function (items) { + var _this = this; + if (this.orderBy) { + items.sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + function (a, b) { return (a[_this.orderBy] > b[_this.orderBy] ? 1 : a[_this.orderBy] < b[_this.orderBy] ? -1 : 0); })); + } + else { + items.sort(); + } + }; + /** + * @return {?} + */ + ForDirective.prototype.ngOnChanges = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var items = (/** @type {?} */ (clone(this.items))); + if (!Array.isArray(items)) + return; + /** @type {?} */ + var compareFn = this.compareFn; + if (typeof this.filterBy !== 'undefined') { + items = items.filter((/** + * @param {?} item + * @return {?} + */ + function (item) { return compareFn(item[_this.filterBy], _this.filterVal); })); + } + switch (this.orderDir) { + case 'ASC': + this.sortItems(items); + this.projectItems(items); + break; + case 'DESC': + this.sortItems(items); + items.reverse(); + this.projectItems(items); + break; + default: + this.projectItems(items); + } + }; + ForDirective.decorators = [ { type: core.Directive, args: [{ - selector: '[abpEllipsis]', + selector: '[abpFor]', },] } ]; /** @nocollapse */ - EllipsisDirective.ctorParameters = function () { return [ - { type: core.ChangeDetectorRef }, - { type: core.ElementRef } + ForDirective.ctorParameters = function () { return [ + { type: core.TemplateRef }, + { type: core.ViewContainerRef }, + { type: core.IterableDiffers } ]; }; - EllipsisDirective.propDecorators = { - width: [{ type: core.Input, args: ['abpEllipsis',] }], - title: [{ type: core.HostBinding, args: ['title',] }, { type: core.Input }], - enabled: [{ type: core.Input, args: ['abpEllipsisEnabled',] }], - inlineClass: [{ type: core.HostBinding, args: ['class.abp-ellipsis-inline',] }], - class: [{ type: core.HostBinding, args: ['class.abp-ellipsis',] }], - maxWidth: [{ type: core.HostBinding, args: ['style.max-width',] }] + ForDirective.propDecorators = { + items: [{ type: core.Input, args: ['abpForOf',] }], + orderBy: [{ type: core.Input, args: ['abpForOrderBy',] }], + orderDir: [{ type: core.Input, args: ['abpForOrderDir',] }], + filterBy: [{ type: core.Input, args: ['abpForFilterBy',] }], + filterVal: [{ type: core.Input, args: ['abpForFilterVal',] }], + trackBy: [{ type: core.Input, args: ['abpForTrackBy',] }], + compareBy: [{ type: core.Input, args: ['abpForCompareBy',] }], + emptyRef: [{ type: core.Input, args: ['abpForEmptyRef',] }] }; - return EllipsisDirective; + return ForDirective; }()); if (false) { /** @type {?} */ - EllipsisDirective.prototype.width; + ForDirective.prototype.items; /** @type {?} */ - EllipsisDirective.prototype.title; + ForDirective.prototype.orderBy; /** @type {?} */ - EllipsisDirective.prototype.enabled; + ForDirective.prototype.orderDir; + /** @type {?} */ + ForDirective.prototype.filterBy; + /** @type {?} */ + ForDirective.prototype.filterVal; + /** @type {?} */ + ForDirective.prototype.trackBy; + /** @type {?} */ + ForDirective.prototype.compareBy; + /** @type {?} */ + ForDirective.prototype.emptyRef; /** * @type {?} * @private */ - EllipsisDirective.prototype.cdRef; + ForDirective.prototype.differ; /** * @type {?} * @private */ - EllipsisDirective.prototype.elRef; + ForDirective.prototype.isShowEmptyRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.tempRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.vcRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.differs; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @return {?} + */ + function noop() { + /** @type {?} */ + var fn = (/** + * @return {?} + */ + function () { }); + return fn; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @param {?=} a + * @return {?} + */ + function uuid(a) { + return a + ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) + : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); } + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -2146,6 +2561,7 @@ function VisibilityDirective(elRef, renderer) { this.elRef = elRef; this.renderer = renderer; + this.mutationObserverEnabled = true; this.completed$ = new rxjs.Subject(); } /** @@ -2157,44 +2573,65 @@ function () { var _this = this; /** @type {?} */ - var observer = new MutationObserver((/** - * @param {?} mutations - * @return {?} - */ - function (mutations) { - mutations.forEach((/** - * @param {?} mutation + var observer; + if (this.mutationObserverEnabled) { + observer = new MutationObserver((/** + * @param {?} mutations + * @return {?} + */ + function (mutations) { + mutations.forEach((/** + * @param {?} mutation + * @return {?} + */ + function (mutation) { + if (!mutation.target) + return; + /** @type {?} */ + var htmlNodes = snq((/** + * @return {?} + */ + function () { return Array.from(mutation.target.childNodes).filter((/** + * @param {?} node + * @return {?} + */ + function (node) { return node instanceof HTMLElement; })); }), []); + if (!htmlNodes.length) { + _this.removeFromDOM(); + _this.disconnect(); + } + else { + setTimeout((/** + * @return {?} + */ + function () { + _this.disconnect(); + }), 0); + } + })); + })); + observer.observe(this.focusedElement, { + childList: true, + }); + } + else { + setTimeout((/** * @return {?} */ - function (mutation) { - if (!mutation.target) - return; + function () { /** @type {?} */ var htmlNodes = snq((/** * @return {?} */ - function () { return Array.from(mutation.target.childNodes).filter((/** + function () { return Array.from(_this.focusedElement.childNodes).filter((/** * @param {?} node * @return {?} */ function (node) { return node instanceof HTMLElement; })); }), []); - if (!htmlNodes.length) { - _this.renderer.removeChild(_this.elRef.nativeElement.parentElement, _this.elRef.nativeElement); - _this.disconnect(); - } - else { - setTimeout((/** - * @return {?} - */ - function () { - _this.disconnect(); - }), 0); - } - })); - })); - observer.observe(this.focusedElement, { - childList: true, - }); + if (!htmlNodes.length) + _this.removeFromDOM(); + }), 0); + } this.completed$.subscribe((/** * @return {?} */ @@ -2210,6 +2647,15 @@ this.completed$.next(); this.completed$.complete(); }; + /** + * @return {?} + */ + VisibilityDirective.prototype.removeFromDOM = /** + * @return {?} + */ + function () { + this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement); + }; VisibilityDirective.decorators = [ { type: core.Directive, args: [{ selector: '[abpVisibility]', @@ -2221,7 +2667,8 @@ { type: core.Renderer2 } ]; }; VisibilityDirective.propDecorators = { - focusedElement: [{ type: core.Input, args: ['abpVisibility',] }] + focusedElement: [{ type: core.Input, args: ['abpVisibility',] }], + mutationObserverEnabled: [{ type: core.Input }] }; return VisibilityDirective; }()); @@ -2229,6 +2676,8 @@ /** @type {?} */ VisibilityDirective.prototype.focusedElement; /** @type {?} */ + VisibilityDirective.prototype.mutationObserverEnabled; + /** @type {?} */ VisibilityDirective.prototype.completed$; /** * @type {?} @@ -2256,6 +2705,7 @@ account: 'account', application: 'application', empty: 'empty', + setting: 'setting', }; /** @@ -2268,9 +2718,10 @@ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var AuthGuard = /** @class */ (function () { - function AuthGuard(oauthService, store) { + function AuthGuard(oauthService, store, router) { this.oauthService = oauthService; this.store = store; + this.router = router; } /** * @param {?} _ @@ -2288,8 +2739,7 @@ if (hasValidAccessToken) { return hasValidAccessToken; } - this.store.dispatch(new routerPlugin.Navigate(['/account/login'], null, { state: { redirectUrl: state.url } })); - return false; + return this.router.createUrlTree(['/account/login'], { state: { redirectUrl: state.url } }); }; AuthGuard.decorators = [ { type: core.Injectable, args: [{ @@ -2299,9 +2749,10 @@ /** @nocollapse */ AuthGuard.ctorParameters = function () { return [ { type: angularOauth2Oidc.OAuthService }, - { type: store.Store } + { type: store.Store }, + { type: router.Router } ]; }; - /** @nocollapse */ AuthGuard.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(core.ɵɵinject(angularOauth2Oidc.OAuthService), core.ɵɵinject(store.Store)); }, token: AuthGuard, providedIn: "root" }); + /** @nocollapse */ AuthGuard.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(core.ɵɵinject(angularOauth2Oidc.OAuthService), core.ɵɵinject(store.Store), core.ɵɵinject(router.Router)); }, token: AuthGuard, providedIn: "root" }); return AuthGuard; }()); if (false) { @@ -2315,6 +2766,11 @@ * @private */ AuthGuard.prototype.store; + /** + * @type {?} + * @private + */ + AuthGuard.prototype.router; } /** @@ -2651,11 +3107,6 @@ */ var Config; (function (Config) { - /** - * @record - */ - function State() { } - Config.State = State; /** * @record */ @@ -2670,6 +3121,8 @@ Environment.prototype.oAuthConfig; /** @type {?} */ Environment.prototype.apis; + /** @type {?} */ + Environment.prototype.localization; } /** * @record @@ -2843,7 +3296,10 @@ if (isInitAction && !this.initialized) { var _a = transformRoutes(this.router.config), routes = _a.routes, wrappers = _a.wrappers; routes = organizeRoutes(routes, wrappers); - state = store.setValue(state, 'ConfigState', __assign({}, (state.ConfigState && __assign({}, state.ConfigState)), this.options, { routes: routes })); + /** @type {?} */ + var flattedRoutes = flatRoutes(clone(routes)); + state = store.setValue(state, 'ConfigState', __assign({}, (state.ConfigState && __assign({}, state.ConfigState)), this.options, { routes: routes, + flattedRoutes: flattedRoutes })); this.initialized = true; } return next(state, event); @@ -2971,6 +3427,33 @@ children: setUrls(route.children, "/" + route.path), }))); })); } + /** + * @param {?} routes + * @return {?} + */ + function flatRoutes(routes) { + /** @type {?} */ + var flat = (/** + * @param {?} r + * @return {?} + */ + function (r) { + return r.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { + /** @type {?} */ + var value = [val]; + if (val.children) { + value = __spread([val], flat(val.children)); + } + return __spread(acc, value); + }), []); + }); + return flat(routes); + } /** * @fileoverview added by tsickle @@ -3362,6 +3845,39 @@ LocalizationPipe.prototype.store; } + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var SortPipe = /** @class */ (function () { + function SortPipe() { + } + /** + * @param {?} value + * @param {?} sortOrder + * @return {?} + */ + SortPipe.prototype.transform = /** + * @param {?} value + * @param {?} sortOrder + * @return {?} + */ + function (value, sortOrder) { + sortOrder = sortOrder.toLowerCase(); + if (sortOrder === "desc") + return value.reverse(); + else + return value; + }; + SortPipe.decorators = [ + { type: core.Pipe, args: [{ + name: 'abpSort', + pure: false + },] } + ]; + return SortPipe; + }()); + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -3475,12 +3991,15 @@ DynamicLayoutComponent, AutofocusDirective, EllipsisDirective, + ForDirective, FormSubmitDirective, LocalizationPipe, + SortPipe, PermissionDirective, VisibilityDirective, InputEventDebounceDirective, ClickEventStopPropagationDirective, + AbstractNgModelComponent, ], exports: [ common.CommonModule, @@ -3492,13 +4011,16 @@ DynamicLayoutComponent, AutofocusDirective, EllipsisDirective, + ForDirective, FormSubmitDirective, LocalizationPipe, + SortPipe, PermissionDirective, VisibilityDirective, InputEventDebounceDirective, LocalizationPipe, ClickEventStopPropagationDirective, + AbstractNgModelComponent, ], providers: [LocalizationPipe], entryComponents: [RouterOutletComponent, DynamicLayoutComponent], @@ -3507,6 +4029,7 @@ return CoreModule; }()); + exports.AbstractNgModelComponent = AbstractNgModelComponent; exports.ApiInterceptor = ApiInterceptor; exports.ApplicationConfigurationService = ApplicationConfigurationService; exports.AuthGuard = AuthGuard; @@ -3520,6 +4043,7 @@ exports.DynamicLayoutComponent = DynamicLayoutComponent; exports.ENVIRONMENT = ENVIRONMENT; exports.EllipsisDirective = EllipsisDirective; + exports.ForDirective = ForDirective; exports.FormSubmitDirective = FormSubmitDirective; exports.GetAppConfiguration = GetAppConfiguration; exports.GetProfile = GetProfile; @@ -3554,14 +4078,16 @@ exports.uuid = uuid; exports.ɵa = ProfileState; exports.ɵb = ProfileService; - exports.ɵba = ClickEventStopPropagationDirective; - exports.ɵbb = LocaleId; - exports.ɵbc = LocaleProvider; - exports.ɵbd = NGXS_CONFIG_PLUGIN_OPTIONS; - exports.ɵbe = ConfigPlugin; - exports.ɵbf = ApiInterceptor; - exports.ɵbg = getInitialData; - exports.ɵbh = localeInitializer; + exports.ɵba = InputEventDebounceDirective; + exports.ɵbb = ClickEventStopPropagationDirective; + exports.ɵbc = AbstractNgModelComponent; + exports.ɵbd = LocaleId; + exports.ɵbe = LocaleProvider; + exports.ɵbf = NGXS_CONFIG_PLUGIN_OPTIONS; + exports.ɵbg = ConfigPlugin; + exports.ɵbh = ApiInterceptor; + exports.ɵbi = getInitialData; + exports.ɵbj = localeInitializer; exports.ɵc = RestService; exports.ɵd = GetProfile; exports.ɵe = UpdateProfile; @@ -3576,14 +4102,14 @@ exports.ɵp = GetAppConfiguration; exports.ɵq = RouterOutletComponent; exports.ɵr = DynamicLayoutComponent; - exports.ɵs = ConfigState; - exports.ɵt = AutofocusDirective; - exports.ɵu = EllipsisDirective; + exports.ɵs = AutofocusDirective; + exports.ɵt = EllipsisDirective; + exports.ɵu = ForDirective; exports.ɵv = FormSubmitDirective; exports.ɵw = LocalizationPipe; - exports.ɵx = PermissionDirective; - exports.ɵy = VisibilityDirective; - exports.ɵz = InputEventDebounceDirective; + exports.ɵx = SortPipe; + exports.ɵy = PermissionDirective; + exports.ɵz = VisibilityDirective; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/npm/ng-packs/dist/core/bundles/abp-ng.core.umd.js.map b/npm/ng-packs/dist/core/bundles/abp-ng.core.umd.js.map index 07e224ca32..4befac03b8 100644 --- a/npm/ng-packs/dist/core/bundles/abp-ng.core.umd.js.map +++ b/npm/ng-packs/dist/core/bundles/abp-ng.core.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.core.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.core/lib/actions/config.actions.ts","ng://@abp/ng.core/lib/actions/loader.actions.ts","ng://@abp/ng.core/lib/actions/profile.actions.ts","ng://@abp/ng.core/lib/actions/rest.actions.ts","ng://@abp/ng.core/lib/actions/session.actions.ts","ng://@abp/ng.core/lib/services/rest.service.ts","ng://@abp/ng.core/lib/services/profile.service.ts","ng://@abp/ng.core/lib/states/profile.state.ts","ng://@abp/ng.core/lib/services/application-configuration.service.ts","ng://@abp/ng.core/lib/constants/different-locales.ts","ng://@abp/ng.core/lib/utils/initial-utils.ts","ng://@abp/ng.core/lib/services/localization.service.ts","ng://@abp/ng.core/lib/states/session.state.ts","ng://@abp/ng.core/lib/utils/route-utils.ts","ng://@abp/ng.core/lib/states/config.state.ts","ng://@abp/ng.core/lib/utils/common-utils.ts","ng://@abp/ng.core/lib/utils/generator-utils.ts","ng://@abp/ng.core/lib/utils/rxjs-utils.ts","ng://@abp/ng.core/lib/components/dynamic-layout.component.ts","ng://@abp/ng.core/lib/components/router-outlet.component.ts","ng://@abp/ng.core/lib/directives/autofocus.directive.ts","ng://@abp/ng.core/lib/directives/ellipsis.directive.ts","ng://@abp/ng.core/lib/directives/form-submit.directive.ts","ng://@abp/ng.core/lib/directives/permission.directive.ts","ng://@abp/ng.core/lib/directives/visibility.directive.ts","ng://@abp/ng.core/lib/enums/common.ts","ng://@abp/ng.core/lib/guards/auth.guard.ts","ng://@abp/ng.core/lib/guards/permission.guard.ts","ng://@abp/ng.core/lib/interceptors/api.interceptor.ts","ng://@abp/ng.core/lib/models/application-configuration.ts","ng://@abp/ng.core/lib/models/common.ts","ng://@abp/ng.core/lib/models/config.ts","ng://@abp/ng.core/lib/models/rest.ts","ng://@abp/ng.core/lib/models/session.ts","ng://@abp/ng.core/lib/models/profile.ts","ng://@abp/ng.core/lib/plugins/config/config.plugin.ts","ng://@abp/ng.core/lib/services/config.service.ts","ng://@abp/ng.core/lib/services/lazy-load.service.ts","ng://@abp/ng.core/lib/tokens/common.token.ts","ng://@abp/ng.core/lib/directives/debounce.directive.ts","ng://@abp/ng.core/lib/directives/stop-propagation.directive.ts","ng://@abp/ng.core/lib/pipes/localization.pipe.ts","ng://@abp/ng.core/lib/providers/locale.provider.ts","ng://@abp/ng.core/lib/core.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ABP } from '../models';\n\nexport class PatchRouteByName {\n static readonly type = '[Config] Patch Route By Name';\n constructor(public name: string, public newValue: Partial) {}\n}\n\nexport class GetAppConfiguration {\n static readonly type = '[Config] Get App Configuration';\n}\n","import { HttpRequest } from '@angular/common/http';\n\nexport class StartLoader {\n static readonly type = '[Loader] Start';\n constructor(public payload: HttpRequest) {}\n}\n\nexport class StopLoader {\n static readonly type = '[Loader] Stop';\n constructor(public payload: HttpRequest) {}\n}\n","import { Profile } from '../models';\n\nexport class GetProfile {\n static readonly type = '[Profile] Get';\n}\n\nexport class UpdateProfile {\n static readonly type = '[Profile] Update';\n constructor(public payload: Profile.Response) {}\n}\n\nexport class ChangePassword {\n static readonly type = '[Profile] Change Password';\n constructor(public payload: Profile.ChangePasswordRequest) {}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class RestOccurError {\n static readonly type = '[Rest] Error';\n constructor(public payload: HttpErrorResponse | any) {}\n}\n","import { ABP } from '../models';\n\nexport class SetLanguage {\n static readonly type = '[Session] Set Language';\n constructor(public payload: string) {}\n}\nexport class SetTenant {\n static readonly type = '[Session] Set Tenant';\n constructor(public payload: ABP.BasicItem) {}\n}\n","import { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { NEVER, Observable, throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport { Rest } from '../models/rest';\nimport { ConfigState } from '../states';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestService {\n constructor(private http: HttpClient, private store: Store) {}\n\n handleError(err: any): Observable {\n this.store.dispatch(new RestOccurError(err));\n console.error(err);\n return throwError(err);\n }\n\n request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {\n const { observe = Rest.Observe.Body, skipHandleError } = config;\n const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;\n const { method, ...options } = request;\n return this.http.request(method, url, { observe, ...options } as any).pipe(\n observe === Rest.Observe.Body ? take(1) : null,\n catchError(err => {\n if (skipHandleError) {\n return throwError(err);\n }\n\n return this.handleError(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService } from './rest.service';\nimport { Profile, Rest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/my-profile',\n };\n\n return this.rest.request(request);\n }\n\n update(body: Profile.Response): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/identity/my-profile',\n body,\n };\n\n return this.rest.request(request);\n }\n\n changePassword(body: Profile.ChangePasswordRequest, skipHandleError: boolean = false): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/my-profile/change-password',\n body,\n };\n\n return this.rest.request(request, { skipHandleError });\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetProfile, ChangePassword, UpdateProfile } from '../actions/profile.actions';\nimport { Profile } from '../models/profile';\nimport { ProfileService } from '../services/profile.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'ProfileState',\n defaults: {} as Profile.State,\n})\nexport class ProfileState {\n @Selector()\n static getProfile({ profile }: Profile.State): Profile.Response {\n return profile;\n }\n\n constructor(private profileService: ProfileService) {}\n\n @Action(GetProfile)\n profileGet({ patchState }: StateContext) {\n return this.profileService.get().pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(UpdateProfile)\n profileUpdate({ patchState }: StateContext, { payload }: UpdateProfile) {\n return this.profileService.update(payload).pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ChangePassword)\n changePassword(_, { payload }: ChangePassword) {\n return this.profileService.changePassword(payload, true);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApplicationConfiguration, Rest } from '../models';\nimport { RestService } from './rest.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationConfigurationService {\n constructor(private rest: RestService) {}\n\n getConfiguration(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/application-configuration',\n };\n\n return this.rest.request(request);\n }\n}\n","// Different locales from .NET\n// Key is .NET locale, value is Angular locale\n\nexport default {\n 'ar-sa': 'ar-SA',\n 'ca-ES-valencia': 'ca-ES-VALENCIA',\n 'de-de': 'de',\n 'es-ES': 'es',\n 'en-US': 'en',\n 'fil-Latn': 'en',\n 'ku-Arab': 'en',\n 'ky-Cyrl': 'en',\n 'mi-Latn': 'en',\n 'prs-Arab': 'en',\n 'qut-Latn': 'en',\n nso: 'en',\n quz: 'en',\n 'fr-FR': 'fr',\n 'gd-Latn': 'gd',\n 'ha-Latn': 'ha',\n 'ig-Latn': 'ig',\n 'it-it': 'it',\n 'mn-Cyrl': 'mn',\n 'pt-BR': 'pt',\n 'sd-Arab': 'pa-Arab',\n 'sr-Cyrl-RS': 'sr-Cyrl',\n 'sr-Latn-RS': 'sr-Latn',\n 'tg-Cyrl': 'tg',\n 'tk-Latn': 'tk',\n 'tt-Cyrl': 'tt',\n 'ug-Arab': 'ug',\n 'yo-Latn': 'yo',\n};\n","import { registerLocaleData } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport differentLocales from '../constants/different-locales';\nimport { SessionState } from '../states/session.state';\n\nexport function getInitialData(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n return store.dispatch(new GetAppConfiguration()).toPromise();\n };\n\n return fn;\n}\n\nexport function localeInitializer(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n const lang = store.selectSnapshot(SessionState.getLanguage) || 'en';\n\n return new Promise((resolve, reject) => {\n registerLocale(lang).then(() => resolve(), reject);\n });\n };\n\n return fn;\n}\n\nexport function registerLocale(locale: string) {\n return import(\n /* webpackInclude: /(af|am|ar-SA|as|az-Latn|be|bg|bn-BD|bn-IN|bs|ca|ca-ES-VALENCIA|cs|cy|da|de|de|el|en-GB|en|es|en|es-US|es-MX|et|eu|fa|fi|en|fr|fr|fr-CA|ga|gd|gl|gu|ha|he|hi|hr|hu|hy|id|ig|is|it|it|ja|ka|kk|km|kn|ko|kok|en|en|lb|lt|lv|en|mk|ml|mn|mr|ms|mt|nb|ne|nl|nl-BE|nn|en|or|pa|pa-Arab|pl|en|pt|pt-PT|en|en|ro|ru|rw|pa-Arab|si|sk|sl|sq|sr-Cyrl-BA|sr-Cyrl|sr-Latn|sv|sw|ta|te|tg|th|ti|tk|tn|tr|tt|ug|uk|ur|uz-Latn|vi|wo|xh|yo|zh-Hans|zh-Hant|zu)\\.js$/ */\n `@angular/common/locales/${differentLocales[locale] || locale}.js`\n ).then(module => {\n registerLocaleData(module.default);\n });\n}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { Actions, Store } from '@ngxs/store';\nimport { noop, Observable } from 'rxjs';\nimport { ConfigState } from '../states/config.state';\nimport { SessionState } from '../states/session.state';\nimport { registerLocale } from '../utils/initial-utils';\n\ntype ShouldReuseRoute = (future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot) => boolean;\n\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService {\n get currentLang(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n constructor(\n private store: Store,\n private router: Router,\n private actions: Actions,\n @Optional()\n @SkipSelf()\n otherInstance: LocalizationService,\n ) {\n if (otherInstance) throw new Error('LocaleService should have only one instance.');\n }\n\n private setRouteReuse(reuse: ShouldReuseRoute) {\n this.router.routeReuseStrategy.shouldReuseRoute = reuse;\n }\n\n registerLocale(locale: string) {\n const { shouldReuseRoute } = this.router.routeReuseStrategy;\n\n this.setRouteReuse(() => false);\n this.router.navigated = false;\n\n return registerLocale(locale).then(async () => {\n await this.router.navigateByUrl(this.router.url).catch(noop);\n this.setRouteReuse(shouldReuseRoute);\n });\n }\n\n get(keys: string, ...interpolateParams: string[]): Observable {\n return this.store.select(ConfigState.getCopy(keys, ...interpolateParams));\n }\n\n instant(keys: string, ...interpolateParams: string[]): string {\n return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams));\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { SetLanguage, SetTenant } from '../actions/session.actions';\nimport { ABP, Session } from '../models';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport { LocalizationService } from '../services/localization.service';\nimport { from, combineLatest } from 'rxjs';\n\n@State({\n name: 'SessionState',\n defaults: {} as Session.State,\n})\nexport class SessionState {\n @Selector()\n static getLanguage({ language }: Session.State): string {\n return language;\n }\n\n @Selector()\n static getTenant({ tenant }: Session.State): ABP.BasicItem {\n return tenant;\n }\n\n constructor(private localizationService: LocalizationService) {}\n\n @Action(SetLanguage)\n setLanguage({ patchState, dispatch }: StateContext, { payload }: SetLanguage) {\n patchState({\n language: payload,\n });\n\n return combineLatest([dispatch(new GetAppConfiguration()), from(this.localizationService.registerLocale(payload))]);\n }\n\n @Action(SetTenant)\n setTenantId({ patchState }: StateContext, { payload }: SetTenant) {\n patchState({\n tenant: payload,\n });\n }\n}\n","import { ABP } from '../models';\n\nexport function organizeRoutes(\n routes: ABP.FullRoute[],\n wrappers: ABP.FullRoute[] = [],\n parentNameArr = [] as ABP.FullRoute[],\n parentName: string = null,\n): ABP.FullRoute[] {\n const filter = route => {\n if (route.children && route.children.length) {\n route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name);\n }\n\n if (route.parentName && route.parentName !== parentName) {\n parentNameArr.push(route);\n return false;\n }\n\n return true;\n };\n\n if (parentName) {\n // recursive block\n return routes.filter(filter);\n }\n\n const filteredRoutes = routes.filter(filter);\n\n if (parentNameArr.length) {\n return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr));\n }\n\n return filteredRoutes;\n}\n\nexport function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] {\n return routes.map(route => {\n if (route.children && route.children.length) {\n route.children = setChildRoute(route.children, parentNameArr);\n }\n\n const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name);\n if (foundedChildren && foundedChildren.length) {\n route.children = [...(route.children || []), ...foundedChildren];\n }\n\n return route;\n });\n}\n\nexport function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] {\n if (!routes.length) return [];\n return routes\n .sort((a, b) => a.order - b.order)\n .map(route => {\n if (route.children && route.children.length) {\n route.children = sortRoutes(route.children);\n }\n\n return route;\n });\n}\n","import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store';\nimport { Config, ABP } from '../models';\nimport { GetAppConfiguration, PatchRouteByName } from '../actions/config.actions';\nimport { ApplicationConfigurationService } from '../services/application-configuration.service';\nimport { tap, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { SetLanguage } from '../actions';\nimport { SessionState } from './session.state';\nimport { of } from 'rxjs';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\n@State({\n name: 'ConfigState',\n defaults: {} as Config.State,\n})\nexport class ConfigState {\n @Selector()\n static getAll(state: Config.State) {\n return state;\n }\n\n @Selector()\n static getApplicationInfo(state: Config.State) {\n return state.environment.application || {};\n }\n\n static getOne(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return state[key];\n },\n );\n\n return selector;\n }\n\n static getDeep(keys: string[] | string) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return (keys as string[]).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state);\n },\n );\n\n return selector;\n }\n\n static getRoute(path?: string, name?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return findRoute(state.routes, path, name);\n },\n );\n\n return selector;\n }\n\n static getApiUrl(key?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): string {\n return state.environment.apis[key || 'default'].url;\n },\n );\n\n return selector;\n }\n\n static getSetting(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return snq(() => state.setting.values[key]);\n },\n );\n\n return selector;\n }\n\n static getGrantedPolicy(condition: string = '') {\n const keys = condition\n .replace(/\\(|\\)|\\!|\\s/g, '')\n .split(/\\|\\||&&/)\n .filter(key => key);\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): boolean {\n if (!keys.length) return true;\n\n const getPolicy = key => snq(() => state.auth.grantedPolicies[key], false);\n if (keys.length > 1) {\n keys.forEach(key => {\n const value = getPolicy(key);\n condition = condition.replace(key, value);\n });\n\n // tslint:disable-next-line: no-eval\n return eval(`!!${condition}`);\n }\n\n return getPolicy(condition);\n },\n );\n\n return selector;\n }\n\n static getCopy(key: string, ...interpolateParams: string[]) {\n if (!key) key = '';\n\n const keys = key.split('::') as string[];\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n if (!state.localization) return key;\n\n const { defaultResourceName } = state.environment.localization;\n if (keys[0] === '') {\n if (!defaultResourceName) {\n throw new Error(\n `Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }`,\n );\n }\n\n keys[0] = snq(() => defaultResourceName);\n }\n\n let copy = keys.reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state.localization.values);\n\n interpolateParams = interpolateParams.filter(params => params != null);\n if (copy && interpolateParams && interpolateParams.length) {\n interpolateParams.forEach(param => {\n copy = copy.replace(/[\\'\\\"]?\\{[\\d]+\\}[\\'\\\"]?/, param);\n });\n }\n\n return copy || key;\n },\n );\n\n return selector;\n }\n\n constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {}\n\n @Action(GetAppConfiguration)\n addData({ patchState, dispatch }: StateContext) {\n return this.appConfigurationService.getConfiguration().pipe(\n tap(configuration =>\n patchState({\n ...configuration,\n }),\n ),\n switchMap(configuration => {\n let defaultLang: string = configuration.setting.values['Abp.Localization.DefaultLanguage'];\n\n if (defaultLang.includes(';')) {\n defaultLang = defaultLang.split(';')[0];\n }\n\n return this.store.selectSnapshot(SessionState.getLanguage) ? of(null) : dispatch(new SetLanguage(defaultLang));\n }),\n );\n }\n\n @Action(PatchRouteByName)\n patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) {\n let routes: ABP.FullRoute[] = getState().routes;\n\n const index = routes.findIndex(route => route.name === name);\n\n routes = patchRouteDeep(routes, name, newValue);\n\n return patchState({\n routes,\n });\n }\n}\n\nfunction patchRouteDeep(\n routes: ABP.FullRoute[],\n name: string,\n newValue: Partial,\n parentUrl: string = null,\n): ABP.FullRoute[] {\n routes = routes.map(route => {\n if (route.name === name) {\n if (newValue.path) {\n newValue.url = `${parentUrl}/${newValue.path}`;\n }\n\n if (newValue.children && newValue.children.length) {\n newValue.children = newValue.children.map(child => ({\n ...child,\n url: `${parentUrl}/${route.path}/${child.path}`,\n }));\n }\n\n return { ...route, ...newValue };\n } else if (route.children && route.children.length) {\n route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path);\n }\n\n return route;\n });\n\n if (parentUrl) {\n // recursive block\n return routes;\n }\n\n return organizeRoutes(routes);\n}\n\nfunction findRoute(routes: ABP.FullRoute[], path?: string, name?: string) {\n let foundRoute;\n routes.forEach(route => {\n if (foundRoute) return;\n\n if (path && route.path === path) {\n foundRoute = route;\n } else if (name && route.name === name) {\n foundRoute = route;\n return;\n } else if (route.children && route.children.length) {\n foundRoute = findRoute(route.children, path, name);\n return;\n }\n });\n\n return foundRoute;\n}\n","export function noop() {\n const fn = function() {};\n return fn;\n}\n","export function uuid(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nexport const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => (\n source: Observable,\n) => {\n const originalDestroy = componentInstance[destroyMethodName];\n if (isFunction(originalDestroy) === false) {\n throw new Error(\n `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`,\n );\n }\n if (!componentInstance['__takeUntilDestroy']) {\n componentInstance['__takeUntilDestroy'] = new Subject();\n\n componentInstance[destroyMethodName] = function() {\n isFunction(originalDestroy) && originalDestroy.apply(this, arguments);\n componentInstance['__takeUntilDestroy'].next(true);\n componentInstance['__takeUntilDestroy'].complete();\n };\n }\n return source.pipe(takeUntil(componentInstance['__takeUntilDestroy']));\n};\n","import { Component, OnDestroy, Type } from '@angular/core';\nimport { NavigationEnd, Router, UrlSegment } from '@angular/router';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { eLayoutType } from '../enums';\nimport { ABP, Config } from '../models';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport snq from 'snq';\n\n@Component({\n selector: 'abp-dynamic-layout',\n template: `\n \n\n \n \n `,\n})\nexport class DynamicLayoutComponent implements OnDestroy {\n @Select(ConfigState.getOne('requirements'))\n requirements$: Observable;\n\n layout: Type;\n\n constructor(private router: Router, private store: Store) {\n this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n const { segments } = this.router.parseUrl(event.url).root.children.primary;\n const {\n requirements: { layouts },\n routes,\n } = this.store.selectSnapshot(ConfigState.getAll);\n\n const layout = findLayout(segments, routes);\n\n this.layout = layouts.filter(l => !!l).find(l => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1);\n }\n });\n }\n\n ngOnDestroy() {}\n}\n\nfunction findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType {\n let layout = eLayoutType.empty;\n\n const route = routes\n .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), [])\n .find(r => r.path === segments[0].path);\n\n if (route) {\n if (route.layout) {\n layout = route.layout;\n }\n\n if (route.children && route.children.length && segments.length > 1) {\n const child = route.children.find(c => c.path === segments[1].path);\n\n if (child && child.layout) {\n layout = child.layout;\n }\n }\n }\n\n return layout;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-router-outlet',\n template: `\n \n `,\n})\nexport class RouterOutletComponent {}\n","import { Directive, ElementRef, Input, AfterViewInit } from '@angular/core';\n\n@Directive({\n selector: '[autofocus]',\n})\nexport class AutofocusDirective implements AfterViewInit {\n @Input('autofocus')\n delay: number = 0;\n\n constructor(private elRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => this.elRef.nativeElement.focus(), this.delay);\n }\n}\n","import { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[abpEllipsis]',\n})\nexport class EllipsisDirective implements AfterContentInit {\n @Input('abpEllipsis')\n width: string;\n\n @HostBinding('title')\n @Input()\n title: string;\n\n @Input('abpEllipsisEnabled')\n enabled = true;\n\n @HostBinding('class.abp-ellipsis-inline')\n get inlineClass() {\n return this.enabled && this.width;\n }\n\n @HostBinding('class.abp-ellipsis')\n get class() {\n return this.enabled && !this.width;\n }\n\n @HostBinding('style.max-width')\n get maxWidth() {\n return this.enabled && this.width ? this.width || '170px' : undefined;\n }\n\n constructor(private cdRef: ChangeDetectorRef, private elRef: ElementRef) {}\n\n ngAfterContentInit() {\n setTimeout(() => {\n const title = this.title;\n this.title = title || (this.elRef.nativeElement as HTMLElement).innerText;\n\n if (this.title !== title) {\n this.cdRef.detectChanges();\n }\n }, 0);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Self,\n} from '@angular/core';\nimport { FormControl, FormGroup, FormGroupDirective } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { takeUntilDestroy } from '../utils';\n\ntype Controls = { [key: string]: FormControl } | FormGroup[];\n\n@Directive({\n selector: 'form[ngSubmit][formGroup]',\n})\nexport class FormSubmitDirective implements OnInit, OnDestroy {\n @Input()\n notValidateOnSubmit: string | boolean;\n\n @Output()\n ngSubmit = new EventEmitter();\n\n executedNgSubmit: boolean = false;\n\n constructor(\n @Self() private formGroupDirective: FormGroupDirective,\n private host: ElementRef,\n private cdRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.formGroupDirective.ngSubmit.pipe(takeUntilDestroy(this)).subscribe(() => {\n this.markAsDirty();\n this.executedNgSubmit = true;\n });\n\n fromEvent(this.host.nativeElement as HTMLElement, 'keyup')\n .pipe(\n debounceTime(200),\n filter((key: KeyboardEvent) => key && key.key === 'Enter'),\n takeUntilDestroy(this),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n }\n\n this.executedNgSubmit = false;\n });\n\n fromEvent(this.host.nativeElement, 'submit')\n .pipe(\n takeUntilDestroy(this),\n filter(() => !this.notValidateOnSubmit && typeof this.notValidateOnSubmit !== 'string'),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.markAsDirty();\n }\n });\n }\n\n ngOnDestroy(): void {}\n\n markAsDirty() {\n const { form } = this.formGroupDirective;\n\n setDirty(form.controls as { [key: string]: FormControl });\n form.markAsDirty();\n\n this.cdRef.detectChanges();\n }\n}\n\nfunction setDirty(controls: Controls) {\n if (Array.isArray(controls)) {\n controls.forEach(group => {\n setDirty(group.controls as { [key: string]: FormControl });\n });\n return;\n }\n\n Object.keys(controls).forEach(key => {\n controls[key].markAsDirty();\n controls[key].updateValueAndValidity();\n });\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\n\n@Directive({\n selector: '[abpPermission]',\n})\nexport class PermissionDirective implements OnInit, OnDestroy {\n @Input('abpPermission') condition: string;\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {}\n\n ngOnInit() {\n if (this.condition) {\n this.store\n .select(ConfigState.getGrantedPolicy(this.condition))\n .pipe(takeUntilDestroy(this))\n .subscribe(isGranted => {\n if (!isGranted) {\n this.renderer.removeChild(\n (this.elRef.nativeElement as HTMLElement).parentElement,\n this.elRef.nativeElement,\n );\n }\n });\n }\n }\n\n ngOnDestroy(): void {}\n}\n","import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport snq from 'snq';\n\n@Directive({\n selector: '[abpVisibility]',\n})\nexport class VisibilityDirective implements AfterViewInit {\n @Input('abpVisibility')\n focusedElement: HTMLElement;\n\n completed$ = new Subject();\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (!mutation.target) return;\n\n const htmlNodes = snq(\n () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) {\n this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement);\n this.disconnect();\n } else {\n setTimeout(() => {\n this.disconnect();\n }, 0);\n }\n });\n });\n\n observer.observe(this.focusedElement, {\n childList: true,\n });\n\n this.completed$.subscribe(() => observer.disconnect());\n }\n\n disconnect() {\n this.completed$.next();\n this.completed$.complete();\n }\n}\n","export const enum eLayoutType {\n account = 'account',\n application = 'application',\n empty = 'empty',\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { Navigate } from '@ngxs/router-plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n constructor(private oauthService: OAuthService, private store: Store) {}\n canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree {\n const hasValidAccessToken = this.oauthService.hasValidAccessToken();\n if (hasValidAccessToken) {\n return hasValidAccessToken;\n }\n\n this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } }));\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { ConfigState } from '../states';\nimport { tap } from 'rxjs/operators';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionGuard implements CanActivate {\n constructor(private store: Store) {}\n\n canActivate({ data }: ActivatedRouteSnapshot): Observable {\n const resource = data.requiredPolicy as string;\n return this.store.select(ConfigState.getGrantedPolicy(resource)).pipe(\n tap(access => {\n if (!access) {\n this.store.dispatch(new RestOccurError({ status: 403 }));\n }\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Store } from '@ngxs/store';\nimport { SessionState } from '../states';\nimport { StartLoader, StopLoader } from '../actions/loader.actions';\nimport { finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n constructor(private oAuthService: OAuthService, private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler) {\n this.store.dispatch(new StartLoader(request));\n\n const headers = {} as any;\n\n const token = this.oAuthService.getAccessToken();\n if (!request.headers.has('Authorization') && token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const lang = this.store.selectSnapshot(SessionState.getLanguage);\n if (!request.headers.has('Accept-Language') && lang) {\n headers['Accept-Language'] = lang;\n }\n\n const tenant = this.store.selectSnapshot(SessionState.getTenant);\n if (!request.headers.has('__tenant') && tenant) {\n headers['__tenant'] = tenant.id;\n }\n\n return next\n .handle(\n request.clone({\n setHeaders: headers,\n }),\n )\n .pipe(finalize(() => this.store.dispatch(new StopLoader(request))));\n }\n}\n","export namespace ApplicationConfiguration {\n export interface Response {\n localization: Localization;\n auth: Auth;\n setting: Setting;\n currentUser: CurrentUser;\n features: Features;\n }\n\n export interface Localization {\n values: LocalizationValue;\n languages: Language[];\n }\n\n export interface LocalizationValue {\n [key: string]: { [key: string]: string };\n }\n\n export interface Language {\n cultureName: string;\n uiCultureName: string;\n displayName: string;\n flagIcon: string;\n }\n\n export interface Auth {\n policies: Policy;\n grantedPolicies: Policy;\n }\n\n export interface Policy {\n [key: string]: boolean;\n }\n\n export interface Setting {\n values: { [key: string]: 'Abp.Localization.DefaultLanguage' };\n }\n\n export interface CurrentUser {\n isAuthenticated: boolean;\n id: string;\n tenantId: string;\n userName: string;\n }\n\n export interface Features {\n values: Setting;\n }\n}\n","import { Config } from './config';\nimport { eLayoutType } from '../enums';\n\nexport namespace ABP {\n export interface Root {\n environment: Partial;\n requirements: Config.Requirements;\n }\n\n export type PagedResponse = {\n totalCount: number;\n } & PagedItemsResponse;\n\n export interface PagedItemsResponse {\n items: T[];\n }\n\n export interface PageQueryParams {\n filter?: string;\n sorting?: string;\n skipCount?: number;\n maxResultCount?: number;\n }\n\n export interface Route {\n children?: Route[];\n invisible?: boolean;\n layout?: eLayoutType;\n name: string;\n order?: number;\n parentName?: string;\n path: string;\n requiredPolicy?: string;\n iconClass?: string;\n }\n\n export interface FullRoute extends Route {\n url?: string;\n wrapper?: boolean;\n }\n\n export interface BasicItem {\n id: string;\n name: string;\n }\n}\n","import { AuthConfig } from 'angular-oauth2-oidc';\nimport { Type } from '@angular/core';\n\nexport namespace Config {\n export interface State {\n [key: string]: any;\n }\n\n export interface Environment {\n application: Application;\n production: boolean;\n oAuthConfig: AuthConfig;\n apis: Apis;\n }\n\n export interface Application {\n name: string;\n logoUrl?: string;\n }\n\n export interface Apis {\n [key: string]: { [key: string]: string };\n }\n\n export interface Requirements {\n layouts: Type[];\n }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\n\nexport namespace Rest {\n export interface Config {\n skipHandleError?: boolean;\n observe?: Observe;\n }\n\n export const enum Observe {\n Body = 'body',\n Events = 'events',\n Response = 'response',\n }\n\n export const enum ResponseType {\n ArrayBuffer = 'arraybuffer',\n Blob = 'blob',\n JSON = 'json',\n Text = 'text',\n }\n\n export interface Request {\n body?: T;\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n method: string;\n params?:\n | HttpParams\n | {\n [param: string]: any;\n };\n reportProgress?: boolean;\n responseType?: ResponseType;\n url: string;\n withCredentials?: boolean;\n }\n}\n","import { ABP } from '../models';\n\nexport namespace Session {\n export interface State {\n language: string;\n tenant: ABP.BasicItem;\n }\n}\n","export namespace Profile {\n export interface State {\n profile: Response;\n }\n\n export interface Response {\n userName: string;\n email: string;\n name: string;\n surname: string;\n phoneNumber: string;\n }\n\n export interface ChangePasswordRequest {\n currentPassword: string;\n newPassword: string;\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Router, Routes } from '@angular/router';\nimport { actionMatcher, InitState, NgxsNextPluginFn, NgxsPlugin, setValue, UpdateState } from '@ngxs/store';\nimport snq from 'snq';\nimport { ABP } from '../../models';\nimport { organizeRoutes } from '../../utils/route-utils';\n\nexport const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS');\n\n@Injectable()\nexport class ConfigPlugin implements NgxsPlugin {\n private initialized: boolean = false;\n\n constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const matches = actionMatcher(event);\n const isInitAction = matches(InitState) || matches(UpdateState);\n\n // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []);\n if (isInitAction && !this.initialized) {\n let { routes, wrappers } = transformRoutes(this.router.config);\n routes = organizeRoutes(routes, wrappers);\n\n state = setValue(state, 'ConfigState', {\n ...(state.ConfigState && { ...state.ConfigState }),\n ...this.options,\n routes,\n });\n\n this.initialized = true;\n }\n\n return next(state, event);\n }\n}\n\nfunction transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any {\n const abpRoutes: ABP.FullRoute[] = routes\n .filter(route => {\n return snq(() => route.data.routes.routes.find(r => r.path === route.path), false);\n })\n .reduce((acc, val) => [...acc, ...val.data.routes.routes], []);\n\n wrappers = abpRoutes.filter(ar => ar.wrapper);\n const transformed = [] as ABP.FullRoute[];\n routes\n .filter(route => (route.data || {}).routes && (route.component || route.loadChildren))\n .forEach(route => {\n const abpPackage = abpRoutes.find(\n abp => abp.path.toLowerCase() === route.path.toLowerCase() && snq(() => route.data.routes.routes.length, false),\n );\n const { length } = transformed;\n\n if (abpPackage) {\n transformed.push(abpPackage);\n }\n\n if (transformed.length === length) {\n transformed.push({\n ...route.data.routes,\n path: route.path,\n name: snq(() => route.data.routes.name, route.path),\n children: route.data.routes.children || [],\n } as ABP.FullRoute);\n }\n });\n\n return { routes: setUrls(transformed), wrappers };\n}\n\nfunction setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] {\n if (parentUrl) {\n // this if block using for only recursive call\n\n return routes.map(route => ({\n ...route,\n url: `${parentUrl}/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `${parentUrl}/${route.path}`),\n }),\n }));\n }\n\n return routes.map(route => ({\n ...route,\n url: `/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `/${route.path}`),\n }),\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n constructor(private store: Store) {}\n\n getAll() {\n return this.store.selectSnapshot(ConfigState.getAll);\n }\n\n getOne(key: string) {\n return this.store.selectSnapshot(ConfigState.getOne(key));\n }\n\n getDeep(keys: string[] | string) {\n return this.store.selectSnapshot(ConfigState.getDeep(keys));\n }\n\n getSetting(key: string) {\n return this.store.selectSnapshot(ConfigState.getSetting(key));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { uuid } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyLoadService {\n loadedLibraries: { [url: string]: ReplaySubject } = {};\n\n load(\n url: string,\n type: 'script' | 'style',\n content: string = '',\n targetQuery: string = 'body',\n position: InsertPosition = 'afterend',\n ): Observable {\n if (!url && !content) return;\n const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid();\n\n if (this.loadedLibraries[key]) {\n return this.loadedLibraries[key].asObservable();\n }\n\n this.loadedLibraries[key] = new ReplaySubject();\n\n let library;\n if (type === 'script') {\n library = document.createElement('script');\n library.type = 'text/javascript';\n if (url) {\n (library as HTMLScriptElement).src = url;\n }\n\n (library as HTMLScriptElement).text = content;\n } else if (url) {\n library = document.createElement('link');\n library.type = 'text/css';\n (library as HTMLLinkElement).rel = 'stylesheet';\n\n if (url) {\n (library as HTMLLinkElement).href = url;\n }\n } else {\n library = document.createElement('style');\n (library as HTMLStyleElement).textContent = content;\n }\n\n library.onload = () => {\n this.loadedLibraries[key].next();\n this.loadedLibraries[key].complete();\n };\n\n document.querySelector(targetQuery).insertAdjacentElement(position, library);\n\n return this.loadedLibraries[key].asObservable();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Config } from '../models';\n\nexport function environmentFactory(environment: Config.Environment) {\n return {\n ...environment,\n };\n}\n\nexport function configFactory(config: Config.Requirements) {\n return {\n ...config,\n };\n}\n\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\n\nexport const CONFIG = new InjectionToken('CONFIG');\n","import { Directive, Output, Renderer2, ElementRef, OnInit, EventEmitter, Input } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[input.debounce]',\n})\nexport class InputEventDebounceDirective implements OnInit {\n @Input() debounce: number = 300;\n\n @Output('input.debounce') debounceEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'input')\n .pipe(\n debounceTime(this.debounce),\n takeUntilDestroy(this),\n )\n .subscribe((event: Event) => {\n this.debounceEvent.emit(event);\n });\n }\n}\n","import { Directive, ElementRef, EventEmitter, OnInit, Output, Renderer2 } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[click.stop]',\n})\nexport class ClickEventStopPropagationDirective implements OnInit {\n @Output('click.stop') stopPropEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'click')\n .pipe(takeUntilDestroy(this))\n .subscribe((event: MouseEvent) => {\n event.stopPropagation();\n this.stopPropEvent.emit(event);\n });\n }\n}\n","import { Pipe, PipeTransform, OnDestroy } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Pipe({\n name: 'abpLocalization',\n pure: false, // required to update the value\n})\nexport class LocalizationPipe implements PipeTransform, OnDestroy {\n initialValue: string = '';\n\n value: string;\n\n destroy$ = new Subject();\n\n constructor(private store: Store) {}\n\n transform(value: string = '', ...interpolateParams: string[]): string {\n if (this.initialValue !== value) {\n this.initialValue = value;\n this.destroy$.next();\n\n this.store\n .select(\n ConfigState.getCopy(\n value,\n ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []),\n ),\n )\n .pipe(\n takeUntil(this.destroy$),\n takeUntilDestroy(this),\n distinctUntilChanged(),\n )\n .subscribe(copy => (this.value = copy));\n }\n\n return this.value;\n }\n\n ngOnDestroy() {}\n}\n","import { LOCALE_ID, Provider } from '@angular/core';\nimport localesMapping from '../constants/different-locales';\nimport { LocalizationService } from '../services/localization.service';\n\nexport class LocaleId extends String {\n constructor(private localizationService: LocalizationService) {\n super();\n }\n\n toString(): string {\n const { currentLang } = this.localizationService;\n return localesMapping[currentLang] || currentLang;\n }\n\n valueOf(): string {\n return this.toString();\n }\n}\n\nexport const LocaleProvider: Provider = {\n provide: LOCALE_ID,\n useClass: LocaleId,\n deps: [LocalizationService],\n};\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxsRouterPluginModule } from '@ngxs/router-plugin';\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\nimport { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\nimport { RouterOutletComponent } from './components/router-outlet.component';\nimport { AutofocusDirective } from './directives/autofocus.directive';\nimport { InputEventDebounceDirective } from './directives/debounce.directive';\nimport { EllipsisDirective } from './directives/ellipsis.directive';\nimport { FormSubmitDirective } from './directives/form-submit.directive';\nimport { PermissionDirective } from './directives/permission.directive';\nimport { ClickEventStopPropagationDirective } from './directives/stop-propagation.directive';\nimport { VisibilityDirective } from './directives/visibility.directive';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ABP } from './models/common';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { LocaleProvider } from './providers/locale.provider';\nimport { ConfigState } from './states/config.state';\nimport { ProfileState } from './states/profile.state';\nimport { SessionState } from './states/session.state';\nimport { getInitialData, localeInitializer } from './utils/initial-utils';\nimport { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config/config.plugin';\n\n@NgModule({\n imports: [\n NgxsModule.forFeature([ProfileState, SessionState, ConfigState]),\n NgxsStoragePluginModule.forRoot({ key: 'SessionState' }),\n NgxsRouterPluginModule.forRoot(),\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n ],\n declarations: [\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n FormSubmitDirective,\n LocalizationPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n ClickEventStopPropagationDirective,\n ],\n exports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n FormSubmitDirective,\n LocalizationPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n LocalizationPipe,\n ClickEventStopPropagationDirective,\n ],\n providers: [LocalizationPipe],\n entryComponents: [RouterOutletComponent, DynamicLayoutComponent],\n})\nexport class CoreModule {\n static forRoot(options = {} as ABP.Root): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [\n LocaleProvider,\n {\n provide: NGXS_PLUGINS,\n useClass: ConfigPlugin,\n multi: true,\n },\n {\n provide: NGXS_CONFIG_PLUGIN_OPTIONS,\n useValue: options,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: localeInitializer,\n },\n ],\n };\n }\n}\n"],"names":["throwError","take","catchError","Injectable","HttpClient","Store","tap","tslib_1.__decorate","Action","Selector","State","store","differentLocales","registerLocaleData","noop","Router","Actions","Optional","SkipSelf","combineLatest","from","createSelector","switchMap","of","Subject","takeUntil","router","NavigationEnd","Component","Select","Observable","Directive","ElementRef","Input","ChangeDetectorRef","HostBinding","EventEmitter","fromEvent","debounceTime","filter","FormGroupDirective","Self","Output","Renderer2","Navigate","OAuthService","finalize","Rest","InjectionToken","actionMatcher","InitState","UpdateState","setValue","Inject","ReplaySubject","takeUntilDestroy","distinctUntilChanged","Pipe","tslib_1.__extends","LOCALE_ID","NGXS_PLUGINS","HTTP_INTERCEPTORS","APP_INITIALIZER","Injector","NgModule","NgxsModule","NgxsStoragePluginModule","NgxsRouterPluginModule","CommonModule","HttpClientModule","FormsModule","ReactiveFormsModule","RouterModule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.core.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.core/lib/abstracts/ng-model.component.ts","ng://@abp/ng.core/lib/actions/config.actions.ts","ng://@abp/ng.core/lib/actions/loader.actions.ts","ng://@abp/ng.core/lib/actions/profile.actions.ts","ng://@abp/ng.core/lib/actions/rest.actions.ts","ng://@abp/ng.core/lib/actions/session.actions.ts","ng://@abp/ng.core/lib/services/profile.service.ts","ng://@abp/ng.core/lib/states/profile.state.ts","ng://@abp/ng.core/lib/constants/different-locales.ts","ng://@abp/ng.core/lib/utils/initial-utils.ts","ng://@abp/ng.core/lib/services/localization.service.ts","ng://@abp/ng.core/lib/states/session.state.ts","ng://@abp/ng.core/lib/services/rest.service.ts","ng://@abp/ng.core/lib/services/application-configuration.service.ts","ng://@abp/ng.core/lib/utils/route-utils.ts","ng://@abp/ng.core/lib/states/config.state.ts","ng://@abp/ng.core/lib/utils/rxjs-utils.ts","ng://@abp/ng.core/lib/components/dynamic-layout.component.ts","ng://@abp/ng.core/lib/components/router-outlet.component.ts","ng://@abp/ng.core/lib/directives/autofocus.directive.ts","ng://@abp/ng.core/lib/directives/ellipsis.directive.ts","ng://@abp/ng.core/lib/directives/for.directive.ts","ng://@abp/ng.core/lib/utils/common-utils.ts","ng://@abp/ng.core/lib/utils/generator-utils.ts","ng://@abp/ng.core/lib/directives/form-submit.directive.ts","ng://@abp/ng.core/lib/directives/permission.directive.ts","ng://@abp/ng.core/lib/directives/visibility.directive.ts","ng://@abp/ng.core/lib/enums/common.ts","ng://@abp/ng.core/lib/guards/auth.guard.ts","ng://@abp/ng.core/lib/guards/permission.guard.ts","ng://@abp/ng.core/lib/interceptors/api.interceptor.ts","ng://@abp/ng.core/lib/models/application-configuration.ts","ng://@abp/ng.core/lib/models/common.ts","ng://@abp/ng.core/lib/models/config.ts","ng://@abp/ng.core/lib/models/rest.ts","ng://@abp/ng.core/lib/models/session.ts","ng://@abp/ng.core/lib/models/profile.ts","ng://@abp/ng.core/lib/plugins/config/config.plugin.ts","ng://@abp/ng.core/lib/services/config.service.ts","ng://@abp/ng.core/lib/services/lazy-load.service.ts","ng://@abp/ng.core/lib/tokens/common.token.ts","ng://@abp/ng.core/lib/directives/debounce.directive.ts","ng://@abp/ng.core/lib/directives/stop-propagation.directive.ts","ng://@abp/ng.core/lib/pipes/localization.pipe.ts","ng://@abp/ng.core/lib/pipes/sort.pipe.ts","ng://@abp/ng.core/lib/providers/locale.provider.ts","ng://@abp/ng.core/lib/core.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ControlValueAccessor } from '@angular/forms';\nimport { ChangeDetectorRef, Component, Injector, Input, Type } from '@angular/core';\n\n@Component({ template: '' })\nexport class AbstractNgModelComponent implements ControlValueAccessor {\n @Input()\n disabled: boolean;\n\n @Input()\n set value(value: T) {\n this._value = value;\n this.notifyValueChange();\n }\n\n get value(): T {\n return this._value;\n }\n\n onChange: (value: T) => {};\n onTouched: () => {};\n\n protected _value: T;\n protected cdRef: ChangeDetectorRef;\n\n constructor(public injector: Injector) {\n this.cdRef = injector.get(ChangeDetectorRef as Type);\n }\n\n notifyValueChange(): void {\n if (this.onChange) {\n this.onChange(this.value);\n }\n }\n\n writeValue(value: T): void {\n this._value = value;\n setTimeout(() => this.cdRef.detectChanges(), 0);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import { ABP } from '../models';\n\nexport class PatchRouteByName {\n static readonly type = '[Config] Patch Route By Name';\n constructor(public name: string, public newValue: Partial) {}\n}\n\nexport class GetAppConfiguration {\n static readonly type = '[Config] Get App Configuration';\n}\n","import { HttpRequest } from '@angular/common/http';\n\nexport class StartLoader {\n static readonly type = '[Loader] Start';\n constructor(public payload: HttpRequest) {}\n}\n\nexport class StopLoader {\n static readonly type = '[Loader] Stop';\n constructor(public payload: HttpRequest) {}\n}\n","import { Profile } from '../models';\n\nexport class GetProfile {\n static readonly type = '[Profile] Get';\n}\n\nexport class UpdateProfile {\n static readonly type = '[Profile] Update';\n constructor(public payload: Profile.Response) {}\n}\n\nexport class ChangePassword {\n static readonly type = '[Profile] Change Password';\n constructor(public payload: Profile.ChangePasswordRequest) {}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class RestOccurError {\n static readonly type = '[Rest] Error';\n constructor(public payload: HttpErrorResponse | any) {}\n}\n","import { ABP } from '../models';\n\nexport class SetLanguage {\n static readonly type = '[Session] Set Language';\n constructor(public payload: string) {}\n}\nexport class SetTenant {\n static readonly type = '[Session] Set Tenant';\n constructor(public payload: ABP.BasicItem) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService } from './rest.service';\nimport { Profile, Rest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/my-profile',\n };\n\n return this.rest.request(request);\n }\n\n update(body: Profile.Response): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/identity/my-profile',\n body,\n };\n\n return this.rest.request(request);\n }\n\n changePassword(body: Profile.ChangePasswordRequest, skipHandleError: boolean = false): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/my-profile/change-password',\n body,\n };\n\n return this.rest.request(request, { skipHandleError });\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetProfile, ChangePassword, UpdateProfile } from '../actions/profile.actions';\nimport { Profile } from '../models/profile';\nimport { ProfileService } from '../services/profile.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'ProfileState',\n defaults: {} as Profile.State,\n})\nexport class ProfileState {\n @Selector()\n static getProfile({ profile }: Profile.State): Profile.Response {\n return profile;\n }\n\n constructor(private profileService: ProfileService) {}\n\n @Action(GetProfile)\n profileGet({ patchState }: StateContext) {\n return this.profileService.get().pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(UpdateProfile)\n profileUpdate({ patchState }: StateContext, { payload }: UpdateProfile) {\n return this.profileService.update(payload).pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ChangePassword)\n changePassword(_, { payload }: ChangePassword) {\n return this.profileService.changePassword(payload, true);\n }\n}\n","// Different locales from .NET\n// Key is .NET locale, value is Angular locale\n\nexport default {\n 'ar-sa': 'ar-SA',\n 'ca-ES-valencia': 'ca-ES-VALENCIA',\n 'de-de': 'de',\n 'es-ES': 'es',\n 'en-US': 'en',\n 'fil-Latn': 'en',\n 'ku-Arab': 'en',\n 'ky-Cyrl': 'en',\n 'mi-Latn': 'en',\n 'prs-Arab': 'en',\n 'qut-Latn': 'en',\n nso: 'en',\n quz: 'en',\n 'fr-FR': 'fr',\n 'gd-Latn': 'gd',\n 'ha-Latn': 'ha',\n 'ig-Latn': 'ig',\n 'it-it': 'it',\n 'mn-Cyrl': 'mn',\n 'pt-BR': 'pt',\n 'sd-Arab': 'pa-Arab',\n 'sr-Cyrl-RS': 'sr-Cyrl',\n 'sr-Latn-RS': 'sr-Latn',\n 'tg-Cyrl': 'tg',\n 'tk-Latn': 'tk',\n 'tt-Cyrl': 'tt',\n 'ug-Arab': 'ug',\n 'yo-Latn': 'yo',\n};\n","import { registerLocaleData } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport differentLocales from '../constants/different-locales';\nimport { SessionState } from '../states/session.state';\n\nexport function getInitialData(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n return store.dispatch(new GetAppConfiguration()).toPromise();\n };\n\n return fn;\n}\n\nexport function localeInitializer(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n const lang = store.selectSnapshot(SessionState.getLanguage) || 'en';\n\n return new Promise((resolve, reject) => {\n registerLocale(lang).then(() => resolve(), reject);\n });\n };\n\n return fn;\n}\n\nexport function registerLocale(locale: string) {\n return import(\n /* webpackInclude: /(af|am|ar-SA|as|az-Latn|be|bg|bn-BD|bn-IN|bs|ca|ca-ES-VALENCIA|cs|cy|da|de|de|el|en-GB|en|es|en|es-US|es-MX|et|eu|fa|fi|en|fr|fr|fr-CA|ga|gd|gl|gu|ha|he|hi|hr|hu|hy|id|ig|is|it|it|ja|ka|kk|km|kn|ko|kok|en|en|lb|lt|lv|en|mk|ml|mn|mr|ms|mt|nb|ne|nl|nl-BE|nn|en|or|pa|pa-Arab|pl|en|pt|pt-PT|en|en|ro|ru|rw|pa-Arab|si|sk|sl|sq|sr-Cyrl-BA|sr-Cyrl|sr-Latn|sv|sw|ta|te|tg|th|ti|tk|tn|tr|tt|ug|uk|ur|uz-Latn|vi|wo|xh|yo|zh-Hans|zh-Hant|zu)\\.js$/ */\n `@angular/common/locales/${differentLocales[locale] || locale}.js`\n ).then(module => {\n registerLocaleData(module.default);\n });\n}\n","import { Injectable, Optional, SkipSelf, NgZone } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { Actions, Store } from '@ngxs/store';\nimport { noop, Observable } from 'rxjs';\nimport { ConfigState } from '../states/config.state';\nimport { SessionState } from '../states/session.state';\nimport { registerLocale } from '../utils/initial-utils';\n\ntype ShouldReuseRoute = (future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot) => boolean;\n\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService {\n get currentLang(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n constructor(\n private store: Store,\n private router: Router,\n private ngZone: NgZone,\n private actions: Actions,\n @Optional()\n @SkipSelf()\n otherInstance: LocalizationService,\n ) {\n if (otherInstance) throw new Error('LocaleService should have only one instance.');\n }\n\n private setRouteReuse(reuse: ShouldReuseRoute) {\n this.router.routeReuseStrategy.shouldReuseRoute = reuse;\n }\n\n registerLocale(locale: string) {\n const { shouldReuseRoute } = this.router.routeReuseStrategy;\n\n this.setRouteReuse(() => false);\n this.router.navigated = false;\n\n return registerLocale(locale).then(() => {\n this.ngZone.run(async () => {\n await this.router.navigateByUrl(this.router.url).catch(noop);\n this.setRouteReuse(shouldReuseRoute);\n });\n });\n }\n\n get(keys: string, ...interpolateParams: string[]): Observable {\n return this.store.select(ConfigState.getCopy(keys, ...interpolateParams));\n }\n\n instant(keys: string, ...interpolateParams: string[]): string {\n return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams));\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { SetLanguage, SetTenant } from '../actions/session.actions';\nimport { ABP, Session } from '../models';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport { LocalizationService } from '../services/localization.service';\nimport { from, combineLatest } from 'rxjs';\n\n@State({\n name: 'SessionState',\n defaults: {} as Session.State,\n})\nexport class SessionState {\n @Selector()\n static getLanguage({ language }: Session.State): string {\n return language;\n }\n\n @Selector()\n static getTenant({ tenant }: Session.State): ABP.BasicItem {\n return tenant;\n }\n\n constructor(private localizationService: LocalizationService) {}\n\n @Action(SetLanguage)\n setLanguage({ patchState, dispatch }: StateContext, { payload }: SetLanguage) {\n patchState({\n language: payload,\n });\n\n return combineLatest([dispatch(new GetAppConfiguration()), from(this.localizationService.registerLocale(payload))]);\n }\n\n @Action(SetTenant)\n setTenantId({ patchState }: StateContext, { payload }: SetTenant) {\n patchState({\n tenant: payload,\n });\n }\n}\n","import { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { NEVER, Observable, throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport { Rest } from '../models/rest';\nimport { ConfigState } from '../states';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestService {\n constructor(private http: HttpClient, private store: Store) {}\n\n handleError(err: any): Observable {\n this.store.dispatch(new RestOccurError(err));\n console.error(err);\n return throwError(err);\n }\n\n request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {\n const { observe = Rest.Observe.Body, skipHandleError } = config;\n const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;\n const { method, ...options } = request;\n return this.http.request(method, url, { observe, ...options } as any).pipe(\n observe === Rest.Observe.Body ? take(1) : null,\n catchError(err => {\n if (skipHandleError) {\n return throwError(err);\n }\n\n return this.handleError(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApplicationConfiguration, Rest } from '../models';\nimport { RestService } from './rest.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationConfigurationService {\n constructor(private rest: RestService) {}\n\n getConfiguration(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/application-configuration',\n };\n\n return this.rest.request(request);\n }\n}\n","import { ABP } from '../models';\n\nexport function organizeRoutes(\n routes: ABP.FullRoute[],\n wrappers: ABP.FullRoute[] = [],\n parentNameArr = [] as ABP.FullRoute[],\n parentName: string = null,\n): ABP.FullRoute[] {\n const filter = route => {\n if (route.children && route.children.length) {\n route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name);\n }\n\n if (route.parentName && route.parentName !== parentName) {\n parentNameArr.push(route);\n return false;\n }\n\n return true;\n };\n\n if (parentName) {\n // recursive block\n return routes.filter(filter);\n }\n\n const filteredRoutes = routes.filter(filter);\n\n if (parentNameArr.length) {\n return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr));\n }\n\n return filteredRoutes;\n}\n\nexport function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] {\n return routes.map(route => {\n if (route.children && route.children.length) {\n route.children = setChildRoute(route.children, parentNameArr);\n }\n\n const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name);\n if (foundedChildren && foundedChildren.length) {\n route.children = [...(route.children || []), ...foundedChildren];\n }\n\n return route;\n });\n}\n\nexport function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] {\n if (!routes.length) return [];\n return routes\n .sort((a, b) => a.order - b.order)\n .map(route => {\n if (route.children && route.children.length) {\n route.children = sortRoutes(route.children);\n }\n\n return route;\n });\n}\n","import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store';\nimport { Config, ABP } from '../models';\nimport { GetAppConfiguration, PatchRouteByName } from '../actions/config.actions';\nimport { ApplicationConfigurationService } from '../services/application-configuration.service';\nimport { tap, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { SetLanguage } from '../actions';\nimport { SessionState } from './session.state';\nimport { of } from 'rxjs';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\n@State({\n name: 'ConfigState',\n defaults: {} as Config.State,\n})\nexport class ConfigState {\n @Selector()\n static getAll(state: Config.State) {\n return state;\n }\n\n @Selector()\n static getApplicationInfo(state: Config.State): Config.Application {\n return state.environment.application || ({} as Config.Application);\n }\n\n static getOne(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return state[key];\n },\n );\n\n return selector;\n }\n\n static getDeep(keys: string[] | string) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return (keys as string[]).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state);\n },\n );\n\n return selector;\n }\n\n static getRoute(path?: string, name?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n const { flattedRoutes } = state;\n return (flattedRoutes as ABP.FullRoute[]).find(route => {\n if (path && route.path === path) {\n return route;\n } else if (name && route.name === name) {\n return route;\n }\n });\n },\n );\n\n return selector;\n }\n\n static getApiUrl(key?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): string {\n return state.environment.apis[key || 'default'].url;\n },\n );\n\n return selector;\n }\n\n static getSetting(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return snq(() => state.setting.values[key]);\n },\n );\n\n return selector;\n }\n\n static getGrantedPolicy(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): boolean {\n if (!key) return true;\n return snq(() => state.auth.grantedPolicies[key], false);\n },\n );\n\n return selector;\n }\n\n static getCopy(key: string, ...interpolateParams: string[]) {\n if (!key) key = '';\n\n const keys = key.split('::') as string[];\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n if (!state.localization) return key;\n\n const { defaultResourceName } = state.environment.localization;\n if (keys[0] === '') {\n if (!defaultResourceName) {\n throw new Error(\n `Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }`,\n );\n }\n\n keys[0] = snq(() => defaultResourceName);\n }\n\n let copy = (keys as any).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state.localization.values);\n\n interpolateParams = interpolateParams.filter(params => params != null);\n if (copy && interpolateParams && interpolateParams.length) {\n interpolateParams.forEach(param => {\n copy = copy.replace(/[\\'\\\"]?\\{[\\d]+\\}[\\'\\\"]?/, param);\n });\n }\n\n return copy || key;\n },\n );\n\n return selector;\n }\n\n constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {}\n\n @Action(GetAppConfiguration)\n addData({ patchState, dispatch }: StateContext) {\n return this.appConfigurationService.getConfiguration().pipe(\n tap(configuration =>\n patchState({\n ...configuration,\n }),\n ),\n switchMap(configuration => {\n let defaultLang: string = configuration.setting.values['Abp.Localization.DefaultLanguage'];\n\n if (defaultLang.includes(';')) {\n defaultLang = defaultLang.split(';')[0];\n }\n\n return this.store.selectSnapshot(SessionState.getLanguage) ? of(null) : dispatch(new SetLanguage(defaultLang));\n }),\n );\n }\n\n @Action(PatchRouteByName)\n patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) {\n let routes: ABP.FullRoute[] = getState().routes;\n\n const index = routes.findIndex(route => route.name === name);\n\n routes = patchRouteDeep(routes, name, newValue);\n\n return patchState({\n routes,\n });\n }\n}\n\nfunction patchRouteDeep(\n routes: ABP.FullRoute[],\n name: string,\n newValue: Partial,\n parentUrl: string = null,\n): ABP.FullRoute[] {\n routes = routes.map(route => {\n if (route.name === name) {\n if (newValue.path) {\n newValue.url = `${parentUrl}/${newValue.path}`;\n }\n\n if (newValue.children && newValue.children.length) {\n newValue.children = newValue.children.map(child => ({\n ...child,\n url: `${parentUrl}/${route.path}/${child.path}`,\n }));\n }\n\n return { ...route, ...newValue };\n } else if (route.children && route.children.length) {\n route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path);\n }\n\n return route;\n });\n\n if (parentUrl) {\n // recursive block\n return routes;\n }\n\n return organizeRoutes(routes);\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nexport const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => (\n source: Observable,\n) => {\n const originalDestroy = componentInstance[destroyMethodName];\n if (isFunction(originalDestroy) === false) {\n throw new Error(\n `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`,\n );\n }\n if (!componentInstance['__takeUntilDestroy']) {\n componentInstance['__takeUntilDestroy'] = new Subject();\n\n componentInstance[destroyMethodName] = function() {\n isFunction(originalDestroy) && originalDestroy.apply(this, arguments);\n componentInstance['__takeUntilDestroy'].next(true);\n componentInstance['__takeUntilDestroy'].complete();\n };\n }\n return source.pipe(takeUntil(componentInstance['__takeUntilDestroy']));\n};\n","import { Component, Input, OnDestroy, Type } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router, UrlSegment } from '@angular/router';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport snq from 'snq';\nimport { eLayoutType } from '../enums/common';\nimport { Config } from '../models/config';\nimport { ABP } from '../models/common';\nimport { ConfigState } from '../states/config.state';\nimport { takeUntilDestroy } from '../utils/rxjs-utils';\n\n@Component({\n selector: 'abp-dynamic-layout',\n template: `\n \n\n \n \n `,\n})\nexport class DynamicLayoutComponent implements OnDestroy {\n @Select(ConfigState.getOne('requirements'))\n requirements$: Observable;\n\n layout: Type;\n\n constructor(private router: Router, private route: ActivatedRoute, private store: Store) {\n const {\n requirements: { layouts },\n routes,\n } = this.store.selectSnapshot(ConfigState.getAll);\n\n if ((this.route.snapshot.data || {}).layout) {\n this.layout = layouts\n .filter(l => !!l)\n .find((l: any) => snq(() => l.type.toLowerCase().indexOf(this.route.snapshot.data.layout), -1) > -1);\n }\n\n this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n const { segments } = this.router.parseUrl(event.url).root.children.primary;\n\n const layout = (this.route.snapshot.data || {}).layout || findLayout(segments, routes);\n\n this.layout = layouts\n .filter(l => !!l)\n .find((l: any) => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1);\n }\n });\n }\n\n ngOnDestroy() {}\n}\n\nfunction findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType {\n let layout = eLayoutType.empty;\n\n const route = routes\n .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), [])\n .find(r => r.path === segments[0].path);\n\n if (route) {\n if (route.layout) {\n layout = route.layout;\n }\n\n if (route.children && route.children.length && segments.length > 1) {\n const child = route.children.find(c => c.path === segments[1].path);\n\n if (child && child.layout) {\n layout = child.layout;\n }\n }\n }\n\n return layout;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-router-outlet',\n template: `\n \n `,\n})\nexport class RouterOutletComponent {}\n","import { Directive, ElementRef, Input, AfterViewInit } from '@angular/core';\n\n@Directive({\n selector: '[autofocus]',\n})\nexport class AutofocusDirective implements AfterViewInit {\n @Input('autofocus')\n delay: number = 0;\n\n constructor(private elRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => this.elRef.nativeElement.focus(), this.delay);\n }\n}\n","import { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[abpEllipsis]',\n})\nexport class EllipsisDirective implements AfterContentInit {\n @Input('abpEllipsis')\n width: string;\n\n @HostBinding('title')\n @Input()\n title: string;\n\n @Input('abpEllipsisEnabled')\n enabled = true;\n\n @HostBinding('class.abp-ellipsis-inline')\n get inlineClass() {\n return this.enabled && this.width;\n }\n\n @HostBinding('class.abp-ellipsis')\n get class() {\n return this.enabled && !this.width;\n }\n\n @HostBinding('style.max-width')\n get maxWidth() {\n return this.enabled && this.width ? this.width || '170px' : undefined;\n }\n\n constructor(private cdRef: ChangeDetectorRef, private elRef: ElementRef) {}\n\n ngAfterContentInit() {\n setTimeout(() => {\n const title = this.title;\n this.title = title || (this.elRef.nativeElement as HTMLElement).innerText;\n\n if (this.title !== title) {\n this.cdRef.detectChanges();\n }\n }, 0);\n }\n}\n","import {\n Directive,\n EmbeddedViewRef,\n Input,\n IterableChangeRecord,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n OnChanges,\n TemplateRef,\n TrackByFunction,\n ViewContainerRef,\n} from '@angular/core';\nimport compare from 'just-compare';\nimport clone from 'just-clone';\n\nexport type CompareFn = (value: T, comparison: T) => boolean;\n\nclass AbpForContext {\n constructor(public $implicit: any, public index: number, public count: number, public list: any[]) {}\n}\n\nclass RecordView {\n constructor(public record: IterableChangeRecord, public view: EmbeddedViewRef) {}\n}\n\n@Directive({\n selector: '[abpFor]',\n})\nexport class ForDirective implements OnChanges {\n @Input('abpForOf')\n items: any[];\n\n @Input('abpForOrderBy')\n orderBy: string;\n\n @Input('abpForOrderDir')\n orderDir: 'ASC' | 'DESC';\n\n @Input('abpForFilterBy')\n filterBy: string;\n\n @Input('abpForFilterVal')\n filterVal: any;\n\n @Input('abpForTrackBy')\n trackBy;\n\n @Input('abpForCompareBy')\n compareBy: CompareFn;\n\n @Input('abpForEmptyRef')\n emptyRef: TemplateRef;\n\n private differ: IterableDiffer;\n\n private isShowEmptyRef: boolean;\n\n get compareFn(): CompareFn {\n return this.compareBy || compare;\n }\n\n get trackByFn(): TrackByFunction {\n return this.trackBy || ((index: number, item: any) => (item as any).id || index);\n }\n\n constructor(\n private tempRef: TemplateRef,\n private vcRef: ViewContainerRef,\n private differs: IterableDiffers,\n ) {}\n\n private iterateOverAppliedOperations(changes: IterableChanges) {\n const rw: RecordView[] = [];\n\n changes.forEachOperation((record: IterableChangeRecord, previousIndex: number, currentIndex: number) => {\n if (record.previousIndex == null) {\n const view = this.vcRef.createEmbeddedView(\n this.tempRef,\n new AbpForContext(null, -1, -1, this.items),\n currentIndex,\n );\n\n rw.push(new RecordView(record, view));\n } else if (currentIndex == null) {\n this.vcRef.remove(previousIndex);\n } else {\n const view = this.vcRef.get(previousIndex);\n this.vcRef.move(view, currentIndex);\n\n rw.push(new RecordView(record, view as EmbeddedViewRef));\n }\n });\n\n for (let i = 0, l = rw.length; i < l; i++) {\n rw[i].view.context.$implicit = rw[i].record.item;\n }\n }\n\n private iterateOverAttachedViews(changes: IterableChanges) {\n for (let i = 0, l = this.vcRef.length; i < l; i++) {\n const viewRef = this.vcRef.get(i) as EmbeddedViewRef;\n viewRef.context.index = i;\n viewRef.context.count = l;\n viewRef.context.list = this.items;\n }\n\n changes.forEachIdentityChange((record: IterableChangeRecord) => {\n const viewRef = this.vcRef.get(record.currentIndex) as EmbeddedViewRef;\n viewRef.context.$implicit = record.item;\n });\n }\n\n private projectItems(items: any[]): void {\n if (!items.length && this.emptyRef) {\n this.vcRef.createEmbeddedView(this.emptyRef).rootNodes;\n this.isShowEmptyRef = true;\n\n return;\n }\n\n if (this.emptyRef && this.isShowEmptyRef) {\n this.vcRef.clear();\n this.isShowEmptyRef = false;\n }\n\n if (!this.differ && items) {\n this.differ = this.differs.find(items).create(this.trackByFn);\n }\n\n if (this.differ) {\n const changes = this.differ.diff(items);\n\n if (changes) {\n this.iterateOverAppliedOperations(changes);\n this.iterateOverAttachedViews(changes);\n }\n }\n }\n\n private sortItems(items: any[]) {\n if (this.orderBy) {\n items.sort((a, b) => (a[this.orderBy] > b[this.orderBy] ? 1 : a[this.orderBy] < b[this.orderBy] ? -1 : 0));\n } else {\n items.sort();\n }\n }\n\n ngOnChanges() {\n let items = clone(this.items) as any[];\n if (!Array.isArray(items)) return;\n\n const compareFn = this.compareFn;\n\n if (typeof this.filterBy !== 'undefined') {\n items = items.filter(item => compareFn(item[this.filterBy], this.filterVal));\n }\n\n switch (this.orderDir) {\n case 'ASC':\n this.sortItems(items);\n this.projectItems(items);\n break;\n\n case 'DESC':\n this.sortItems(items);\n items.reverse();\n this.projectItems(items);\n break;\n\n default:\n this.projectItems(items);\n }\n }\n}\n","export function noop() {\n const fn = function() {};\n return fn;\n}\n","export function uuid(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Self,\n} from '@angular/core';\nimport { FormControl, FormGroup, FormGroupDirective } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { takeUntilDestroy } from '../utils';\n\ntype Controls = { [key: string]: FormControl } | FormGroup[];\n\n@Directive({\n selector: 'form[ngSubmit][formGroup]',\n})\nexport class FormSubmitDirective implements OnInit, OnDestroy {\n @Input()\n notValidateOnSubmit: string | boolean;\n\n @Output()\n ngSubmit = new EventEmitter();\n\n executedNgSubmit: boolean = false;\n\n constructor(\n @Self() private formGroupDirective: FormGroupDirective,\n private host: ElementRef,\n private cdRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.formGroupDirective.ngSubmit.pipe(takeUntilDestroy(this)).subscribe(() => {\n this.markAsDirty();\n this.executedNgSubmit = true;\n });\n\n fromEvent(this.host.nativeElement as HTMLElement, 'keyup')\n .pipe(\n debounceTime(200),\n filter((key: KeyboardEvent) => key && key.key === 'Enter'),\n takeUntilDestroy(this),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n }\n\n this.executedNgSubmit = false;\n });\n\n fromEvent(this.host.nativeElement, 'submit')\n .pipe(\n takeUntilDestroy(this),\n filter(() => !this.notValidateOnSubmit && typeof this.notValidateOnSubmit !== 'string'),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.markAsDirty();\n }\n });\n }\n\n ngOnDestroy(): void {}\n\n markAsDirty() {\n const { form } = this.formGroupDirective;\n\n setDirty(form.controls as { [key: string]: FormControl });\n form.markAsDirty();\n\n this.cdRef.detectChanges();\n }\n}\n\nfunction setDirty(controls: Controls) {\n if (Array.isArray(controls)) {\n controls.forEach(group => {\n setDirty(group.controls as { [key: string]: FormControl });\n });\n return;\n }\n\n Object.keys(controls).forEach(key => {\n controls[key].markAsDirty();\n controls[key].updateValueAndValidity();\n });\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\n\n@Directive({\n selector: '[abpPermission]',\n})\nexport class PermissionDirective implements OnInit, OnDestroy {\n @Input('abpPermission') condition: string;\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {}\n\n ngOnInit() {\n if (this.condition) {\n this.store\n .select(ConfigState.getGrantedPolicy(this.condition))\n .pipe(takeUntilDestroy(this))\n .subscribe(isGranted => {\n if (!isGranted) {\n this.renderer.removeChild(\n (this.elRef.nativeElement as HTMLElement).parentElement,\n this.elRef.nativeElement,\n );\n }\n });\n }\n }\n\n ngOnDestroy(): void {}\n}\n","import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport snq from 'snq';\n\n@Directive({\n selector: '[abpVisibility]',\n})\nexport class VisibilityDirective implements AfterViewInit {\n @Input('abpVisibility')\n focusedElement: HTMLElement;\n\n @Input()\n mutationObserverEnabled: boolean = true;\n\n completed$ = new Subject();\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n let observer: MutationObserver;\n if (this.mutationObserverEnabled) {\n observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (!mutation.target) return;\n\n const htmlNodes = snq(\n () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) {\n this.removeFromDOM();\n this.disconnect();\n } else {\n setTimeout(() => {\n this.disconnect();\n }, 0);\n }\n });\n });\n\n observer.observe(this.focusedElement, {\n childList: true,\n });\n } else {\n setTimeout(() => {\n const htmlNodes = snq(\n () => Array.from(this.focusedElement.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) this.removeFromDOM();\n }, 0);\n }\n\n this.completed$.subscribe(() => observer.disconnect());\n }\n\n disconnect() {\n this.completed$.next();\n this.completed$.complete();\n }\n\n removeFromDOM() {\n this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement);\n }\n}\n","export const enum eLayoutType {\n account = 'account',\n application = 'application',\n empty = 'empty',\n setting = 'setting',\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { Navigate } from '@ngxs/router-plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n constructor(private oauthService: OAuthService, private store: Store, private router: Router) {}\n\n canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree {\n const hasValidAccessToken = this.oauthService.hasValidAccessToken();\n if (hasValidAccessToken) {\n return hasValidAccessToken;\n }\n\n return this.router.createUrlTree(['/account/login'], { state: { redirectUrl: state.url } });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { ConfigState } from '../states';\nimport { tap } from 'rxjs/operators';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionGuard implements CanActivate {\n constructor(private store: Store) {}\n\n canActivate({ data }: ActivatedRouteSnapshot): Observable {\n const resource = data.requiredPolicy as string;\n return this.store.select(ConfigState.getGrantedPolicy(resource)).pipe(\n tap(access => {\n if (!access) {\n this.store.dispatch(new RestOccurError({ status: 403 }));\n }\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Store } from '@ngxs/store';\nimport { SessionState } from '../states';\nimport { StartLoader, StopLoader } from '../actions/loader.actions';\nimport { finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n constructor(private oAuthService: OAuthService, private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler) {\n this.store.dispatch(new StartLoader(request));\n\n const headers = {} as any;\n\n const token = this.oAuthService.getAccessToken();\n if (!request.headers.has('Authorization') && token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const lang = this.store.selectSnapshot(SessionState.getLanguage);\n if (!request.headers.has('Accept-Language') && lang) {\n headers['Accept-Language'] = lang;\n }\n\n const tenant = this.store.selectSnapshot(SessionState.getTenant);\n if (!request.headers.has('__tenant') && tenant) {\n headers['__tenant'] = tenant.id;\n }\n\n return next\n .handle(\n request.clone({\n setHeaders: headers,\n }),\n )\n .pipe(finalize(() => this.store.dispatch(new StopLoader(request))));\n }\n}\n","export namespace ApplicationConfiguration {\n export interface Response {\n localization: Localization;\n auth: Auth;\n setting: Setting;\n currentUser: CurrentUser;\n features: Features;\n }\n\n export interface Localization {\n values: LocalizationValue;\n languages: Language[];\n }\n\n export interface LocalizationValue {\n [key: string]: { [key: string]: string };\n }\n\n export interface Language {\n cultureName: string;\n uiCultureName: string;\n displayName: string;\n flagIcon: string;\n }\n\n export interface Auth {\n policies: Policy;\n grantedPolicies: Policy;\n }\n\n export interface Policy {\n [key: string]: boolean;\n }\n\n export interface Setting {\n values: { [key: string]: 'Abp.Localization.DefaultLanguage' };\n }\n\n export interface CurrentUser {\n isAuthenticated: boolean;\n id: string;\n tenantId: string;\n userName: string;\n }\n\n export interface Features {\n values: Setting;\n }\n}\n","import { Config } from './config';\nimport { eLayoutType } from '../enums/common';\n\nexport namespace ABP {\n export interface Root {\n environment: Partial;\n requirements: Config.Requirements;\n }\n\n export type PagedResponse = {\n totalCount: number;\n } & PagedItemsResponse;\n\n export interface PagedItemsResponse {\n items: T[];\n }\n\n export interface PageQueryParams {\n filter?: string;\n sorting?: string;\n skipCount?: number;\n maxResultCount?: number;\n }\n\n export interface Route {\n children?: Route[];\n invisible?: boolean;\n layout?: eLayoutType;\n name: string;\n order?: number;\n parentName?: string;\n path: string;\n requiredPolicy?: string;\n iconClass?: string;\n }\n\n export interface FullRoute extends Route {\n url?: string;\n wrapper?: boolean;\n }\n\n export interface BasicItem {\n id: string;\n name: string;\n }\n}\n","import { AuthConfig } from 'angular-oauth2-oidc';\nimport { Type } from '@angular/core';\nimport { ApplicationConfiguration } from './application-configuration';\nimport { ABP } from './common';\n\nexport namespace Config {\n export type State = ApplicationConfiguration.Response &\n ABP.Root & { environment: Environment } & {\n routes: ABP.FullRoute[];\n flattedRoutes: ABP.FullRoute[];\n };\n\n export interface Environment {\n application: Application;\n production: boolean;\n oAuthConfig: AuthConfig;\n apis: Apis;\n localization: { defaultResourceName: string };\n }\n\n export interface Application {\n name: string;\n logoUrl?: string;\n }\n\n export interface Apis {\n [key: string]: { [key: string]: string };\n }\n\n export interface Requirements {\n layouts: Type[];\n }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\n\nexport namespace Rest {\n export interface Config {\n skipHandleError?: boolean;\n observe?: Observe;\n }\n\n export const enum Observe {\n Body = 'body',\n Events = 'events',\n Response = 'response',\n }\n\n export const enum ResponseType {\n ArrayBuffer = 'arraybuffer',\n Blob = 'blob',\n JSON = 'json',\n Text = 'text',\n }\n\n export interface Request {\n body?: T;\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n method: string;\n params?:\n | HttpParams\n | {\n [param: string]: any;\n };\n reportProgress?: boolean;\n responseType?: ResponseType;\n url: string;\n withCredentials?: boolean;\n }\n}\n","import { ABP } from '../models';\n\nexport namespace Session {\n export interface State {\n language: string;\n tenant: ABP.BasicItem;\n }\n}\n","export namespace Profile {\n export interface State {\n profile: Response;\n }\n\n export interface Response {\n userName: string;\n email: string;\n name: string;\n surname: string;\n phoneNumber: string;\n }\n\n export interface ChangePasswordRequest {\n currentPassword: string;\n newPassword: string;\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Router, Routes } from '@angular/router';\nimport { actionMatcher, InitState, NgxsNextPluginFn, NgxsPlugin, setValue, UpdateState } from '@ngxs/store';\nimport snq from 'snq';\nimport { ABP } from '../../models';\nimport { organizeRoutes } from '../../utils/route-utils';\nimport clone from 'just-clone';\n\nexport const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS');\n\n@Injectable()\nexport class ConfigPlugin implements NgxsPlugin {\n private initialized: boolean = false;\n\n constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const matches = actionMatcher(event);\n const isInitAction = matches(InitState) || matches(UpdateState);\n\n // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []);\n if (isInitAction && !this.initialized) {\n let { routes, wrappers } = transformRoutes(this.router.config);\n routes = organizeRoutes(routes, wrappers);\n const flattedRoutes = flatRoutes(clone(routes));\n state = setValue(state, 'ConfigState', {\n ...(state.ConfigState && { ...state.ConfigState }),\n ...this.options,\n routes,\n flattedRoutes,\n });\n\n this.initialized = true;\n }\n\n return next(state, event);\n }\n}\n\nfunction transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any {\n const abpRoutes: ABP.FullRoute[] = routes\n .filter(route => {\n return snq(() => route.data.routes.routes.find(r => r.path === route.path), false);\n })\n .reduce((acc, val) => [...acc, ...val.data.routes.routes], []);\n\n wrappers = abpRoutes.filter(ar => ar.wrapper);\n const transformed = [] as ABP.FullRoute[];\n routes\n .filter(route => (route.data || {}).routes && (route.component || route.loadChildren))\n .forEach(route => {\n const abpPackage = abpRoutes.find(\n abp => abp.path.toLowerCase() === route.path.toLowerCase() && snq(() => route.data.routes.routes.length, false),\n );\n const { length } = transformed;\n\n if (abpPackage) {\n transformed.push(abpPackage);\n }\n\n if (transformed.length === length) {\n transformed.push({\n ...route.data.routes,\n path: route.path,\n name: snq(() => route.data.routes.name, route.path),\n children: route.data.routes.children || [],\n } as ABP.FullRoute);\n }\n });\n\n return { routes: setUrls(transformed), wrappers };\n}\n\nfunction setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] {\n if (parentUrl) {\n // this if block using for only recursive call\n\n return routes.map(route => ({\n ...route,\n url: `${parentUrl}/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `${parentUrl}/${route.path}`),\n }),\n }));\n }\n\n return routes.map(route => ({\n ...route,\n url: `/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `/${route.path}`),\n }),\n }));\n}\n\nfunction flatRoutes(routes: ABP.FullRoute[]): ABP.FullRoute[] {\n const flat = (r: ABP.FullRoute[]) => {\n return r.reduce((acc, val) => {\n let value: ABP.FullRoute[] = [val];\n if (val.children) {\n value = [val, ...flat(val.children)];\n }\n\n return [...acc, ...value];\n }, []);\n };\n\n return flat(routes);\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n constructor(private store: Store) {}\n\n getAll() {\n return this.store.selectSnapshot(ConfigState.getAll);\n }\n\n getOne(key: string) {\n return this.store.selectSnapshot(ConfigState.getOne(key));\n }\n\n getDeep(keys: string[] | string) {\n return this.store.selectSnapshot(ConfigState.getDeep(keys));\n }\n\n getSetting(key: string) {\n return this.store.selectSnapshot(ConfigState.getSetting(key));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { uuid } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyLoadService {\n loadedLibraries: { [url: string]: ReplaySubject } = {};\n\n load(\n url: string,\n type: 'script' | 'style',\n content: string = '',\n targetQuery: string = 'body',\n position: InsertPosition = 'afterend',\n ): Observable {\n if (!url && !content) return;\n const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid();\n\n if (this.loadedLibraries[key]) {\n return this.loadedLibraries[key].asObservable();\n }\n\n this.loadedLibraries[key] = new ReplaySubject();\n\n let library;\n if (type === 'script') {\n library = document.createElement('script');\n library.type = 'text/javascript';\n if (url) {\n (library as HTMLScriptElement).src = url;\n }\n\n (library as HTMLScriptElement).text = content;\n } else if (url) {\n library = document.createElement('link');\n library.type = 'text/css';\n (library as HTMLLinkElement).rel = 'stylesheet';\n\n if (url) {\n (library as HTMLLinkElement).href = url;\n }\n } else {\n library = document.createElement('style');\n (library as HTMLStyleElement).textContent = content;\n }\n\n library.onload = () => {\n this.loadedLibraries[key].next();\n this.loadedLibraries[key].complete();\n };\n\n document.querySelector(targetQuery).insertAdjacentElement(position, library);\n\n return this.loadedLibraries[key].asObservable();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Config } from '../models';\n\nexport function environmentFactory(environment: Config.Environment) {\n return {\n ...environment,\n };\n}\n\nexport function configFactory(config: Config.Requirements) {\n return {\n ...config,\n };\n}\n\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\n\nexport const CONFIG = new InjectionToken('CONFIG');\n","import { Directive, Output, Renderer2, ElementRef, OnInit, EventEmitter, Input } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[input.debounce]',\n})\nexport class InputEventDebounceDirective implements OnInit {\n @Input() debounce: number = 300;\n\n @Output('input.debounce') debounceEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'input')\n .pipe(\n debounceTime(this.debounce),\n takeUntilDestroy(this),\n )\n .subscribe((event: Event) => {\n this.debounceEvent.emit(event);\n });\n }\n}\n","import { Directive, ElementRef, EventEmitter, OnInit, Output, Renderer2 } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[click.stop]',\n})\nexport class ClickEventStopPropagationDirective implements OnInit {\n @Output('click.stop') stopPropEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'click')\n .pipe(takeUntilDestroy(this))\n .subscribe((event: MouseEvent) => {\n event.stopPropagation();\n this.stopPropEvent.emit(event);\n });\n }\n}\n","import { Pipe, PipeTransform, OnDestroy } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Pipe({\n name: 'abpLocalization',\n pure: false, // required to update the value\n})\nexport class LocalizationPipe implements PipeTransform, OnDestroy {\n initialValue: string = '';\n\n value: string;\n\n destroy$ = new Subject();\n\n constructor(private store: Store) {}\n\n transform(value: string = '', ...interpolateParams: string[]): string {\n if (this.initialValue !== value) {\n this.initialValue = value;\n this.destroy$.next();\n\n this.store\n .select(\n ConfigState.getCopy(\n value,\n ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []),\n ),\n )\n .pipe(\n takeUntil(this.destroy$),\n takeUntilDestroy(this),\n distinctUntilChanged(),\n )\n .subscribe(copy => (this.value = copy));\n }\n\n return this.value;\n }\n\n ngOnDestroy() {}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'abpSort',\n pure: false\n})\nexport class SortPipe implements PipeTransform {\n transform(value: any[], sortOrder: string): any {\n sortOrder = sortOrder.toLowerCase();\n if(sortOrder === \"desc\") return value.reverse();\n else return value;\n }\n}","import { LOCALE_ID, Provider } from '@angular/core';\nimport localesMapping from '../constants/different-locales';\nimport { LocalizationService } from '../services/localization.service';\n\nexport class LocaleId extends String {\n constructor(private localizationService: LocalizationService) {\n super();\n }\n\n toString(): string {\n const { currentLang } = this.localizationService;\n return localesMapping[currentLang] || currentLang;\n }\n\n valueOf(): string {\n return this.toString();\n }\n}\n\nexport const LocaleProvider: Provider = {\n provide: LOCALE_ID,\n useClass: LocaleId,\n deps: [LocalizationService],\n};\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxsRouterPluginModule } from '@ngxs/router-plugin';\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\nimport { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\nimport { RouterOutletComponent } from './components/router-outlet.component';\nimport { AutofocusDirective } from './directives/autofocus.directive';\nimport { InputEventDebounceDirective } from './directives/debounce.directive';\nimport { EllipsisDirective } from './directives/ellipsis.directive';\nimport { FormSubmitDirective } from './directives/form-submit.directive';\nimport { PermissionDirective } from './directives/permission.directive';\nimport { ClickEventStopPropagationDirective } from './directives/stop-propagation.directive';\nimport { VisibilityDirective } from './directives/visibility.directive';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ABP } from './models/common';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { SortPipe } from './pipes/sort.pipe';\nimport { LocaleProvider } from './providers/locale.provider';\nimport { ConfigState } from './states/config.state';\nimport { ProfileState } from './states/profile.state';\nimport { SessionState } from './states/session.state';\nimport { getInitialData, localeInitializer } from './utils/initial-utils';\nimport { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config/config.plugin';\nimport { ForDirective } from './directives/for.directive';\nimport { AbstractNgModelComponent } from './abstracts/ng-model.component';\n\n@NgModule({\n imports: [\n NgxsModule.forFeature([ProfileState, SessionState, ConfigState]),\n NgxsStoragePluginModule.forRoot({ key: 'SessionState' }),\n NgxsRouterPluginModule.forRoot(),\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n ],\n declarations: [\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n ForDirective,\n FormSubmitDirective,\n LocalizationPipe,\n SortPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n ClickEventStopPropagationDirective,\n AbstractNgModelComponent,\n ],\n exports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n ForDirective,\n FormSubmitDirective,\n LocalizationPipe,\n SortPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n LocalizationPipe,\n ClickEventStopPropagationDirective,\n AbstractNgModelComponent,\n ],\n providers: [LocalizationPipe],\n entryComponents: [RouterOutletComponent, DynamicLayoutComponent],\n})\nexport class CoreModule {\n static forRoot(options = {} as ABP.Root): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [\n LocaleProvider,\n {\n provide: NGXS_PLUGINS,\n useClass: ConfigPlugin,\n multi: true,\n },\n {\n provide: NGXS_CONFIG_PLUGIN_OPTIONS,\n useValue: options,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: localeInitializer,\n },\n ],\n };\n }\n}\n"],"names":["ChangeDetectorRef","Component","Injector","Input","Injectable","tap","tslib_1.__decorate","Action","Selector","State","store","Store","differentLocales","registerLocaleData","noop","Router","NgZone","Actions","Optional","SkipSelf","combineLatest","from","throwError","take","catchError","HttpClient","createSelector","switchMap","of","Subject","takeUntil","router","NavigationEnd","ActivatedRoute","Select","Observable","Directive","ElementRef","HostBinding","TemplateRef","ViewContainerRef","IterableDiffers","EventEmitter","fromEvent","debounceTime","filter","FormGroupDirective","Self","Output","Renderer2","OAuthService","finalize","Rest","InjectionToken","actionMatcher","InitState","UpdateState","setValue","Inject","ReplaySubject","takeUntilDestroy","distinctUntilChanged","Pipe","tslib_1.__extends","LOCALE_ID","NGXS_PLUGINS","HTTP_INTERCEPTORS","APP_INITIALIZER","NgModule","NgxsModule","NgxsStoragePluginModule","NgxsRouterPluginModule","CommonModule","HttpClientModule","FormsModule","ReactiveFormsModule","RouterModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/core/bundles/abp-ng.core.umd.min.js b/npm/ng-packs/dist/core/bundles/abp-ng.core.umd.min.js index f20a857e03..8bba8904dc 100644 --- a/npm/ng-packs/dist/core/bundles/abp-ng.core.umd.min.js +++ b/npm/ng-packs/dist/core/bundles/abp-ng.core.umd.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/router"),require("@ngxs/store"),require("rxjs"),require("@angular/common/http"),require("rxjs/operators"),require("snq"),require("@angular/common"),require("@angular/forms"),require("angular-oauth2-oidc"),require("@ngxs/router-plugin"),require("@ngxs/storage-plugin"),require("@ngx-validate/core")):"function"==typeof define&&define.amd?define("@abp/ng.core",["exports","@angular/core","@angular/router","@ngxs/store","rxjs","@angular/common/http","rxjs/operators","snq","@angular/common","@angular/forms","angular-oauth2-oidc","@ngxs/router-plugin","@ngxs/storage-plugin","@ngx-validate/core"],e):e(((t=t||self).abp=t.abp||{},t.abp.ng=t.abp.ng||{},t.abp.ng.core={}),t.ng.core,t.ng.router,t.store,t.rxjs,t.ng.common.http,t.rxjs.operators,t.snq,t.ng.common,t.ng.forms,t.angularOauth2Oidc,t.routerPlugin,t.storagePlugin,t.core$1)}(this,function(exports,core,router,store,rxjs,http,operators,snq,common,forms,angularOauth2Oidc,routerPlugin,storagePlugin,core$1){"use strict";snq=snq&&snq.hasOwnProperty("default")?snq.default:snq;var extendStatics=function(t,e){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)};function __extends(t,e){function r(){this.constructor=t}extendStatics(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}var __assign=function(){return(__assign=Object.assign||function(t){for(var e,r=1,n=arguments.length;r=0;c--)(o=t[c])&&(a=(i<3?o(a):i>3?o(e,r,a):o(e,r))||a);return i>3&&a&&Object.defineProperty(e,r,a),a}function __param(t,e){return function(r,n){e(r,n,t)}}function __metadata(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function __awaiter(t,e,r,n){return new(r||(r=Promise))(function(o,i){function a(t){try{s(n.next(t))}catch(t){i(t)}}function c(t){try{s(n.throw(t))}catch(t){i(t)}}function s(t){t.done?o(t.value):new r(function(e){e(t.value)}).then(a,c)}s((n=n.apply(t,e||[])).next())})}function __generator(t,e){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}}}function __read(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,o,i=r.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(t){o={error:t}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function __spread(){for(var t=[],e=0;e1||c(t,e)})})}function c(t,e){try{(r=o[t](e)).value instanceof __await?Promise.resolve(r.value.v).then(s,u):p(i[0][2],r)}catch(t){p(i[0][3],t)}var r}function s(t){c("next",t)}function u(t){c("throw",t)}function p(t,e){t(e),i.shift(),i.length&&c(i[0][0],i[0][1])}}function __asyncDelegator(t){var e,r;return e={},n("next"),n("throw",function(t){throw t}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(n,o){e[n]=t[n]?function(e){return(r=!r)?{value:__await(t[n](e)),done:"return"===n}:o?o(e):e}:o}}function __asyncValues(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,r=t[Symbol.asyncIterator];return r?r.call(t):(t="function"==typeof __values?__values(t):t[Symbol.iterator](),e={},n("next"),n("throw"),n("return"),e[Symbol.asyncIterator]=function(){return this},e);function n(r){e[r]=t[r]&&function(e){return new Promise(function(n,o){(function(t,e,r,n){Promise.resolve(n).then(function(e){t({value:e,done:r})},e)})(n,o,(e=t[r](e)).done,e.value)})}}}function __makeTemplateObject(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function __importStar(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}function __importDefault(t){return t&&t.__esModule?t:{default:t}}var PatchRouteByName=function(){function t(t,e){this.name=t,this.newValue=e}return t.type="[Config] Patch Route By Name",t}();var GetAppConfiguration=function(){function t(){}return t.type="[Config] Get App Configuration",t}();var StartLoader=function(){function t(t){this.payload=t}return t.type="[Loader] Start",t}();var StopLoader=function(){function t(t){this.payload=t}return t.type="[Loader] Stop",t}();var GetProfile=function(){function t(){}return t.type="[Profile] Get",t}();var UpdateProfile=function(){function t(t){this.payload=t}return t.type="[Profile] Update",t}();var ChangePassword=function(){function t(t){this.payload=t}return t.type="[Profile] Change Password",t}();var RestOccurError=function(){function t(t){this.payload=t}return t.type="[Rest] Error",t}();var SetLanguage=function(){function t(t){this.payload=t}return t.type="[Session] Set Language",t}();var SetTenant=function(){function t(t){this.payload=t}return t.type="[Session] Set Tenant",t}();var RestService=function(){function t(t,e){this.http=t,this.store=e}return t.prototype.handleError=function(t){return this.store.dispatch(new RestOccurError(t)),console.error(t),rxjs.throwError(t)},t.prototype.request=function(t,e,r){var n=this;void 0===e&&(e={});var o=e.observe,i=void 0===o?"body":o,a=e.skipHandleError,c=r||this.store.selectSnapshot(ConfigState.getApiUrl())+t.url,s=t.method,u=__rest(t,["method"]);return this.http.request(s,c,__assign({observe:i},u)).pipe("body"===i?operators.take(1):null,operators.catchError(function(t){return a?rxjs.throwError(t):n.handleError(t)}))},t.decorators=[{type:core.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:http.HttpClient},{type:store.Store}]},t.ngInjectableDef=core.ɵɵdefineInjectable({factory:function(){return new t(core.ɵɵinject(http.HttpClient),core.ɵɵinject(store.Store))},token:t,providedIn:"root"}),t}();var ProfileService=function(){function t(t){this.rest=t}return t.prototype.get=function(){return this.rest.request({method:"GET",url:"/api/identity/my-profile"})},t.prototype.update=function(t){var e={method:"PUT",url:"/api/identity/my-profile",body:t};return this.rest.request(e)},t.prototype.changePassword=function(t,e){void 0===e&&(e=!1);var r={method:"POST",url:"/api/identity/my-profile/change-password",body:t};return this.rest.request(r,{skipHandleError:e})},t.decorators=[{type:core.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:RestService}]},t.ngInjectableDef=core.ɵɵdefineInjectable({factory:function(){return new t(core.ɵɵinject(RestService))},token:t,providedIn:"root"}),t}();var ProfileState=function(){function t(t){this.profileService=t}return t.getProfile=function(t){return t.profile},t.prototype.profileGet=function(t){var e=t.patchState;return this.profileService.get().pipe(operators.tap(function(t){return e({profile:t})}))},t.prototype.profileUpdate=function(t,e){var r=t.patchState,n=e.payload;return this.profileService.update(n).pipe(operators.tap(function(t){return r({profile:t})}))},t.prototype.changePassword=function(t,e){var r=e.payload;return this.profileService.changePassword(r,!0)},__decorate([store.Action(GetProfile),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],t.prototype,"profileGet",null),__decorate([store.Action(UpdateProfile),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,UpdateProfile]),__metadata("design:returntype",void 0)],t.prototype,"profileUpdate",null),__decorate([store.Action(ChangePassword),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,ChangePassword]),__metadata("design:returntype",void 0)],t.prototype,"changePassword",null),__decorate([store.Selector(),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Object)],t,"getProfile",null),t=__decorate([store.State({name:"ProfileState",defaults:{}}),__metadata("design:paramtypes",[ProfileService])],t)}();var ApplicationConfigurationService=function(){function t(t){this.rest=t}return t.prototype.getConfiguration=function(){return this.rest.request({method:"GET",url:"/api/abp/application-configuration"})},t.decorators=[{type:core.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:RestService}]},t.ngInjectableDef=core.ɵɵdefineInjectable({factory:function(){return new t(core.ɵɵinject(RestService))},token:t,providedIn:"root"}),t}();var localesMapping={"ar-sa":"ar-SA","ca-ES-valencia":"ca-ES-VALENCIA","de-de":"de","es-ES":"es","en-US":"en","fil-Latn":"en","ku-Arab":"en","ky-Cyrl":"en","mi-Latn":"en","prs-Arab":"en","qut-Latn":"en",nso:"en",quz:"en","fr-FR":"fr","gd-Latn":"gd","ha-Latn":"ha","ig-Latn":"ig","it-it":"it","mn-Cyrl":"mn","pt-BR":"pt","sd-Arab":"pa-Arab","sr-Cyrl-RS":"sr-Cyrl","sr-Latn-RS":"sr-Latn","tg-Cyrl":"tg","tk-Latn":"tk","tt-Cyrl":"tt","ug-Arab":"ug","yo-Latn":"yo"};function getInitialData(t){return function(){return t.get(store.Store).dispatch(new GetAppConfiguration).toPromise()}}function localeInitializer(t){return function(){var e=t.get(store.Store).selectSnapshot(SessionState.getLanguage)||"en";return new Promise(function(t,r){registerLocale(e).then(function(){return t()},r)})}}function registerLocale(t){return import("@angular/common/locales/"+(localesMapping[t]||t)+".js").then(function(t){common.registerLocaleData(t.default)})}var LocalizationService=function(){function t(t,e,r,n){if(this.store=t,this.router=e,this.actions=r,n)throw new Error("LocaleService should have only one instance.")}return Object.defineProperty(t.prototype,"currentLang",{get:function(){return this.store.selectSnapshot(SessionState.getLanguage)},enumerable:!0,configurable:!0}),t.prototype.setRouteReuse=function(t){this.router.routeReuseStrategy.shouldReuseRoute=t},t.prototype.registerLocale=function(t){var e=this,r=this.router.routeReuseStrategy.shouldReuseRoute;return this.setRouteReuse(function(){return!1}),this.router.navigated=!1,registerLocale(t).then(function(){return __awaiter(e,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return[4,this.router.navigateByUrl(this.router.url).catch(rxjs.noop)];case 1:return t.sent(),this.setRouteReuse(r),[2]}})})})},t.prototype.get=function(t){for(var e=[],r=1;r1?(keys.forEach(function(t){var e=getPolicy(t);condition=condition.replace(t,e)}),eval("!!"+condition)):getPolicy(condition)});return selector},ConfigState.getCopy=function(t){for(var e=[],r=1;r>t/4).toString(16):(""+1e7+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,uuid)}function isFunction(t){return"function"==typeof t}var takeUntilDestroy=function(t,e){return void 0===e&&(e="ngOnDestroy"),function(r){var n=t[e];if(!1===isFunction(n))throw new Error(t.constructor.name+" is using untilDestroyed but doesn't implement "+e);return t.__takeUntilDestroy||(t.__takeUntilDestroy=new rxjs.Subject,t[e]=function(){isFunction(n)&&n.apply(this,arguments),t.__takeUntilDestroy.next(!0),t.__takeUntilDestroy.complete()}),r.pipe(operators.takeUntil(t.__takeUntilDestroy))}},DynamicLayoutComponent=function(){function t(t,e){var r=this;this.router=t,this.store=e,this.router.events.pipe(takeUntilDestroy(this)).subscribe(function(t){if(t instanceof router.NavigationEnd){var e=r.router.parseUrl(t.url).root.children.primary.segments,n=r.store.selectSnapshot(ConfigState.getAll),o=n.requirements.layouts,i=findLayout(e,n.routes);r.layout=o.filter(function(t){return!!t}).find(function(t){return snq(function(){return t.type.toLowerCase().indexOf(i)},-1)>-1})}})}return t.prototype.ngOnDestroy=function(){},t.decorators=[{type:core.Component,args:[{selector:"abp-dynamic-layout",template:'\n \n\n \n \n '}]}],t.ctorParameters=function(){return[{type:router.Router},{type:store.Store}]},__decorate([store.Select(ConfigState.getOne("requirements")),__metadata("design:type",rxjs.Observable)],t.prototype,"requirements$",void 0),t}();function findLayout(t,e){var r="empty",n=e.reduce(function(t,e){return e.wrapper?__spread(t,e.children):__spread(t,[e])},[]).find(function(e){return e.path===t[0].path});if(n&&(n.layout&&(r=n.layout),n.children&&n.children.length&&t.length>1)){var o=n.children.find(function(e){return e.path===t[1].path});o&&o.layout&&(r=o.layout)}return r}var RouterOutletComponent=function(){function t(){}return t.decorators=[{type:core.Component,args:[{selector:"abp-router-outlet",template:"\n \n "}]}],t}(),AutofocusDirective=function(){function t(t){this.elRef=t,this.delay=0}return t.prototype.ngAfterViewInit=function(){var t=this;setTimeout(function(){return t.elRef.nativeElement.focus()},this.delay)},t.decorators=[{type:core.Directive,args:[{selector:"[autofocus]"}]}],t.ctorParameters=function(){return[{type:core.ElementRef}]},t.propDecorators={delay:[{type:core.Input,args:["autofocus"]}]},t}();var EllipsisDirective=function(){function t(t,e){this.cdRef=t,this.elRef=e,this.enabled=!0}return Object.defineProperty(t.prototype,"inlineClass",{get:function(){return this.enabled&&this.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"class",{get:function(){return this.enabled&&!this.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"maxWidth",{get:function(){return this.enabled&&this.width?this.width||"170px":void 0},enumerable:!0,configurable:!0}),t.prototype.ngAfterContentInit=function(){var t=this;setTimeout(function(){var e=t.title;t.title=e||t.elRef.nativeElement.innerText,t.title!==e&&t.cdRef.detectChanges()},0)},t.decorators=[{type:core.Directive,args:[{selector:"[abpEllipsis]"}]}],t.ctorParameters=function(){return[{type:core.ChangeDetectorRef},{type:core.ElementRef}]},t.propDecorators={width:[{type:core.Input,args:["abpEllipsis"]}],title:[{type:core.HostBinding,args:["title"]},{type:core.Input}],enabled:[{type:core.Input,args:["abpEllipsisEnabled"]}],inlineClass:[{type:core.HostBinding,args:["class.abp-ellipsis-inline"]}],class:[{type:core.HostBinding,args:["class.abp-ellipsis"]}],maxWidth:[{type:core.HostBinding,args:["style.max-width"]}]},t}();var FormSubmitDirective=function(){function t(t,e,r){this.formGroupDirective=t,this.host=e,this.cdRef=r,this.ngSubmit=new core.EventEmitter,this.executedNgSubmit=!1}return t.prototype.ngOnInit=function(){var t=this;this.formGroupDirective.ngSubmit.pipe(takeUntilDestroy(this)).subscribe(function(){t.markAsDirty(),t.executedNgSubmit=!0}),rxjs.fromEvent(this.host.nativeElement,"keyup").pipe(operators.debounceTime(200),operators.filter(function(t){return t&&"Enter"===t.key}),takeUntilDestroy(this)).subscribe(function(){t.executedNgSubmit||t.host.nativeElement.dispatchEvent(new Event("submit",{bubbles:!0,cancelable:!0})),t.executedNgSubmit=!1}),rxjs.fromEvent(this.host.nativeElement,"submit").pipe(takeUntilDestroy(this),operators.filter(function(){return!t.notValidateOnSubmit&&"string"!=typeof t.notValidateOnSubmit})).subscribe(function(){t.executedNgSubmit||t.markAsDirty()})},t.prototype.ngOnDestroy=function(){},t.prototype.markAsDirty=function(){var t=this.formGroupDirective.form;setDirty(t.controls),t.markAsDirty(),this.cdRef.detectChanges()},t.decorators=[{type:core.Directive,args:[{selector:"form[ngSubmit][formGroup]"}]}],t.ctorParameters=function(){return[{type:forms.FormGroupDirective,decorators:[{type:core.Self}]},{type:core.ElementRef},{type:core.ChangeDetectorRef}]},t.propDecorators={notValidateOnSubmit:[{type:core.Input}],ngSubmit:[{type:core.Output}]},t}();function setDirty(t){Array.isArray(t)?t.forEach(function(t){setDirty(t.controls)}):Object.keys(t).forEach(function(e){t[e].markAsDirty(),t[e].updateValueAndValidity()})}var PermissionDirective=function(){function t(t,e,r){this.elRef=t,this.renderer=e,this.store=r}return t.prototype.ngOnInit=function(){var t=this;this.condition&&this.store.select(ConfigState.getGrantedPolicy(this.condition)).pipe(takeUntilDestroy(this)).subscribe(function(e){e||t.renderer.removeChild(t.elRef.nativeElement.parentElement,t.elRef.nativeElement)})},t.prototype.ngOnDestroy=function(){},t.decorators=[{type:core.Directive,args:[{selector:"[abpPermission]"}]}],t.ctorParameters=function(){return[{type:core.ElementRef,decorators:[{type:core.Optional}]},{type:core.Renderer2},{type:store.Store}]},t.propDecorators={condition:[{type:core.Input,args:["abpPermission"]}]},t}();var VisibilityDirective=function(){function t(t,e){this.elRef=t,this.renderer=e,this.completed$=new rxjs.Subject}return t.prototype.ngAfterViewInit=function(){var t=this,e=new MutationObserver(function(e){e.forEach(function(e){e.target&&(snq(function(){return Array.from(e.target.childNodes).filter(function(t){return t instanceof HTMLElement})},[]).length?setTimeout(function(){t.disconnect()},0):(t.renderer.removeChild(t.elRef.nativeElement.parentElement,t.elRef.nativeElement),t.disconnect()))})});e.observe(this.focusedElement,{childList:!0}),this.completed$.subscribe(function(){return e.disconnect()})},t.prototype.disconnect=function(){this.completed$.next(),this.completed$.complete()},t.decorators=[{type:core.Directive,args:[{selector:"[abpVisibility]"}]}],t.ctorParameters=function(){return[{type:core.ElementRef,decorators:[{type:core.Optional}]},{type:core.Renderer2}]},t.propDecorators={focusedElement:[{type:core.Input,args:["abpVisibility"]}]},t}();var eLayoutType={account:"account",application:"application",empty:"empty"},AuthGuard=function(){function t(t,e){this.oauthService=t,this.store=e}return t.prototype.canActivate=function(t,e){var r=this.oauthService.hasValidAccessToken();return r||(this.store.dispatch(new routerPlugin.Navigate(["/account/login"],null,{state:{redirectUrl:e.url}})),!1)},t.decorators=[{type:core.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:angularOauth2Oidc.OAuthService},{type:store.Store}]},t.ngInjectableDef=core.ɵɵdefineInjectable({factory:function(){return new t(core.ɵɵinject(angularOauth2Oidc.OAuthService),core.ɵɵinject(store.Store))},token:t,providedIn:"root"}),t}();var PermissionGuard=function(){function t(t){this.store=t}return t.prototype.canActivate=function(t){var e=this,r=t.data.requiredPolicy;return this.store.select(ConfigState.getGrantedPolicy(r)).pipe(operators.tap(function(t){t||e.store.dispatch(new RestOccurError({status:403}))}))},t.decorators=[{type:core.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:store.Store}]},t.ngInjectableDef=core.ɵɵdefineInjectable({factory:function(){return new t(core.ɵɵinject(store.Store))},token:t,providedIn:"root"}),t}();var ApiInterceptor=function(){function t(t,e){this.oAuthService=t,this.store=e}return t.prototype.intercept=function(t,e){var r=this;this.store.dispatch(new StartLoader(t));var n={},o=this.oAuthService.getAccessToken();!t.headers.has("Authorization")&&o&&(n.Authorization="Bearer "+o);var i=this.store.selectSnapshot(SessionState.getLanguage);!t.headers.has("Accept-Language")&&i&&(n["Accept-Language"]=i);var a=this.store.selectSnapshot(SessionState.getTenant);return!t.headers.has("__tenant")&&a&&(n.__tenant=a.id),e.handle(t.clone({setHeaders:n})).pipe(operators.finalize(function(){return r.store.dispatch(new StopLoader(t))}))},t.decorators=[{type:core.Injectable}],t.ctorParameters=function(){return[{type:angularOauth2Oidc.OAuthService},{type:store.Store}]},t}(),ApplicationConfiguration,ABP,Config,Session,Profile;(function(t){function e(){}function r(){}function n(){}function o(){}function i(){}function a(){}function c(){}t.Response=e,t.Localization=r,t.LocalizationValue=function(){},t.Language=n,t.Auth=o,t.Policy=function(){},t.Setting=i,t.CurrentUser=a,t.Features=c})(ApplicationConfiguration||(ApplicationConfiguration={})),function(t){function e(){}function r(){}function n(){}function o(){}function i(){}function a(){}t.Root=e,t.PagedItemsResponse=r,t.PageQueryParams=n,t.Route=o,t.FullRoute=i,t.BasicItem=a}(ABP||(ABP={})),function(t){function e(){}function r(){}function n(){}t.State=function(){},t.Environment=e,t.Application=r,t.Apis=function(){},t.Requirements=n}(Config||(Config={})),function(t){function e(){}function r(){}t.Config=e,t.Request=r}(exports.Rest||(exports.Rest={})),function(t){function e(){}t.State=e}(Session||(Session={})),function(t){function e(){}function r(){}function n(){}t.State=e,t.Response=r,t.ChangePasswordRequest=n}(Profile||(Profile={}));var NGXS_CONFIG_PLUGIN_OPTIONS=new core.InjectionToken("NGXS_CONFIG_PLUGIN_OPTIONS"),ConfigPlugin=function(){function t(t,e){this.options=t,this.router=e,this.initialized=!1}return t.prototype.handle=function(t,e,r){var n=store.actionMatcher(e);if((n(store.InitState)||n(store.UpdateState))&&!this.initialized){var o=transformRoutes(this.router.config),i=o.routes;i=organizeRoutes(i,o.wrappers),t=store.setValue(t,"ConfigState",__assign({},t.ConfigState&&__assign({},t.ConfigState),this.options,{routes:i})),this.initialized=!0}return r(t,e)},t.decorators=[{type:core.Injectable}],t.ctorParameters=function(){return[{type:void 0,decorators:[{type:core.Inject,args:[NGXS_CONFIG_PLUGIN_OPTIONS]}]},{type:router.Router}]},t}();function transformRoutes(t,e){void 0===t&&(t=[]),void 0===e&&(e=[]);var r=t.filter(function(t){return snq(function(){return t.data.routes.routes.find(function(e){return e.path===t.path})},!1)}).reduce(function(t,e){return __spread(t,e.data.routes.routes)},[]);e=r.filter(function(t){return t.wrapper});var n=[];return t.filter(function(t){return(t.data||{}).routes&&(t.component||t.loadChildren)}).forEach(function(t){var e=r.find(function(e){return e.path.toLowerCase()===t.path.toLowerCase()&&snq(function(){return t.data.routes.routes.length},!1)}),o=n.length;e&&n.push(e),n.length===o&&n.push(__assign({},t.data.routes,{path:t.path,name:snq(function(){return t.data.routes.name},t.path),children:t.data.routes.children||[]}))}),{routes:setUrls(n),wrappers:e}}function setUrls(t,e){return e?t.map(function(t){return __assign({},t,{url:e+"/"+t.path},t.children&&t.children.length&&{children:setUrls(t.children,e+"/"+t.path)})}):t.map(function(t){return __assign({},t,{url:"/"+t.path},t.children&&t.children.length&&{children:setUrls(t.children,"/"+t.path)})})}var ConfigService=function(){function t(t){this.store=t}return t.prototype.getAll=function(){return this.store.selectSnapshot(ConfigState.getAll)},t.prototype.getOne=function(t){return this.store.selectSnapshot(ConfigState.getOne(t))},t.prototype.getDeep=function(t){return this.store.selectSnapshot(ConfigState.getDeep(t))},t.prototype.getSetting=function(t){return this.store.selectSnapshot(ConfigState.getSetting(t))},t.decorators=[{type:core.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:store.Store}]},t.ngInjectableDef=core.ɵɵdefineInjectable({factory:function(){return new t(core.ɵɵinject(store.Store))},token:t,providedIn:"root"}),t}();var LazyLoadService=function(){function t(){this.loadedLibraries={}}return t.prototype.load=function(t,e,r,n,o){var i=this;if(void 0===r&&(r=""),void 0===n&&(n="body"),void 0===o&&(o="afterend"),t||r){var a,c=t?t.slice(t.lastIndexOf("/")+1):uuid();return this.loadedLibraries[c]?this.loadedLibraries[c].asObservable():(this.loadedLibraries[c]=new rxjs.ReplaySubject,"script"===e?((a=document.createElement("script")).type="text/javascript",t&&(a.src=t),a.text=r):t?((a=document.createElement("link")).type="text/css",a.rel="stylesheet",t&&(a.href=t)):(a=document.createElement("style")).textContent=r,a.onload=function(){i.loadedLibraries[c].next(),i.loadedLibraries[c].complete()},document.querySelector(n).insertAdjacentElement(o,a),this.loadedLibraries[c].asObservable())}},t.decorators=[{type:core.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=core.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}();function environmentFactory(t){return __assign({},t)}function configFactory(t){return __assign({},t)}var ENVIRONMENT=new core.InjectionToken("ENVIRONMENT"),CONFIG=new core.InjectionToken("CONFIG"),InputEventDebounceDirective=function(){function t(t,e){this.renderer=t,this.el=e,this.debounce=300,this.debounceEvent=new core.EventEmitter}return t.prototype.ngOnInit=function(){var t=this;rxjs.fromEvent(this.el.nativeElement,"input").pipe(operators.debounceTime(this.debounce),core$1.takeUntilDestroy(this)).subscribe(function(e){t.debounceEvent.emit(e)})},t.decorators=[{type:core.Directive,args:[{selector:"[input.debounce]"}]}],t.ctorParameters=function(){return[{type:core.Renderer2},{type:core.ElementRef}]},t.propDecorators={debounce:[{type:core.Input}],debounceEvent:[{type:core.Output,args:["input.debounce"]}]},t}();var ClickEventStopPropagationDirective=function(){function t(t,e){this.renderer=t,this.el=e,this.stopPropEvent=new core.EventEmitter}return t.prototype.ngOnInit=function(){var t=this;rxjs.fromEvent(this.el.nativeElement,"click").pipe(core$1.takeUntilDestroy(this)).subscribe(function(e){e.stopPropagation(),t.stopPropEvent.emit(e)})},t.decorators=[{type:core.Directive,args:[{selector:"[click.stop]"}]}],t.ctorParameters=function(){return[{type:core.Renderer2},{type:core.ElementRef}]},t.propDecorators={stopPropEvent:[{type:core.Output,args:["click.stop"]}]},t}();var LocalizationPipe=function(){function t(t){this.store=t,this.initialValue="",this.destroy$=new rxjs.Subject}return t.prototype.transform=function(t){var e=this;void 0===t&&(t="");for(var r=[],n=1;n=0;u--)(o=t[u])&&(a=(i<3?o(a):i>3?o(e,n,a):o(e,n))||a);return i>3&&a&&Object.defineProperty(e,n,a),a}function b(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function S(t,e){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(t){o={error:t}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function I(){for(var t=[],e=0;e-1})),this.router.events.pipe(W(this)).subscribe(function(t){if(t instanceof n.NavigationEnd){var e=o.router.parseUrl(t.url).root.children.primary.segments,r=(o.route.snapshot.data||{}).layout||function(t,e){var n="empty",r=e.reduce(function(t,e){return e.wrapper?I(t,e.children):I(t,[e])},[]).find(function(e){return e.path===t[0].path});if(r&&(r.layout&&(n=r.layout),r.children&&r.children.length&&t.length>1)){var o=r.children.find(function(e){return e.path===t[1].path});o&&o.layout&&(n=o.layout)}return n}(e,c);o.layout=u.filter(function(t){return!!t}).find(function(t){return i(function(){return t.type.toLowerCase().indexOf(r)},-1)>-1})}})}return t.prototype.ngOnDestroy=function(){},t.decorators=[{type:e.Component,args:[{selector:"abp-dynamic-layout",template:'\n \n\n \n \n '}]}],t.ctorParameters=function(){return[{type:n.Router},{type:n.ActivatedRoute},{type:r.Store}]},m([r.Select(Z.getOne("requirements")),b("design:type",o.Observable)],t.prototype,"requirements$",void 0),t}();var J=function(){function t(){}return t.decorators=[{type:e.Component,args:[{selector:"abp-router-outlet",template:"\n \n "}]}],t}(),K=function(){function t(t){this.elRef=t,this.delay=0}return t.prototype.ngAfterViewInit=function(){var t=this;setTimeout(function(){return t.elRef.nativeElement.focus()},this.delay)},t.decorators=[{type:e.Directive,args:[{selector:"[autofocus]"}]}],t.ctorParameters=function(){return[{type:e.ElementRef}]},t.propDecorators={delay:[{type:e.Input,args:["autofocus"]}]},t}();var Y=function(){function t(t,e){this.cdRef=t,this.elRef=e,this.enabled=!0}return Object.defineProperty(t.prototype,"inlineClass",{get:function(){return this.enabled&&this.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"class",{get:function(){return this.enabled&&!this.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"maxWidth",{get:function(){return this.enabled&&this.width?this.width||"170px":void 0},enumerable:!0,configurable:!0}),t.prototype.ngAfterContentInit=function(){var t=this;setTimeout(function(){var e=t.title;t.title=e||t.elRef.nativeElement.innerText,t.title!==e&&t.cdRef.detectChanges()},0)},t.decorators=[{type:e.Directive,args:[{selector:"[abpEllipsis]"}]}],t.ctorParameters=function(){return[{type:e.ChangeDetectorRef},{type:e.ElementRef}]},t.propDecorators={width:[{type:e.Input,args:["abpEllipsis"]}],title:[{type:e.HostBinding,args:["title"]},{type:e.Input}],enabled:[{type:e.Input,args:["abpEllipsisEnabled"]}],inlineClass:[{type:e.HostBinding,args:["class.abp-ellipsis-inline"]}],class:[{type:e.HostBinding,args:["class.abp-ellipsis"]}],maxWidth:[{type:e.HostBinding,args:["style.max-width"]}]},t}();var tt=function(t,e,n,r){this.$implicit=t,this.index=e,this.count=n,this.list=r};var et=function(t,e){this.record=t,this.view=e};var nt=function(){function t(t,e,n){this.tempRef=t,this.vcRef=e,this.differs=n}return Object.defineProperty(t.prototype,"compareFn",{get:function(){return this.compareBy||s},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"trackByFn",{get:function(){return this.trackBy||function(t,e){return e.id||t}},enumerable:!0,configurable:!0}),t.prototype.iterateOverAppliedOperations=function(t){var e=this,n=[];t.forEachOperation(function(t,r,o){if(null==t.previousIndex){var i=e.vcRef.createEmbeddedView(e.tempRef,new tt(null,-1,-1,e.items),o);n.push(new et(t,i))}else if(null==o)e.vcRef.remove(r);else{i=e.vcRef.get(r);e.vcRef.move(i,o),n.push(new et(t,i))}});for(var r=0,o=n.length;rn[e.orderBy]?1:t[e.orderBy]>t/4).toString(16):(""+1e7+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,rt)}var ot=function(){function t(t,n,r){this.formGroupDirective=t,this.host=n,this.cdRef=r,this.ngSubmit=new e.EventEmitter,this.executedNgSubmit=!1}return t.prototype.ngOnInit=function(){var t=this;this.formGroupDirective.ngSubmit.pipe(W(this)).subscribe(function(){t.markAsDirty(),t.executedNgSubmit=!0}),o.fromEvent(this.host.nativeElement,"keyup").pipe(u.debounceTime(200),u.filter(function(t){return t&&"Enter"===t.key}),W(this)).subscribe(function(){t.executedNgSubmit||t.host.nativeElement.dispatchEvent(new Event("submit",{bubbles:!0,cancelable:!0})),t.executedNgSubmit=!1}),o.fromEvent(this.host.nativeElement,"submit").pipe(W(this),u.filter(function(){return!t.notValidateOnSubmit&&"string"!=typeof t.notValidateOnSubmit})).subscribe(function(){t.executedNgSubmit||t.markAsDirty()})},t.prototype.ngOnDestroy=function(){},t.prototype.markAsDirty=function(){var t=this.formGroupDirective.form;!function t(e){if(Array.isArray(e))return void e.forEach(function(e){t(e.controls)});Object.keys(e).forEach(function(t){e[t].markAsDirty(),e[t].updateValueAndValidity()})}(t.controls),t.markAsDirty(),this.cdRef.detectChanges()},t.decorators=[{type:e.Directive,args:[{selector:"form[ngSubmit][formGroup]"}]}],t.ctorParameters=function(){return[{type:l.FormGroupDirective,decorators:[{type:e.Self}]},{type:e.ElementRef},{type:e.ChangeDetectorRef}]},t.propDecorators={notValidateOnSubmit:[{type:e.Input}],ngSubmit:[{type:e.Output}]},t}();var it=function(){function t(t,e,n){this.elRef=t,this.renderer=e,this.store=n}return t.prototype.ngOnInit=function(){var t=this;this.condition&&this.store.select(Z.getGrantedPolicy(this.condition)).pipe(W(this)).subscribe(function(e){e||t.renderer.removeChild(t.elRef.nativeElement.parentElement,t.elRef.nativeElement)})},t.prototype.ngOnDestroy=function(){},t.decorators=[{type:e.Directive,args:[{selector:"[abpPermission]"}]}],t.ctorParameters=function(){return[{type:e.ElementRef,decorators:[{type:e.Optional}]},{type:e.Renderer2},{type:r.Store}]},t.propDecorators={condition:[{type:e.Input,args:["abpPermission"]}]},t}();var at=function(){function t(t,e){this.elRef=t,this.renderer=e,this.mutationObserverEnabled=!0,this.completed$=new o.Subject}return t.prototype.ngAfterViewInit=function(){var t,e=this;this.mutationObserverEnabled?(t=new MutationObserver(function(t){t.forEach(function(t){t.target&&(i(function(){return Array.from(t.target.childNodes).filter(function(t){return t instanceof HTMLElement})},[]).length?setTimeout(function(){e.disconnect()},0):(e.removeFromDOM(),e.disconnect()))})})).observe(this.focusedElement,{childList:!0}):setTimeout(function(){i(function(){return Array.from(e.focusedElement.childNodes).filter(function(t){return t instanceof HTMLElement})},[]).length||e.removeFromDOM()},0),this.completed$.subscribe(function(){return t.disconnect()})},t.prototype.disconnect=function(){this.completed$.next(),this.completed$.complete()},t.prototype.removeFromDOM=function(){this.renderer.removeChild(this.elRef.nativeElement.parentElement,this.elRef.nativeElement)},t.decorators=[{type:e.Directive,args:[{selector:"[abpVisibility]"}]}],t.ctorParameters=function(){return[{type:e.ElementRef,decorators:[{type:e.Optional}]},{type:e.Renderer2}]},t.propDecorators={focusedElement:[{type:e.Input,args:["abpVisibility"]}],mutationObserverEnabled:[{type:e.Input}]},t}();var ut=function(){function t(t,e,n){this.oauthService=t,this.store=e,this.router=n}return t.prototype.canActivate=function(t,e){var n=this.oauthService.hasValidAccessToken();return n||this.router.createUrlTree(["/account/login"],{state:{redirectUrl:e.url}})},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:f.OAuthService},{type:r.Store},{type:n.Router}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(f.OAuthService),e.ɵɵinject(r.Store),e.ɵɵinject(n.Router))},token:t,providedIn:"root"}),t}();var ct=function(){function t(t){this.store=t}return t.prototype.canActivate=function(t){var e=this,n=t.data.requiredPolicy;return this.store.select(Z.getGrantedPolicy(n)).pipe(u.tap(function(t){t||e.store.dispatch(new L({status:403}))}))},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:r.Store}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(r.Store))},token:t,providedIn:"root"}),t}();var st,pt,lt,ft,dt,ht=function(){function t(t,e){this.oAuthService=t,this.store=e}return t.prototype.intercept=function(t,e){var n=this;this.store.dispatch(new E(t));var r={},o=this.oAuthService.getAccessToken();!t.headers.has("Authorization")&&o&&(r.Authorization="Bearer "+o);var i=this.store.selectSnapshot(B.getLanguage);!t.headers.has("Accept-Language")&&i&&(r["Accept-Language"]=i);var a=this.store.selectSnapshot(B.getTenant);return!t.headers.has("__tenant")&&a&&(r.__tenant=a.id),e.handle(t.clone({setHeaders:r})).pipe(u.finalize(function(){return n.store.dispatch(new P(t))}))},t.decorators=[{type:e.Injectable}],t.ctorParameters=function(){return[{type:f.OAuthService},{type:r.Store}]},t}();(function(t){function e(){}function n(){}function r(){}function o(){}function i(){}function a(){}function u(){}t.Response=e,t.Localization=n,t.LocalizationValue=function(){},t.Language=r,t.Auth=o,t.Policy=function(){},t.Setting=i,t.CurrentUser=a,t.Features=u})(st||(st={})),function(t){function e(){}function n(){}function r(){}function o(){}function i(){}function a(){}t.Root=e,t.PagedItemsResponse=n,t.PageQueryParams=r,t.Route=o,t.FullRoute=i,t.BasicItem=a}(pt||(pt={})),function(t){function e(){}function n(){}function r(){}t.Environment=e,t.Application=n,t.Apis=function(){},t.Requirements=r}(lt||(lt={})),function(t){function e(){}function n(){}t.Config=e,t.Request=n}(t.Rest||(t.Rest={})),function(t){function e(){}t.State=e}(ft||(ft={})),function(t){function e(){}function n(){}function r(){}t.State=e,t.Response=n,t.ChangePasswordRequest=r}(dt||(dt={}));var yt=new e.InjectionToken("NGXS_CONFIG_PLUGIN_OPTIONS"),gt=function(){function t(t,e){this.options=t,this.router=e,this.initialized=!1}return t.prototype.handle=function(t,e,n){var o=r.actionMatcher(e);if((o(r.InitState)||o(r.UpdateState))&&!this.initialized){var a=function(t,e){void 0===t&&(t=[]);void 0===e&&(e=[]);var n=t.filter(function(t){return i(function(){return t.data.routes.routes.find(function(e){return e.path===t.path})},!1)}).reduce(function(t,e){return I(t,e.data.routes.routes)},[]);e=n.filter(function(t){return t.wrapper});var r=[];return t.filter(function(t){return(t.data||{}).routes&&(t.component||t.loadChildren)}).forEach(function(t){var e=n.find(function(e){return e.path.toLowerCase()===t.path.toLowerCase()&&i(function(){return t.data.routes.routes.length},!1)}),o=r.length;e&&r.push(e),r.length===o&&r.push(v({},t.data.routes,{path:t.path,name:i(function(){return t.data.routes.name},t.path),children:t.data.routes.children||[]}))}),{routes:vt(r),wrappers:e}}(this.router.config),u=a.routes;u=z(u,a.wrappers);var c=function(t){var e=function(t){return t.reduce(function(t,n){var r=[n];return n.children&&(r=I([n],e(n.children))),I(t,r)},[])};return e(t)}(p(u));t=r.setValue(t,"ConfigState",v({},t.ConfigState&&v({},t.ConfigState),this.options,{routes:u,flattedRoutes:c})),this.initialized=!0}return n(t,e)},t.decorators=[{type:e.Injectable}],t.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[yt]}]},{type:n.Router}]},t}();function vt(t,e){return e?t.map(function(t){return v({},t,{url:e+"/"+t.path},t.children&&t.children.length&&{children:vt(t.children,e+"/"+t.path)})}):t.map(function(t){return v({},t,{url:"/"+t.path},t.children&&t.children.length&&{children:vt(t.children,"/"+t.path)})})}var mt=function(){function t(t){this.store=t}return t.prototype.getAll=function(){return this.store.selectSnapshot(Z.getAll)},t.prototype.getOne=function(t){return this.store.selectSnapshot(Z.getOne(t))},t.prototype.getDeep=function(t){return this.store.selectSnapshot(Z.getDeep(t))},t.prototype.getSetting=function(t){return this.store.selectSnapshot(Z.getSetting(t))},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:r.Store}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(r.Store))},token:t,providedIn:"root"}),t}();var bt=function(){function t(){this.loadedLibraries={}}return t.prototype.load=function(t,e,n,r,i){var a=this;if(void 0===n&&(n=""),void 0===r&&(r="body"),void 0===i&&(i="afterend"),t||n){var u,c=t?t.slice(t.lastIndexOf("/")+1):rt();return this.loadedLibraries[c]?this.loadedLibraries[c].asObservable():(this.loadedLibraries[c]=new o.ReplaySubject,"script"===e?((u=document.createElement("script")).type="text/javascript",t&&(u.src=t),u.text=n):t?((u=document.createElement("link")).type="text/css",u.rel="stylesheet",t&&(u.href=t)):(u=document.createElement("style")).textContent=n,u.onload=function(){a.loadedLibraries[c].next(),a.loadedLibraries[c].complete()},document.querySelector(r).insertAdjacentElement(i,u),this.loadedLibraries[c].asObservable())}},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}();var St=new e.InjectionToken("ENVIRONMENT"),Rt=new e.InjectionToken("CONFIG"),It=function(){function t(t,n){this.renderer=t,this.el=n,this.debounce=300,this.debounceEvent=new e.EventEmitter}return t.prototype.ngOnInit=function(){var t=this;o.fromEvent(this.el.nativeElement,"input").pipe(u.debounceTime(this.debounce),y.takeUntilDestroy(this)).subscribe(function(e){t.debounceEvent.emit(e)})},t.decorators=[{type:e.Directive,args:[{selector:"[input.debounce]"}]}],t.ctorParameters=function(){return[{type:e.Renderer2},{type:e.ElementRef}]},t.propDecorators={debounce:[{type:e.Input}],debounceEvent:[{type:e.Output,args:["input.debounce"]}]},t}();var Ot=function(){function t(t,n){this.renderer=t,this.el=n,this.stopPropEvent=new e.EventEmitter}return t.prototype.ngOnInit=function(){var t=this;o.fromEvent(this.el.nativeElement,"click").pipe(y.takeUntilDestroy(this)).subscribe(function(e){e.stopPropagation(),t.stopPropEvent.emit(e)})},t.decorators=[{type:e.Directive,args:[{selector:"[click.stop]"}]}],t.ctorParameters=function(){return[{type:e.Renderer2},{type:e.ElementRef}]},t.propDecorators={stopPropEvent:[{type:e.Output,args:["click.stop"]}]},t}();var jt=function(){function t(t){this.store=t,this.initialValue="",this.destroy$=new o.Subject}return t.prototype.transform=function(t){var e=this;void 0===t&&(t="");for(var n=[],r=1;r= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ABP } from '../models';\n\nexport class PatchRouteByName {\n static readonly type = '[Config] Patch Route By Name';\n constructor(public name: string, public newValue: Partial) {}\n}\n\nexport class GetAppConfiguration {\n static readonly type = '[Config] Get App Configuration';\n}\n","import { HttpRequest } from '@angular/common/http';\n\nexport class StartLoader {\n static readonly type = '[Loader] Start';\n constructor(public payload: HttpRequest) {}\n}\n\nexport class StopLoader {\n static readonly type = '[Loader] Stop';\n constructor(public payload: HttpRequest) {}\n}\n","import { Profile } from '../models';\n\nexport class GetProfile {\n static readonly type = '[Profile] Get';\n}\n\nexport class UpdateProfile {\n static readonly type = '[Profile] Update';\n constructor(public payload: Profile.Response) {}\n}\n\nexport class ChangePassword {\n static readonly type = '[Profile] Change Password';\n constructor(public payload: Profile.ChangePasswordRequest) {}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class RestOccurError {\n static readonly type = '[Rest] Error';\n constructor(public payload: HttpErrorResponse | any) {}\n}\n","import { ABP } from '../models';\n\nexport class SetLanguage {\n static readonly type = '[Session] Set Language';\n constructor(public payload: string) {}\n}\nexport class SetTenant {\n static readonly type = '[Session] Set Tenant';\n constructor(public payload: ABP.BasicItem) {}\n}\n","import { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { NEVER, Observable, throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport { Rest } from '../models/rest';\nimport { ConfigState } from '../states';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestService {\n constructor(private http: HttpClient, private store: Store) {}\n\n handleError(err: any): Observable {\n this.store.dispatch(new RestOccurError(err));\n console.error(err);\n return throwError(err);\n }\n\n request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {\n const { observe = Rest.Observe.Body, skipHandleError } = config;\n const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;\n const { method, ...options } = request;\n return this.http.request(method, url, { observe, ...options } as any).pipe(\n observe === Rest.Observe.Body ? take(1) : null,\n catchError(err => {\n if (skipHandleError) {\n return throwError(err);\n }\n\n return this.handleError(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService } from './rest.service';\nimport { Profile, Rest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/my-profile',\n };\n\n return this.rest.request(request);\n }\n\n update(body: Profile.Response): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/identity/my-profile',\n body,\n };\n\n return this.rest.request(request);\n }\n\n changePassword(body: Profile.ChangePasswordRequest, skipHandleError: boolean = false): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/my-profile/change-password',\n body,\n };\n\n return this.rest.request(request, { skipHandleError });\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetProfile, ChangePassword, UpdateProfile } from '../actions/profile.actions';\nimport { Profile } from '../models/profile';\nimport { ProfileService } from '../services/profile.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'ProfileState',\n defaults: {} as Profile.State,\n})\nexport class ProfileState {\n @Selector()\n static getProfile({ profile }: Profile.State): Profile.Response {\n return profile;\n }\n\n constructor(private profileService: ProfileService) {}\n\n @Action(GetProfile)\n profileGet({ patchState }: StateContext) {\n return this.profileService.get().pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(UpdateProfile)\n profileUpdate({ patchState }: StateContext, { payload }: UpdateProfile) {\n return this.profileService.update(payload).pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ChangePassword)\n changePassword(_, { payload }: ChangePassword) {\n return this.profileService.changePassword(payload, true);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApplicationConfiguration, Rest } from '../models';\nimport { RestService } from './rest.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationConfigurationService {\n constructor(private rest: RestService) {}\n\n getConfiguration(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/application-configuration',\n };\n\n return this.rest.request(request);\n }\n}\n","// Different locales from .NET\n// Key is .NET locale, value is Angular locale\n\nexport default {\n 'ar-sa': 'ar-SA',\n 'ca-ES-valencia': 'ca-ES-VALENCIA',\n 'de-de': 'de',\n 'es-ES': 'es',\n 'en-US': 'en',\n 'fil-Latn': 'en',\n 'ku-Arab': 'en',\n 'ky-Cyrl': 'en',\n 'mi-Latn': 'en',\n 'prs-Arab': 'en',\n 'qut-Latn': 'en',\n nso: 'en',\n quz: 'en',\n 'fr-FR': 'fr',\n 'gd-Latn': 'gd',\n 'ha-Latn': 'ha',\n 'ig-Latn': 'ig',\n 'it-it': 'it',\n 'mn-Cyrl': 'mn',\n 'pt-BR': 'pt',\n 'sd-Arab': 'pa-Arab',\n 'sr-Cyrl-RS': 'sr-Cyrl',\n 'sr-Latn-RS': 'sr-Latn',\n 'tg-Cyrl': 'tg',\n 'tk-Latn': 'tk',\n 'tt-Cyrl': 'tt',\n 'ug-Arab': 'ug',\n 'yo-Latn': 'yo',\n};\n","import { registerLocaleData } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport differentLocales from '../constants/different-locales';\nimport { SessionState } from '../states/session.state';\n\nexport function getInitialData(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n return store.dispatch(new GetAppConfiguration()).toPromise();\n };\n\n return fn;\n}\n\nexport function localeInitializer(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n const lang = store.selectSnapshot(SessionState.getLanguage) || 'en';\n\n return new Promise((resolve, reject) => {\n registerLocale(lang).then(() => resolve(), reject);\n });\n };\n\n return fn;\n}\n\nexport function registerLocale(locale: string) {\n return import(\n /* webpackInclude: /(af|am|ar-SA|as|az-Latn|be|bg|bn-BD|bn-IN|bs|ca|ca-ES-VALENCIA|cs|cy|da|de|de|el|en-GB|en|es|en|es-US|es-MX|et|eu|fa|fi|en|fr|fr|fr-CA|ga|gd|gl|gu|ha|he|hi|hr|hu|hy|id|ig|is|it|it|ja|ka|kk|km|kn|ko|kok|en|en|lb|lt|lv|en|mk|ml|mn|mr|ms|mt|nb|ne|nl|nl-BE|nn|en|or|pa|pa-Arab|pl|en|pt|pt-PT|en|en|ro|ru|rw|pa-Arab|si|sk|sl|sq|sr-Cyrl-BA|sr-Cyrl|sr-Latn|sv|sw|ta|te|tg|th|ti|tk|tn|tr|tt|ug|uk|ur|uz-Latn|vi|wo|xh|yo|zh-Hans|zh-Hant|zu)\\.js$/ */\n `@angular/common/locales/${differentLocales[locale] || locale}.js`\n ).then(module => {\n registerLocaleData(module.default);\n });\n}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { Actions, Store } from '@ngxs/store';\nimport { noop, Observable } from 'rxjs';\nimport { ConfigState } from '../states/config.state';\nimport { SessionState } from '../states/session.state';\nimport { registerLocale } from '../utils/initial-utils';\n\ntype ShouldReuseRoute = (future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot) => boolean;\n\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService {\n get currentLang(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n constructor(\n private store: Store,\n private router: Router,\n private actions: Actions,\n @Optional()\n @SkipSelf()\n otherInstance: LocalizationService,\n ) {\n if (otherInstance) throw new Error('LocaleService should have only one instance.');\n }\n\n private setRouteReuse(reuse: ShouldReuseRoute) {\n this.router.routeReuseStrategy.shouldReuseRoute = reuse;\n }\n\n registerLocale(locale: string) {\n const { shouldReuseRoute } = this.router.routeReuseStrategy;\n\n this.setRouteReuse(() => false);\n this.router.navigated = false;\n\n return registerLocale(locale).then(async () => {\n await this.router.navigateByUrl(this.router.url).catch(noop);\n this.setRouteReuse(shouldReuseRoute);\n });\n }\n\n get(keys: string, ...interpolateParams: string[]): Observable {\n return this.store.select(ConfigState.getCopy(keys, ...interpolateParams));\n }\n\n instant(keys: string, ...interpolateParams: string[]): string {\n return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams));\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { SetLanguage, SetTenant } from '../actions/session.actions';\nimport { ABP, Session } from '../models';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport { LocalizationService } from '../services/localization.service';\nimport { from, combineLatest } from 'rxjs';\n\n@State({\n name: 'SessionState',\n defaults: {} as Session.State,\n})\nexport class SessionState {\n @Selector()\n static getLanguage({ language }: Session.State): string {\n return language;\n }\n\n @Selector()\n static getTenant({ tenant }: Session.State): ABP.BasicItem {\n return tenant;\n }\n\n constructor(private localizationService: LocalizationService) {}\n\n @Action(SetLanguage)\n setLanguage({ patchState, dispatch }: StateContext, { payload }: SetLanguage) {\n patchState({\n language: payload,\n });\n\n return combineLatest([dispatch(new GetAppConfiguration()), from(this.localizationService.registerLocale(payload))]);\n }\n\n @Action(SetTenant)\n setTenantId({ patchState }: StateContext, { payload }: SetTenant) {\n patchState({\n tenant: payload,\n });\n }\n}\n","import { ABP } from '../models';\n\nexport function organizeRoutes(\n routes: ABP.FullRoute[],\n wrappers: ABP.FullRoute[] = [],\n parentNameArr = [] as ABP.FullRoute[],\n parentName: string = null,\n): ABP.FullRoute[] {\n const filter = route => {\n if (route.children && route.children.length) {\n route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name);\n }\n\n if (route.parentName && route.parentName !== parentName) {\n parentNameArr.push(route);\n return false;\n }\n\n return true;\n };\n\n if (parentName) {\n // recursive block\n return routes.filter(filter);\n }\n\n const filteredRoutes = routes.filter(filter);\n\n if (parentNameArr.length) {\n return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr));\n }\n\n return filteredRoutes;\n}\n\nexport function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] {\n return routes.map(route => {\n if (route.children && route.children.length) {\n route.children = setChildRoute(route.children, parentNameArr);\n }\n\n const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name);\n if (foundedChildren && foundedChildren.length) {\n route.children = [...(route.children || []), ...foundedChildren];\n }\n\n return route;\n });\n}\n\nexport function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] {\n if (!routes.length) return [];\n return routes\n .sort((a, b) => a.order - b.order)\n .map(route => {\n if (route.children && route.children.length) {\n route.children = sortRoutes(route.children);\n }\n\n return route;\n });\n}\n","import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store';\nimport { Config, ABP } from '../models';\nimport { GetAppConfiguration, PatchRouteByName } from '../actions/config.actions';\nimport { ApplicationConfigurationService } from '../services/application-configuration.service';\nimport { tap, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { SetLanguage } from '../actions';\nimport { SessionState } from './session.state';\nimport { of } from 'rxjs';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\n@State({\n name: 'ConfigState',\n defaults: {} as Config.State,\n})\nexport class ConfigState {\n @Selector()\n static getAll(state: Config.State) {\n return state;\n }\n\n @Selector()\n static getApplicationInfo(state: Config.State) {\n return state.environment.application || {};\n }\n\n static getOne(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return state[key];\n },\n );\n\n return selector;\n }\n\n static getDeep(keys: string[] | string) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return (keys as string[]).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state);\n },\n );\n\n return selector;\n }\n\n static getRoute(path?: string, name?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return findRoute(state.routes, path, name);\n },\n );\n\n return selector;\n }\n\n static getApiUrl(key?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): string {\n return state.environment.apis[key || 'default'].url;\n },\n );\n\n return selector;\n }\n\n static getSetting(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return snq(() => state.setting.values[key]);\n },\n );\n\n return selector;\n }\n\n static getGrantedPolicy(condition: string = '') {\n const keys = condition\n .replace(/\\(|\\)|\\!|\\s/g, '')\n .split(/\\|\\||&&/)\n .filter(key => key);\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): boolean {\n if (!keys.length) return true;\n\n const getPolicy = key => snq(() => state.auth.grantedPolicies[key], false);\n if (keys.length > 1) {\n keys.forEach(key => {\n const value = getPolicy(key);\n condition = condition.replace(key, value);\n });\n\n // tslint:disable-next-line: no-eval\n return eval(`!!${condition}`);\n }\n\n return getPolicy(condition);\n },\n );\n\n return selector;\n }\n\n static getCopy(key: string, ...interpolateParams: string[]) {\n if (!key) key = '';\n\n const keys = key.split('::') as string[];\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n if (!state.localization) return key;\n\n const { defaultResourceName } = state.environment.localization;\n if (keys[0] === '') {\n if (!defaultResourceName) {\n throw new Error(\n `Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }`,\n );\n }\n\n keys[0] = snq(() => defaultResourceName);\n }\n\n let copy = keys.reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state.localization.values);\n\n interpolateParams = interpolateParams.filter(params => params != null);\n if (copy && interpolateParams && interpolateParams.length) {\n interpolateParams.forEach(param => {\n copy = copy.replace(/[\\'\\\"]?\\{[\\d]+\\}[\\'\\\"]?/, param);\n });\n }\n\n return copy || key;\n },\n );\n\n return selector;\n }\n\n constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {}\n\n @Action(GetAppConfiguration)\n addData({ patchState, dispatch }: StateContext) {\n return this.appConfigurationService.getConfiguration().pipe(\n tap(configuration =>\n patchState({\n ...configuration,\n }),\n ),\n switchMap(configuration => {\n let defaultLang: string = configuration.setting.values['Abp.Localization.DefaultLanguage'];\n\n if (defaultLang.includes(';')) {\n defaultLang = defaultLang.split(';')[0];\n }\n\n return this.store.selectSnapshot(SessionState.getLanguage) ? of(null) : dispatch(new SetLanguage(defaultLang));\n }),\n );\n }\n\n @Action(PatchRouteByName)\n patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) {\n let routes: ABP.FullRoute[] = getState().routes;\n\n const index = routes.findIndex(route => route.name === name);\n\n routes = patchRouteDeep(routes, name, newValue);\n\n return patchState({\n routes,\n });\n }\n}\n\nfunction patchRouteDeep(\n routes: ABP.FullRoute[],\n name: string,\n newValue: Partial,\n parentUrl: string = null,\n): ABP.FullRoute[] {\n routes = routes.map(route => {\n if (route.name === name) {\n if (newValue.path) {\n newValue.url = `${parentUrl}/${newValue.path}`;\n }\n\n if (newValue.children && newValue.children.length) {\n newValue.children = newValue.children.map(child => ({\n ...child,\n url: `${parentUrl}/${route.path}/${child.path}`,\n }));\n }\n\n return { ...route, ...newValue };\n } else if (route.children && route.children.length) {\n route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path);\n }\n\n return route;\n });\n\n if (parentUrl) {\n // recursive block\n return routes;\n }\n\n return organizeRoutes(routes);\n}\n\nfunction findRoute(routes: ABP.FullRoute[], path?: string, name?: string) {\n let foundRoute;\n routes.forEach(route => {\n if (foundRoute) return;\n\n if (path && route.path === path) {\n foundRoute = route;\n } else if (name && route.name === name) {\n foundRoute = route;\n return;\n } else if (route.children && route.children.length) {\n foundRoute = findRoute(route.children, path, name);\n return;\n }\n });\n\n return foundRoute;\n}\n","export function noop() {\n const fn = function() {};\n return fn;\n}\n","export function uuid(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nexport const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => (\n source: Observable,\n) => {\n const originalDestroy = componentInstance[destroyMethodName];\n if (isFunction(originalDestroy) === false) {\n throw new Error(\n `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`,\n );\n }\n if (!componentInstance['__takeUntilDestroy']) {\n componentInstance['__takeUntilDestroy'] = new Subject();\n\n componentInstance[destroyMethodName] = function() {\n isFunction(originalDestroy) && originalDestroy.apply(this, arguments);\n componentInstance['__takeUntilDestroy'].next(true);\n componentInstance['__takeUntilDestroy'].complete();\n };\n }\n return source.pipe(takeUntil(componentInstance['__takeUntilDestroy']));\n};\n","import { Component, OnDestroy, Type } from '@angular/core';\nimport { NavigationEnd, Router, UrlSegment } from '@angular/router';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { eLayoutType } from '../enums';\nimport { ABP, Config } from '../models';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport snq from 'snq';\n\n@Component({\n selector: 'abp-dynamic-layout',\n template: `\n \n\n \n \n `,\n})\nexport class DynamicLayoutComponent implements OnDestroy {\n @Select(ConfigState.getOne('requirements'))\n requirements$: Observable;\n\n layout: Type;\n\n constructor(private router: Router, private store: Store) {\n this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n const { segments } = this.router.parseUrl(event.url).root.children.primary;\n const {\n requirements: { layouts },\n routes,\n } = this.store.selectSnapshot(ConfigState.getAll);\n\n const layout = findLayout(segments, routes);\n\n this.layout = layouts.filter(l => !!l).find(l => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1);\n }\n });\n }\n\n ngOnDestroy() {}\n}\n\nfunction findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType {\n let layout = eLayoutType.empty;\n\n const route = routes\n .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), [])\n .find(r => r.path === segments[0].path);\n\n if (route) {\n if (route.layout) {\n layout = route.layout;\n }\n\n if (route.children && route.children.length && segments.length > 1) {\n const child = route.children.find(c => c.path === segments[1].path);\n\n if (child && child.layout) {\n layout = child.layout;\n }\n }\n }\n\n return layout;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-router-outlet',\n template: `\n \n `,\n})\nexport class RouterOutletComponent {}\n","import { Directive, ElementRef, Input, AfterViewInit } from '@angular/core';\n\n@Directive({\n selector: '[autofocus]',\n})\nexport class AutofocusDirective implements AfterViewInit {\n @Input('autofocus')\n delay: number = 0;\n\n constructor(private elRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => this.elRef.nativeElement.focus(), this.delay);\n }\n}\n","import { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[abpEllipsis]',\n})\nexport class EllipsisDirective implements AfterContentInit {\n @Input('abpEllipsis')\n width: string;\n\n @HostBinding('title')\n @Input()\n title: string;\n\n @Input('abpEllipsisEnabled')\n enabled = true;\n\n @HostBinding('class.abp-ellipsis-inline')\n get inlineClass() {\n return this.enabled && this.width;\n }\n\n @HostBinding('class.abp-ellipsis')\n get class() {\n return this.enabled && !this.width;\n }\n\n @HostBinding('style.max-width')\n get maxWidth() {\n return this.enabled && this.width ? this.width || '170px' : undefined;\n }\n\n constructor(private cdRef: ChangeDetectorRef, private elRef: ElementRef) {}\n\n ngAfterContentInit() {\n setTimeout(() => {\n const title = this.title;\n this.title = title || (this.elRef.nativeElement as HTMLElement).innerText;\n\n if (this.title !== title) {\n this.cdRef.detectChanges();\n }\n }, 0);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Self,\n} from '@angular/core';\nimport { FormControl, FormGroup, FormGroupDirective } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { takeUntilDestroy } from '../utils';\n\ntype Controls = { [key: string]: FormControl } | FormGroup[];\n\n@Directive({\n selector: 'form[ngSubmit][formGroup]',\n})\nexport class FormSubmitDirective implements OnInit, OnDestroy {\n @Input()\n notValidateOnSubmit: string | boolean;\n\n @Output()\n ngSubmit = new EventEmitter();\n\n executedNgSubmit: boolean = false;\n\n constructor(\n @Self() private formGroupDirective: FormGroupDirective,\n private host: ElementRef,\n private cdRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.formGroupDirective.ngSubmit.pipe(takeUntilDestroy(this)).subscribe(() => {\n this.markAsDirty();\n this.executedNgSubmit = true;\n });\n\n fromEvent(this.host.nativeElement as HTMLElement, 'keyup')\n .pipe(\n debounceTime(200),\n filter((key: KeyboardEvent) => key && key.key === 'Enter'),\n takeUntilDestroy(this),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n }\n\n this.executedNgSubmit = false;\n });\n\n fromEvent(this.host.nativeElement, 'submit')\n .pipe(\n takeUntilDestroy(this),\n filter(() => !this.notValidateOnSubmit && typeof this.notValidateOnSubmit !== 'string'),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.markAsDirty();\n }\n });\n }\n\n ngOnDestroy(): void {}\n\n markAsDirty() {\n const { form } = this.formGroupDirective;\n\n setDirty(form.controls as { [key: string]: FormControl });\n form.markAsDirty();\n\n this.cdRef.detectChanges();\n }\n}\n\nfunction setDirty(controls: Controls) {\n if (Array.isArray(controls)) {\n controls.forEach(group => {\n setDirty(group.controls as { [key: string]: FormControl });\n });\n return;\n }\n\n Object.keys(controls).forEach(key => {\n controls[key].markAsDirty();\n controls[key].updateValueAndValidity();\n });\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\n\n@Directive({\n selector: '[abpPermission]',\n})\nexport class PermissionDirective implements OnInit, OnDestroy {\n @Input('abpPermission') condition: string;\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {}\n\n ngOnInit() {\n if (this.condition) {\n this.store\n .select(ConfigState.getGrantedPolicy(this.condition))\n .pipe(takeUntilDestroy(this))\n .subscribe(isGranted => {\n if (!isGranted) {\n this.renderer.removeChild(\n (this.elRef.nativeElement as HTMLElement).parentElement,\n this.elRef.nativeElement,\n );\n }\n });\n }\n }\n\n ngOnDestroy(): void {}\n}\n","import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport snq from 'snq';\n\n@Directive({\n selector: '[abpVisibility]',\n})\nexport class VisibilityDirective implements AfterViewInit {\n @Input('abpVisibility')\n focusedElement: HTMLElement;\n\n completed$ = new Subject();\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (!mutation.target) return;\n\n const htmlNodes = snq(\n () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) {\n this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement);\n this.disconnect();\n } else {\n setTimeout(() => {\n this.disconnect();\n }, 0);\n }\n });\n });\n\n observer.observe(this.focusedElement, {\n childList: true,\n });\n\n this.completed$.subscribe(() => observer.disconnect());\n }\n\n disconnect() {\n this.completed$.next();\n this.completed$.complete();\n }\n}\n","export const enum eLayoutType {\n account = 'account',\n application = 'application',\n empty = 'empty',\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { Navigate } from '@ngxs/router-plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n constructor(private oauthService: OAuthService, private store: Store) {}\n canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree {\n const hasValidAccessToken = this.oauthService.hasValidAccessToken();\n if (hasValidAccessToken) {\n return hasValidAccessToken;\n }\n\n this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } }));\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { ConfigState } from '../states';\nimport { tap } from 'rxjs/operators';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionGuard implements CanActivate {\n constructor(private store: Store) {}\n\n canActivate({ data }: ActivatedRouteSnapshot): Observable {\n const resource = data.requiredPolicy as string;\n return this.store.select(ConfigState.getGrantedPolicy(resource)).pipe(\n tap(access => {\n if (!access) {\n this.store.dispatch(new RestOccurError({ status: 403 }));\n }\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Store } from '@ngxs/store';\nimport { SessionState } from '../states';\nimport { StartLoader, StopLoader } from '../actions/loader.actions';\nimport { finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n constructor(private oAuthService: OAuthService, private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler) {\n this.store.dispatch(new StartLoader(request));\n\n const headers = {} as any;\n\n const token = this.oAuthService.getAccessToken();\n if (!request.headers.has('Authorization') && token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const lang = this.store.selectSnapshot(SessionState.getLanguage);\n if (!request.headers.has('Accept-Language') && lang) {\n headers['Accept-Language'] = lang;\n }\n\n const tenant = this.store.selectSnapshot(SessionState.getTenant);\n if (!request.headers.has('__tenant') && tenant) {\n headers['__tenant'] = tenant.id;\n }\n\n return next\n .handle(\n request.clone({\n setHeaders: headers,\n }),\n )\n .pipe(finalize(() => this.store.dispatch(new StopLoader(request))));\n }\n}\n","export namespace ApplicationConfiguration {\n export interface Response {\n localization: Localization;\n auth: Auth;\n setting: Setting;\n currentUser: CurrentUser;\n features: Features;\n }\n\n export interface Localization {\n values: LocalizationValue;\n languages: Language[];\n }\n\n export interface LocalizationValue {\n [key: string]: { [key: string]: string };\n }\n\n export interface Language {\n cultureName: string;\n uiCultureName: string;\n displayName: string;\n flagIcon: string;\n }\n\n export interface Auth {\n policies: Policy;\n grantedPolicies: Policy;\n }\n\n export interface Policy {\n [key: string]: boolean;\n }\n\n export interface Setting {\n values: { [key: string]: 'Abp.Localization.DefaultLanguage' };\n }\n\n export interface CurrentUser {\n isAuthenticated: boolean;\n id: string;\n tenantId: string;\n userName: string;\n }\n\n export interface Features {\n values: Setting;\n }\n}\n","import { Config } from './config';\nimport { eLayoutType } from '../enums';\n\nexport namespace ABP {\n export interface Root {\n environment: Partial;\n requirements: Config.Requirements;\n }\n\n export type PagedResponse = {\n totalCount: number;\n } & PagedItemsResponse;\n\n export interface PagedItemsResponse {\n items: T[];\n }\n\n export interface PageQueryParams {\n filter?: string;\n sorting?: string;\n skipCount?: number;\n maxResultCount?: number;\n }\n\n export interface Route {\n children?: Route[];\n invisible?: boolean;\n layout?: eLayoutType;\n name: string;\n order?: number;\n parentName?: string;\n path: string;\n requiredPolicy?: string;\n iconClass?: string;\n }\n\n export interface FullRoute extends Route {\n url?: string;\n wrapper?: boolean;\n }\n\n export interface BasicItem {\n id: string;\n name: string;\n }\n}\n","import { AuthConfig } from 'angular-oauth2-oidc';\nimport { Type } from '@angular/core';\n\nexport namespace Config {\n export interface State {\n [key: string]: any;\n }\n\n export interface Environment {\n application: Application;\n production: boolean;\n oAuthConfig: AuthConfig;\n apis: Apis;\n }\n\n export interface Application {\n name: string;\n logoUrl?: string;\n }\n\n export interface Apis {\n [key: string]: { [key: string]: string };\n }\n\n export interface Requirements {\n layouts: Type[];\n }\n}\n","import { ABP } from '../models';\n\nexport namespace Session {\n export interface State {\n language: string;\n tenant: ABP.BasicItem;\n }\n}\n","export namespace Profile {\n export interface State {\n profile: Response;\n }\n\n export interface Response {\n userName: string;\n email: string;\n name: string;\n surname: string;\n phoneNumber: string;\n }\n\n export interface ChangePasswordRequest {\n currentPassword: string;\n newPassword: string;\n }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\n\nexport namespace Rest {\n export interface Config {\n skipHandleError?: boolean;\n observe?: Observe;\n }\n\n export const enum Observe {\n Body = 'body',\n Events = 'events',\n Response = 'response',\n }\n\n export const enum ResponseType {\n ArrayBuffer = 'arraybuffer',\n Blob = 'blob',\n JSON = 'json',\n Text = 'text',\n }\n\n export interface Request {\n body?: T;\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n method: string;\n params?:\n | HttpParams\n | {\n [param: string]: any;\n };\n reportProgress?: boolean;\n responseType?: ResponseType;\n url: string;\n withCredentials?: boolean;\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Router, Routes } from '@angular/router';\nimport { actionMatcher, InitState, NgxsNextPluginFn, NgxsPlugin, setValue, UpdateState } from '@ngxs/store';\nimport snq from 'snq';\nimport { ABP } from '../../models';\nimport { organizeRoutes } from '../../utils/route-utils';\n\nexport const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS');\n\n@Injectable()\nexport class ConfigPlugin implements NgxsPlugin {\n private initialized: boolean = false;\n\n constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const matches = actionMatcher(event);\n const isInitAction = matches(InitState) || matches(UpdateState);\n\n // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []);\n if (isInitAction && !this.initialized) {\n let { routes, wrappers } = transformRoutes(this.router.config);\n routes = organizeRoutes(routes, wrappers);\n\n state = setValue(state, 'ConfigState', {\n ...(state.ConfigState && { ...state.ConfigState }),\n ...this.options,\n routes,\n });\n\n this.initialized = true;\n }\n\n return next(state, event);\n }\n}\n\nfunction transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any {\n const abpRoutes: ABP.FullRoute[] = routes\n .filter(route => {\n return snq(() => route.data.routes.routes.find(r => r.path === route.path), false);\n })\n .reduce((acc, val) => [...acc, ...val.data.routes.routes], []);\n\n wrappers = abpRoutes.filter(ar => ar.wrapper);\n const transformed = [] as ABP.FullRoute[];\n routes\n .filter(route => (route.data || {}).routes && (route.component || route.loadChildren))\n .forEach(route => {\n const abpPackage = abpRoutes.find(\n abp => abp.path.toLowerCase() === route.path.toLowerCase() && snq(() => route.data.routes.routes.length, false),\n );\n const { length } = transformed;\n\n if (abpPackage) {\n transformed.push(abpPackage);\n }\n\n if (transformed.length === length) {\n transformed.push({\n ...route.data.routes,\n path: route.path,\n name: snq(() => route.data.routes.name, route.path),\n children: route.data.routes.children || [],\n } as ABP.FullRoute);\n }\n });\n\n return { routes: setUrls(transformed), wrappers };\n}\n\nfunction setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] {\n if (parentUrl) {\n // this if block using for only recursive call\n\n return routes.map(route => ({\n ...route,\n url: `${parentUrl}/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `${parentUrl}/${route.path}`),\n }),\n }));\n }\n\n return routes.map(route => ({\n ...route,\n url: `/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `/${route.path}`),\n }),\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n constructor(private store: Store) {}\n\n getAll() {\n return this.store.selectSnapshot(ConfigState.getAll);\n }\n\n getOne(key: string) {\n return this.store.selectSnapshot(ConfigState.getOne(key));\n }\n\n getDeep(keys: string[] | string) {\n return this.store.selectSnapshot(ConfigState.getDeep(keys));\n }\n\n getSetting(key: string) {\n return this.store.selectSnapshot(ConfigState.getSetting(key));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { uuid } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyLoadService {\n loadedLibraries: { [url: string]: ReplaySubject } = {};\n\n load(\n url: string,\n type: 'script' | 'style',\n content: string = '',\n targetQuery: string = 'body',\n position: InsertPosition = 'afterend',\n ): Observable {\n if (!url && !content) return;\n const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid();\n\n if (this.loadedLibraries[key]) {\n return this.loadedLibraries[key].asObservable();\n }\n\n this.loadedLibraries[key] = new ReplaySubject();\n\n let library;\n if (type === 'script') {\n library = document.createElement('script');\n library.type = 'text/javascript';\n if (url) {\n (library as HTMLScriptElement).src = url;\n }\n\n (library as HTMLScriptElement).text = content;\n } else if (url) {\n library = document.createElement('link');\n library.type = 'text/css';\n (library as HTMLLinkElement).rel = 'stylesheet';\n\n if (url) {\n (library as HTMLLinkElement).href = url;\n }\n } else {\n library = document.createElement('style');\n (library as HTMLStyleElement).textContent = content;\n }\n\n library.onload = () => {\n this.loadedLibraries[key].next();\n this.loadedLibraries[key].complete();\n };\n\n document.querySelector(targetQuery).insertAdjacentElement(position, library);\n\n return this.loadedLibraries[key].asObservable();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Config } from '../models';\n\nexport function environmentFactory(environment: Config.Environment) {\n return {\n ...environment,\n };\n}\n\nexport function configFactory(config: Config.Requirements) {\n return {\n ...config,\n };\n}\n\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\n\nexport const CONFIG = new InjectionToken('CONFIG');\n","import { Directive, Output, Renderer2, ElementRef, OnInit, EventEmitter, Input } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[input.debounce]',\n})\nexport class InputEventDebounceDirective implements OnInit {\n @Input() debounce: number = 300;\n\n @Output('input.debounce') debounceEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'input')\n .pipe(\n debounceTime(this.debounce),\n takeUntilDestroy(this),\n )\n .subscribe((event: Event) => {\n this.debounceEvent.emit(event);\n });\n }\n}\n","import { Directive, ElementRef, EventEmitter, OnInit, Output, Renderer2 } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[click.stop]',\n})\nexport class ClickEventStopPropagationDirective implements OnInit {\n @Output('click.stop') stopPropEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'click')\n .pipe(takeUntilDestroy(this))\n .subscribe((event: MouseEvent) => {\n event.stopPropagation();\n this.stopPropEvent.emit(event);\n });\n }\n}\n","import { Pipe, PipeTransform, OnDestroy } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Pipe({\n name: 'abpLocalization',\n pure: false, // required to update the value\n})\nexport class LocalizationPipe implements PipeTransform, OnDestroy {\n initialValue: string = '';\n\n value: string;\n\n destroy$ = new Subject();\n\n constructor(private store: Store) {}\n\n transform(value: string = '', ...interpolateParams: string[]): string {\n if (this.initialValue !== value) {\n this.initialValue = value;\n this.destroy$.next();\n\n this.store\n .select(\n ConfigState.getCopy(\n value,\n ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []),\n ),\n )\n .pipe(\n takeUntil(this.destroy$),\n takeUntilDestroy(this),\n distinctUntilChanged(),\n )\n .subscribe(copy => (this.value = copy));\n }\n\n return this.value;\n }\n\n ngOnDestroy() {}\n}\n","import { LOCALE_ID, Provider } from '@angular/core';\nimport localesMapping from '../constants/different-locales';\nimport { LocalizationService } from '../services/localization.service';\n\nexport class LocaleId extends String {\n constructor(private localizationService: LocalizationService) {\n super();\n }\n\n toString(): string {\n const { currentLang } = this.localizationService;\n return localesMapping[currentLang] || currentLang;\n }\n\n valueOf(): string {\n return this.toString();\n }\n}\n\nexport const LocaleProvider: Provider = {\n provide: LOCALE_ID,\n useClass: LocaleId,\n deps: [LocalizationService],\n};\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxsRouterPluginModule } from '@ngxs/router-plugin';\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\nimport { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\nimport { RouterOutletComponent } from './components/router-outlet.component';\nimport { AutofocusDirective } from './directives/autofocus.directive';\nimport { InputEventDebounceDirective } from './directives/debounce.directive';\nimport { EllipsisDirective } from './directives/ellipsis.directive';\nimport { FormSubmitDirective } from './directives/form-submit.directive';\nimport { PermissionDirective } from './directives/permission.directive';\nimport { ClickEventStopPropagationDirective } from './directives/stop-propagation.directive';\nimport { VisibilityDirective } from './directives/visibility.directive';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ABP } from './models/common';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { LocaleProvider } from './providers/locale.provider';\nimport { ConfigState } from './states/config.state';\nimport { ProfileState } from './states/profile.state';\nimport { SessionState } from './states/session.state';\nimport { getInitialData, localeInitializer } from './utils/initial-utils';\nimport { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config/config.plugin';\n\n@NgModule({\n imports: [\n NgxsModule.forFeature([ProfileState, SessionState, ConfigState]),\n NgxsStoragePluginModule.forRoot({ key: 'SessionState' }),\n NgxsRouterPluginModule.forRoot(),\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n ],\n declarations: [\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n FormSubmitDirective,\n LocalizationPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n ClickEventStopPropagationDirective,\n ],\n exports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n FormSubmitDirective,\n LocalizationPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n LocalizationPipe,\n ClickEventStopPropagationDirective,\n ],\n providers: [LocalizationPipe],\n entryComponents: [RouterOutletComponent, DynamicLayoutComponent],\n})\nexport class CoreModule {\n static forRoot(options = {} as ABP.Root): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [\n LocaleProvider,\n {\n provide: NGXS_PLUGINS,\n useClass: ConfigPlugin,\n multi: true,\n },\n {\n provide: NGXS_CONFIG_PLUGIN_OPTIONS,\n useValue: options,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: localeInitializer,\n },\n ],\n };\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.core/lib/abstracts/ng-model.component.ts","ng://@abp/ng.core/lib/actions/config.actions.ts","ng://@abp/ng.core/lib/actions/loader.actions.ts","ng://@abp/ng.core/lib/actions/profile.actions.ts","ng://@abp/ng.core/lib/actions/rest.actions.ts","ng://@abp/ng.core/lib/actions/session.actions.ts","ng://@abp/ng.core/lib/services/profile.service.ts","ng://@abp/ng.core/lib/states/profile.state.ts","ng://@abp/ng.core/lib/constants/different-locales.ts","ng://@abp/ng.core/lib/utils/initial-utils.ts","ng://@abp/ng.core/lib/services/localization.service.ts","ng://@abp/ng.core/lib/states/session.state.ts","ng://@abp/ng.core/lib/services/rest.service.ts","ng://@abp/ng.core/lib/services/application-configuration.service.ts","ng://@abp/ng.core/lib/utils/route-utils.ts","ng://@abp/ng.core/lib/states/config.state.ts","ng://@abp/ng.core/lib/utils/rxjs-utils.ts","ng://@abp/ng.core/lib/components/dynamic-layout.component.ts","ng://@abp/ng.core/lib/components/router-outlet.component.ts","ng://@abp/ng.core/lib/directives/autofocus.directive.ts","ng://@abp/ng.core/lib/directives/ellipsis.directive.ts","ng://@abp/ng.core/lib/directives/for.directive.ts","ng://@abp/ng.core/lib/utils/generator-utils.ts","ng://@abp/ng.core/lib/directives/form-submit.directive.ts","ng://@abp/ng.core/lib/directives/permission.directive.ts","ng://@abp/ng.core/lib/directives/visibility.directive.ts","ng://@abp/ng.core/lib/guards/auth.guard.ts","ng://@abp/ng.core/lib/guards/permission.guard.ts","ng://@abp/ng.core/lib/interceptors/api.interceptor.ts","ng://@abp/ng.core/lib/models/application-configuration.ts","ng://@abp/ng.core/lib/models/common.ts","ng://@abp/ng.core/lib/models/config.ts","ng://@abp/ng.core/lib/models/session.ts","ng://@abp/ng.core/lib/models/profile.ts","ng://@abp/ng.core/lib/models/rest.ts","ng://@abp/ng.core/lib/plugins/config/config.plugin.ts","ng://@abp/ng.core/lib/services/config.service.ts","ng://@abp/ng.core/lib/services/lazy-load.service.ts","ng://@abp/ng.core/lib/tokens/common.token.ts","ng://@abp/ng.core/lib/directives/debounce.directive.ts","ng://@abp/ng.core/lib/directives/stop-propagation.directive.ts","ng://@abp/ng.core/lib/pipes/localization.pipe.ts","ng://@abp/ng.core/lib/pipes/sort.pipe.ts","ng://@abp/ng.core/lib/providers/locale.provider.ts","ng://@abp/ng.core/lib/core.module.ts","ng://@abp/ng.core/lib/utils/common-utils.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__assign","assign","t","s","i","n","arguments","length","prototype","call","apply","this","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__generator","thisArg","body","f","y","g","_","label","sent","trys","ops","next","verb","throw","return","Symbol","iterator","v","op","TypeError","done","value","pop","push","e","step","__read","o","m","ar","error","__spread","concat","AbstractNgModelComponent","injector","cdRef","get","ChangeDetectorRef","_value","notifyValueChange","onChange","writeValue","_this","setTimeout","detectChanges","registerOnChange","fn","registerOnTouched","onTouched","setDisabledState","isDisabled","disabled","Component","args","template","Injector","Input","PatchRouteByName","name","newValue","type","GetAppConfiguration","StartLoader","payload","StopLoader","GetProfile","UpdateProfile","ChangePassword","RestOccurError","SetLanguage","SetTenant","ProfileService","rest","request","method","url","update","changePassword","skipHandleError","Injectable","providedIn","RestService","ProfileState","profileService","getProfile","_a","profile","profileGet","patchState","pipe","tap","profileUpdate","_b","tslib_1.__decorate","Action","Selector","State","defaults","localesMapping","ar-sa","ca-ES-valencia","de-de","es-ES","en-US","fil-Latn","ku-Arab","ky-Cyrl","mi-Latn","prs-Arab","qut-Latn","nso","quz","fr-FR","gd-Latn","ha-Latn","ig-Latn","it-it","mn-Cyrl","pt-BR","sd-Arab","sr-Cyrl-RS","sr-Latn-RS","tg-Cyrl","tk-Latn","tt-Cyrl","ug-Arab","yo-Latn","getInitialData","Store","dispatch","toPromise","localeInitializer","lang","selectSnapshot","SessionState","getLanguage","Promise","resolve","reject","registerLocale","then","locale","import","differentLocales","module","registerLocaleData","default","LocalizationService","store","router","ngZone","actions","otherInstance","Error","setRouteReuse","reuse","routeReuseStrategy","shouldReuseRoute","navigated","run","_arguments","generator","navigateByUrl","catch","noop","P","fulfilled","rejected","result","keys","interpolateParams","_i","select","ConfigState","getCopy","instant","Router","NgZone","Actions","Optional","SkipSelf","localizationService","language","getTenant","tenant","setLanguage","combineLatest","from","setTenantId","http","handleError","err","console","throwError","config","api","observe","getApiUrl","options","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__rest","take","catchError","HttpClient","ApplicationConfigurationService","getConfiguration","organizeRoutes","routes","wrappers","parentNameArr","parentName","filter","route","children","filteredRoutes","sortRoutes","setChildRoute","map","foundedChildren","parent","sort","a","order","appConfigurationService","getAll","state","getApplicationInfo","environment","application","getOne","createSelector","ConfigState_1","getDeep","split","isArray","reduce","acc","val","getRoute","path","flattedRoutes","find","apis","getSetting","snq","setting","values","getGrantedPolicy","auth","grantedPolicies","selector","localization","defaultResourceName","copy","params","forEach","param","replace","addData","configuration","switchMap","defaultLang","includes","of","patchRoute","getState","findIndex","patchRouteDeep","parentUrl","child","isFunction","takeUntilDestroy","componentInstance","destroyMethodName","source","originalDestroy","constructor","Subject","complete","takeUntil","DynamicLayoutComponent","layouts","requirements","snapshot","data","layout","l","toLowerCase","events","subscribe","event","NavigationEnd","segments","parseUrl","root","primary","layout_1","wrapper","findLayout","ngOnDestroy","ActivatedRoute","Select","Observable","RouterOutletComponent","AutofocusDirective","elRef","delay","ngAfterViewInit","nativeElement","focus","Directive","ElementRef","EllipsisDirective","enabled","width","undefined","ngAfterContentInit","title","innerText","HostBinding","AbpForContext","$implicit","index","count","list","RecordView","record","view","ForDirective","tempRef","vcRef","differs","compareBy","compare","trackBy","item","id","iterateOverAppliedOperations","changes","rw","forEachOperation","previousIndex","currentIndex","createEmbeddedView","items","remove","move","context","iterateOverAttachedViews","viewRef","forEachIdentityChange","projectItems","emptyRef","rootNodes","isShowEmptyRef","clear","differ","create","trackByFn","diff","sortItems","orderBy","ngOnChanges","clone","compareFn","filterBy","filterVal","orderDir","reverse","TemplateRef","ViewContainerRef","IterableDiffers","uuid","Math","random","toString","FormSubmitDirective","formGroupDirective","host","ngSubmit","EventEmitter","executedNgSubmit","ngOnInit","markAsDirty","fromEvent","debounceTime","dispatchEvent","Event","bubbles","cancelable","notValidateOnSubmit","form","setDirty","controls","group","updateValueAndValidity","FormGroupDirective","Self","Output","PermissionDirective","renderer","condition","isGranted","removeChild","parentElement","Renderer2","VisibilityDirective","mutationObserverEnabled","completed$","observer","MutationObserver","mutations","mutation","childNodes","node","HTMLElement","disconnect","removeFromDOM","focusedElement","childList","AuthGuard","oauthService","canActivate","hasValidAccessToken","createUrlTree","redirectUrl","OAuthService","PermissionGuard","resource","access","status","ApplicationConfiguration","ABP","Config","Session","Profile","ApiInterceptor","oAuthService","intercept","headers","token","getAccessToken","has","handle","setHeaders","finalize","Response","Localization","Language","Auth","Setting","CurrentUser","Features","Root","PagedItemsResponse","PageQueryParams","Route","FullRoute","BasicItem","Environment","Application","Requirements","Rest","Request","ChangePasswordRequest","NGXS_CONFIG_PLUGIN_OPTIONS","InjectionToken","ConfigPlugin","initialized","matches","actionMatcher","InitState","UpdateState","abpRoutes","transformed","component","loadChildren","abpPackage","abp","setUrls","transformRoutes","flat","flatRoutes","setValue","Inject","ConfigService","LazyLoadService","loadedLibraries","load","content","targetQuery","position","library","slice","lastIndexOf","asObservable","ReplaySubject","document","createElement","src","text","rel","href","textContent","onload","querySelector","insertAdjacentElement","ENVIRONMENT","CONFIG","InputEventDebounceDirective","el","debounce","debounceEvent","emit","ClickEventStopPropagationDirective","stopPropEvent","stopPropagation","LocalizationPipe","initialValue","destroy$","transform","distinctUntilChanged","Pipe","pure","SortPipe","sortOrder","LocaleId","_super","__","tslib_1.__extends","currentLang","valueOf","String","LocaleProvider","provide","LOCALE_ID","useClass","deps","CoreModule","forRoot","ngModule","providers","NGXS_PLUGINS","multi","useValue","HTTP_INTERCEPTORS","APP_INITIALIZER","useFactory","NgModule","imports","NgxsModule","forFeature","NgxsStoragePluginModule","NgxsRouterPluginModule","CommonModule","HttpClientModule","FormsModule","ReactiveFormsModule","RouterModule","declarations","exports","entryComponents"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ControlValueAccessor } from '@angular/forms';\nimport { ChangeDetectorRef, Component, Injector, Input, Type } from '@angular/core';\n\n@Component({ template: '' })\nexport class AbstractNgModelComponent implements ControlValueAccessor {\n @Input()\n disabled: boolean;\n\n @Input()\n set value(value: T) {\n this._value = value;\n this.notifyValueChange();\n }\n\n get value(): T {\n return this._value;\n }\n\n onChange: (value: T) => {};\n onTouched: () => {};\n\n protected _value: T;\n protected cdRef: ChangeDetectorRef;\n\n constructor(public injector: Injector) {\n this.cdRef = injector.get(ChangeDetectorRef as Type);\n }\n\n notifyValueChange(): void {\n if (this.onChange) {\n this.onChange(this.value);\n }\n }\n\n writeValue(value: T): void {\n this._value = value;\n setTimeout(() => this.cdRef.detectChanges(), 0);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import { ABP } from '../models';\n\nexport class PatchRouteByName {\n static readonly type = '[Config] Patch Route By Name';\n constructor(public name: string, public newValue: Partial) {}\n}\n\nexport class GetAppConfiguration {\n static readonly type = '[Config] Get App Configuration';\n}\n","import { HttpRequest } from '@angular/common/http';\n\nexport class StartLoader {\n static readonly type = '[Loader] Start';\n constructor(public payload: HttpRequest) {}\n}\n\nexport class StopLoader {\n static readonly type = '[Loader] Stop';\n constructor(public payload: HttpRequest) {}\n}\n","import { Profile } from '../models';\n\nexport class GetProfile {\n static readonly type = '[Profile] Get';\n}\n\nexport class UpdateProfile {\n static readonly type = '[Profile] Update';\n constructor(public payload: Profile.Response) {}\n}\n\nexport class ChangePassword {\n static readonly type = '[Profile] Change Password';\n constructor(public payload: Profile.ChangePasswordRequest) {}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class RestOccurError {\n static readonly type = '[Rest] Error';\n constructor(public payload: HttpErrorResponse | any) {}\n}\n","import { ABP } from '../models';\n\nexport class SetLanguage {\n static readonly type = '[Session] Set Language';\n constructor(public payload: string) {}\n}\nexport class SetTenant {\n static readonly type = '[Session] Set Tenant';\n constructor(public payload: ABP.BasicItem) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService } from './rest.service';\nimport { Profile, Rest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/my-profile',\n };\n\n return this.rest.request(request);\n }\n\n update(body: Profile.Response): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/identity/my-profile',\n body,\n };\n\n return this.rest.request(request);\n }\n\n changePassword(body: Profile.ChangePasswordRequest, skipHandleError: boolean = false): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/my-profile/change-password',\n body,\n };\n\n return this.rest.request(request, { skipHandleError });\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetProfile, ChangePassword, UpdateProfile } from '../actions/profile.actions';\nimport { Profile } from '../models/profile';\nimport { ProfileService } from '../services/profile.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'ProfileState',\n defaults: {} as Profile.State,\n})\nexport class ProfileState {\n @Selector()\n static getProfile({ profile }: Profile.State): Profile.Response {\n return profile;\n }\n\n constructor(private profileService: ProfileService) {}\n\n @Action(GetProfile)\n profileGet({ patchState }: StateContext) {\n return this.profileService.get().pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(UpdateProfile)\n profileUpdate({ patchState }: StateContext, { payload }: UpdateProfile) {\n return this.profileService.update(payload).pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ChangePassword)\n changePassword(_, { payload }: ChangePassword) {\n return this.profileService.changePassword(payload, true);\n }\n}\n","// Different locales from .NET\n// Key is .NET locale, value is Angular locale\n\nexport default {\n 'ar-sa': 'ar-SA',\n 'ca-ES-valencia': 'ca-ES-VALENCIA',\n 'de-de': 'de',\n 'es-ES': 'es',\n 'en-US': 'en',\n 'fil-Latn': 'en',\n 'ku-Arab': 'en',\n 'ky-Cyrl': 'en',\n 'mi-Latn': 'en',\n 'prs-Arab': 'en',\n 'qut-Latn': 'en',\n nso: 'en',\n quz: 'en',\n 'fr-FR': 'fr',\n 'gd-Latn': 'gd',\n 'ha-Latn': 'ha',\n 'ig-Latn': 'ig',\n 'it-it': 'it',\n 'mn-Cyrl': 'mn',\n 'pt-BR': 'pt',\n 'sd-Arab': 'pa-Arab',\n 'sr-Cyrl-RS': 'sr-Cyrl',\n 'sr-Latn-RS': 'sr-Latn',\n 'tg-Cyrl': 'tg',\n 'tk-Latn': 'tk',\n 'tt-Cyrl': 'tt',\n 'ug-Arab': 'ug',\n 'yo-Latn': 'yo',\n};\n","import { registerLocaleData } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport differentLocales from '../constants/different-locales';\nimport { SessionState } from '../states/session.state';\n\nexport function getInitialData(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n return store.dispatch(new GetAppConfiguration()).toPromise();\n };\n\n return fn;\n}\n\nexport function localeInitializer(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n const lang = store.selectSnapshot(SessionState.getLanguage) || 'en';\n\n return new Promise((resolve, reject) => {\n registerLocale(lang).then(() => resolve(), reject);\n });\n };\n\n return fn;\n}\n\nexport function registerLocale(locale: string) {\n return import(\n /* webpackInclude: /(af|am|ar-SA|as|az-Latn|be|bg|bn-BD|bn-IN|bs|ca|ca-ES-VALENCIA|cs|cy|da|de|de|el|en-GB|en|es|en|es-US|es-MX|et|eu|fa|fi|en|fr|fr|fr-CA|ga|gd|gl|gu|ha|he|hi|hr|hu|hy|id|ig|is|it|it|ja|ka|kk|km|kn|ko|kok|en|en|lb|lt|lv|en|mk|ml|mn|mr|ms|mt|nb|ne|nl|nl-BE|nn|en|or|pa|pa-Arab|pl|en|pt|pt-PT|en|en|ro|ru|rw|pa-Arab|si|sk|sl|sq|sr-Cyrl-BA|sr-Cyrl|sr-Latn|sv|sw|ta|te|tg|th|ti|tk|tn|tr|tt|ug|uk|ur|uz-Latn|vi|wo|xh|yo|zh-Hans|zh-Hant|zu)\\.js$/ */\n `@angular/common/locales/${differentLocales[locale] || locale}.js`\n ).then(module => {\n registerLocaleData(module.default);\n });\n}\n","import { Injectable, Optional, SkipSelf, NgZone } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { Actions, Store } from '@ngxs/store';\nimport { noop, Observable } from 'rxjs';\nimport { ConfigState } from '../states/config.state';\nimport { SessionState } from '../states/session.state';\nimport { registerLocale } from '../utils/initial-utils';\n\ntype ShouldReuseRoute = (future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot) => boolean;\n\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService {\n get currentLang(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n constructor(\n private store: Store,\n private router: Router,\n private ngZone: NgZone,\n private actions: Actions,\n @Optional()\n @SkipSelf()\n otherInstance: LocalizationService,\n ) {\n if (otherInstance) throw new Error('LocaleService should have only one instance.');\n }\n\n private setRouteReuse(reuse: ShouldReuseRoute) {\n this.router.routeReuseStrategy.shouldReuseRoute = reuse;\n }\n\n registerLocale(locale: string) {\n const { shouldReuseRoute } = this.router.routeReuseStrategy;\n\n this.setRouteReuse(() => false);\n this.router.navigated = false;\n\n return registerLocale(locale).then(() => {\n this.ngZone.run(async () => {\n await this.router.navigateByUrl(this.router.url).catch(noop);\n this.setRouteReuse(shouldReuseRoute);\n });\n });\n }\n\n get(keys: string, ...interpolateParams: string[]): Observable {\n return this.store.select(ConfigState.getCopy(keys, ...interpolateParams));\n }\n\n instant(keys: string, ...interpolateParams: string[]): string {\n return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams));\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { SetLanguage, SetTenant } from '../actions/session.actions';\nimport { ABP, Session } from '../models';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport { LocalizationService } from '../services/localization.service';\nimport { from, combineLatest } from 'rxjs';\n\n@State({\n name: 'SessionState',\n defaults: {} as Session.State,\n})\nexport class SessionState {\n @Selector()\n static getLanguage({ language }: Session.State): string {\n return language;\n }\n\n @Selector()\n static getTenant({ tenant }: Session.State): ABP.BasicItem {\n return tenant;\n }\n\n constructor(private localizationService: LocalizationService) {}\n\n @Action(SetLanguage)\n setLanguage({ patchState, dispatch }: StateContext, { payload }: SetLanguage) {\n patchState({\n language: payload,\n });\n\n return combineLatest([dispatch(new GetAppConfiguration()), from(this.localizationService.registerLocale(payload))]);\n }\n\n @Action(SetTenant)\n setTenantId({ patchState }: StateContext, { payload }: SetTenant) {\n patchState({\n tenant: payload,\n });\n }\n}\n","import { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { NEVER, Observable, throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport { Rest } from '../models/rest';\nimport { ConfigState } from '../states';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestService {\n constructor(private http: HttpClient, private store: Store) {}\n\n handleError(err: any): Observable {\n this.store.dispatch(new RestOccurError(err));\n console.error(err);\n return throwError(err);\n }\n\n request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {\n const { observe = Rest.Observe.Body, skipHandleError } = config;\n const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;\n const { method, ...options } = request;\n return this.http.request(method, url, { observe, ...options } as any).pipe(\n observe === Rest.Observe.Body ? take(1) : null,\n catchError(err => {\n if (skipHandleError) {\n return throwError(err);\n }\n\n return this.handleError(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApplicationConfiguration, Rest } from '../models';\nimport { RestService } from './rest.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationConfigurationService {\n constructor(private rest: RestService) {}\n\n getConfiguration(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/application-configuration',\n };\n\n return this.rest.request(request);\n }\n}\n","import { ABP } from '../models';\n\nexport function organizeRoutes(\n routes: ABP.FullRoute[],\n wrappers: ABP.FullRoute[] = [],\n parentNameArr = [] as ABP.FullRoute[],\n parentName: string = null,\n): ABP.FullRoute[] {\n const filter = route => {\n if (route.children && route.children.length) {\n route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name);\n }\n\n if (route.parentName && route.parentName !== parentName) {\n parentNameArr.push(route);\n return false;\n }\n\n return true;\n };\n\n if (parentName) {\n // recursive block\n return routes.filter(filter);\n }\n\n const filteredRoutes = routes.filter(filter);\n\n if (parentNameArr.length) {\n return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr));\n }\n\n return filteredRoutes;\n}\n\nexport function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] {\n return routes.map(route => {\n if (route.children && route.children.length) {\n route.children = setChildRoute(route.children, parentNameArr);\n }\n\n const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name);\n if (foundedChildren && foundedChildren.length) {\n route.children = [...(route.children || []), ...foundedChildren];\n }\n\n return route;\n });\n}\n\nexport function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] {\n if (!routes.length) return [];\n return routes\n .sort((a, b) => a.order - b.order)\n .map(route => {\n if (route.children && route.children.length) {\n route.children = sortRoutes(route.children);\n }\n\n return route;\n });\n}\n","import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store';\nimport { Config, ABP } from '../models';\nimport { GetAppConfiguration, PatchRouteByName } from '../actions/config.actions';\nimport { ApplicationConfigurationService } from '../services/application-configuration.service';\nimport { tap, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { SetLanguage } from '../actions';\nimport { SessionState } from './session.state';\nimport { of } from 'rxjs';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\n@State({\n name: 'ConfigState',\n defaults: {} as Config.State,\n})\nexport class ConfigState {\n @Selector()\n static getAll(state: Config.State) {\n return state;\n }\n\n @Selector()\n static getApplicationInfo(state: Config.State): Config.Application {\n return state.environment.application || ({} as Config.Application);\n }\n\n static getOne(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return state[key];\n },\n );\n\n return selector;\n }\n\n static getDeep(keys: string[] | string) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return (keys as string[]).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state);\n },\n );\n\n return selector;\n }\n\n static getRoute(path?: string, name?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n const { flattedRoutes } = state;\n return (flattedRoutes as ABP.FullRoute[]).find(route => {\n if (path && route.path === path) {\n return route;\n } else if (name && route.name === name) {\n return route;\n }\n });\n },\n );\n\n return selector;\n }\n\n static getApiUrl(key?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): string {\n return state.environment.apis[key || 'default'].url;\n },\n );\n\n return selector;\n }\n\n static getSetting(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return snq(() => state.setting.values[key]);\n },\n );\n\n return selector;\n }\n\n static getGrantedPolicy(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): boolean {\n if (!key) return true;\n return snq(() => state.auth.grantedPolicies[key], false);\n },\n );\n\n return selector;\n }\n\n static getCopy(key: string, ...interpolateParams: string[]) {\n if (!key) key = '';\n\n const keys = key.split('::') as string[];\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n if (!state.localization) return key;\n\n const { defaultResourceName } = state.environment.localization;\n if (keys[0] === '') {\n if (!defaultResourceName) {\n throw new Error(\n `Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }`,\n );\n }\n\n keys[0] = snq(() => defaultResourceName);\n }\n\n let copy = (keys as any).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state.localization.values);\n\n interpolateParams = interpolateParams.filter(params => params != null);\n if (copy && interpolateParams && interpolateParams.length) {\n interpolateParams.forEach(param => {\n copy = copy.replace(/[\\'\\\"]?\\{[\\d]+\\}[\\'\\\"]?/, param);\n });\n }\n\n return copy || key;\n },\n );\n\n return selector;\n }\n\n constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {}\n\n @Action(GetAppConfiguration)\n addData({ patchState, dispatch }: StateContext) {\n return this.appConfigurationService.getConfiguration().pipe(\n tap(configuration =>\n patchState({\n ...configuration,\n }),\n ),\n switchMap(configuration => {\n let defaultLang: string = configuration.setting.values['Abp.Localization.DefaultLanguage'];\n\n if (defaultLang.includes(';')) {\n defaultLang = defaultLang.split(';')[0];\n }\n\n return this.store.selectSnapshot(SessionState.getLanguage) ? of(null) : dispatch(new SetLanguage(defaultLang));\n }),\n );\n }\n\n @Action(PatchRouteByName)\n patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) {\n let routes: ABP.FullRoute[] = getState().routes;\n\n const index = routes.findIndex(route => route.name === name);\n\n routes = patchRouteDeep(routes, name, newValue);\n\n return patchState({\n routes,\n });\n }\n}\n\nfunction patchRouteDeep(\n routes: ABP.FullRoute[],\n name: string,\n newValue: Partial,\n parentUrl: string = null,\n): ABP.FullRoute[] {\n routes = routes.map(route => {\n if (route.name === name) {\n if (newValue.path) {\n newValue.url = `${parentUrl}/${newValue.path}`;\n }\n\n if (newValue.children && newValue.children.length) {\n newValue.children = newValue.children.map(child => ({\n ...child,\n url: `${parentUrl}/${route.path}/${child.path}`,\n }));\n }\n\n return { ...route, ...newValue };\n } else if (route.children && route.children.length) {\n route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path);\n }\n\n return route;\n });\n\n if (parentUrl) {\n // recursive block\n return routes;\n }\n\n return organizeRoutes(routes);\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nexport const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => (\n source: Observable,\n) => {\n const originalDestroy = componentInstance[destroyMethodName];\n if (isFunction(originalDestroy) === false) {\n throw new Error(\n `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`,\n );\n }\n if (!componentInstance['__takeUntilDestroy']) {\n componentInstance['__takeUntilDestroy'] = new Subject();\n\n componentInstance[destroyMethodName] = function() {\n isFunction(originalDestroy) && originalDestroy.apply(this, arguments);\n componentInstance['__takeUntilDestroy'].next(true);\n componentInstance['__takeUntilDestroy'].complete();\n };\n }\n return source.pipe(takeUntil(componentInstance['__takeUntilDestroy']));\n};\n","import { Component, Input, OnDestroy, Type } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router, UrlSegment } from '@angular/router';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport snq from 'snq';\nimport { eLayoutType } from '../enums/common';\nimport { Config } from '../models/config';\nimport { ABP } from '../models/common';\nimport { ConfigState } from '../states/config.state';\nimport { takeUntilDestroy } from '../utils/rxjs-utils';\n\n@Component({\n selector: 'abp-dynamic-layout',\n template: `\n \n\n \n \n `,\n})\nexport class DynamicLayoutComponent implements OnDestroy {\n @Select(ConfigState.getOne('requirements'))\n requirements$: Observable;\n\n layout: Type;\n\n constructor(private router: Router, private route: ActivatedRoute, private store: Store) {\n const {\n requirements: { layouts },\n routes,\n } = this.store.selectSnapshot(ConfigState.getAll);\n\n if ((this.route.snapshot.data || {}).layout) {\n this.layout = layouts\n .filter(l => !!l)\n .find((l: any) => snq(() => l.type.toLowerCase().indexOf(this.route.snapshot.data.layout), -1) > -1);\n }\n\n this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n const { segments } = this.router.parseUrl(event.url).root.children.primary;\n\n const layout = (this.route.snapshot.data || {}).layout || findLayout(segments, routes);\n\n this.layout = layouts\n .filter(l => !!l)\n .find((l: any) => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1);\n }\n });\n }\n\n ngOnDestroy() {}\n}\n\nfunction findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType {\n let layout = eLayoutType.empty;\n\n const route = routes\n .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), [])\n .find(r => r.path === segments[0].path);\n\n if (route) {\n if (route.layout) {\n layout = route.layout;\n }\n\n if (route.children && route.children.length && segments.length > 1) {\n const child = route.children.find(c => c.path === segments[1].path);\n\n if (child && child.layout) {\n layout = child.layout;\n }\n }\n }\n\n return layout;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-router-outlet',\n template: `\n \n `,\n})\nexport class RouterOutletComponent {}\n","import { Directive, ElementRef, Input, AfterViewInit } from '@angular/core';\n\n@Directive({\n selector: '[autofocus]',\n})\nexport class AutofocusDirective implements AfterViewInit {\n @Input('autofocus')\n delay: number = 0;\n\n constructor(private elRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => this.elRef.nativeElement.focus(), this.delay);\n }\n}\n","import { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[abpEllipsis]',\n})\nexport class EllipsisDirective implements AfterContentInit {\n @Input('abpEllipsis')\n width: string;\n\n @HostBinding('title')\n @Input()\n title: string;\n\n @Input('abpEllipsisEnabled')\n enabled = true;\n\n @HostBinding('class.abp-ellipsis-inline')\n get inlineClass() {\n return this.enabled && this.width;\n }\n\n @HostBinding('class.abp-ellipsis')\n get class() {\n return this.enabled && !this.width;\n }\n\n @HostBinding('style.max-width')\n get maxWidth() {\n return this.enabled && this.width ? this.width || '170px' : undefined;\n }\n\n constructor(private cdRef: ChangeDetectorRef, private elRef: ElementRef) {}\n\n ngAfterContentInit() {\n setTimeout(() => {\n const title = this.title;\n this.title = title || (this.elRef.nativeElement as HTMLElement).innerText;\n\n if (this.title !== title) {\n this.cdRef.detectChanges();\n }\n }, 0);\n }\n}\n","import {\n Directive,\n EmbeddedViewRef,\n Input,\n IterableChangeRecord,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n OnChanges,\n TemplateRef,\n TrackByFunction,\n ViewContainerRef,\n} from '@angular/core';\nimport compare from 'just-compare';\nimport clone from 'just-clone';\n\nexport type CompareFn = (value: T, comparison: T) => boolean;\n\nclass AbpForContext {\n constructor(public $implicit: any, public index: number, public count: number, public list: any[]) {}\n}\n\nclass RecordView {\n constructor(public record: IterableChangeRecord, public view: EmbeddedViewRef) {}\n}\n\n@Directive({\n selector: '[abpFor]',\n})\nexport class ForDirective implements OnChanges {\n @Input('abpForOf')\n items: any[];\n\n @Input('abpForOrderBy')\n orderBy: string;\n\n @Input('abpForOrderDir')\n orderDir: 'ASC' | 'DESC';\n\n @Input('abpForFilterBy')\n filterBy: string;\n\n @Input('abpForFilterVal')\n filterVal: any;\n\n @Input('abpForTrackBy')\n trackBy;\n\n @Input('abpForCompareBy')\n compareBy: CompareFn;\n\n @Input('abpForEmptyRef')\n emptyRef: TemplateRef;\n\n private differ: IterableDiffer;\n\n private isShowEmptyRef: boolean;\n\n get compareFn(): CompareFn {\n return this.compareBy || compare;\n }\n\n get trackByFn(): TrackByFunction {\n return this.trackBy || ((index: number, item: any) => (item as any).id || index);\n }\n\n constructor(\n private tempRef: TemplateRef,\n private vcRef: ViewContainerRef,\n private differs: IterableDiffers,\n ) {}\n\n private iterateOverAppliedOperations(changes: IterableChanges) {\n const rw: RecordView[] = [];\n\n changes.forEachOperation((record: IterableChangeRecord, previousIndex: number, currentIndex: number) => {\n if (record.previousIndex == null) {\n const view = this.vcRef.createEmbeddedView(\n this.tempRef,\n new AbpForContext(null, -1, -1, this.items),\n currentIndex,\n );\n\n rw.push(new RecordView(record, view));\n } else if (currentIndex == null) {\n this.vcRef.remove(previousIndex);\n } else {\n const view = this.vcRef.get(previousIndex);\n this.vcRef.move(view, currentIndex);\n\n rw.push(new RecordView(record, view as EmbeddedViewRef));\n }\n });\n\n for (let i = 0, l = rw.length; i < l; i++) {\n rw[i].view.context.$implicit = rw[i].record.item;\n }\n }\n\n private iterateOverAttachedViews(changes: IterableChanges) {\n for (let i = 0, l = this.vcRef.length; i < l; i++) {\n const viewRef = this.vcRef.get(i) as EmbeddedViewRef;\n viewRef.context.index = i;\n viewRef.context.count = l;\n viewRef.context.list = this.items;\n }\n\n changes.forEachIdentityChange((record: IterableChangeRecord) => {\n const viewRef = this.vcRef.get(record.currentIndex) as EmbeddedViewRef;\n viewRef.context.$implicit = record.item;\n });\n }\n\n private projectItems(items: any[]): void {\n if (!items.length && this.emptyRef) {\n this.vcRef.createEmbeddedView(this.emptyRef).rootNodes;\n this.isShowEmptyRef = true;\n\n return;\n }\n\n if (this.emptyRef && this.isShowEmptyRef) {\n this.vcRef.clear();\n this.isShowEmptyRef = false;\n }\n\n if (!this.differ && items) {\n this.differ = this.differs.find(items).create(this.trackByFn);\n }\n\n if (this.differ) {\n const changes = this.differ.diff(items);\n\n if (changes) {\n this.iterateOverAppliedOperations(changes);\n this.iterateOverAttachedViews(changes);\n }\n }\n }\n\n private sortItems(items: any[]) {\n if (this.orderBy) {\n items.sort((a, b) => (a[this.orderBy] > b[this.orderBy] ? 1 : a[this.orderBy] < b[this.orderBy] ? -1 : 0));\n } else {\n items.sort();\n }\n }\n\n ngOnChanges() {\n let items = clone(this.items) as any[];\n if (!Array.isArray(items)) return;\n\n const compareFn = this.compareFn;\n\n if (typeof this.filterBy !== 'undefined') {\n items = items.filter(item => compareFn(item[this.filterBy], this.filterVal));\n }\n\n switch (this.orderDir) {\n case 'ASC':\n this.sortItems(items);\n this.projectItems(items);\n break;\n\n case 'DESC':\n this.sortItems(items);\n items.reverse();\n this.projectItems(items);\n break;\n\n default:\n this.projectItems(items);\n }\n }\n}\n","export function uuid(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Self,\n} from '@angular/core';\nimport { FormControl, FormGroup, FormGroupDirective } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { takeUntilDestroy } from '../utils';\n\ntype Controls = { [key: string]: FormControl } | FormGroup[];\n\n@Directive({\n selector: 'form[ngSubmit][formGroup]',\n})\nexport class FormSubmitDirective implements OnInit, OnDestroy {\n @Input()\n notValidateOnSubmit: string | boolean;\n\n @Output()\n ngSubmit = new EventEmitter();\n\n executedNgSubmit: boolean = false;\n\n constructor(\n @Self() private formGroupDirective: FormGroupDirective,\n private host: ElementRef,\n private cdRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.formGroupDirective.ngSubmit.pipe(takeUntilDestroy(this)).subscribe(() => {\n this.markAsDirty();\n this.executedNgSubmit = true;\n });\n\n fromEvent(this.host.nativeElement as HTMLElement, 'keyup')\n .pipe(\n debounceTime(200),\n filter((key: KeyboardEvent) => key && key.key === 'Enter'),\n takeUntilDestroy(this),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n }\n\n this.executedNgSubmit = false;\n });\n\n fromEvent(this.host.nativeElement, 'submit')\n .pipe(\n takeUntilDestroy(this),\n filter(() => !this.notValidateOnSubmit && typeof this.notValidateOnSubmit !== 'string'),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.markAsDirty();\n }\n });\n }\n\n ngOnDestroy(): void {}\n\n markAsDirty() {\n const { form } = this.formGroupDirective;\n\n setDirty(form.controls as { [key: string]: FormControl });\n form.markAsDirty();\n\n this.cdRef.detectChanges();\n }\n}\n\nfunction setDirty(controls: Controls) {\n if (Array.isArray(controls)) {\n controls.forEach(group => {\n setDirty(group.controls as { [key: string]: FormControl });\n });\n return;\n }\n\n Object.keys(controls).forEach(key => {\n controls[key].markAsDirty();\n controls[key].updateValueAndValidity();\n });\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\n\n@Directive({\n selector: '[abpPermission]',\n})\nexport class PermissionDirective implements OnInit, OnDestroy {\n @Input('abpPermission') condition: string;\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {}\n\n ngOnInit() {\n if (this.condition) {\n this.store\n .select(ConfigState.getGrantedPolicy(this.condition))\n .pipe(takeUntilDestroy(this))\n .subscribe(isGranted => {\n if (!isGranted) {\n this.renderer.removeChild(\n (this.elRef.nativeElement as HTMLElement).parentElement,\n this.elRef.nativeElement,\n );\n }\n });\n }\n }\n\n ngOnDestroy(): void {}\n}\n","import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport snq from 'snq';\n\n@Directive({\n selector: '[abpVisibility]',\n})\nexport class VisibilityDirective implements AfterViewInit {\n @Input('abpVisibility')\n focusedElement: HTMLElement;\n\n @Input()\n mutationObserverEnabled: boolean = true;\n\n completed$ = new Subject();\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n let observer: MutationObserver;\n if (this.mutationObserverEnabled) {\n observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (!mutation.target) return;\n\n const htmlNodes = snq(\n () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) {\n this.removeFromDOM();\n this.disconnect();\n } else {\n setTimeout(() => {\n this.disconnect();\n }, 0);\n }\n });\n });\n\n observer.observe(this.focusedElement, {\n childList: true,\n });\n } else {\n setTimeout(() => {\n const htmlNodes = snq(\n () => Array.from(this.focusedElement.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) this.removeFromDOM();\n }, 0);\n }\n\n this.completed$.subscribe(() => observer.disconnect());\n }\n\n disconnect() {\n this.completed$.next();\n this.completed$.complete();\n }\n\n removeFromDOM() {\n this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { Navigate } from '@ngxs/router-plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n constructor(private oauthService: OAuthService, private store: Store, private router: Router) {}\n\n canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree {\n const hasValidAccessToken = this.oauthService.hasValidAccessToken();\n if (hasValidAccessToken) {\n return hasValidAccessToken;\n }\n\n return this.router.createUrlTree(['/account/login'], { state: { redirectUrl: state.url } });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { ConfigState } from '../states';\nimport { tap } from 'rxjs/operators';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionGuard implements CanActivate {\n constructor(private store: Store) {}\n\n canActivate({ data }: ActivatedRouteSnapshot): Observable {\n const resource = data.requiredPolicy as string;\n return this.store.select(ConfigState.getGrantedPolicy(resource)).pipe(\n tap(access => {\n if (!access) {\n this.store.dispatch(new RestOccurError({ status: 403 }));\n }\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Store } from '@ngxs/store';\nimport { SessionState } from '../states';\nimport { StartLoader, StopLoader } from '../actions/loader.actions';\nimport { finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n constructor(private oAuthService: OAuthService, private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler) {\n this.store.dispatch(new StartLoader(request));\n\n const headers = {} as any;\n\n const token = this.oAuthService.getAccessToken();\n if (!request.headers.has('Authorization') && token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const lang = this.store.selectSnapshot(SessionState.getLanguage);\n if (!request.headers.has('Accept-Language') && lang) {\n headers['Accept-Language'] = lang;\n }\n\n const tenant = this.store.selectSnapshot(SessionState.getTenant);\n if (!request.headers.has('__tenant') && tenant) {\n headers['__tenant'] = tenant.id;\n }\n\n return next\n .handle(\n request.clone({\n setHeaders: headers,\n }),\n )\n .pipe(finalize(() => this.store.dispatch(new StopLoader(request))));\n }\n}\n","export namespace ApplicationConfiguration {\n export interface Response {\n localization: Localization;\n auth: Auth;\n setting: Setting;\n currentUser: CurrentUser;\n features: Features;\n }\n\n export interface Localization {\n values: LocalizationValue;\n languages: Language[];\n }\n\n export interface LocalizationValue {\n [key: string]: { [key: string]: string };\n }\n\n export interface Language {\n cultureName: string;\n uiCultureName: string;\n displayName: string;\n flagIcon: string;\n }\n\n export interface Auth {\n policies: Policy;\n grantedPolicies: Policy;\n }\n\n export interface Policy {\n [key: string]: boolean;\n }\n\n export interface Setting {\n values: { [key: string]: 'Abp.Localization.DefaultLanguage' };\n }\n\n export interface CurrentUser {\n isAuthenticated: boolean;\n id: string;\n tenantId: string;\n userName: string;\n }\n\n export interface Features {\n values: Setting;\n }\n}\n","import { Config } from './config';\nimport { eLayoutType } from '../enums/common';\n\nexport namespace ABP {\n export interface Root {\n environment: Partial;\n requirements: Config.Requirements;\n }\n\n export type PagedResponse = {\n totalCount: number;\n } & PagedItemsResponse;\n\n export interface PagedItemsResponse {\n items: T[];\n }\n\n export interface PageQueryParams {\n filter?: string;\n sorting?: string;\n skipCount?: number;\n maxResultCount?: number;\n }\n\n export interface Route {\n children?: Route[];\n invisible?: boolean;\n layout?: eLayoutType;\n name: string;\n order?: number;\n parentName?: string;\n path: string;\n requiredPolicy?: string;\n iconClass?: string;\n }\n\n export interface FullRoute extends Route {\n url?: string;\n wrapper?: boolean;\n }\n\n export interface BasicItem {\n id: string;\n name: string;\n }\n}\n","import { AuthConfig } from 'angular-oauth2-oidc';\nimport { Type } from '@angular/core';\nimport { ApplicationConfiguration } from './application-configuration';\nimport { ABP } from './common';\n\nexport namespace Config {\n export type State = ApplicationConfiguration.Response &\n ABP.Root & { environment: Environment } & {\n routes: ABP.FullRoute[];\n flattedRoutes: ABP.FullRoute[];\n };\n\n export interface Environment {\n application: Application;\n production: boolean;\n oAuthConfig: AuthConfig;\n apis: Apis;\n localization: { defaultResourceName: string };\n }\n\n export interface Application {\n name: string;\n logoUrl?: string;\n }\n\n export interface Apis {\n [key: string]: { [key: string]: string };\n }\n\n export interface Requirements {\n layouts: Type[];\n }\n}\n","import { ABP } from '../models';\n\nexport namespace Session {\n export interface State {\n language: string;\n tenant: ABP.BasicItem;\n }\n}\n","export namespace Profile {\n export interface State {\n profile: Response;\n }\n\n export interface Response {\n userName: string;\n email: string;\n name: string;\n surname: string;\n phoneNumber: string;\n }\n\n export interface ChangePasswordRequest {\n currentPassword: string;\n newPassword: string;\n }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\n\nexport namespace Rest {\n export interface Config {\n skipHandleError?: boolean;\n observe?: Observe;\n }\n\n export const enum Observe {\n Body = 'body',\n Events = 'events',\n Response = 'response',\n }\n\n export const enum ResponseType {\n ArrayBuffer = 'arraybuffer',\n Blob = 'blob',\n JSON = 'json',\n Text = 'text',\n }\n\n export interface Request {\n body?: T;\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n method: string;\n params?:\n | HttpParams\n | {\n [param: string]: any;\n };\n reportProgress?: boolean;\n responseType?: ResponseType;\n url: string;\n withCredentials?: boolean;\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Router, Routes } from '@angular/router';\nimport { actionMatcher, InitState, NgxsNextPluginFn, NgxsPlugin, setValue, UpdateState } from '@ngxs/store';\nimport snq from 'snq';\nimport { ABP } from '../../models';\nimport { organizeRoutes } from '../../utils/route-utils';\nimport clone from 'just-clone';\n\nexport const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS');\n\n@Injectable()\nexport class ConfigPlugin implements NgxsPlugin {\n private initialized: boolean = false;\n\n constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const matches = actionMatcher(event);\n const isInitAction = matches(InitState) || matches(UpdateState);\n\n // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []);\n if (isInitAction && !this.initialized) {\n let { routes, wrappers } = transformRoutes(this.router.config);\n routes = organizeRoutes(routes, wrappers);\n const flattedRoutes = flatRoutes(clone(routes));\n state = setValue(state, 'ConfigState', {\n ...(state.ConfigState && { ...state.ConfigState }),\n ...this.options,\n routes,\n flattedRoutes,\n });\n\n this.initialized = true;\n }\n\n return next(state, event);\n }\n}\n\nfunction transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any {\n const abpRoutes: ABP.FullRoute[] = routes\n .filter(route => {\n return snq(() => route.data.routes.routes.find(r => r.path === route.path), false);\n })\n .reduce((acc, val) => [...acc, ...val.data.routes.routes], []);\n\n wrappers = abpRoutes.filter(ar => ar.wrapper);\n const transformed = [] as ABP.FullRoute[];\n routes\n .filter(route => (route.data || {}).routes && (route.component || route.loadChildren))\n .forEach(route => {\n const abpPackage = abpRoutes.find(\n abp => abp.path.toLowerCase() === route.path.toLowerCase() && snq(() => route.data.routes.routes.length, false),\n );\n const { length } = transformed;\n\n if (abpPackage) {\n transformed.push(abpPackage);\n }\n\n if (transformed.length === length) {\n transformed.push({\n ...route.data.routes,\n path: route.path,\n name: snq(() => route.data.routes.name, route.path),\n children: route.data.routes.children || [],\n } as ABP.FullRoute);\n }\n });\n\n return { routes: setUrls(transformed), wrappers };\n}\n\nfunction setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] {\n if (parentUrl) {\n // this if block using for only recursive call\n\n return routes.map(route => ({\n ...route,\n url: `${parentUrl}/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `${parentUrl}/${route.path}`),\n }),\n }));\n }\n\n return routes.map(route => ({\n ...route,\n url: `/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `/${route.path}`),\n }),\n }));\n}\n\nfunction flatRoutes(routes: ABP.FullRoute[]): ABP.FullRoute[] {\n const flat = (r: ABP.FullRoute[]) => {\n return r.reduce((acc, val) => {\n let value: ABP.FullRoute[] = [val];\n if (val.children) {\n value = [val, ...flat(val.children)];\n }\n\n return [...acc, ...value];\n }, []);\n };\n\n return flat(routes);\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n constructor(private store: Store) {}\n\n getAll() {\n return this.store.selectSnapshot(ConfigState.getAll);\n }\n\n getOne(key: string) {\n return this.store.selectSnapshot(ConfigState.getOne(key));\n }\n\n getDeep(keys: string[] | string) {\n return this.store.selectSnapshot(ConfigState.getDeep(keys));\n }\n\n getSetting(key: string) {\n return this.store.selectSnapshot(ConfigState.getSetting(key));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { uuid } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyLoadService {\n loadedLibraries: { [url: string]: ReplaySubject } = {};\n\n load(\n url: string,\n type: 'script' | 'style',\n content: string = '',\n targetQuery: string = 'body',\n position: InsertPosition = 'afterend',\n ): Observable {\n if (!url && !content) return;\n const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid();\n\n if (this.loadedLibraries[key]) {\n return this.loadedLibraries[key].asObservable();\n }\n\n this.loadedLibraries[key] = new ReplaySubject();\n\n let library;\n if (type === 'script') {\n library = document.createElement('script');\n library.type = 'text/javascript';\n if (url) {\n (library as HTMLScriptElement).src = url;\n }\n\n (library as HTMLScriptElement).text = content;\n } else if (url) {\n library = document.createElement('link');\n library.type = 'text/css';\n (library as HTMLLinkElement).rel = 'stylesheet';\n\n if (url) {\n (library as HTMLLinkElement).href = url;\n }\n } else {\n library = document.createElement('style');\n (library as HTMLStyleElement).textContent = content;\n }\n\n library.onload = () => {\n this.loadedLibraries[key].next();\n this.loadedLibraries[key].complete();\n };\n\n document.querySelector(targetQuery).insertAdjacentElement(position, library);\n\n return this.loadedLibraries[key].asObservable();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Config } from '../models';\n\nexport function environmentFactory(environment: Config.Environment) {\n return {\n ...environment,\n };\n}\n\nexport function configFactory(config: Config.Requirements) {\n return {\n ...config,\n };\n}\n\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\n\nexport const CONFIG = new InjectionToken('CONFIG');\n","import { Directive, Output, Renderer2, ElementRef, OnInit, EventEmitter, Input } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[input.debounce]',\n})\nexport class InputEventDebounceDirective implements OnInit {\n @Input() debounce: number = 300;\n\n @Output('input.debounce') debounceEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'input')\n .pipe(\n debounceTime(this.debounce),\n takeUntilDestroy(this),\n )\n .subscribe((event: Event) => {\n this.debounceEvent.emit(event);\n });\n }\n}\n","import { Directive, ElementRef, EventEmitter, OnInit, Output, Renderer2 } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[click.stop]',\n})\nexport class ClickEventStopPropagationDirective implements OnInit {\n @Output('click.stop') stopPropEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'click')\n .pipe(takeUntilDestroy(this))\n .subscribe((event: MouseEvent) => {\n event.stopPropagation();\n this.stopPropEvent.emit(event);\n });\n }\n}\n","import { Pipe, PipeTransform, OnDestroy } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Pipe({\n name: 'abpLocalization',\n pure: false, // required to update the value\n})\nexport class LocalizationPipe implements PipeTransform, OnDestroy {\n initialValue: string = '';\n\n value: string;\n\n destroy$ = new Subject();\n\n constructor(private store: Store) {}\n\n transform(value: string = '', ...interpolateParams: string[]): string {\n if (this.initialValue !== value) {\n this.initialValue = value;\n this.destroy$.next();\n\n this.store\n .select(\n ConfigState.getCopy(\n value,\n ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []),\n ),\n )\n .pipe(\n takeUntil(this.destroy$),\n takeUntilDestroy(this),\n distinctUntilChanged(),\n )\n .subscribe(copy => (this.value = copy));\n }\n\n return this.value;\n }\n\n ngOnDestroy() {}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'abpSort',\n pure: false\n})\nexport class SortPipe implements PipeTransform {\n transform(value: any[], sortOrder: string): any {\n sortOrder = sortOrder.toLowerCase();\n if(sortOrder === \"desc\") return value.reverse();\n else return value;\n }\n}","import { LOCALE_ID, Provider } from '@angular/core';\nimport localesMapping from '../constants/different-locales';\nimport { LocalizationService } from '../services/localization.service';\n\nexport class LocaleId extends String {\n constructor(private localizationService: LocalizationService) {\n super();\n }\n\n toString(): string {\n const { currentLang } = this.localizationService;\n return localesMapping[currentLang] || currentLang;\n }\n\n valueOf(): string {\n return this.toString();\n }\n}\n\nexport const LocaleProvider: Provider = {\n provide: LOCALE_ID,\n useClass: LocaleId,\n deps: [LocalizationService],\n};\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxsRouterPluginModule } from '@ngxs/router-plugin';\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\nimport { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\nimport { RouterOutletComponent } from './components/router-outlet.component';\nimport { AutofocusDirective } from './directives/autofocus.directive';\nimport { InputEventDebounceDirective } from './directives/debounce.directive';\nimport { EllipsisDirective } from './directives/ellipsis.directive';\nimport { FormSubmitDirective } from './directives/form-submit.directive';\nimport { PermissionDirective } from './directives/permission.directive';\nimport { ClickEventStopPropagationDirective } from './directives/stop-propagation.directive';\nimport { VisibilityDirective } from './directives/visibility.directive';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ABP } from './models/common';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { SortPipe } from './pipes/sort.pipe';\nimport { LocaleProvider } from './providers/locale.provider';\nimport { ConfigState } from './states/config.state';\nimport { ProfileState } from './states/profile.state';\nimport { SessionState } from './states/session.state';\nimport { getInitialData, localeInitializer } from './utils/initial-utils';\nimport { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config/config.plugin';\nimport { ForDirective } from './directives/for.directive';\nimport { AbstractNgModelComponent } from './abstracts/ng-model.component';\n\n@NgModule({\n imports: [\n NgxsModule.forFeature([ProfileState, SessionState, ConfigState]),\n NgxsStoragePluginModule.forRoot({ key: 'SessionState' }),\n NgxsRouterPluginModule.forRoot(),\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n ],\n declarations: [\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n ForDirective,\n FormSubmitDirective,\n LocalizationPipe,\n SortPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n ClickEventStopPropagationDirective,\n AbstractNgModelComponent,\n ],\n exports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n ForDirective,\n FormSubmitDirective,\n LocalizationPipe,\n SortPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n LocalizationPipe,\n ClickEventStopPropagationDirective,\n AbstractNgModelComponent,\n ],\n providers: [LocalizationPipe],\n entryComponents: [RouterOutletComponent, DynamicLayoutComponent],\n})\nexport class CoreModule {\n static forRoot(options = {} as ABP.Root): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [\n LocaleProvider,\n {\n provide: NGXS_PLUGINS,\n useClass: ConfigPlugin,\n multi: true,\n },\n {\n provide: NGXS_CONFIG_PLUGIN_OPTIONS,\n useValue: options,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: localeInitializer,\n },\n ],\n };\n }\n}\n","export function noop() {\n const fn = function() {};\n return fn;\n}\n"]} \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/abp-ng.core.js b/npm/ng-packs/dist/core/esm2015/abp-ng.core.js index bb50ae9be4..de9301b82d 100644 --- a/npm/ng-packs/dist/core/esm2015/abp-ng.core.js +++ b/npm/ng-packs/dist/core/esm2015/abp-ng.core.js @@ -5,30 +5,32 @@ /** * Generated bundle index. Do not edit. */ -export { PatchRouteByName, GetAppConfiguration, StartLoader, StopLoader, GetProfile, UpdateProfile, ChangePassword, RestOccurError, SetLanguage, SetTenant, DynamicLayoutComponent, RouterOutletComponent, AutofocusDirective, EllipsisDirective, FormSubmitDirective, PermissionDirective, VisibilityDirective, AuthGuard, PermissionGuard, ApiInterceptor, Rest, NGXS_CONFIG_PLUGIN_OPTIONS, ConfigPlugin, ApplicationConfigurationService, ConfigService, LazyLoadService, LocalizationService, ProfileService, RestService, ProfileState, ConfigState, SessionState, environmentFactory, configFactory, ENVIRONMENT, CONFIG, noop, uuid, getInitialData, localeInitializer, registerLocale, organizeRoutes, setChildRoute, sortRoutes, takeUntilDestroy, CoreModule } from './public-api'; +export { AbstractNgModelComponent, PatchRouteByName, GetAppConfiguration, StartLoader, StopLoader, GetProfile, UpdateProfile, ChangePassword, RestOccurError, SetLanguage, SetTenant, DynamicLayoutComponent, RouterOutletComponent, AutofocusDirective, EllipsisDirective, ForDirective, FormSubmitDirective, PermissionDirective, VisibilityDirective, AuthGuard, PermissionGuard, ApiInterceptor, Rest, NGXS_CONFIG_PLUGIN_OPTIONS, ConfigPlugin, ApplicationConfigurationService, ConfigService, LazyLoadService, LocalizationService, ProfileService, RestService, ProfileState, ConfigState, SessionState, environmentFactory, configFactory, ENVIRONMENT, CONFIG, noop, uuid, getInitialData, localeInitializer, registerLocale, organizeRoutes, setChildRoute, sortRoutes, takeUntilDestroy, CoreModule } from './public-api'; +export { AbstractNgModelComponent as ɵbc } from './lib/abstracts/ng-model.component'; export { GetAppConfiguration as ɵp, PatchRouteByName as ɵo } from './lib/actions/config.actions'; export { ChangePassword as ɵf, GetProfile as ɵd, UpdateProfile as ɵe } from './lib/actions/profile.actions'; export { SetLanguage as ɵj, SetTenant as ɵk } from './lib/actions/session.actions'; export { DynamicLayoutComponent as ɵr } from './lib/components/dynamic-layout.component'; export { RouterOutletComponent as ɵq } from './lib/components/router-outlet.component'; -export { AutofocusDirective as ɵt } from './lib/directives/autofocus.directive'; -export { InputEventDebounceDirective as ɵz } from './lib/directives/debounce.directive'; -export { EllipsisDirective as ɵu } from './lib/directives/ellipsis.directive'; +export { AutofocusDirective as ɵs } from './lib/directives/autofocus.directive'; +export { InputEventDebounceDirective as ɵba } from './lib/directives/debounce.directive'; +export { EllipsisDirective as ɵt } from './lib/directives/ellipsis.directive'; +export { ForDirective as ɵu } from './lib/directives/for.directive'; export { FormSubmitDirective as ɵv } from './lib/directives/form-submit.directive'; -export { PermissionDirective as ɵx } from './lib/directives/permission.directive'; -export { ClickEventStopPropagationDirective as ɵba } from './lib/directives/stop-propagation.directive'; -export { VisibilityDirective as ɵy } from './lib/directives/visibility.directive'; -export { ApiInterceptor as ɵbf } from './lib/interceptors/api.interceptor'; +export { PermissionDirective as ɵy } from './lib/directives/permission.directive'; +export { ClickEventStopPropagationDirective as ɵbb } from './lib/directives/stop-propagation.directive'; +export { VisibilityDirective as ɵz } from './lib/directives/visibility.directive'; +export { ApiInterceptor as ɵbh } from './lib/interceptors/api.interceptor'; export { LocalizationPipe as ɵw } from './lib/pipes/localization.pipe'; -export { ConfigPlugin as ɵbe, NGXS_CONFIG_PLUGIN_OPTIONS as ɵbd } from './lib/plugins/config/config.plugin'; -export { LocaleId as ɵbb, LocaleProvider as ɵbc } from './lib/providers/locale.provider'; +export { SortPipe as ɵx } from './lib/pipes/sort.pipe'; +export { ConfigPlugin as ɵbg, NGXS_CONFIG_PLUGIN_OPTIONS as ɵbf } from './lib/plugins/config/config.plugin'; +export { LocaleId as ɵbd, LocaleProvider as ɵbe } from './lib/providers/locale.provider'; export { ApplicationConfigurationService as ɵn } from './lib/services/application-configuration.service'; export { LocalizationService as ɵi } from './lib/services/localization.service'; export { ProfileService as ɵb } from './lib/services/profile.service'; export { RestService as ɵc } from './lib/services/rest.service'; -export { ConfigState as ɵs } from './lib/states'; export { ConfigState as ɵm } from './lib/states/config.state'; export { ProfileState as ɵa } from './lib/states/profile.state'; export { SessionState as ɵh } from './lib/states/session.state'; -export { getInitialData as ɵbg, localeInitializer as ɵbh } from './lib/utils/initial-utils'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJhYnAtbmcuY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsK3VCQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlGLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3hHLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLFNBQVMsSUFBSSxFQUFFLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRixPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDdkYsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEYsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGtDQUFrQyxJQUFJLEdBQUcsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsY0FBYyxJQUFJLEdBQUcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXpFLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUMsWUFBWSxJQUFJLEdBQUcsRUFBQywwQkFBMEIsSUFBSSxHQUFHLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RyxPQUFPLEVBQUMsUUFBUSxJQUFJLEdBQUcsRUFBQyxjQUFjLElBQUksR0FBRyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEYsT0FBTyxFQUFDLCtCQUErQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGNBQWMsSUFBSSxHQUFHLEVBQUMsaUJBQWlCLElBQUksR0FBRyxFQUFDLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7R2V0QXBwQ29uZmlndXJhdGlvbiBhcyDJtXAsUGF0Y2hSb3V0ZUJ5TmFtZSBhcyDJtW99IGZyb20gJy4vbGliL2FjdGlvbnMvY29uZmlnLmFjdGlvbnMnO1xuZXhwb3J0IHtDaGFuZ2VQYXNzd29yZCBhcyDJtWYsR2V0UHJvZmlsZSBhcyDJtWQsVXBkYXRlUHJvZmlsZSBhcyDJtWV9IGZyb20gJy4vbGliL2FjdGlvbnMvcHJvZmlsZS5hY3Rpb25zJztcbmV4cG9ydCB7U2V0TGFuZ3VhZ2UgYXMgybVqLFNldFRlbmFudCBhcyDJtWt9IGZyb20gJy4vbGliL2FjdGlvbnMvc2Vzc2lvbi5hY3Rpb25zJztcbmV4cG9ydCB7RHluYW1pY0xheW91dENvbXBvbmVudCBhcyDJtXJ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCB7Um91dGVyT3V0bGV0Q29tcG9uZW50IGFzIMm1cX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9yb3V0ZXItb3V0bGV0LmNvbXBvbmVudCc7XG5leHBvcnQge0F1dG9mb2N1c0RpcmVjdGl2ZSBhcyDJtXR9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYXV0b2ZvY3VzLmRpcmVjdGl2ZSc7XG5leHBvcnQge0lucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSBhcyDJtXp9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZGVib3VuY2UuZGlyZWN0aXZlJztcbmV4cG9ydCB7RWxsaXBzaXNEaXJlY3RpdmUgYXMgybV1fSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2VsbGlwc2lzLmRpcmVjdGl2ZSc7XG5leHBvcnQge0Zvcm1TdWJtaXREaXJlY3RpdmUgYXMgybV2fSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2Zvcm0tc3VibWl0LmRpcmVjdGl2ZSc7XG5leHBvcnQge1Blcm1pc3Npb25EaXJlY3RpdmUgYXMgybV4fSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3Blcm1pc3Npb24uZGlyZWN0aXZlJztcbmV4cG9ydCB7Q2xpY2tFdmVudFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSBhcyDJtWJhfSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3N0b3AtcHJvcGFnYXRpb24uZGlyZWN0aXZlJztcbmV4cG9ydCB7VmlzaWJpbGl0eURpcmVjdGl2ZSBhcyDJtXl9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvdmlzaWJpbGl0eS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtBcGlJbnRlcmNlcHRvciBhcyDJtWJmfSBmcm9tICcuL2xpYi9pbnRlcmNlcHRvcnMvYXBpLmludGVyY2VwdG9yJztcbmV4cG9ydCB7QUJQIGFzIMm1bCxQcm9maWxlIGFzIMm1Z30gZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCB7TG9jYWxpemF0aW9uUGlwZSBhcyDJtXd9IGZyb20gJy4vbGliL3BpcGVzL2xvY2FsaXphdGlvbi5waXBlJztcbmV4cG9ydCB7Q29uZmlnUGx1Z2luIGFzIMm1YmUsTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMgYXMgybViZH0gZnJvbSAnLi9saWIvcGx1Z2lucy9jb25maWcvY29uZmlnLnBsdWdpbic7XG5leHBvcnQge0xvY2FsZUlkIGFzIMm1YmIsTG9jYWxlUHJvdmlkZXIgYXMgybViY30gZnJvbSAnLi9saWIvcHJvdmlkZXJzL2xvY2FsZS5wcm92aWRlcic7XG5leHBvcnQge0FwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2UgYXMgybVufSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtMb2NhbGl6YXRpb25TZXJ2aWNlIGFzIMm1aX0gZnJvbSAnLi9saWIvc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtQcm9maWxlU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vbGliL3NlcnZpY2VzL3Byb2ZpbGUuc2VydmljZSc7XG5leHBvcnQge1Jlc3RTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9saWIvc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcbmV4cG9ydCB7Q29uZmlnU3RhdGUgYXMgybVzfSBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuZXhwb3J0IHtDb25maWdTdGF0ZSBhcyDJtW19IGZyb20gJy4vbGliL3N0YXRlcy9jb25maWcuc3RhdGUnO1xuZXhwb3J0IHtQcm9maWxlU3RhdGUgYXMgybVhfSBmcm9tICcuL2xpYi9zdGF0ZXMvcHJvZmlsZS5zdGF0ZSc7XG5leHBvcnQge1Nlc3Npb25TdGF0ZSBhcyDJtWh9IGZyb20gJy4vbGliL3N0YXRlcy9zZXNzaW9uLnN0YXRlJztcbmV4cG9ydCB7Z2V0SW5pdGlhbERhdGEgYXMgybViZyxsb2NhbGVJbml0aWFsaXplciBhcyDJtWJofSBmcm9tICcuL2xpYi91dGlscy9pbml0aWFsLXV0aWxzJzsiXX0= \ No newline at end of file +export { getInitialData as ɵbi, localeInitializer as ɵbj } from './lib/utils/initial-utils'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJhYnAtbmcuY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsdXhCQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RixPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RyxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxTQUFTLElBQUksRUFBRSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDaEYsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFDLDJCQUEyQixJQUFJLEdBQUcsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGtDQUFrQyxJQUFJLEdBQUcsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsY0FBYyxJQUFJLEdBQUcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXpFLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUMsUUFBUSxJQUFJLEVBQUUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxZQUFZLElBQUksR0FBRyxFQUFDLDBCQUEwQixJQUFJLEdBQUcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxRQUFRLElBQUksR0FBRyxFQUFDLGNBQWMsSUFBSSxHQUFHLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RixPQUFPLEVBQUMsK0JBQStCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDdkcsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxJQUFJLEdBQUcsRUFBQyxpQkFBaUIsSUFBSSxHQUFHLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtBYnN0cmFjdE5nTW9kZWxDb21wb25lbnQgYXMgybViY30gZnJvbSAnLi9saWIvYWJzdHJhY3RzL25nLW1vZGVsLmNvbXBvbmVudCc7XG5leHBvcnQge0dldEFwcENvbmZpZ3VyYXRpb24gYXMgybVwLFBhdGNoUm91dGVCeU5hbWUgYXMgybVvfSBmcm9tICcuL2xpYi9hY3Rpb25zL2NvbmZpZy5hY3Rpb25zJztcbmV4cG9ydCB7Q2hhbmdlUGFzc3dvcmQgYXMgybVmLEdldFByb2ZpbGUgYXMgybVkLFVwZGF0ZVByb2ZpbGUgYXMgybVlfSBmcm9tICcuL2xpYi9hY3Rpb25zL3Byb2ZpbGUuYWN0aW9ucyc7XG5leHBvcnQge1NldExhbmd1YWdlIGFzIMm1aixTZXRUZW5hbnQgYXMgybVrfSBmcm9tICcuL2xpYi9hY3Rpb25zL3Nlc3Npb24uYWN0aW9ucyc7XG5leHBvcnQge0R5bmFtaWNMYXlvdXRDb21wb25lbnQgYXMgybVyfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQge1JvdXRlck91dGxldENvbXBvbmVudCBhcyDJtXF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcm91dGVyLW91dGxldC5jb21wb25lbnQnO1xuZXhwb3J0IHtBdXRvZm9jdXNEaXJlY3RpdmUgYXMgybVzfSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xuZXhwb3J0IHtJbnB1dEV2ZW50RGVib3VuY2VEaXJlY3RpdmUgYXMgybViYX0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9kZWJvdW5jZS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtFbGxpcHNpc0RpcmVjdGl2ZSBhcyDJtXR9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZWxsaXBzaXMuZGlyZWN0aXZlJztcbmV4cG9ydCB7Rm9yRGlyZWN0aXZlIGFzIMm1dX0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9mb3IuZGlyZWN0aXZlJztcbmV4cG9ydCB7Rm9ybVN1Ym1pdERpcmVjdGl2ZSBhcyDJtXZ9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXQuZGlyZWN0aXZlJztcbmV4cG9ydCB7UGVybWlzc2lvbkRpcmVjdGl2ZSBhcyDJtXl9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvcGVybWlzc2lvbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHtDbGlja0V2ZW50U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIGFzIMm1YmJ9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvc3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHtWaXNpYmlsaXR5RGlyZWN0aXZlIGFzIMm1en0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy92aXNpYmlsaXR5LmRpcmVjdGl2ZSc7XG5leHBvcnQge0FwaUludGVyY2VwdG9yIGFzIMm1Ymh9IGZyb20gJy4vbGliL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3InO1xuZXhwb3J0IHtBQlAgYXMgybVsLFByb2ZpbGUgYXMgybVnfSBmcm9tICcuL2xpYi9tb2RlbHMnO1xuZXhwb3J0IHtMb2NhbGl6YXRpb25QaXBlIGFzIMm1d30gZnJvbSAnLi9saWIvcGlwZXMvbG9jYWxpemF0aW9uLnBpcGUnO1xuZXhwb3J0IHtTb3J0UGlwZSBhcyDJtXh9IGZyb20gJy4vbGliL3BpcGVzL3NvcnQucGlwZSc7XG5leHBvcnQge0NvbmZpZ1BsdWdpbiBhcyDJtWJnLE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TIGFzIMm1YmZ9IGZyb20gJy4vbGliL3BsdWdpbnMvY29uZmlnL2NvbmZpZy5wbHVnaW4nO1xuZXhwb3J0IHtMb2NhbGVJZCBhcyDJtWJkLExvY2FsZVByb3ZpZGVyIGFzIMm1YmV9IGZyb20gJy4vbGliL3Byb3ZpZGVycy9sb2NhbGUucHJvdmlkZXInO1xuZXhwb3J0IHtBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25TZXJ2aWNlIGFzIMm1bn0gZnJvbSAnLi9saWIvc2VydmljZXMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7TG9jYWxpemF0aW9uU2VydmljZSBhcyDJtWl9IGZyb20gJy4vbGliL3NlcnZpY2VzL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7UHJvZmlsZVNlcnZpY2UgYXMgybVifSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wcm9maWxlLnNlcnZpY2UnO1xuZXhwb3J0IHtSZXN0U2VydmljZSBhcyDJtWN9IGZyb20gJy4vbGliL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XG5leHBvcnQge0NvbmZpZ1N0YXRlIGFzIMm1bX0gZnJvbSAnLi9saWIvc3RhdGVzL2NvbmZpZy5zdGF0ZSc7XG5leHBvcnQge1Byb2ZpbGVTdGF0ZSBhcyDJtWF9IGZyb20gJy4vbGliL3N0YXRlcy9wcm9maWxlLnN0YXRlJztcbmV4cG9ydCB7U2Vzc2lvblN0YXRlIGFzIMm1aH0gZnJvbSAnLi9saWIvc3RhdGVzL3Nlc3Npb24uc3RhdGUnO1xuZXhwb3J0IHtnZXRJbml0aWFsRGF0YSBhcyDJtWJpLGxvY2FsZUluaXRpYWxpemVyIGFzIMm1Ymp9IGZyb20gJy4vbGliL3V0aWxzL2luaXRpYWwtdXRpbHMnOyJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/abstracts/index.js b/npm/ng-packs/dist/core/esm2015/lib/abstracts/index.js new file mode 100644 index 0000000000..99c2fd89b9 --- /dev/null +++ b/npm/ng-packs/dist/core/esm2015/lib/abstracts/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { AbstractNgModelComponent } from './ng-model.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvYWJzdHJhY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx5Q0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmctbW9kZWwuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/abstracts/ng-model.component.js b/npm/ng-packs/dist/core/esm2015/lib/abstracts/ng-model.component.js new file mode 100644 index 0000000000..df5bac49c4 --- /dev/null +++ b/npm/ng-packs/dist/core/esm2015/lib/abstracts/ng-model.component.js @@ -0,0 +1,103 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { ChangeDetectorRef, Component, Injector, Input } from '@angular/core'; +/** + * @template T + */ +export class AbstractNgModelComponent { + /** + * @param {?} injector + */ + constructor(injector) { + this.injector = injector; + this.cdRef = injector.get((/** @type {?} */ (ChangeDetectorRef))); + } + /** + * @param {?} value + * @return {?} + */ + set value(value) { + this._value = value; + this.notifyValueChange(); + } + /** + * @return {?} + */ + get value() { + return this._value; + } + /** + * @return {?} + */ + notifyValueChange() { + if (this.onChange) { + this.onChange(this.value); + } + } + /** + * @param {?} value + * @return {?} + */ + writeValue(value) { + this._value = value; + setTimeout((/** + * @return {?} + */ + () => this.cdRef.detectChanges()), 0); + } + /** + * @param {?} fn + * @return {?} + */ + registerOnChange(fn) { + this.onChange = fn; + } + /** + * @param {?} fn + * @return {?} + */ + registerOnTouched(fn) { + this.onTouched = fn; + } + /** + * @param {?} isDisabled + * @return {?} + */ + setDisabledState(isDisabled) { + this.disabled = isDisabled; + } +} +AbstractNgModelComponent.decorators = [ + { type: Component, args: [{ template: '' }] } +]; +/** @nocollapse */ +AbstractNgModelComponent.ctorParameters = () => [ + { type: Injector } +]; +AbstractNgModelComponent.propDecorators = { + disabled: [{ type: Input }], + value: [{ type: Input }] +}; +if (false) { + /** @type {?} */ + AbstractNgModelComponent.prototype.disabled; + /** @type {?} */ + AbstractNgModelComponent.prototype.onChange; + /** @type {?} */ + AbstractNgModelComponent.prototype.onTouched; + /** + * @type {?} + * @protected + */ + AbstractNgModelComponent.prototype._value; + /** + * @type {?} + * @protected + */ + AbstractNgModelComponent.prototype.cdRef; + /** @type {?} */ + AbstractNgModelComponent.prototype.injector; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbW9kZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2Fic3RyYWN0cy9uZy1tb2RlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBUSxNQUFNLGVBQWUsQ0FBQzs7OztBQUdwRixNQUFNLE9BQU8sd0JBQXdCOzs7O0lBb0JuQyxZQUFtQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBb0IsbUJBQUEsaUJBQWlCLEVBQTJCLENBQUMsQ0FBQztJQUM3RixDQUFDOzs7OztJQWxCRCxJQUNJLEtBQUssQ0FBQyxLQUFRO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7Ozs7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQzs7OztJQVlELGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7Ozs7O0lBRUQsVUFBVSxDQUFDLEtBQVE7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsVUFBVTs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDOzs7OztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQzs7Ozs7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQzs7O1lBOUNGLFNBQVMsU0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7Ozs7WUFGWSxRQUFROzs7dUJBSTVDLEtBQUs7b0JBR0wsS0FBSzs7OztJQUhOLDRDQUNrQjs7SUFZbEIsNENBQTJCOztJQUMzQiw2Q0FBb0I7Ozs7O0lBRXBCLDBDQUFvQjs7Ozs7SUFDcEIseUNBQW1DOztJQUV2Qiw0Q0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXG5leHBvcnQgY2xhc3MgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50PFQgPSBhbnk+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodmFsdWU6IFQpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMubm90aWZ5VmFsdWVDaGFuZ2UoKTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBvbkNoYW5nZTogKHZhbHVlOiBUKSA9PiB7fTtcbiAgb25Ub3VjaGVkOiAoKSA9PiB7fTtcblxuICBwcm90ZWN0ZWQgX3ZhbHVlOiBUO1xuICBwcm90ZWN0ZWQgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLmNkUmVmID0gaW5qZWN0b3IuZ2V0PENoYW5nZURldGVjdG9yUmVmPihDaGFuZ2VEZXRlY3RvclJlZiBhcyBUeXBlPENoYW5nZURldGVjdG9yUmVmPik7XG4gIH1cblxuICBub3RpZnlWYWx1ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpLCAwKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/components/dynamic-layout.component.js b/npm/ng-packs/dist/core/esm2015/lib/components/dynamic-layout.component.js index 001fc9351d..af6adf48e3 100644 --- a/npm/ng-packs/dist/core/esm2015/lib/components/dynamic-layout.component.js +++ b/npm/ng-packs/dist/core/esm2015/lib/components/dynamic-layout.component.js @@ -4,20 +4,39 @@ */ import * as tslib_1 from "tslib"; import { Component } from '@angular/core'; -import { NavigationEnd, Router } from '@angular/router'; +import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; import { Select, Store } from '@ngxs/store'; import { Observable } from 'rxjs'; -import { ConfigState } from '../states'; -import { takeUntilDestroy } from '../utils'; import snq from 'snq'; +import { ConfigState } from '../states/config.state'; +import { takeUntilDestroy } from '../utils/rxjs-utils'; export class DynamicLayoutComponent { /** * @param {?} router + * @param {?} route * @param {?} store */ - constructor(router, store) { + constructor(router, route, store) { this.router = router; + this.route = route; this.store = store; + const { requirements: { layouts }, routes, } = this.store.selectSnapshot(ConfigState.getAll); + if ((this.route.snapshot.data || {}).layout) { + this.layout = layouts + .filter((/** + * @param {?} l + * @return {?} + */ + l => !!l)) + .find((/** + * @param {?} l + * @return {?} + */ + (l) => snq((/** + * @return {?} + */ + () => l.type.toLowerCase().indexOf(this.route.snapshot.data.layout)), -1) > -1)); + } this.router.events.pipe(takeUntilDestroy(this)).subscribe((/** * @param {?} event * @return {?} @@ -25,18 +44,19 @@ export class DynamicLayoutComponent { event => { if (event instanceof NavigationEnd) { const { segments } = this.router.parseUrl(event.url).root.children.primary; - const { requirements: { layouts }, routes, } = this.store.selectSnapshot(ConfigState.getAll); /** @type {?} */ - const layout = findLayout(segments, routes); - this.layout = layouts.filter((/** + const layout = (this.route.snapshot.data || {}).layout || findLayout(segments, routes); + this.layout = layouts + .filter((/** * @param {?} l * @return {?} */ - l => !!l)).find((/** + l => !!l)) + .find((/** * @param {?} l * @return {?} */ - l => snq((/** + (l) => snq((/** * @return {?} */ () => l.type.toLowerCase().indexOf(layout)), -1) > -1)); @@ -62,6 +82,7 @@ DynamicLayoutComponent.decorators = [ /** @nocollapse */ DynamicLayoutComponent.ctorParameters = () => [ { type: Router }, + { type: ActivatedRoute }, { type: Store } ]; tslib_1.__decorate([ @@ -78,6 +99,11 @@ if (false) { * @private */ DynamicLayoutComponent.prototype.router; + /** + * @type {?} + * @private + */ + DynamicLayoutComponent.prototype.route; /** * @type {?} * @private @@ -123,4 +149,4 @@ function findLayout(segments, routes) { } return layout; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQVd0QixNQUFNLE9BQU8sc0JBQXNCOzs7OztJQU1qQyxZQUFvQixNQUFjLEVBQVUsS0FBWTtRQUFwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO3NCQUM1QixFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87c0JBQ3BFLEVBQ0osWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQ3pCLE1BQU0sR0FDUCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7O3NCQUUzQyxNQUFNLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7Z0JBRTNDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU07Ozs7Z0JBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSTs7OztnQkFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUc7OztnQkFBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUM7YUFDNUc7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxXQUFXLEtBQUksQ0FBQzs7O1lBL0JqQixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsUUFBUSxFQUFFOzs7OztHQUtUO2FBQ0Y7Ozs7WUFqQnVCLE1BQU07WUFDYixLQUFLOztBQW1CcEI7SUFEQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztzQ0FDNUIsVUFBVTs2REFBc0I7OztJQUQvQywrQ0FDK0M7O0lBRS9DLHdDQUFrQjs7Ozs7SUFFTix3Q0FBc0I7Ozs7O0lBQUUsdUNBQW9COzs7Ozs7O0FBbUIxRCxTQUFTLFVBQVUsQ0FBQyxRQUFzQixFQUFFLE1BQXVCOztRQUM3RCxNQUFNLHNCQUFvQjs7VUFFeEIsS0FBSyxHQUFHLE1BQU07U0FDakIsTUFBTTs7Ozs7SUFBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFFLEVBQUUsQ0FBQztTQUNuRixJQUFJOzs7O0lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUM7SUFFekMsSUFBSSxLQUFLLEVBQUU7UUFDVCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDaEIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDdkI7UUFFRCxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7O2tCQUM1RCxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUM7WUFFbkUsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDekIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDdkI7U0FDRjtLQUNGO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFVybFNlZ21lbnQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGVMYXlvdXRUeXBlIH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHsgQUJQLCBDb25maWcgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ29uZmlnU3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLWR5bmFtaWMtbGF5b3V0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGF5b3V0ID8gY29tcG9uZW50T3V0bGV0IDogcm91dGVyT3V0bGV0XCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3JvdXRlck91dGxldD48cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+PC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudE91dGxldD48bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImxheW91dFwiPjwvbmctY29udGFpbmVyPjwvbmctdGVtcGxhdGU+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAU2VsZWN0KENvbmZpZ1N0YXRlLmdldE9uZSgncmVxdWlyZW1lbnRzJykpXG4gIHJlcXVpcmVtZW50cyQ6IE9ic2VydmFibGU8Q29uZmlnLlJlcXVpcmVtZW50cz47XG5cbiAgbGF5b3V0OiBUeXBlPGFueT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHtcbiAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZSh0YWtlVW50aWxEZXN0cm95KHRoaXMpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICBjb25zdCB7IHNlZ21lbnRzIH0gPSB0aGlzLnJvdXRlci5wYXJzZVVybChldmVudC51cmwpLnJvb3QuY2hpbGRyZW4ucHJpbWFyeTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHJlcXVpcmVtZW50czogeyBsYXlvdXRzIH0sXG4gICAgICAgICAgcm91dGVzLFxuICAgICAgICB9ID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChDb25maWdTdGF0ZS5nZXRBbGwpO1xuXG4gICAgICAgIGNvbnN0IGxheW91dCA9IGZpbmRMYXlvdXQoc2VnbWVudHMsIHJvdXRlcyk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXQgPSBsYXlvdXRzLmZpbHRlcihsID0+ICEhbCkuZmluZChsID0+IHNucSgoKSA9PiBsLnR5cGUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGxheW91dCksIC0xKSA+IC0xKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge31cbn1cblxuZnVuY3Rpb24gZmluZExheW91dChzZWdtZW50czogVXJsU2VnbWVudFtdLCByb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSk6IGVMYXlvdXRUeXBlIHtcbiAgbGV0IGxheW91dCA9IGVMYXlvdXRUeXBlLmVtcHR5O1xuXG4gIGNvbnN0IHJvdXRlID0gcm91dGVzXG4gICAgLnJlZHVjZSgoYWNjLCB2YWwpID0+ICh2YWwud3JhcHBlciA/IFsuLi5hY2MsIC4uLnZhbC5jaGlsZHJlbl0gOiBbLi4uYWNjLCB2YWxdKSwgW10pXG4gICAgLmZpbmQociA9PiByLnBhdGggPT09IHNlZ21lbnRzWzBdLnBhdGgpO1xuXG4gIGlmIChyb3V0ZSkge1xuICAgIGlmIChyb3V0ZS5sYXlvdXQpIHtcbiAgICAgIGxheW91dCA9IHJvdXRlLmxheW91dDtcbiAgICB9XG5cbiAgICBpZiAocm91dGUuY2hpbGRyZW4gJiYgcm91dGUuY2hpbGRyZW4ubGVuZ3RoICYmIHNlZ21lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IGNoaWxkID0gcm91dGUuY2hpbGRyZW4uZmluZChjID0+IGMucGF0aCA9PT0gc2VnbWVudHNbMV0ucGF0aCk7XG5cbiAgICAgIGlmIChjaGlsZCAmJiBjaGlsZC5sYXlvdXQpIHtcbiAgICAgICAgbGF5b3V0ID0gY2hpbGQubGF5b3V0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsYXlvdXQ7XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFjLE1BQU0saUJBQWlCLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFJdEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBV3ZELE1BQU0sT0FBTyxzQkFBc0I7Ozs7OztJQU1qQyxZQUFvQixNQUFjLEVBQVUsS0FBcUIsRUFBVSxLQUFZO1FBQW5FLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFVLFVBQUssR0FBTCxLQUFLLENBQU87Y0FDL0UsRUFDSixZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFDekIsTUFBTSxHQUNQLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUVqRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU87aUJBQ2xCLE1BQU07Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFD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QUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUM7WUFFbkUsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDekIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDdkI7U0FDRjtLQUNGO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciwgVXJsU2VnbWVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHNucSBmcm9tICdzbnEnO1xuaW1wb3J0IHsgZUxheW91dFR5cGUgfSBmcm9tICcuLi9lbnVtcy9jb21tb24nO1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZyc7XG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuLi9tb2RlbHMvY29tbW9uJztcbmltcG9ydCB7IENvbmZpZ1N0YXRlIH0gZnJvbSAnLi4vc3RhdGVzL2NvbmZpZy5zdGF0ZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95IH0gZnJvbSAnLi4vdXRpbHMvcnhqcy11dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1keW5hbWljLWxheW91dCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxheW91dCA/IGNvbXBvbmVudE91dGxldCA6IHJvdXRlck91dGxldFwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNyb3V0ZXJPdXRsZXQ+PHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PjwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRPdXRsZXQ+PG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJsYXlvdXRcIj48L25nLWNvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFNlbGVjdChDb25maWdTdGF0ZS5nZXRPbmUoJ3JlcXVpcmVtZW50cycpKVxuICByZXF1aXJlbWVudHMkOiBPYnNlcnZhYmxlPENvbmZpZy5SZXF1aXJlbWVudHM+O1xuXG4gIGxheW91dDogVHlwZTxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIHJlcXVpcmVtZW50czogeyBsYXlvdXRzIH0sXG4gICAgICByb3V0ZXMsXG4gICAgfSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoQ29uZmlnU3RhdGUuZ2V0QWxsKTtcblxuICAgIGlmICgodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhIHx8IHt9KS5sYXlvdXQpIHtcbiAgICAgIHRoaXMubGF5b3V0ID0gbGF5b3V0c1xuICAgICAgICAuZmlsdGVyKGwgPT4gISFsKVxuICAgICAgICAuZmluZCgobDogYW55KSA9PiBzbnEoKCkgPT4gbC50eXBlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEubGF5b3V0KSwgLTEpID4gLTEpO1xuICAgIH1cblxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKHRha2VVbnRpbERlc3Ryb3kodGhpcykpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIGNvbnN0IHsgc2VnbWVudHMgfSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKGV2ZW50LnVybCkucm9vdC5jaGlsZHJlbi5wcmltYXJ5O1xuXG4gICAgICAgIGNvbnN0IGxheW91dCA9ICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEgfHwge30pLmxheW91dCB8fCBmaW5kTGF5b3V0KHNlZ21lbnRzLCByb3V0ZXMpO1xuXG4gICAgICAgIHRoaXMubGF5b3V0ID0gbGF5b3V0c1xuICAgICAgICAgIC5maWx0ZXIobCA9PiAhIWwpXG4gICAgICAgICAgLmZpbmQoKGw6IGFueSkgPT4gc25xKCgpID0+IGwudHlwZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YobGF5b3V0KSwgLTEpID4gLTEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7fVxufVxuXG5mdW5jdGlvbiBmaW5kTGF5b3V0KHNlZ21lbnRzOiBVcmxTZWdtZW50W10sIHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdKTogZUxheW91dFR5cGUge1xuICBsZXQgbGF5b3V0ID0gZUxheW91dFR5cGUuZW1wdHk7XG5cbiAgY29uc3Qgcm91dGUgPSByb3V0ZXNcbiAgICAucmVkdWNlKChhY2MsIHZhbCkgPT4gKHZhbC53cmFwcGVyID8gWy4uLmFjYywgLi4udmFsLmNoaWxkcmVuXSA6IFsuLi5hY2MsIHZhbF0pLCBbXSlcbiAgICAuZmluZChyID0+IHIucGF0aCA9PT0gc2VnbWVudHNbMF0ucGF0aCk7XG5cbiAgaWYgKHJvdXRlKSB7XG4gICAgaWYgKHJvdXRlLmxheW91dCkge1xuICAgICAgbGF5b3V0ID0gcm91dGUubGF5b3V0O1xuICAgIH1cblxuICAgIGlmIChyb3V0ZS5jaGlsZHJlbiAmJiByb3V0ZS5jaGlsZHJlbi5sZW5ndGggJiYgc2VnbWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgY2hpbGQgPSByb3V0ZS5jaGlsZHJlbi5maW5kKGMgPT4gYy5wYXRoID09PSBzZWdtZW50c1sxXS5wYXRoKTtcblxuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLmxheW91dCkge1xuICAgICAgICBsYXlvdXQgPSBjaGlsZC5sYXlvdXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxheW91dDtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/core.module.js b/npm/ng-packs/dist/core/esm2015/lib/core.module.js index 937d91ead1..c0e08c3198 100644 --- a/npm/ng-packs/dist/core/esm2015/lib/core.module.js +++ b/npm/ng-packs/dist/core/esm2015/lib/core.module.js @@ -21,12 +21,15 @@ import { ClickEventStopPropagationDirective } from './directives/stop-propagatio import { VisibilityDirective } from './directives/visibility.directive'; import { ApiInterceptor } from './interceptors/api.interceptor'; import { LocalizationPipe } from './pipes/localization.pipe'; +import { SortPipe } from './pipes/sort.pipe'; import { LocaleProvider } from './providers/locale.provider'; import { ConfigState } from './states/config.state'; import { ProfileState } from './states/profile.state'; import { SessionState } from './states/session.state'; import { getInitialData, localeInitializer } from './utils/initial-utils'; import { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config/config.plugin'; +import { ForDirective } from './directives/for.directive'; +import { AbstractNgModelComponent } from './abstracts/ng-model.component'; export class CoreModule { /** * @param {?=} options @@ -84,12 +87,15 @@ CoreModule.decorators = [ DynamicLayoutComponent, AutofocusDirective, EllipsisDirective, + ForDirective, FormSubmitDirective, LocalizationPipe, + SortPipe, PermissionDirective, VisibilityDirective, InputEventDebounceDirective, ClickEventStopPropagationDirective, + AbstractNgModelComponent, ], exports: [ CommonModule, @@ -101,16 +107,19 @@ CoreModule.decorators = [ DynamicLayoutComponent, AutofocusDirective, EllipsisDirective, + ForDirective, FormSubmitDirective, LocalizationPipe, + SortPipe, PermissionDirective, VisibilityDirective, InputEventDebounceDirective, LocalizationPipe, ClickEventStopPropagationDirective, + AbstractNgModelComponent, ], providers: [LocalizationPipe], entryComponents: [RouterOutletComponent, DynamicLayoutComponent], },] } ]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDN0YsT0FB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Y29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUsIEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3RvciwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5neHNSb3V0ZXJQbHVnaW5Nb2R1bGUgfSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luJztcbmltcG9ydCB7IE5neHNTdG9yYWdlUGx1Z2luTW9kdWxlIH0gZnJvbSAnQG5neHMvc3RvcmFnZS1wbHVnaW4nO1xuaW1wb3J0IHsgTmd4c01vZHVsZSwgTkdYU19QTFVHSU5TIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgRHluYW1pY0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm91dGVyT3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JvdXRlci1vdXRsZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9hdXRvZm9jdXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IElucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kZWJvdW5jZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWxsaXBzaXNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZWxsaXBzaXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1TdWJtaXREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBlcm1pc3Npb25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcGVybWlzc2lvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2xpY2tFdmVudFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zdG9wLXByb3BhZ2F0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWaXNpYmlsaXR5RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Zpc2liaWxpdHkuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFwaUludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvYXBpLmludGVyY2VwdG9yJztcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4vbW9kZWxzL2NvbW1vbic7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9sb2NhbGl6YXRpb24ucGlwZSc7XG5pbXBvcnQgeyBMb2NhbGVQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2xvY2FsZS5wcm92aWRlcic7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4vc3RhdGVzL2NvbmZpZy5zdGF0ZSc7XG5pbXBvcnQgeyBQcm9maWxlU3RhdGUgfSBmcm9tICcuL3N0YXRlcy9wcm9maWxlLnN0YXRlJztcbmltcG9ydCB7IFNlc3Npb25TdGF0ZSB9IGZyb20gJy4vc3RhdGVzL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHsgZ2V0SW5pdGlhbERhdGEsIGxvY2FsZUluaXRpYWxpemVyIH0gZnJvbSAnLi91dGlscy9pbml0aWFsLXV0aWxzJztcbmltcG9ydCB7IENvbmZpZ1BsdWdpbiwgTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMgfSBmcm9tICcuL3BsdWdpbnMvY29uZmlnL2NvbmZpZy5wbHVnaW4nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgTmd4c01vZHVsZS5mb3JGZWF0dXJlKFtQcm9maWxlU3RhdGUsIFNlc3Npb25TdGF0ZSwgQ29uZmlnU3RhdGVdKSxcbiAgICBOZ3hzU3RvcmFnZVBsdWdpbk1vZHVsZS5mb3JSb290KHsga2V5OiAnU2Vzc2lvblN0YXRlJyB9KSxcbiAgICBOZ3hzUm91dGVyUGx1Z2luTW9kdWxlLmZvclJvb3QoKSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUm91dGVyT3V0bGV0Q29tcG9uZW50LFxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlLFxuICAgIEVsbGlwc2lzRGlyZWN0aXZlLFxuICAgIEZvcm1TdWJtaXREaXJlY3RpdmUsXG4gICAgTG9jYWxpemF0aW9uUGlwZSxcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxuICAgIFZpc2liaWxpdHlEaXJlY3RpdmUsXG4gICAgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlLFxuICAgIENsaWNrRXZlbnRTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBSb3V0ZXJPdXRsZXRDb21wb25lbnQsXG4gICAgRHluYW1pY0xheW91dENvbXBvbmVudCxcbiAgICBBdXRvZm9jdXNEaXJlY3RpdmUsXG4gICAgRWxsaXBzaXNEaXJlY3RpdmUsXG4gICAgRm9ybVN1Ym1pdERpcmVjdGl2ZSxcbiAgICBMb2NhbGl6YXRpb25QaXBlLFxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXG4gICAgVmlzaWJpbGl0eURpcmVjdGl2ZSxcbiAgICBJbnB1dEV2ZW50RGVib3VuY2VEaXJlY3RpdmUsXG4gICAgTG9jYWxpemF0aW9uUGlwZSxcbiAgICBDbGlja0V2ZW50U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxuICBdLFxuICBwcm92aWRlcnM6IFtMb2NhbGl6YXRpb25QaXBlXSxcbiAgZW50cnlDb21wb25lbnRzOiBbUm91dGVyT3V0bGV0Q29tcG9uZW50LCBEeW5hbWljTGF5b3V0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KG9wdGlvbnMgPSB7fSBhcyBBQlAuUm9vdCk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQ29yZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBMb2NhbGVQcm92aWRlcixcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWFNfUExVR0lOUyxcbiAgICAgICAgICB1c2VDbGFzczogQ29uZmlnUGx1Z2luLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMsXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgICB1c2VDbGFzczogQXBpSW50ZXJjZXB0b3IsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgZGVwczogW0luamVjdG9yXSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBnZXRJbml0aWFsRGF0YSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICBkZXBzOiBbSW5qZWN0b3JdLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsZUluaXRpYWxpemVyLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDN0YsT0FB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bkIsMkJBQTJCO29CQUMzQixnQkFBZ0I7b0JBQ2hCLGtDQUFrQztvQkFDbEMsd0JBQXdCO2lCQUN6QjtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsZUFBZSxFQUFFLENBQUMscUJBQXFCLEVBQUUsc0JBQXNCLENBQUM7YUFDakUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSwgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmd4c1JvdXRlclBsdWdpbk1vZHVsZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgTmd4c1N0b3JhZ2VQbHVnaW5Nb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yYWdlLXBsdWdpbic7XG5pbXBvcnQgeyBOZ3hzTW9kdWxlLCBOR1hTX1BMVUdJTlMgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBEeW5hbWljTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3V0ZXJPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm91dGVyLW91dGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b2ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RlYm91bmNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFbGxpcHNpc0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9lbGxpcHNpcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9ybVN1Ym1pdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDbGlja0V2ZW50U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3N0b3AtcHJvcGFnYXRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFZpc2liaWxpdHlEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmlzaWJpbGl0eS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXBpSW50ZXJjZXB0b3IgfSBmcm9tICcuL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3InO1xuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi9tb2RlbHMvY29tbW9uJztcbmltcG9ydCB7IExvY2FsaXphdGlvblBpcGUgfSBmcm9tICcuL3BpcGVzL2xvY2FsaXphdGlvbi5waXBlJztcbmltcG9ydCB7IFNvcnRQaXBlIH0gZnJvbSAnLi9waXBlcy9zb3J0LnBpcGUnO1xuaW1wb3J0IHsgTG9jYWxlUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9sb2NhbGUucHJvdmlkZXInO1xuaW1wb3J0IHsgQ29uZmlnU3RhdGUgfSBmcm9tICcuL3N0YXRlcy9jb25maWcuc3RhdGUnO1xuaW1wb3J0IHsgUHJvZmlsZVN0YXRlIH0gZnJvbSAnLi9zdGF0ZXMvcHJvZmlsZS5zdGF0ZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuL3N0YXRlcy9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7IGdldEluaXRpYWxEYXRhLCBsb2NhbGVJbml0aWFsaXplciB9IGZyb20gJy4vdXRpbHMvaW5pdGlhbC11dGlscyc7XG5pbXBvcnQgeyBDb25maWdQbHVnaW4sIE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TIH0gZnJvbSAnLi9wbHVnaW5zL2NvbmZpZy9jb25maWcucGx1Z2luJztcbmltcG9ydCB7IEZvckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3RzL25nLW1vZGVsLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBOZ3hzTW9kdWxlLmZvckZlYXR1cmUoW1Byb2ZpbGVTdGF0ZSwgU2Vzc2lvblN0YXRlLCBDb25maWdTdGF0ZV0pLFxuICAgIE5neHNTdG9yYWdlUGx1Z2luTW9kdWxlLmZvclJvb3QoeyBrZXk6ICdTZXNzaW9uU3RhdGUnIH0pLFxuICAgIE5neHNSb3V0ZXJQbHVnaW5Nb2R1bGUuZm9yUm9vdCgpLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBSb3V0ZXJPdXRsZXRDb21wb25lbnQsXG4gICAgRHluYW1pY0xheW91dENvbXBvbmVudCxcbiAgICBBdXRvZm9jdXNEaXJlY3RpdmUsXG4gICAgRWxsaXBzaXNEaXJlY3RpdmUsXG4gICAgRm9yRGlyZWN0aXZlLFxuICAgIEZvcm1TdWJtaXREaXJlY3RpdmUsXG4gICAgTG9jYWxpemF0aW9uUGlwZSxcbiAgICBTb3J0UGlwZSxcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxuICAgIFZpc2liaWxpdHlEaXJlY3RpdmUsXG4gICAgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlLFxuICAgIENsaWNrRXZlbnRTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gICAgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgUm91dGVyT3V0bGV0Q29tcG9uZW50LFxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlLFxuICAgIEVsbGlwc2lzRGlyZWN0aXZlLFxuICAgIEZvckRpcmVjdGl2ZSxcbiAgICBGb3JtU3VibWl0RGlyZWN0aXZlLFxuICAgIExvY2FsaXphdGlvblBpcGUsXG4gICAgU29ydFBpcGUsXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcbiAgICBWaXNpYmlsaXR5RGlyZWN0aXZlLFxuICAgIElucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSxcbiAgICBMb2NhbGl6YXRpb25QaXBlLFxuICAgIENsaWNrRXZlbnRTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gICAgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtMb2NhbGl6YXRpb25QaXBlXSxcbiAgZW50cnlDb21wb25lbnRzOiBbUm91dGVyT3V0bGV0Q29tcG9uZW50LCBEeW5hbWljTGF5b3V0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KG9wdGlvbnMgPSB7fSBhcyBBQlAuUm9vdCk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQ29yZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBMb2NhbGVQcm92aWRlcixcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWFNfUExVR0lOUyxcbiAgICAgICAgICB1c2VDbGFzczogQ29uZmlnUGx1Z2luLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMsXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgICB1c2VDbGFzczogQXBpSW50ZXJjZXB0b3IsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgZGVwczogW0luamVjdG9yXSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBnZXRJbml0aWFsRGF0YSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICBkZXBzOiBbSW5qZWN0b3JdLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsZUluaXRpYWxpemVyLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/directives/for.directive.js b/npm/ng-packs/dist/core/esm2015/lib/directives/for.directive.js new file mode 100644 index 0000000000..bb0d618ebc --- /dev/null +++ b/npm/ng-packs/dist/core/esm2015/lib/directives/for.directive.js @@ -0,0 +1,274 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Directive, Input, IterableDiffers, TemplateRef, ViewContainerRef, } from '@angular/core'; +import compare from 'just-compare'; +import clone from 'just-clone'; +class AbpForContext { + /** + * @param {?} $implicit + * @param {?} index + * @param {?} count + * @param {?} list + */ + constructor($implicit, index, count, list) { + this.$implicit = $implicit; + this.index = index; + this.count = count; + this.list = list; + } +} +if (false) { + /** @type {?} */ + AbpForContext.prototype.$implicit; + /** @type {?} */ + AbpForContext.prototype.index; + /** @type {?} */ + AbpForContext.prototype.count; + /** @type {?} */ + AbpForContext.prototype.list; +} +class RecordView { + /** + * @param {?} record + * @param {?} view + */ + constructor(record, view) { + this.record = record; + this.view = view; + } +} +if (false) { + /** @type {?} */ + RecordView.prototype.record; + /** @type {?} */ + RecordView.prototype.view; +} +export class ForDirective { + /** + * @param {?} tempRef + * @param {?} vcRef + * @param {?} differs + */ + constructor(tempRef, vcRef, differs) { + this.tempRef = tempRef; + this.vcRef = vcRef; + this.differs = differs; + } + /** + * @return {?} + */ + get compareFn() { + return this.compareBy || compare; + } + /** + * @return {?} + */ + get trackByFn() { + return this.trackBy || ((/** + * @param {?} index + * @param {?} item + * @return {?} + */ + (index, item) => ((/** @type {?} */ (item))).id || index)); + } + /** + * @private + * @param {?} changes + * @return {?} + */ + iterateOverAppliedOperations(changes) { + /** @type {?} */ + const rw = []; + changes.forEachOperation((/** + * @param {?} record + * @param {?} previousIndex + * @param {?} currentIndex + * @return {?} + */ + (record, previousIndex, currentIndex) => { + if (record.previousIndex == null) { + /** @type {?} */ + const view = this.vcRef.createEmbeddedView(this.tempRef, new AbpForContext(null, -1, -1, this.items), currentIndex); + rw.push(new RecordView(record, view)); + } + else if (currentIndex == null) { + this.vcRef.remove(previousIndex); + } + else { + /** @type {?} */ + const view = this.vcRef.get(previousIndex); + this.vcRef.move(view, currentIndex); + rw.push(new RecordView(record, (/** @type {?} */ (view)))); + } + })); + for (let i = 0, l = rw.length; i < l; i++) { + rw[i].view.context.$implicit = rw[i].record.item; + } + } + /** + * @private + * @param {?} changes + * @return {?} + */ + iterateOverAttachedViews(changes) { + for (let i = 0, l = this.vcRef.length; i < l; i++) { + /** @type {?} */ + const viewRef = (/** @type {?} */ (this.vcRef.get(i))); + viewRef.context.index = i; + viewRef.context.count = l; + viewRef.context.list = this.items; + } + changes.forEachIdentityChange((/** + * @param {?} record + * @return {?} + */ + (record) => { + /** @type {?} */ + const viewRef = (/** @type {?} */ (this.vcRef.get(record.currentIndex))); + viewRef.context.$implicit = record.item; + })); + } + /** + * @private + * @param {?} items + * @return {?} + */ + projectItems(items) { + if (!items.length && this.emptyRef) { + this.vcRef.createEmbeddedView(this.emptyRef).rootNodes; + this.isShowEmptyRef = true; + return; + } + if (this.emptyRef && this.isShowEmptyRef) { + this.vcRef.clear(); + this.isShowEmptyRef = false; + } + if (!this.differ && items) { + this.differ = this.differs.find(items).create(this.trackByFn); + } + if (this.differ) { + /** @type {?} */ + const changes = this.differ.diff(items); + if (changes) { + this.iterateOverAppliedOperations(changes); + this.iterateOverAttachedViews(changes); + } + } + } + /** + * @private + * @param {?} items + * @return {?} + */ + sortItems(items) { + if (this.orderBy) { + items.sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + (a, b) => (a[this.orderBy] > b[this.orderBy] ? 1 : a[this.orderBy] < b[this.orderBy] ? -1 : 0))); + } + else { + items.sort(); + } + } + /** + * @return {?} + */ + ngOnChanges() { + /** @type {?} */ + let items = (/** @type {?} */ (clone(this.items))); + if (!Array.isArray(items)) + return; + /** @type {?} */ + const compareFn = this.compareFn; + if (typeof this.filterBy !== 'undefined') { + items = items.filter((/** + * @param {?} item + * @return {?} + */ + item => compareFn(item[this.filterBy], this.filterVal))); + } + switch (this.orderDir) { + case 'ASC': + this.sortItems(items); + this.projectItems(items); + break; + case 'DESC': + this.sortItems(items); + items.reverse(); + this.projectItems(items); + break; + default: + this.projectItems(items); + } + } +} +ForDirective.decorators = [ + { type: Directive, args: [{ + selector: '[abpFor]', + },] } +]; +/** @nocollapse */ +ForDirective.ctorParameters = () => [ + { type: TemplateRef }, + { type: ViewContainerRef }, + { type: IterableDiffers } +]; +ForDirective.propDecorators = { + items: [{ type: Input, args: ['abpForOf',] }], + orderBy: [{ type: Input, args: ['abpForOrderBy',] }], + orderDir: [{ type: Input, args: ['abpForOrderDir',] }], + filterBy: [{ type: Input, args: ['abpForFilterBy',] }], + filterVal: [{ type: Input, args: ['abpForFilterVal',] }], + trackBy: [{ type: Input, args: ['abpForTrackBy',] }], + compareBy: [{ type: Input, args: ['abpForCompareBy',] }], + emptyRef: [{ type: Input, args: ['abpForEmptyRef',] }] +}; +if (false) { + /** @type {?} */ + ForDirective.prototype.items; + /** @type {?} */ + ForDirective.prototype.orderBy; + /** @type {?} */ + ForDirective.prototype.orderDir; + /** @type {?} */ + ForDirective.prototype.filterBy; + /** @type {?} */ + ForDirective.prototype.filterVal; + /** @type {?} */ + ForDirective.prototype.trackBy; + /** @type {?} */ + ForDirective.prototype.compareBy; + /** @type {?} */ + ForDirective.prototype.emptyRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.differ; + /** + * @type {?} + * @private + */ + ForDirective.prototype.isShowEmptyRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.tempRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.vcRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.differs; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2Zvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUlMLGVBQWUsRUFFZixXQUFXLEVBRVgsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUNuQyxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFJL0IsTUFBTSxhQUFhOzs7Ozs7O0lBQ2pCLFlBQW1CLFNBQWMsRUFBUyxLQUFhLEVBQVMsS0FBYSxFQUFTLElBQVc7UUFBOUUsY0FBUyxHQUFULFNBQVMsQ0FBSztRQUFTLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBTztJQUFHLENBQUM7Q0FDdEc7OztJQURhLGtDQUFxQjs7SUFBRSw4QkFBb0I7O0lBQUUsOEJBQW9COztJQUFFLDZCQUFrQjs7QUFHbkcsTUFBTSxVQUFVOzs7OztJQUNkLFlBQW1CLE1BQWlDLEVBQVMsSUFBb0M7UUFBOUUsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFnQztJQUFHLENBQUM7Q0FDdEc7OztJQURhLDRCQUF3Qzs7SUFBRSwwQkFBMkM7O0FBTW5HLE1BQU0sT0FBTyxZQUFZOzs7Ozs7SUFxQ3ZCLFlBQ1UsT0FBbUMsRUFDbkMsS0FBdUIsRUFDdkIsT0FBd0I7UUFGeEIsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7UUFDbkMsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7SUFDL0IsQ0FBQzs7OztJQVpKLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUM7SUFDbkMsQ0FBQzs7OztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSTs7Ozs7UUFBQyxDQUFDLEtBQWEsRUFBRSxJQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFDLENBQUM7SUFDbkYsQ0FBQzs7Ozs7O0lBUU8sNEJBQTRCLENBQUMsT0FBNkI7O2NBQzFELEVBQUUsR0FBaUIsRUFBRTtRQUUzQixPQUFPLENBQUMsZ0JBQWdCOzs7Ozs7UUFBQyxDQUFDLE1BQWlDLEVBQUUsYUFBcUIsRUFBRSxZQUFvQixFQUFFLEVBQUU7WUFDMUcsSUFBSSxNQUFNLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRTs7c0JBQzFCLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUN4QyxJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQzNDLFlBQVksQ0FDYjtnQkFFRCxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3ZDO2lCQUFNLElBQUksWUFBWSxJQUFJLElBQUksRUFBRTtnQkFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbEM7aUJBQU07O3NCQUNDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFFcEMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsbUJBQUEsSUFBSSxFQUFrQyxDQUFDLENBQUMsQ0FBQzthQUN6RTtRQUNILENBQUMsRUFBQyxDQUFDO1FBRUgsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDbEQ7SUFDSCxDQUFDOzs7Ozs7SUFFTyx3QkFBd0IsQ0FBQyxPQUE2QjtRQUM1RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTs7a0JBQzNDLE9BQU8sR0FBRyxtQkFBQSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBa0M7WUFDbkUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUMxQixPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ25DO1FBRUQsT0FBTyxDQUFDLHFCQUFxQjs7OztRQUFDLENBQUMsTUFBaUMsRUFBRSxFQUFFOztrQkFDNUQsT0FBTyxHQUFHLG1CQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBa0M7WUFDckYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUMxQyxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7OztJQUVPLFlBQVksQ0FBQyxLQUFZO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBRTNCLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFOztrQkFDVCxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBRXZDLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3hDO1NBQ0Y7SUFDSCxDQUFDOzs7Ozs7SUFFTyxTQUFTLENBQUMsS0FBWTtRQUM1QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsS0FBSyxDQUFDLElBQUk7Ozs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1NBQzVHO2FBQU07WUFDTCxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDZDtJQUNILENBQUM7Ozs7SUFFRCxXQUFXOztZQUNMLEtBQUssR0FBRyxtQkFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFTO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87O2NBRTVCLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUztRQUVoQyxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFDeEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNOzs7O1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQztTQUM5RTtRQUVELFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNyQixLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsTUFBTTtZQUVSLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QixLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU07WUFFUjtnQkFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQzs7O1lBbkpGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTthQUNyQjs7OztZQW5CQyxXQUFXO1lBRVgsZ0JBQWdCO1lBSmhCLGVBQWU7OztvQkF1QmQsS0FBSyxTQUFDLFVBQVU7c0JBR2hCLEtBQUssU0FBQyxlQUFlO3VCQUdyQixLQUFLLFNBQUMsZ0JBQWdCO3VCQUd0QixLQUFLLFNBQUMsZ0JBQWdCO3dCQUd0QixLQUFLLFNBQUMsaUJBQWlCO3NCQUd2QixLQUFLLFNBQUMsZUFBZTt3QkFHckIsS0FBSyxTQUFDLGlCQUFpQjt1QkFHdkIsS0FBSyxTQUFDLGdCQUFnQjs7OztJQXJCdkIsNkJBQ2E7O0lBRWIsK0JBQ2dCOztJQUVoQixnQ0FDeUI7O0lBRXpCLGdDQUNpQjs7SUFFakIsaUNBQ2U7O0lBRWYsK0JBQ1E7O0lBRVIsaUNBQ3FCOztJQUVyQixnQ0FDMkI7Ozs7O0lBRTNCLDhCQUFvQzs7Ozs7SUFFcEMsc0NBQWdDOzs7OztJQVc5QiwrQkFBMkM7Ozs7O0lBQzNDLDZCQUErQjs7Ozs7SUFDL0IsK0JBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIElucHV0LFxuICBJdGVyYWJsZUNoYW5nZVJlY29yZCxcbiAgSXRlcmFibGVDaGFuZ2VzLFxuICBJdGVyYWJsZURpZmZlcixcbiAgSXRlcmFibGVEaWZmZXJzLFxuICBPbkNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGNvbXBhcmUgZnJvbSAnanVzdC1jb21wYXJlJztcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJztcblxuZXhwb3J0IHR5cGUgQ29tcGFyZUZuPFQgPSBhbnk+ID0gKHZhbHVlOiBULCBjb21wYXJpc29uOiBUKSA9PiBib29sZWFuO1xuXG5jbGFzcyBBYnBGb3JDb250ZXh0IHtcbiAgY29uc3RydWN0b3IocHVibGljICRpbXBsaWNpdDogYW55LCBwdWJsaWMgaW5kZXg6IG51bWJlciwgcHVibGljIGNvdW50OiBudW1iZXIsIHB1YmxpYyBsaXN0OiBhbnlbXSkge31cbn1cblxuY2xhc3MgUmVjb3JkVmlldyB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPGFueT4sIHB1YmxpYyB2aWV3OiBFbWJlZGRlZFZpZXdSZWY8QWJwRm9yQ29udGV4dD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thYnBGb3JdJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9yRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCdhYnBGb3JPZicpXG4gIGl0ZW1zOiBhbnlbXTtcblxuICBASW5wdXQoJ2FicEZvck9yZGVyQnknKVxuICBvcmRlckJ5OiBzdHJpbmc7XG5cbiAgQElucHV0KCdhYnBGb3JPcmRlckRpcicpXG4gIG9yZGVyRGlyOiAnQVNDJyB8ICdERVNDJztcblxuICBASW5wdXQoJ2FicEZvckZpbHRlckJ5JylcbiAgZmlsdGVyQnk6IHN0cmluZztcblxuICBASW5wdXQoJ2FicEZvckZpbHRlclZhbCcpXG4gIGZpbHRlclZhbDogYW55O1xuXG4gIEBJbnB1dCgnYWJwRm9yVHJhY2tCeScpXG4gIHRyYWNrQnk7XG5cbiAgQElucHV0KCdhYnBGb3JDb21wYXJlQnknKVxuICBjb21wYXJlQnk6IENvbXBhcmVGbjtcblxuICBASW5wdXQoJ2FicEZvckVtcHR5UmVmJylcbiAgZW1wdHlSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPGFueT47XG5cbiAgcHJpdmF0ZSBpc1Nob3dFbXB0eVJlZjogYm9vbGVhbjtcblxuICBnZXQgY29tcGFyZUZuKCk6IENvbXBhcmVGbiB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGFyZUJ5IHx8IGNvbXBhcmU7XG4gIH1cblxuICBnZXQgdHJhY2tCeUZuKCk6IFRyYWNrQnlGdW5jdGlvbjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy50cmFja0J5IHx8ICgoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSA9PiAoaXRlbSBhcyBhbnkpLmlkIHx8IGluZGV4KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGVtcFJlZjogVGVtcGxhdGVSZWY8QWJwRm9yQ29udGV4dD4sXG4gICAgcHJpdmF0ZSB2Y1JlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgKSB7fVxuXG4gIHByaXZhdGUgaXRlcmF0ZU92ZXJBcHBsaWVkT3BlcmF0aW9ucyhjaGFuZ2VzOiBJdGVyYWJsZUNoYW5nZXM8YW55Pikge1xuICAgIGNvbnN0IHJ3OiBSZWNvcmRWaWV3W10gPSBbXTtcblxuICAgIGNoYW5nZXMuZm9yRWFjaE9wZXJhdGlvbigocmVjb3JkOiBJdGVyYWJsZUNoYW5nZVJlY29yZDxhbnk+LCBwcmV2aW91c0luZGV4OiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAocmVjb3JkLnByZXZpb3VzSW5kZXggPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcoXG4gICAgICAgICAgdGhpcy50ZW1wUmVmLFxuICAgICAgICAgIG5ldyBBYnBGb3JDb250ZXh0KG51bGwsIC0xLCAtMSwgdGhpcy5pdGVtcyksXG4gICAgICAgICAgY3VycmVudEluZGV4LFxuICAgICAgICApO1xuXG4gICAgICAgIHJ3LnB1c2gobmV3IFJlY29yZFZpZXcocmVjb3JkLCB2aWV3KSk7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRJbmRleCA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMudmNSZWYucmVtb3ZlKHByZXZpb3VzSW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdmlldyA9IHRoaXMudmNSZWYuZ2V0KHByZXZpb3VzSW5kZXgpO1xuICAgICAgICB0aGlzLnZjUmVmLm1vdmUodmlldywgY3VycmVudEluZGV4KTtcblxuICAgICAgICBydy5wdXNoKG5ldyBSZWNvcmRWaWV3KHJlY29yZCwgdmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8QWJwRm9yQ29udGV4dD4pKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGZvciAobGV0IGkgPSAwLCBsID0gcncubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICByd1tpXS52aWV3LmNvbnRleHQuJGltcGxpY2l0ID0gcndbaV0ucmVjb3JkLml0ZW07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpdGVyYXRlT3ZlckF0dGFjaGVkVmlld3MoY2hhbmdlczogSXRlcmFibGVDaGFuZ2VzPGFueT4pIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMudmNSZWYubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB2aWV3UmVmID0gdGhpcy52Y1JlZi5nZXQoaSkgYXMgRW1iZWRkZWRWaWV3UmVmPEFicEZvckNvbnRleHQ+O1xuICAgICAgdmlld1JlZi5jb250ZXh0LmluZGV4ID0gaTtcbiAgICAgIHZpZXdSZWYuY29udGV4dC5jb3VudCA9IGw7XG4gICAgICB2aWV3UmVmLmNvbnRleHQubGlzdCA9IHRoaXMuaXRlbXM7XG4gICAgfVxuXG4gICAgY2hhbmdlcy5mb3JFYWNoSWRlbnRpdHlDaGFuZ2UoKHJlY29yZDogSXRlcmFibGVDaGFuZ2VSZWNvcmQ8YW55PikgPT4ge1xuICAgICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmNSZWYuZ2V0KHJlY29yZC5jdXJyZW50SW5kZXgpIGFzIEVtYmVkZGVkVmlld1JlZjxBYnBGb3JDb250ZXh0PjtcbiAgICAgIHZpZXdSZWYuY29udGV4dC4kaW1wbGljaXQgPSByZWNvcmQuaXRlbTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvamVjdEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IHZvaWQge1xuICAgIGlmICghaXRlbXMubGVuZ3RoICYmIHRoaXMuZW1wdHlSZWYpIHtcbiAgICAgIHRoaXMudmNSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuZW1wdHlSZWYpLnJvb3ROb2RlcztcbiAgICAgIHRoaXMuaXNTaG93RW1wdHlSZWYgPSB0cnVlO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZW1wdHlSZWYgJiYgdGhpcy5pc1Nob3dFbXB0eVJlZikge1xuICAgICAgdGhpcy52Y1JlZi5jbGVhcigpO1xuICAgICAgdGhpcy5pc1Nob3dFbXB0eVJlZiA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kaWZmZXIgJiYgaXRlbXMpIHtcbiAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoaXRlbXMpLmNyZWF0ZSh0aGlzLnRyYWNrQnlGbik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGlmZmVyKSB7XG4gICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5kaWZmZXIuZGlmZihpdGVtcyk7XG5cbiAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuaXRlcmF0ZU92ZXJBcHBsaWVkT3BlcmF0aW9ucyhjaGFuZ2VzKTtcbiAgICAgICAgdGhpcy5pdGVyYXRlT3ZlckF0dGFjaGVkVmlld3MoY2hhbmdlcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzb3J0SXRlbXMoaXRlbXM6IGFueVtdKSB7XG4gICAgaWYgKHRoaXMub3JkZXJCeSkge1xuICAgICAgaXRlbXMuc29ydCgoYSwgYikgPT4gKGFbdGhpcy5vcmRlckJ5XSA+IGJbdGhpcy5vcmRlckJ5XSA/IDEgOiBhW3RoaXMub3JkZXJCeV0gPCBiW3RoaXMub3JkZXJCeV0gPyAtMSA6IDApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaXRlbXMuc29ydCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGxldCBpdGVtcyA9IGNsb25lKHRoaXMuaXRlbXMpIGFzIGFueVtdO1xuICAgIGlmICghQXJyYXkuaXNBcnJheShpdGVtcykpIHJldHVybjtcblxuICAgIGNvbnN0IGNvbXBhcmVGbiA9IHRoaXMuY29tcGFyZUZuO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmZpbHRlckJ5ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgaXRlbXMgPSBpdGVtcy5maWx0ZXIoaXRlbSA9PiBjb21wYXJlRm4oaXRlbVt0aGlzLmZpbHRlckJ5XSwgdGhpcy5maWx0ZXJWYWwpKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMub3JkZXJEaXIpIHtcbiAgICAgIGNhc2UgJ0FTQyc6XG4gICAgICAgIHRoaXMuc29ydEl0ZW1zKGl0ZW1zKTtcbiAgICAgICAgdGhpcy5wcm9qZWN0SXRlbXMoaXRlbXMpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnREVTQyc6XG4gICAgICAgIHRoaXMuc29ydEl0ZW1zKGl0ZW1zKTtcbiAgICAgICAgaXRlbXMucmV2ZXJzZSgpO1xuICAgICAgICB0aGlzLnByb2plY3RJdGVtcyhpdGVtcyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnByb2plY3RJdGVtcyhpdGVtcyk7XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/directives/index.js b/npm/ng-packs/dist/core/esm2015/lib/directives/index.js index a90d5a4597..80dcedb82e 100644 --- a/npm/ng-packs/dist/core/esm2015/lib/directives/index.js +++ b/npm/ng-packs/dist/core/esm2015/lib/directives/index.js @@ -4,7 +4,8 @@ */ export { AutofocusDirective } from './autofocus.directive'; export { EllipsisDirective } from './ellipsis.directive'; +export { ForDirective } from './for.directive'; export { FormSubmitDirective } from './form-submit.directive'; export { PermissionDirective } from './permission.directive'; export { VisibilityDirective } from './visibility.directive'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQWMsdUJBQXVCLENBQUM7QUFDdEMsa0NBQWMsc0JBQXNCLENBQUM7QUFDckMsb0NBQWMseUJBQXlCLENBQUM7QUFDeEMsb0NBQWMsd0JBQXdCLENBQUM7QUFDdkMsb0NBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGxpcHNpcy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Zpc2liaWxpdHkuZGlyZWN0aXZlJztcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQWMsdUJBQXVCLENBQUM7QUFDdEMsa0NBQWMsc0JBQXNCLENBQUM7QUFDckMsNkJBQWMsaUJBQWlCLENBQUM7QUFDaEMsb0NBQWMseUJBQXlCLENBQUM7QUFDeEMsb0NBQWMsd0JBQXdCLENBQUM7QUFDdkMsb0NBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGxpcHNpcy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1zdWJtaXQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vcGVybWlzc2lvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi92aXNpYmlsaXR5LmRpcmVjdGl2ZSc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/directives/visibility.directive.js b/npm/ng-packs/dist/core/esm2015/lib/directives/visibility.directive.js index 87d5635fcf..a6a87e24da 100644 --- a/npm/ng-packs/dist/core/esm2015/lib/directives/visibility.directive.js +++ b/npm/ng-packs/dist/core/esm2015/lib/directives/visibility.directive.js @@ -13,6 +13,7 @@ export class VisibilityDirective { constructor(elRef, renderer) { this.elRef = elRef; this.renderer = renderer; + this.mutationObserverEnabled = true; this.completed$ = new Subject(); } /** @@ -20,44 +21,65 @@ export class VisibilityDirective { */ ngAfterViewInit() { /** @type {?} */ - const observer = new MutationObserver((/** - * @param {?} mutations - * @return {?} - */ - mutations => { - mutations.forEach((/** - * @param {?} mutation + let observer; + if (this.mutationObserverEnabled) { + observer = new MutationObserver((/** + * @param {?} mutations * @return {?} */ - mutation => { - if (!mutation.target) - return; + mutations => { + mutations.forEach((/** + * @param {?} mutation + * @return {?} + */ + mutation => { + if (!mutation.target) + return; + /** @type {?} */ + const htmlNodes = snq((/** + * @return {?} + */ + () => Array.from(mutation.target.childNodes).filter((/** + * @param {?} node + * @return {?} + */ + node => node instanceof HTMLElement))), []); + if (!htmlNodes.length) { + this.removeFromDOM(); + this.disconnect(); + } + else { + setTimeout((/** + * @return {?} + */ + () => { + this.disconnect(); + }), 0); + } + })); + })); + observer.observe(this.focusedElement, { + childList: true, + }); + } + else { + setTimeout((/** + * @return {?} + */ + () => { /** @type {?} */ const htmlNodes = snq((/** * @return {?} */ - () => Array.from(mutation.target.childNodes).filter((/** + () => Array.from(this.focusedElement.childNodes).filter((/** * @param {?} node * @return {?} */ node => node instanceof HTMLElement))), []); - if (!htmlNodes.length) { - this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement); - this.disconnect(); - } - else { - setTimeout((/** - * @return {?} - */ - () => { - this.disconnect(); - }), 0); - } - })); - })); - observer.observe(this.focusedElement, { - childList: true, - }); + if (!htmlNodes.length) + this.removeFromDOM(); + }), 0); + } this.completed$.subscribe((/** * @return {?} */ @@ -70,6 +92,12 @@ export class VisibilityDirective { this.completed$.next(); this.completed$.complete(); } + /** + * @return {?} + */ + removeFromDOM() { + this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement); + } } VisibilityDirective.decorators = [ { type: Directive, args: [{ @@ -82,12 +110,15 @@ VisibilityDirective.ctorParameters = () => [ { type: Renderer2 } ]; VisibilityDirective.propDecorators = { - focusedElement: [{ type: Input, args: ['abpVisibility',] }] + focusedElement: [{ type: Input, args: ['abpVisibility',] }], + mutationObserverEnabled: [{ type: Input }] }; if (false) { /** @type {?} */ VisibilityDirective.prototype.focusedElement; /** @type {?} */ + VisibilityDirective.prototype.mutationObserverEnabled; + /** @type {?} */ VisibilityDirective.prototype.completed$; /** * @type {?} @@ -100,4 +131,4 @@ if (false) { */ VisibilityDirective.prototype.renderer; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy92aXNpYmlsaXR5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBS3RCLE1BQU0sT0FBTyxtQkFBbUI7Ozs7O0lBTTlCLFlBQWdDLEtBQWlCLEVBQVUsUUFBbUI7UUFBOUMsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFGOUUsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFFNkMsQ0FBQzs7OztJQUVsRixlQUFlOztjQUNQLFFBQVEsR0FBRyxJQUFJLGdCQUFnQjs7OztRQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2hELFNBQVMsQ0FBQyxPQUFPOzs7O1lBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtvQkFBRSxPQUFPOztzQkFFdkIsU0FBUyxHQUFHLEdBQUc7OztnQkFDbkIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU07Ozs7Z0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLFlBQVksV0FBVyxFQUFDLEdBQ3hGLEVBQUUsQ0FDSDtnQkFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtvQkFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQzVGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztpQkFDbkI7cUJBQU07b0JBQ0wsVUFBVTs7O29CQUFDLEdBQUcsRUFBRTt3QkFDZCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ3BCLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztpQkFDUDtZQUNILENBQUMsRUFBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDO1FBRUYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3BDLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFDLENBQUM7SUFDekQsQ0FBQzs7OztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7O1lBMUNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCOzs7O1lBTm9DLFVBQVUsdUJBYWhDLFFBQVE7WUFiMEIsU0FBUzs7OzZCQVF2RCxLQUFLLFNBQUMsZUFBZTs7OztJQUF0Qiw2Q0FDNEI7O0lBRTVCLHlDQUFvQzs7Ozs7SUFFeEIsb0NBQXFDOzs7OztJQUFFLHVDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9wdGlvbmFsLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FicFZpc2liaWxpdHldJyxcbn0pXG5leHBvcnQgY2xhc3MgVmlzaWJpbGl0eURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoJ2FicFZpc2liaWxpdHknKVxuICBmb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgY29tcGxldGVkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9ucyA9PiB7XG4gICAgICBtdXRhdGlvbnMuZm9yRWFjaChtdXRhdGlvbiA9PiB7XG4gICAgICAgIGlmICghbXV0YXRpb24udGFyZ2V0KSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaHRtbE5vZGVzID0gc25xKFxuICAgICAgICAgICgpID0+IEFycmF5LmZyb20obXV0YXRpb24udGFyZ2V0LmNoaWxkTm9kZXMpLmZpbHRlcihub2RlID0+IG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCksXG4gICAgICAgICAgW10sXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFodG1sTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5mb2N1c2VkRWxlbWVudCwge1xuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb21wbGV0ZWQkLnN1YnNjcmliZSgoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCkpO1xuICB9XG5cbiAgZGlzY29ubmVjdCgpIHtcbiAgICB0aGlzLmNvbXBsZXRlZCQubmV4dCgpO1xuICAgIHRoaXMuY29tcGxldGVkJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy92aXNpYmlsaXR5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBS3RCLE1BQU0sT0FBTyxtQkFBbUI7Ozs7O0lBUzlCLFlBQWdDLEtBQWlCLEVBQVUsUUFBbUI7UUFBOUMsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFKOUUsNEJBQXVCLEdBQVksSUFBSSxDQUFDO1FBRXhDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBRTZDLENBQUM7Ozs7SUFFbEYsZUFBZTs7WUFDVCxRQUEwQjtRQUM5QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUNoQyxRQUFRLEdBQUcsSUFBSSxnQkFBZ0I7Ozs7WUFBQyxTQUFTLENBQUMsRUFBRTtnQkFDMUMsU0FBUyxDQUFDLE9BQU87Ozs7Z0JBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTt3QkFBRSxPQUFPOzswQkFFdkIsU0FBUyxHQUFHLEdBQUc7OztvQkFDbkIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU07Ozs7b0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLFlBQVksV0FBVyxFQUFDLEdBQ3hGLEVBQUUsQ0FDSDtvQkFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTt3QkFDckIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO3dCQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7cUJBQ25CO3lCQUFNO3dCQUNMLFVBQVU7Ozt3QkFBQyxHQUFHLEVBQUU7NEJBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO3dCQUNwQixDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQ1A7Z0JBQ0gsQ0FBQyxFQUFDLENBQUM7WUFDTCxDQUFDLEVBQUMsQ0FBQztZQUVILFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDcEMsU0FBUyxFQUFFLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLFVBQVU7OztZQUFDLEdBQUcsRUFBRTs7c0JBQ1IsU0FBUyxHQUFHLEdBQUc7OztnQkFDbkIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU07Ozs7Z0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLFlBQVksV0FBVyxFQUFDLEdBQzVGLEVBQUUsQ0FDSDtnQkFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07b0JBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztTQUNQO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUMsQ0FBQztJQUN6RCxDQUFDOzs7O0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs7O0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlGLENBQUM7OztZQTdERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjthQUM1Qjs7OztZQU5vQyxVQUFVLHVCQWdCaEMsUUFBUTtZQWhCMEIsU0FBUzs7OzZCQVF2RCxLQUFLLFNBQUMsZUFBZTtzQ0FHckIsS0FBSzs7OztJQUhOLDZDQUM0Qjs7SUFFNUIsc0RBQ3dDOztJQUV4Qyx5Q0FBb0M7Ozs7O0lBRXhCLG9DQUFxQzs7Ozs7SUFBRSx1Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPcHRpb25hbCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thYnBWaXNpYmlsaXR5XScsXG59KVxuZXhwb3J0IGNsYXNzIFZpc2liaWxpdHlEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCdhYnBWaXNpYmlsaXR5JylcbiAgZm9jdXNlZEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIG11dGF0aW9uT2JzZXJ2ZXJFbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICBjb21wbGV0ZWQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGxldCBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcbiAgICBpZiAodGhpcy5tdXRhdGlvbk9ic2VydmVyRW5hYmxlZCkge1xuICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnMgPT4ge1xuICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaChtdXRhdGlvbiA9PiB7XG4gICAgICAgICAgaWYgKCFtdXRhdGlvbi50YXJnZXQpIHJldHVybjtcblxuICAgICAgICAgIGNvbnN0IGh0bWxOb2RlcyA9IHNucShcbiAgICAgICAgICAgICgpID0+IEFycmF5LmZyb20obXV0YXRpb24udGFyZ2V0LmNoaWxkTm9kZXMpLmZpbHRlcihub2RlID0+IG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCksXG4gICAgICAgICAgICBbXSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKCFodG1sTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUZyb21ET00oKTtcbiAgICAgICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5mb2N1c2VkRWxlbWVudCwge1xuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGh0bWxOb2RlcyA9IHNucShcbiAgICAgICAgICAoKSA9PiBBcnJheS5mcm9tKHRoaXMuZm9jdXNlZEVsZW1lbnQuY2hpbGROb2RlcykuZmlsdGVyKG5vZGUgPT4gbm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSxcbiAgICAgICAgICBbXSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIWh0bWxOb2Rlcy5sZW5ndGgpIHRoaXMucmVtb3ZlRnJvbURPTSgpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgdGhpcy5jb21wbGV0ZWQkLnN1YnNjcmliZSgoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCkpO1xuICB9XG5cbiAgZGlzY29ubmVjdCgpIHtcbiAgICB0aGlzLmNvbXBsZXRlZCQubmV4dCgpO1xuICAgIHRoaXMuY29tcGxldGVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcmVtb3ZlRnJvbURPTSgpIHtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LCB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/enums/common.js b/npm/ng-packs/dist/core/esm2015/lib/enums/common.js index 335239be34..274d74e50c 100644 --- a/npm/ng-packs/dist/core/esm2015/lib/enums/common.js +++ b/npm/ng-packs/dist/core/esm2015/lib/enums/common.js @@ -7,6 +7,7 @@ const eLayoutType = { account: 'account', application: 'application', empty: 'empty', + setting: 'setting', }; export { eLayoutType }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2VudW1zL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7SUFDRSxTQUFVLFNBQVM7SUFDbkIsYUFBYyxhQUFhO0lBQzNCLE9BQVEsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVMYXlvdXRUeXBlIHtcbiAgYWNjb3VudCA9ICdhY2NvdW50JyxcbiAgYXBwbGljYXRpb24gPSAnYXBwbGljYXRpb24nLFxuICBlbXB0eSA9ICdlbXB0eScsXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2VudW1zL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7SUFDRSxTQUFVLFNBQVM7SUFDbkIsYUFBYyxhQUFhO0lBQzNCLE9BQVEsT0FBTztJQUNmLFNBQVUsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVMYXlvdXRUeXBlIHtcbiAgYWNjb3VudCA9ICdhY2NvdW50JyxcbiAgYXBwbGljYXRpb24gPSAnYXBwbGljYXRpb24nLFxuICBlbXB0eSA9ICdlbXB0eScsXG4gIHNldHRpbmcgPSAnc2V0dGluZycsXG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/guards/auth.guard.js b/npm/ng-packs/dist/core/esm2015/lib/guards/auth.guard.js index 62b4f7a2b3..f4cced306e 100644 --- a/npm/ng-packs/dist/core/esm2015/lib/guards/auth.guard.js +++ b/npm/ng-packs/dist/core/esm2015/lib/guards/auth.guard.js @@ -3,20 +3,23 @@ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; +import { Router } from '@angular/router'; import { Store } from '@ngxs/store'; import { OAuthService } from 'angular-oauth2-oidc'; -import { Navigate } from '@ngxs/router-plugin'; import * as i0 from "@angular/core"; import * as i1 from "angular-oauth2-oidc"; import * as i2 from "@ngxs/store"; +import * as i3 from "@angular/router"; export class AuthGuard { /** * @param {?} oauthService * @param {?} store + * @param {?} router */ - constructor(oauthService, store) { + constructor(oauthService, store, router) { this.oauthService = oauthService; this.store = store; + this.router = router; } /** * @param {?} _ @@ -29,8 +32,7 @@ export class AuthGuard { if (hasValidAccessToken) { return hasValidAccessToken; } - this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } })); - return false; + return this.router.createUrlTree(['/account/login'], { state: { redirectUrl: state.url } }); } } AuthGuard.decorators = [ @@ -41,9 +43,10 @@ AuthGuard.decorators = [ /** @nocollapse */ AuthGuard.ctorParameters = () => [ { type: OAuthService }, - { type: Store } + { type: Store }, + { type: Router } ]; -/** @nocollapse */ AuthGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(i0.ɵɵinject(i1.OAuthService), i0.ɵɵinject(i2.Store)); }, token: AuthGuard, providedIn: "root" }); +/** @nocollapse */ AuthGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(i0.ɵɵinject(i1.OAuthService), i0.ɵɵinject(i2.Store), i0.ɵɵinject(i3.Router)); }, token: AuthGuard, providedIn: "root" }); if (false) { /** * @type {?} @@ -55,5 +58,10 @@ if (false) { * @private */ AuthGuard.prototype.store; + /** + * @type {?} + * @private + */ + AuthGuard.prototype.router; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ndWFyZHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFLL0MsTUFBTSxPQUFPLFNBQVM7Ozs7O0lBQ3BCLFlBQW9CLFlBQTBCLEVBQVUsS0FBWTtRQUFoRCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRyxDQUFDOzs7Ozs7SUFDeEUsV0FBVyxDQUFDLENBQXlCLEVBQUUsS0FBMEI7O2NBQ3pELG1CQUFtQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUU7UUFDbkUsSUFBSSxtQkFBbUIsRUFBRTtZQUN2QixPQUFPLG1CQUFtQixDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbkcsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7WUFkRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUFOUSxZQUFZO1lBRFosS0FBSzs7Ozs7Ozs7SUFTQSxpQ0FBa0M7Ozs7O0lBQUUsMEJBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5hdmlnYXRlIH0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb2F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuICBjYW5BY3RpdmF0ZShfOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgY29uc3QgaGFzVmFsaWRBY2Nlc3NUb2tlbiA9IHRoaXMub2F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKTtcbiAgICBpZiAoaGFzVmFsaWRBY2Nlc3NUb2tlbikge1xuICAgICAgcmV0dXJuIGhhc1ZhbGlkQWNjZXNzVG9rZW47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGUoWycvYWNjb3VudC9sb2dpbiddLCBudWxsLCB7IHN0YXRlOiB7IHJlZGlyZWN0VXJsOiBzdGF0ZS51cmwgfSB9KSk7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ndWFyZHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQU9uRCxNQUFNLE9BQU8sU0FBUzs7Ozs7O0lBQ3BCLFlBQW9CLFlBQTBCLEVBQVUsS0FBWSxFQUFVLE1BQWM7UUFBeEUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7Ozs7OztJQUVoRyxXQUFXLENBQUMsQ0FBeUIsRUFBRSxLQUEwQjs7Y0FDekQsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRTtRQUNuRSxJQUFJLG1CQUFtQixFQUFFO1lBQ3ZCLE9BQU8sbUJBQW1CLENBQUM7U0FDNUI7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7OztZQWJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQU5RLFlBQVk7WUFEWixLQUFLO1lBRDhELE1BQU07Ozs7Ozs7O0lBVXBFLGlDQUFrQzs7Ozs7SUFBRSwwQkFBb0I7Ozs7O0lBQUUsMkJBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmF2aWdhdGUgfSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSwgcHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgY2FuQWN0aXZhdGUoXzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xuICAgIGNvbnN0IGhhc1ZhbGlkQWNjZXNzVG9rZW4gPSB0aGlzLm9hdXRoU2VydmljZS5oYXNWYWxpZEFjY2Vzc1Rva2VuKCk7XG4gICAgaWYgKGhhc1ZhbGlkQWNjZXNzVG9rZW4pIHtcbiAgICAgIHJldHVybiBoYXNWYWxpZEFjY2Vzc1Rva2VuO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnL2FjY291bnQvbG9naW4nXSwgeyBzdGF0ZTogeyByZWRpcmVjdFVybDogc3RhdGUudXJsIH0gfSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/models/common.js b/npm/ng-packs/dist/core/esm2015/lib/models/common.js index b636460473..93e41737de 100644 --- a/npm/ng-packs/dist/core/esm2015/lib/models/common.js +++ b/npm/ng-packs/dist/core/esm2015/lib/models/common.js @@ -88,4 +88,4 @@ export var ABP; BasicItem.prototype.name; } })(ABP || (ABP = {})); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE1BQU0sS0FBVyxHQUFHLENBMENuQjtBQTFDRCxXQUFpQixHQUFHOzs7O0lBQ2xCLG1CQUdDOzs7O1FBRkMsMkJBQXlDOztRQUN6Qyw0QkFBa0M7Ozs7OztJQU9wQyxpQ0FFQzs7OztRQURDLG1DQUFXOzs7OztJQUdiLDhCQUtDOzs7O1FBSkMsaUNBQWdCOztRQUNoQixrQ0FBaUI7O1FBQ2pCLG9DQUFtQjs7UUFDbkIseUNBQXdCOzs7OztJQUcxQixvQkFVQzs7OztRQVRDLHlCQUFtQjs7UUFDbkIsMEJBQW9COztRQUNwQix1QkFBcUI7O1FBQ3JCLHFCQUFhOztRQUNiLHNCQUFlOztRQUNmLDJCQUFvQjs7UUFDcEIscUJBQWE7O1FBQ2IsK0JBQXdCOztRQUN4QiwwQkFBbUI7Ozs7O0lBR3JCLHdCQUdDOzs7O1FBRkMsd0JBQWE7O1FBQ2IsNEJBQWtCOzs7OztJQUdwQix3QkFHQzs7OztRQUZDLHVCQUFXOztRQUNYLHlCQUFhOztBQUVqQixDQUFDLEVBMUNnQixHQUFHLEtBQUgsR0FBRyxRQTBDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IG5hbWVzcGFjZSBBQlAge1xuICBleHBvcnQgaW50ZXJmYWNlIFJvb3Qge1xuICAgIGVudmlyb25tZW50OiBQYXJ0aWFsPENvbmZpZy5FbnZpcm9ubWVudD47XG4gICAgcmVxdWlyZW1lbnRzOiBDb25maWcuUmVxdWlyZW1lbnRzO1xuICB9XG5cbiAgZXhwb3J0IHR5cGUgUGFnZWRSZXNwb25zZTxUPiA9IHtcbiAgICB0b3RhbENvdW50OiBudW1iZXI7XG4gIH0gJiBQYWdlZEl0ZW1zUmVzcG9uc2U8VD47XG5cbiAgZXhwb3J0IGludGVyZmFjZSBQYWdlZEl0ZW1zUmVzcG9uc2U8VD4ge1xuICAgIGl0ZW1zOiBUW107XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFBhZ2VRdWVyeVBhcmFtcyB7XG4gICAgZmlsdGVyPzogc3RyaW5nO1xuICAgIHNvcnRpbmc/OiBzdHJpbmc7XG4gICAgc2tpcENvdW50PzogbnVtYmVyO1xuICAgIG1heFJlc3VsdENvdW50PzogbnVtYmVyO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBSb3V0ZSB7XG4gICAgY2hpbGRyZW4/OiBSb3V0ZVtdO1xuICAgIGludmlzaWJsZT86IGJvb2xlYW47XG4gICAgbGF5b3V0PzogZUxheW91dFR5cGU7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIG9yZGVyPzogbnVtYmVyO1xuICAgIHBhcmVudE5hbWU/OiBzdHJpbmc7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHJlcXVpcmVkUG9saWN5Pzogc3RyaW5nO1xuICAgIGljb25DbGFzcz86IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgRnVsbFJvdXRlIGV4dGVuZHMgUm91dGUge1xuICAgIHVybD86IHN0cmluZztcbiAgICB3cmFwcGVyPzogYm9vbGVhbjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQmFzaWNJdGVtIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE1BQU0sS0FBVyxHQUFHLENBMENuQjtBQTFDRCxXQUFpQixHQUFHOzs7O0lBQ2xCLG1CQUdDOzs7O1FBRkMsMkJBQXlDOztRQUN6Qyw0QkFBa0M7Ozs7OztJQU9wQyxpQ0FFQzs7OztRQURDLG1DQUFXOzs7OztJQUdiLDhCQUtDOzs7O1FBSkMsaUNBQWdCOztRQUNoQixrQ0FBaUI7O1FBQ2pCLG9DQUFtQjs7UUFDbkIseUNBQXdCOzs7OztJQUcxQixvQkFVQzs7OztRQVRDLHlCQUFtQjs7UUFDbkIsMEJBQW9COztRQUNwQix1QkFBcUI7O1FBQ3JCLHFCQUFhOztRQUNiLHNCQUFlOztRQUNmLDJCQUFvQjs7UUFDcEIscUJBQWE7O1FBQ2IsK0JBQXdCOztRQUN4QiwwQkFBbUI7Ozs7O0lBR3JCLHdCQUdDOzs7O1FBRkMsd0JBQWE7O1FBQ2IsNEJBQWtCOzs7OztJQUdwQix3QkFHQzs7OztRQUZDLHVCQUFXOztRQUNYLHlCQUFhOztBQUVqQixDQUFDLEVBMUNnQixHQUFHLEtBQUgsR0FBRyxRQTBDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJy4uL2VudW1zL2NvbW1vbic7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQUJQIHtcbiAgZXhwb3J0IGludGVyZmFjZSBSb290IHtcbiAgICBlbnZpcm9ubWVudDogUGFydGlhbDxDb25maWcuRW52aXJvbm1lbnQ+O1xuICAgIHJlcXVpcmVtZW50czogQ29uZmlnLlJlcXVpcmVtZW50cztcbiAgfVxuXG4gIGV4cG9ydCB0eXBlIFBhZ2VkUmVzcG9uc2U8VD4gPSB7XG4gICAgdG90YWxDb3VudDogbnVtYmVyO1xuICB9ICYgUGFnZWRJdGVtc1Jlc3BvbnNlPFQ+O1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUGFnZWRJdGVtc1Jlc3BvbnNlPFQ+IHtcbiAgICBpdGVtczogVFtdO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBQYWdlUXVlcnlQYXJhbXMge1xuICAgIGZpbHRlcj86IHN0cmluZztcbiAgICBzb3J0aW5nPzogc3RyaW5nO1xuICAgIHNraXBDb3VudD86IG51bWJlcjtcbiAgICBtYXhSZXN1bHRDb3VudD86IG51bWJlcjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUm91dGUge1xuICAgIGNoaWxkcmVuPzogUm91dGVbXTtcbiAgICBpbnZpc2libGU/OiBib29sZWFuO1xuICAgIGxheW91dD86IGVMYXlvdXRUeXBlO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBwYXJlbnROYW1lPzogc3RyaW5nO1xuICAgIHBhdGg6IHN0cmluZztcbiAgICByZXF1aXJlZFBvbGljeT86IHN0cmluZztcbiAgICBpY29uQ2xhc3M/OiBzdHJpbmc7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEZ1bGxSb3V0ZSBleHRlbmRzIFJvdXRlIHtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgd3JhcHBlcj86IGJvb2xlYW47XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEJhc2ljSXRlbSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/models/config.js b/npm/ng-packs/dist/core/esm2015/lib/models/config.js index 40d9fa406b..01cd2c8a7b 100644 --- a/npm/ng-packs/dist/core/esm2015/lib/models/config.js +++ b/npm/ng-packs/dist/core/esm2015/lib/models/config.js @@ -4,11 +4,6 @@ */ export var Config; (function (Config) { - /** - * @record - */ - function State() { } - Config.State = State; /** * @record */ @@ -23,6 +18,8 @@ export var Config; Environment.prototype.oAuthConfig; /** @type {?} */ Environment.prototype.apis; + /** @type {?} */ + Environment.prototype.localization; } /** * @record @@ -50,4 +47,4 @@ export var Config; Requirements.prototype.layouts; } })(Config || (Config = {})); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE1BQU0sS0FBVyxNQUFNLENBd0J0QjtBQXhCRCxXQUFpQixNQUFNOzs7O0lBQ3JCLG9CQUVDOzs7OztJQUVELDBCQUtDOzs7O1FBSkMsa0NBQXlCOztRQUN6QixpQ0FBb0I7O1FBQ3BCLGtDQUF3Qjs7UUFDeEIsMkJBQVc7Ozs7O0lBR2IsMEJBR0M7Ozs7UUFGQywyQkFBYTs7UUFDYiw4QkFBaUI7Ozs7O0lBR25CLG1CQUVDOzs7OztJQUVELDJCQUVDOzs7O1FBREMsK0JBQXFCOztBQUV6QixDQUFDLEVBeEJnQixNQUFNLEtBQU4sTUFBTSxRQXdCdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoQ29uZmlnIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29uZmlnIHtcbiAgZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XG4gICAgYXBwbGljYXRpb246IEFwcGxpY2F0aW9uO1xuICAgIHByb2R1Y3Rpb246IGJvb2xlYW47XG4gICAgb0F1dGhDb25maWc6IEF1dGhDb25maWc7XG4gICAgYXBpczogQXBpcztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb24ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBsb2dvVXJsPzogc3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBBcGlzIHtcbiAgICBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBSZXF1aXJlbWVudHMge1xuICAgIGxheW91dHM6IFR5cGU8YW55PltdO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUtBLE1BQU0sS0FBVyxNQUFNLENBMkJ0QjtBQTNCRCxXQUFpQixNQUFNOzs7O0lBT3JCLDBCQU1DOzs7O1FBTEMsa0NBQXlCOztRQUN6QixpQ0FBb0I7O1FBQ3BCLGtDQUF3Qjs7UUFDeEIsMkJBQVc7O1FBQ1gsbUNBQThDOzs7OztJQUdoRCwwQkFHQzs7OztRQUZDLDJCQUFhOztRQUNiLDhCQUFpQjs7Ozs7SUFHbkIsbUJBRUM7Ozs7O0lBRUQsMkJBRUM7Ozs7UUFEQywrQkFBcUI7O0FBRXpCLENBQUMsRUEzQmdCLE1BQU0sS0FBTixNQUFNLFFBMkJ0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vYXBwbGljYXRpb24tY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuL2NvbW1vbic7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29uZmlnIHtcbiAgZXhwb3J0IHR5cGUgU3RhdGUgPSBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24uUmVzcG9uc2UgJlxuICAgIEFCUC5Sb290ICYgeyBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQgfSAmIHtcbiAgICAgIHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdO1xuICAgICAgZmxhdHRlZFJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdO1xuICAgIH07XG5cbiAgZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XG4gICAgYXBwbGljYXRpb246IEFwcGxpY2F0aW9uO1xuICAgIHByb2R1Y3Rpb246IGJvb2xlYW47XG4gICAgb0F1dGhDb25maWc6IEF1dGhDb25maWc7XG4gICAgYXBpczogQXBpcztcbiAgICBsb2NhbGl6YXRpb246IHsgZGVmYXVsdFJlc291cmNlTmFtZTogc3RyaW5nIH07XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbG9nb1VybD86IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXBpcyB7XG4gICAgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZW1lbnRzIHtcbiAgICBsYXlvdXRzOiBUeXBlPGFueT5bXTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/pipes/sort.pipe.js b/npm/ng-packs/dist/core/esm2015/lib/pipes/sort.pipe.js new file mode 100644 index 0000000000..84624c2f7f --- /dev/null +++ b/npm/ng-packs/dist/core/esm2015/lib/pipes/sort.pipe.js @@ -0,0 +1,26 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Pipe } from '@angular/core'; +export class SortPipe { + /** + * @param {?} value + * @param {?} sortOrder + * @return {?} + */ + transform(value, sortOrder) { + sortOrder = sortOrder.toLowerCase(); + if (sortOrder === "desc") + return value.reverse(); + else + return value; + } +} +SortPipe.decorators = [ + { type: Pipe, args: [{ + name: 'abpSort', + pure: false + },] } +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3BpcGVzL3NvcnQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFNcEQsTUFBTSxPQUFPLFFBQVE7Ozs7OztJQUNqQixTQUFTLENBQUMsS0FBWSxFQUFFLFNBQWlCO1FBQ3JDLFNBQVMsR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBRyxTQUFTLEtBQUssTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDOztZQUMzQyxPQUFPLEtBQUssQ0FBQztJQUN0QixDQUFDOzs7WUFUSixJQUFJLFNBQUM7Z0JBQ0YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLEtBQUs7YUFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdhYnBTb3J0JyxcbiAgICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTb3J0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55W10sIHNvcnRPcmRlcjogc3RyaW5nKTogYW55IHtcbiAgICAgICAgc29ydE9yZGVyID0gc29ydE9yZGVyLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmKHNvcnRPcmRlciA9PT0gXCJkZXNjXCIpIHJldHVybiB2YWx1ZS5yZXZlcnNlKCk7XG4gICAgICAgIGVsc2UgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn0iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/plugins/config/config.plugin.js b/npm/ng-packs/dist/core/esm2015/lib/plugins/config/config.plugin.js index c108438ed6..6444c82bf7 100644 --- a/npm/ng-packs/dist/core/esm2015/lib/plugins/config/config.plugin.js +++ b/npm/ng-packs/dist/core/esm2015/lib/plugins/config/config.plugin.js @@ -7,6 +7,7 @@ import { Router } from '@angular/router'; import { actionMatcher, InitState, setValue, UpdateState } from '@ngxs/store'; import snq from 'snq'; import { organizeRoutes } from '../../utils/route-utils'; +import clone from 'just-clone'; /** @type {?} */ export const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS'); export class ConfigPlugin { @@ -34,7 +35,10 @@ export class ConfigPlugin { if (isInitAction && !this.initialized) { let { routes, wrappers } = transformRoutes(this.router.config); routes = organizeRoutes(routes, wrappers); - state = setValue(state, 'ConfigState', Object.assign({}, (state.ConfigState && Object.assign({}, state.ConfigState)), this.options, { routes })); + /** @type {?} */ + const flattedRoutes = flatRoutes(clone(routes)); + state = setValue(state, 'ConfigState', Object.assign({}, (state.ConfigState && Object.assign({}, state.ConfigState)), this.options, { routes, + flattedRoutes })); this.initialized = true; } return next(state, event); @@ -159,4 +163,31 @@ function setUrls(routes, parentUrl) { children: setUrls(route.children, `/${route.path}`), }))))); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9wbHVnaW5zL2NvbmZpZy9jb25maWcucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFnQyxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVHLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUV0QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRXpELE1BQU0sT0FBTywwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQztBQUcxRixNQUFNLE9BQU8sWUFBWTs7Ozs7SUFHdkIsWUFBd0QsT0FBaUIsRUFBVSxNQUFjO1FBQXpDLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRnpGLGdCQUFXLEdBQVksS0FBSyxDQUFDO0lBRStELENBQUM7Ozs7Ozs7SUFFckcsTUFBTSxDQUFDLEtBQVUsRUFBRSxLQUFVLEVBQUUsSUFBc0I7O2NBQzdDLE9BQU8sR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDOztjQUM5QixZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFFL0QsNkdBQTZHO1FBQzdHLElBQUksWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDakMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzlELE1BQU0sR0FBRyxjQUFj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QyxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQ3BELENBQUM7Ozs7OztBQUVELFNBQVMsT0FBTyxDQUFDLE1BQXVCLEVBQUUsU0FBa0I7SUFDMUQsSUFBSSxTQUFTLEVBQUU7UUFDYiw4Q0FBOEM7UUFFOUMsT0FBTyxNQUFNLENBQUMsR0FBRzs7OztRQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsbUJBQ3RCLEtBQUssSUFDUixHQUFHLEVBQUUsR0FBRyxTQUFTLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxJQUM5QixDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQ2hCLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJO1lBQ3ZCLFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDaEUsQ0FBQyxFQUNKLEVBQUMsQ0FBQztLQUNMO0lBRUQsT0FBTyxNQUFNLENBQUMsR0FBRzs7OztJQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsbUJBQ3RCLEtBQUssSUFDUixHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQ2xCLENBQUMsS0FBSyxDQUFDLFFBQVE7UUFDaEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUk7UUFDdkIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0tBQ3BELENBQUMsRUFDSixFQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYWN0aW9uTWF0Y2hlciwgSW5pdFN0YXRlLCBOZ3hzTmV4dFBsdWdpbkZuLCBOZ3hzUGx1Z2luLCBzZXRWYWx1ZSwgVXBkYXRlU3RhdGUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgb3JnYW5pemVSb3V0ZXMgfSBmcm9tICcuLi8uLi91dGlscy9yb3V0ZS11dGlscyc7XG5cbmV4cG9ydCBjb25zdCBOR1hTX0NPTkZJR19QTFVHSU5fT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbignTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMnKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbmZpZ1BsdWdpbiBpbXBsZW1lbnRzIE5neHNQbHVnaW4ge1xuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChOR1hTX0NPTkZJR19QTFVHSU5fT1BUSU9OUykgcHJpdmF0ZSBvcHRpb25zOiBBQlAuUm9vdCwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICBoYW5kbGUoc3RhdGU6IGFueSwgZXZlbnQ6IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5Gbikge1xuICAgIGNvbnN0IG1hdGNoZXMgPSBhY3Rpb25NYXRjaGVyKGV2ZW50KTtcbiAgICBjb25zdCBpc0luaXRBY3Rpb24gPSBtYXRjaGVzKEluaXRTdGF0ZSkgfHwgbWF0Y2hlcyhVcGRhdGVTdGF0ZSk7XG5cbiAgICAvLyBjb25zdCBsYXlvdXRzID0gc25xKCgpID0+IHRoaXMub3B0aW9ucy5yZXF1aXJlbWVudHMubGF5b3V0cy5maWx0ZXIobGF5b3V0ID0+IGxheW91dCBpbnN0YW5jZW9mIFR5cGUpLCBbXSk7XG4gICAgaWYgKGlzSW5pdEFjdGlvbiAmJiAhdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgbGV0IHsgcm91dGVzLCB3cmFwcGVycyB9ID0gdHJhbnNmb3JtUm91dGVzKHRoaXMucm91dGVyLmNvbmZpZyk7XG4gICAgICByb3V0ZXMgPSBvcmdhbml6ZVJvdXRlcyhyb3V0ZXMsIHdyYXBwZXJzKTtcblxuICAgICAgc3RhdGUgPSBzZXRWYWx1ZShzdGF0ZSwgJ0NvbmZpZ1N0YXRlJywge1xuICAgICAgICAuLi4oc3RhdGUuQ29uZmlnU3RhdGUgJiYgeyAuLi5zdGF0ZS5Db25maWdTdGF0ZSB9KSxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICByb3V0ZXMsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1Sb3V0ZXMocm91dGVzOiBSb3V0ZXMgPSBbXSwgd3JhcHBlcnM6IEFCUC5GdWxsUm91dGVbXSA9IFtdKTogYW55IHtcbiAgY29uc3QgYWJwUm91dGVzOiBBQlAuRnVsbFJvdXRlW10gPSByb3V0ZXNcbiAgICAuZmlsdGVyKHJvdXRlID0+IHtcbiAgICAgIHJldHVybiBzbnEoKCkgPT4gcm91dGUuZGF0YS5yb3V0ZXMucm91dGVzLmZpbmQociA9PiByLnBhdGggPT09IHJvdXRlLnBhdGgpLCBmYWxzZSk7XG4gICAgfSlcbiAgICAucmVkdWNlKChhY2MsIHZhbCkgPT4gWy4uLmFjYywgLi4udmFsLmRhdGEucm91dGVzLnJvdXRlc10sIFtdKTtcblxuICB3cmFwcGVycyA9IGFicFJvdXRlcy5maWx0ZXIoYXIgPT4gYXIud3JhcHBlcik7XG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gW10gYXMgQUJQLkZ1bGxSb3V0ZVtdO1xuICByb3V0ZXNcbiAgICAuZmlsdGVyKHJvdXRlID0+IChyb3V0ZS5kYXRhIHx8IHt9KS5yb3V0ZXMgJiYgKHJvdXRlLmNvbXBvbmVudCB8fCByb3V0ZS5sb2FkQ2hpbGRyZW4pKVxuICAgIC5mb3JFYWNoKHJvdXRlID0+IHtcbiAgICAgIGNvbnN0IGFicFBhY2thZ2UgPSBhYnBSb3V0ZXMuZmluZChcbiAgICAgICAgYWJwID0+IGFicC5wYXRoLnRvTG93ZXJDYXNlKCkgPT09IHJvdXRlLnBhdGgudG9Mb3dlckNhc2UoKSAmJiBzbnEoKCkgPT4gcm91dGUuZGF0YS5yb3V0ZXMucm91dGVzLmxlbmd0aCwgZmFsc2UpLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHsgbGVuZ3RoIH0gPSB0cmFuc2Zvcm1lZDtcblxuICAgICAgaWYgKGFicFBhY2thZ2UpIHtcbiAgICAgICAgdHJhbnNmb3JtZWQucHVzaChhYnBQYWNrYWdlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRyYW5zZm9ybWVkLmxlbmd0aCA9PT0gbGVuZ3RoKSB7XG4gICAgICAgIHRyYW5zZm9ybWVkLnB1c2goe1xuICAgICAgICAgIC4uLnJvdXRlLmRhdGEucm91dGVzLFxuICAgICAgICAgIHBhdGg6IHJvdXRlLnBhdGgsXG4gICAgICAgICAgbmFtZTogc25xKCgpID0+IHJvdXRlLmRhdGEucm91dGVzLm5hbWUsIHJvdXRlLnBhdGgpLFxuICAgICAgICAgIGNoaWxkcmVuOiByb3V0ZS5kYXRhLnJvdXRlcy5jaGlsZHJlbiB8fCBbXSxcbiAgICAgICAgfSBhcyBBQlAuRnVsbFJvdXRlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICByZXR1cm4geyByb3V0ZXM6IHNldFVybHModHJhbnNmb3JtZWQpLCB3cmFwcGVycyB9O1xufVxuXG5mdW5jdGlvbiBzZXRVcmxzKHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdLCBwYXJlbnRVcmw/OiBzdHJpbmcpOiBBQlAuRnVsbFJvdXRlW10ge1xuICBpZiAocGFyZW50VXJsKSB7XG4gICAgLy8gdGhpcyBpZiBibG9jayB1c2luZyBmb3Igb25seSByZWN1cnNpdmUgY2FsbFxuXG4gICAgcmV0dXJuIHJvdXRlcy5tYXAocm91dGUgPT4gKHtcbiAgICAgIC4uLnJvdXRlLFxuICAgICAgdXJsOiBgJHtwYXJlbnRVcmx9LyR7cm91dGUucGF0aH1gLFxuICAgICAgLi4uKHJvdXRlLmNoaWxkcmVuICYmXG4gICAgICAgIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCAmJiB7XG4gICAgICAgICAgY2hpbGRyZW46IHNldFVybHMocm91dGUuY2hpbGRyZW4sIGAke3BhcmVudFVybH0vJHtyb3V0ZS5wYXRofWApLFxuICAgICAgICB9KSxcbiAgICB9KSk7XG4gIH1cblxuICByZXR1cm4gcm91dGVzLm1hcChyb3V0ZSA9PiAoe1xuICAgIC4uLnJvdXRlLFxuICAgIHVybDogYC8ke3JvdXRlLnBhdGh9YCxcbiAgICAuLi4ocm91dGUuY2hpbGRyZW4gJiZcbiAgICAgIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCAmJiB7XG4gICAgICAgIGNoaWxkcmVuOiBzZXRVcmxzKHJvdXRlLmNoaWxkcmVuLCBgLyR7cm91dGUucGF0aH1gKSxcbiAgICAgIH0pLFxuICB9KSk7XG59XG4iXX0= \ No newline at end of file +/** + * @param {?} routes + * @return {?} + */ +function flatRoutes(routes) { + /** @type {?} */ + const flat = (/** + * @param {?} r + * @return {?} + */ + (r) => { + return r.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => { + /** @type {?} */ + let value = [val]; + if (val.children) { + value = [val, ...flat(val.children)]; + } + return [...acc, ...value]; + }), []); + }); + return flat(routes); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9wbHVnaW5zL2NvbmZpZy9jb25maWcucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFnQyxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVHLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUV0QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDOztBQUUvQixNQUFNLE9BQU8sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQUMsNEJBQTRCLENBQUM7QUFHMUYsTUFBTSxPQUFPLFlBQVk7Ozs7O0lBR3ZCLFlBQXdELE9BQWlCLEVBQVUsTUFBYztRQUF6QyxZQUFPLEdBQVAsT0FBTyxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUZ6RixnQkFBVyxHQUFZLEtBQUssQ0FBQztJQUUrRCxDQUFDOzs7Ozs7O0lBRXJHLE1BQU0sQ0FBQyxLQUFVLEVBQUUsS0FBVSxFQUFFLElBQXNCOztjQUM3QyxPQUFPLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQzs7Y0FDOUIsWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDO1FBRS9ELDZHQUE2RztRQUM3RyxJQUFJLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2pDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFD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QUcsRUFBRSxFQUFFOztnQkFDdkIsS0FBSyxHQUFvQixDQUFDLEdBQUcsQ0FBQztZQUNsQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hCLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUN0QztZQUVELE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsR0FBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUMsQ0FBQTtJQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBhY3Rpb25NYXRjaGVyLCBJbml0U3RhdGUsIE5neHNOZXh0UGx1Z2luRm4sIE5neHNQbHVnaW4sIHNldFZhbHVlLCBVcGRhdGVTdGF0ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBvcmdhbml6ZVJvdXRlcyB9IGZyb20gJy4uLy4uL3V0aWxzL3JvdXRlLXV0aWxzJztcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJztcblxuZXhwb3J0IGNvbnN0IE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuKCdOR1hTX0NPTkZJR19QTFVHSU5fT1BUSU9OUycpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29uZmlnUGx1Z2luIGltcGxlbWVudHMgTmd4c1BsdWdpbiB7XG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TKSBwcml2YXRlIG9wdGlvbnM6IEFCUC5Sb290LCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7fVxuXG4gIGhhbmRsZShzdGF0ZTogYW55LCBldmVudDogYW55LCBuZXh0OiBOZ3hzTmV4dFBsdWdpbkZuKSB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IGFjdGlvbk1hdGNoZXIoZXZlbnQpO1xuICAgIGNvbnN0IGlzSW5pdEFjdGlvbiA9IG1hdGNoZXMoSW5pdFN0YXRlKSB8fCBtYXRjaGVzKFVwZGF0ZVN0YXRlKTtcblxuICAgIC8vIGNvbnN0IGxheW91dHMgPSBzbnEoKCkgPT4gdGhpcy5vcHRpb25zLnJlcXVpcmVtZW50cy5sYXlvdXRzLmZpbHRlcihsYXlvdXQgPT4gbGF5b3V0IGluc3RhbmNlb2YgVHlwZSksIFtdKTtcbiAgICBpZiAoaXNJbml0QWN0aW9uICYmICF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICBsZXQgeyByb3V0ZXMsIHdyYXBwZXJzIH0gPSB0cmFuc2Zvcm1Sb3V0ZXModGhpcy5yb3V0ZXIuY29uZmlnKTtcbiAgICAgIHJvdXRlcyA9IG9yZ2FuaXplUm91dGVzKHJvdXRlcywgd3JhcHBlcnMpO1xuICAgICAgY29uc3QgZmxhdHRlZFJvdXRlcyA9IGZsYXRSb3V0ZXMoY2xvbmUocm91dGVzKSk7XG4gICAgICBzdGF0ZSA9IHNldFZhbHVlKHN0YXRlLCAnQ29uZmlnU3RhdGUnLCB7XG4gICAgICAgIC4uLihzdGF0ZS5Db25maWdTdGF0ZSAmJiB7IC4uLnN0YXRlLkNvbmZpZ1N0YXRlIH0pLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAgIHJvdXRlcyxcbiAgICAgICAgZmxhdHRlZFJvdXRlcyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dChzdGF0ZSwgZXZlbnQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVJvdXRlcyhyb3V0ZXM6IFJvdXRlcyA9IFtdLCB3cmFwcGVyczogQUJQLkZ1bGxSb3V0ZVtdID0gW10pOiBhbnkge1xuICBjb25zdCBhYnBSb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSA9IHJvdXRlc1xuICAgIC5maWx0ZXIocm91dGUgPT4ge1xuICAgICAgcmV0dXJuIHNucSgoKSA9PiByb3V0ZS5kYXRhLnJvdXRlcy5yb3V0ZXMuZmluZChyID0+IHIucGF0aCA9PT0gcm91dGUucGF0aCksIGZhbHNlKTtcbiAgICB9KVxuICAgIC5yZWR1Y2UoKGFjYywgdmFsKSA9PiBbLi4uYWNjLCAuLi52YWwuZGF0YS5yb3V0ZXMucm91dGVzXSwgW10pO1xuXG4gIHdyYXBwZXJzID0gYWJwUm91dGVzLmZpbHRlcihhciA9PiBhci53cmFwcGVyKTtcbiAgY29uc3QgdHJhbnNmb3JtZWQgPSBbXSBhcyBBQlAuRnVsbFJvdXRlW107XG4gIHJvdXRlc1xuICAgIC5maWx0ZXIocm91dGUgPT4gKHJvdXRlLmRhdGEgfHwge30pLnJvdXRlcyAmJiAocm91dGUuY29tcG9uZW50IHx8IHJvdXRlLmxvYWRDaGlsZHJlbikpXG4gICAgLmZvckVhY2gocm91dGUgPT4ge1xuICAgICAgY29uc3QgYWJwUGFja2FnZSA9IGFicFJvdXRlcy5maW5kKFxuICAgICAgICBhYnAgPT4gYWJwLnBhdGgudG9Mb3dlckNhc2UoKSA9PT0gcm91dGUucGF0aC50b0xvd2VyQ2FzZSgpICYmIHNucSgoKSA9PiByb3V0ZS5kYXRhLnJvdXRlcy5yb3V0ZXMubGVuZ3RoLCBmYWxzZSksXG4gICAgICApO1xuICAgICAgY29uc3QgeyBsZW5ndGggfSA9IHRyYW5zZm9ybWVkO1xuXG4gICAgICBpZiAoYWJwUGFja2FnZSkge1xuICAgICAgICB0cmFuc2Zvcm1lZC5wdXNoKGFicFBhY2thZ2UpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHJhbnNmb3JtZWQubGVuZ3RoID09PSBsZW5ndGgpIHtcbiAgICAgICAgdHJhbnNmb3JtZWQucHVzaCh7XG4gICAgICAgICAgLi4ucm91dGUuZGF0YS5yb3V0ZXMsXG4gICAgICAgICAgcGF0aDogcm91dGUucGF0aCxcbiAgICAgICAgICBuYW1lOiBzbnEoKCkgPT4gcm91dGUuZGF0YS5yb3V0ZXMubmFtZSwgcm91dGUucGF0aCksXG4gICAgICAgICAgY2hpbGRyZW46IHJvdXRlLmRhdGEucm91dGVzLmNoaWxkcmVuIHx8IFtdLFxuICAgICAgICB9IGFzIEFCUC5GdWxsUm91dGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIHJldHVybiB7IHJvdXRlczogc2V0VXJscyh0cmFuc2Zvcm1lZCksIHdyYXBwZXJzIH07XG59XG5cbmZ1bmN0aW9uIHNldFVybHMocm91dGVzOiBBQlAuRnVsbFJvdXRlW10sIHBhcmVudFVybD86IHN0cmluZyk6IEFCUC5GdWxsUm91dGVbXSB7XG4gIGlmIChwYXJlbnRVcmwpIHtcbiAgICAvLyB0aGlzIGlmIGJsb2NrIHVzaW5nIGZvciBvbmx5IHJlY3Vyc2l2ZSBjYWxsXG5cbiAgICByZXR1cm4gcm91dGVzLm1hcChyb3V0ZSA9PiAoe1xuICAgICAgLi4ucm91dGUsXG4gICAgICB1cmw6IGAke3BhcmVudFVybH0vJHtyb3V0ZS5wYXRofWAsXG4gICAgICAuLi4ocm91dGUuY2hpbGRyZW4gJiZcbiAgICAgICAgcm91dGUuY2hpbGRyZW4ubGVuZ3RoICYmIHtcbiAgICAgICAgICBjaGlsZHJlbjogc2V0VXJscyhyb3V0ZS5jaGlsZHJlbiwgYCR7cGFyZW50VXJsfS8ke3JvdXRlLnBhdGh9YCksXG4gICAgICAgIH0pLFxuICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiByb3V0ZXMubWFwKHJvdXRlID0+ICh7XG4gICAgLi4ucm91dGUsXG4gICAgdXJsOiBgLyR7cm91dGUucGF0aH1gLFxuICAgIC4uLihyb3V0ZS5jaGlsZHJlbiAmJlxuICAgICAgcm91dGUuY2hpbGRyZW4ubGVuZ3RoICYmIHtcbiAgICAgICAgY2hpbGRyZW46IHNldFVybHMocm91dGUuY2hpbGRyZW4sIGAvJHtyb3V0ZS5wYXRofWApLFxuICAgICAgfSksXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZmxhdFJvdXRlcyhyb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSk6IEFCUC5GdWxsUm91dGVbXSB7XG4gIGNvbnN0IGZsYXQgPSAocjogQUJQLkZ1bGxSb3V0ZVtdKSA9PiB7XG4gICAgcmV0dXJuIHIucmVkdWNlKChhY2MsIHZhbCkgPT4ge1xuICAgICAgbGV0IHZhbHVlOiBBQlAuRnVsbFJvdXRlW10gPSBbdmFsXTtcbiAgICAgIGlmICh2YWwuY2hpbGRyZW4pIHtcbiAgICAgICAgdmFsdWUgPSBbdmFsLCAuLi5mbGF0KHZhbC5jaGlsZHJlbildO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gWy4uLmFjYywgLi4udmFsdWVdO1xuICAgIH0sIFtdKTtcbiAgfTtcblxuICByZXR1cm4gZmxhdChyb3V0ZXMpO1xufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/services/localization.service.js b/npm/ng-packs/dist/core/esm2015/lib/services/localization.service.js index 8b2eb27d28..2d753b5dd5 100644 --- a/npm/ng-packs/dist/core/esm2015/lib/services/localization.service.js +++ b/npm/ng-packs/dist/core/esm2015/lib/services/localization.service.js @@ -3,7 +3,7 @@ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; -import { Injectable, Optional, SkipSelf } from '@angular/core'; +import { Injectable, Optional, SkipSelf, NgZone } from '@angular/core'; import { Router } from '@angular/router'; import { Actions, Store } from '@ngxs/store'; import { noop } from 'rxjs'; @@ -17,12 +17,14 @@ export class LocalizationService { /** * @param {?} store * @param {?} router + * @param {?} ngZone * @param {?} actions * @param {?} otherInstance */ - constructor(store, router, actions, otherInstance) { + constructor(store, router, ngZone, actions, otherInstance) { this.store = store; this.router = router; + this.ngZone = ngZone; this.actions = actions; if (otherInstance) throw new Error('LocaleService should have only one instance.'); @@ -55,10 +57,15 @@ export class LocalizationService { return registerLocale(locale).then((/** * @return {?} */ - () => tslib_1.__awaiter(this, void 0, void 0, function* () { - yield this.router.navigateByUrl(this.router.url).catch(noop); - this.setRouteReuse(shouldReuseRoute); - }))); + () => { + this.ngZone.run((/** + * @return {?} + */ + () => tslib_1.__awaiter(this, void 0, void 0, function* () { + yield this.router.navigateByUrl(this.router.url).catch(noop); + this.setRouteReuse(shouldReuseRoute); + }))); + })); } /** * @param {?} keys @@ -84,10 +91,11 @@ LocalizationService.decorators = [ LocalizationService.ctorParameters = () => [ { type: Store }, { type: Router }, + { type: NgZone }, { type: Actions }, { type: LocalizationService, decorators: [{ type: Optional }, { type: SkipSelf }] } ]; -/** @nocollapse */ LocalizationService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(i0.ɵɵinject(i1.Store), i0.ɵɵinject(i2.Router), i0.ɵɵinject(i1.Actions), i0.ɵɵinject(LocalizationService, 12)); }, token: LocalizationService, providedIn: "root" }); +/** @nocollapse */ LocalizationService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(i0.ɵɵinject(i1.Store), i0.ɵɵinject(i2.Router), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.Actions), i0.ɵɵinject(LocalizationService, 12)); }, token: LocalizationService, providedIn: "root" }); if (false) { /** * @type {?} @@ -99,10 +107,15 @@ if (false) { * @private */ LocalizationService.prototype.router; + /** + * @type {?} + * @private + */ + LocalizationService.prototype.ngZone; /** * @type {?} * @private */ LocalizationService.prototype.actions; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUEwQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBS3hELE1BQU0sT0FBTyxtQkFBbUI7Ozs7Ozs7SUFLOUIsWUFDVSxLQUFZLEVBQ1osTUFBYyxFQUNkLE9BQWdCLEVBR3hCLGFBQWtDO1FBTDFCLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUt4QixJQUFJLGFBQWE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7SUFDckYsQ0FBQzs7OztJQWJELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7Ozs7OztJQWFPLGFBQWEsQ0FBQyxLQUF1QjtRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUMxRCxDQUFDOzs7OztJQUVELGNBQWMsQ0FBQyxNQUFjO2NBQ3JCLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQjtRQUUzRCxJQUFJLENBQUMsYUFBYTs7O1FBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTlCLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUk7OztRQUFDLEdBQVMsRUFBRTtZQUM1QyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUEsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7O0lBRUQsR0FBRyxDQUFDLElBQVksRUFBRSxHQUFHLGlCQUEyQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7Ozs7OztJQUVELE9BQU8sQ0FBQyxJQUFZLEVBQUUsR0FBRyxpQkFBMkI7UUFDbEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDOzs7WUF2Q0YsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7OztZQVJoQixLQUFLO1lBRFUsTUFBTTtZQUM5QixPQUFPO1lBb0JHLG1CQUFtQix1QkFGakMsUUFBUSxZQUNSLFFBQVE7Ozs7Ozs7O0lBSlQsb0NBQW9COzs7OztJQUNwQixxQ0FBc0I7Ozs7O0lBQ3RCLHNDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFjdGlvbnMsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgbm9vcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29uZmlnU3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMvY29uZmlnLnN0YXRlJztcbmltcG9ydCB7IFNlc3Npb25TdGF0ZSB9IGZyb20gJy4uL3N0YXRlcy9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlIH0gZnJvbSAnLi4vdXRpbHMvaW5pdGlhbC11dGlscyc7XG5cbnR5cGUgU2hvdWxkUmV1c2VSb3V0ZSA9IChmdXR1cmU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGN1cnI6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpID0+IGJvb2xlYW47XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uU2VydmljZSB7XG4gIGdldCBjdXJyZW50TGFuZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aW9uczogQWN0aW9ucyxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBTa2lwU2VsZigpXG4gICAgb3RoZXJJbnN0YW5jZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgKSB7XG4gICAgaWYgKG90aGVySW5zdGFuY2UpIHRocm93IG5ldyBFcnJvcignTG9jYWxlU2VydmljZSBzaG91bGQgaGF2ZSBvbmx5IG9uZSBpbnN0YW5jZS4nKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Um91dGVSZXVzZShyZXVzZTogU2hvdWxkUmV1c2VSb3V0ZSkge1xuICAgIHRoaXMucm91dGVyLnJvdXRlUmV1c2VTdHJhdGVneS5zaG91bGRSZXVzZVJvdXRlID0gcmV1c2U7XG4gIH1cblxuICByZWdpc3RlckxvY2FsZShsb2NhbGU6IHN0cmluZykge1xuICAgIGNvbnN0IHsgc2hvdWxkUmV1c2VSb3V0ZSB9ID0gdGhpcy5yb3V0ZXIucm91dGVSZXVzZVN0cmF0ZWd5O1xuXG4gICAgdGhpcy5zZXRSb3V0ZVJldXNlKCgpID0+IGZhbHNlKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiByZWdpc3RlckxvY2FsZShsb2NhbGUpLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlci51cmwpLmNhdGNoKG5vb3ApO1xuICAgICAgdGhpcy5zZXRSb3V0ZVJldXNlKHNob3VsZFJldXNlUm91dGUpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0KGtleXM6IHN0cmluZywgLi4uaW50ZXJwb2xhdGVQYXJhbXM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU3RhdGUuZ2V0Q29weShrZXlzLCAuLi5pbnRlcnBvbGF0ZVBhcmFtcykpO1xuICB9XG5cbiAgaW5zdGFudChrZXlzOiBzdHJpbmcsIC4uLmludGVycG9sYXRlUGFyYW1zOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoQ29uZmlnU3RhdGUuZ2V0Q29weShrZXlzLCAuLi5pbnRlcnBvbGF0ZVBhcmFtcykpO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBMEIsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUt4RCxNQUFNLE9BQU8sbUJBQW1COzs7Ozs7OztJQUs5QixZQUNVLEtBQVksRUFDWixNQUFjLEVBQ2QsTUFBYyxFQUNkLE9BQWdCLEVBR3hCLGFBQWtDO1FBTjFCLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFLeEIsSUFBSSxhQUFhO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7Ozs7SUFkRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDOzs7Ozs7SUFjTyxhQUFhLENBQUMsS0FBdUI7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDMUQsQ0FBQzs7Ozs7SUFFRCxjQUFjLENBQUMsTUFBYztjQUNyQixFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0I7UUFFM0QsSUFBSSxDQUFDLGFBQWE7OztRQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUU5QixPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJOzs7UUFBQyxHQUFHLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHOzs7WUFBQyxHQUFTLEVBQUU7Z0JBQ3pCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN2QyxDQUFDLENBQUEsRUFBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7SUFFRCxHQUFHLENBQUMsSUFBWSxFQUFFLEdBQUcsaUJBQTJCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7Ozs7O0lBRUQsT0FBTyxDQUFDLElBQVksRUFBRSxHQUFHLGlCQUEyQjtRQUNsRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7OztZQTFDRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7O1lBUmhCLEtBQUs7WUFEVSxNQUFNO1lBREUsTUFBTTtZQUV0QyxPQUFPO1lBcUJHLG1CQUFtQix1QkFGakMsUUFBUSxZQUNSLFFBQVE7Ozs7Ozs7O0lBTFQsb0NBQW9COzs7OztJQUNwQixxQ0FBc0I7Ozs7O0lBQ3RCLHFDQUFzQjs7Ozs7SUFDdEIsc0NBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFNraXBTZWxmLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBY3Rpb25zLCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IG5vb3AsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpZ1N0YXRlIH0gZnJvbSAnLi4vc3RhdGVzL2NvbmZpZy5zdGF0ZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMvc2Vzc2lvbi5zdGF0ZSc7XG5pbXBvcnQgeyByZWdpc3RlckxvY2FsZSB9IGZyb20gJy4uL3V0aWxzL2luaXRpYWwtdXRpbHMnO1xuXG50eXBlIFNob3VsZFJldXNlUm91dGUgPSAoZnV0dXJlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSA9PiBib29sZWFuO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvblNlcnZpY2Uge1xuICBnZXQgY3VycmVudExhbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgYWN0aW9uczogQWN0aW9ucyxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBTa2lwU2VsZigpXG4gICAgb3RoZXJJbnN0YW5jZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgKSB7XG4gICAgaWYgKG90aGVySW5zdGFuY2UpIHRocm93IG5ldyBFcnJvcignTG9jYWxlU2VydmljZSBzaG91bGQgaGF2ZSBvbmx5IG9uZSBpbnN0YW5jZS4nKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Um91dGVSZXVzZShyZXVzZTogU2hvdWxkUmV1c2VSb3V0ZSkge1xuICAgIHRoaXMucm91dGVyLnJvdXRlUmV1c2VTdHJhdGVneS5zaG91bGRSZXVzZVJvdXRlID0gcmV1c2U7XG4gIH1cblxuICByZWdpc3RlckxvY2FsZShsb2NhbGU6IHN0cmluZykge1xuICAgIGNvbnN0IHsgc2hvdWxkUmV1c2VSb3V0ZSB9ID0gdGhpcy5yb3V0ZXIucm91dGVSZXVzZVN0cmF0ZWd5O1xuXG4gICAgdGhpcy5zZXRSb3V0ZVJldXNlKCgpID0+IGZhbHNlKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiByZWdpc3RlckxvY2FsZShsb2NhbGUpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlci51cmwpLmNhdGNoKG5vb3ApO1xuICAgICAgICB0aGlzLnNldFJvdXRlUmV1c2Uoc2hvdWxkUmV1c2VSb3V0ZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldChrZXlzOiBzdHJpbmcsIC4uLmludGVycG9sYXRlUGFyYW1zOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1N0YXRlLmdldENvcHkoa2V5cywgLi4uaW50ZXJwb2xhdGVQYXJhbXMpKTtcbiAgfVxuXG4gIGluc3RhbnQoa2V5czogc3RyaW5nLCAuLi5pbnRlcnBvbGF0ZVBhcmFtczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KENvbmZpZ1N0YXRlLmdldENvcHkoa2V5cywgLi4uaW50ZXJwb2xhdGVQYXJhbXMpKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/lib/states/config.state.js b/npm/ng-packs/dist/core/esm2015/lib/states/config.state.js index 240690d429..88781abdbd 100644 --- a/npm/ng-packs/dist/core/esm2015/lib/states/config.state.js +++ b/npm/ng-packs/dist/core/esm2015/lib/states/config.state.js @@ -34,7 +34,7 @@ let ConfigState = ConfigState_1 = class ConfigState { * @return {?} */ static getApplicationInfo(state) { - return state.environment.application || {}; + return state.environment.application || ((/** @type {?} */ ({}))); } /** * @param {?} key @@ -94,7 +94,19 @@ let ConfigState = ConfigState_1 = class ConfigState { * @return {?} */ function (state) { - return findRoute(state.routes, path, name); + const { flattedRoutes } = state; + return ((/** @type {?} */ (flattedRoutes))).find((/** + * @param {?} route + * @return {?} + */ + route => { + if (path && route.path === path) { + return route; + } + else if (name && route.name === name) { + return route; + } + })); })); return selector; } @@ -132,50 +144,22 @@ let ConfigState = ConfigState_1 = class ConfigState { return selector; } /** - * @param {?=} condition + * @param {?} key * @return {?} */ - static getGrantedPolicy(condition = '') { - /** @type {?} */ - const keys = condition - .replace(/\(|\)|\!|\s/g, '') - .split(/\|\||&&/) - .filter((/** - * @param {?} key - * @return {?} - */ - key => key)); + static getGrantedPolicy(key) { /** @type {?} */ const selector = createSelector([ConfigState_1], (/** * @param {?} state * @return {?} */ function (state) { - if (!keys.length) + if (!key) return true; - /** @type {?} */ - const getPolicy = (/** - * @param {?} key - * @return {?} - */ - key => snq((/** + return snq((/** * @return {?} */ - () => state.auth.grantedPolicies[key]), false)); - if (keys.length > 1) { - keys.forEach((/** - * @param {?} key - * @return {?} - */ - key => { - /** @type {?} */ - const value = getPolicy(key); - condition = condition.replace(key, value); - })); - // tslint:disable-next-line: no-eval - return eval(`!!${condition}`); - } - return getPolicy(condition); + () => state.auth.grantedPolicies[key]), false); })); return selector; } @@ -214,7 +198,7 @@ let ConfigState = ConfigState_1 = class ConfigState { () => defaultResourceName)); } /** @type {?} */ - let copy = keys.reduce((/** + let copy = ((/** @type {?} */ (keys))).reduce((/** * @param {?} acc * @param {?} val * @return {?} @@ -307,7 +291,7 @@ tslib_1.__decorate([ Selector(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object]), - tslib_1.__metadata("design:returntype", void 0) + tslib_1.__metadata("design:returntype", Object) ], ConfigState, "getApplicationInfo", null); ConfigState = ConfigState_1 = tslib_1.__decorate([ State({ @@ -366,34 +350,4 @@ function patchRouteDeep(routes, name, newValue, parentUrl = null) { } return organizeRoutes(routes); } -/** - * @param {?} routes - * @param {?=} path - * @param {?=} name - * @return {?} - */ -function findRoute(routes, path, name) { - /** @type {?} */ - let foundRoute; - routes.forEach((/** - * @param {?} route - * @return {?} - */ - route => { - if (foundRoute) - return; - if (path && route.path === path) { - foundRoute = route; - } - else if (name && route.name === name) { - foundRoute = route; - return; - } - else if (route.children && route.children.length) { - foundRoute = findRoute(route.children, path, name); - return; - } - })); - return foundRoute; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy9jb25maWcuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUE2QixjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztJQU1wRSxXQUFXLHlCQUFYLFdBQVc7Ozs7O0lBNkp0QixZQUFvQix1QkFBd0QsRUFBVSxLQUFZO1FBQTlFLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBaUM7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQUcsQ0FBQzs7Ozs7SUEzSnRHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBbUI7UUFDL0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7OztJQUdELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFtQjtRQUMzQyxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FB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QWEsRUFBRSxJQUFhOztRQUNsRSxVQUFVO0lBQ2QsTUFBTSxDQUFDLE9BQU87Ozs7SUFBQyxLQUFLLENBQUMsRUFBRTtRQUNyQixJQUFJLFVBQVU7WUFBRSxPQUFPO1FBRXZCLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQy9CLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDcEI7YUFBTSxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRTtZQUN0QyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ25CLE9BQU87U0FDUjthQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNsRCxVQUFVLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25ELE9BQU87U0FDUjtJQUNILENBQUMsRUFBQyxDQUFDO0lBRUgsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlLCBTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3IsIEFjdGlvbiwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IENvbmZpZywgQUJQIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IEdldEFwcENvbmZpZ3VyYXRpb24sIFBhdGNoUm91dGVCeU5hbWUgfSBmcm9tICcuLi9hY3Rpb25zL2NvbmZpZy5hY3Rpb25zJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQgeyBTZXRMYW5ndWFnZSB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgU2Vzc2lvblN0YXRlIH0gZnJvbSAnLi9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzZXRDaGlsZFJvdXRlLCBzb3J0Um91dGVzLCBvcmdhbml6ZVJvdXRlcyB9IGZyb20gJy4uL3V0aWxzL3JvdXRlLXV0aWxzJztcblxuQFN0YXRlPENvbmZpZy5TdGF0ZT4oe1xuICBuYW1lOiAnQ29uZmlnU3RhdGUnLFxuICBkZWZhdWx0czoge30gYXMgQ29uZmlnLlN0YXRlLFxufSlcbmV4cG9ydCBjbGFzcyBDb25maWdTdGF0ZSB7XG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXRBbGwoc3RhdGU6IENvbmZpZy5TdGF0ZSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXRBcHBsaWNhdGlvbkluZm8oc3RhdGU6IENvbmZpZy5TdGF0ZSkge1xuICAgIHJldHVybiBzdGF0ZS5lbnZpcm9ubWVudC5hcHBsaWNhdGlvbiB8fCB7fTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRPbmUoa2V5OiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlW2tleV07XG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gc2VsZWN0b3I7XG4gIH1cblxuICBzdGF0aWMgZ2V0RGVlcChrZXlzOiBzdHJpbmdbXSB8IHN0cmluZykge1xuICAgIGlmICh0eXBlb2Yga2V5cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGtleXMgPSBrZXlzLnNwbGl0KCcuJyk7XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGtleXMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhcmd1bWVudCBtdXN0IGJlIGEgZG90IHN0cmluZyBvciBhbiBzdHJpbmcgYXJyYXkuJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgICAgIHJldHVybiAoa2V5cyBhcyBzdHJpbmdbXSkucmVkdWNlKChhY2MsIHZhbCkgPT4ge1xuICAgICAgICAgIGlmIChhY2MpIHtcbiAgICAgICAgICAgIHJldHVybiBhY2NbdmFsXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9LCBzdGF0ZSk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gc2VsZWN0b3I7XG4gIH1cblxuICBzdGF0aWMgZ2V0Um91dGUocGF0aD86IHN0cmluZywgbmFtZT86IHN0cmluZykge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBbQ29uZmlnU3RhdGVdLFxuICAgICAgZnVuY3Rpb24oc3RhdGU6IENvbmZpZy5TdGF0ZSkge1xuICAgICAgICByZXR1cm4gZmluZFJvdXRlKHN0YXRlLnJvdXRlcywgcGF0aCwgbmFtZSk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gc2VsZWN0b3I7XG4gIH1cblxuICBzdGF0aWMgZ2V0QXBpVXJsKGtleT86IHN0cmluZykge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBbQ29uZmlnU3RhdGVdLFxuICAgICAgZnVuY3Rpb24oc3RhdGU6IENvbmZpZy5TdGF0ZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzdGF0ZS5lbnZpcm9ubWVudC5hcGlzW2tleSB8fCAnZGVmYXVsdCddLnVybDtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTZXR0aW5nKGtleTogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgICAgIHJldHVybiBzbnEoKCkgPT4gc3RhdGUuc2V0dGluZy52YWx1ZXNba2V5XSk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gc2VsZWN0b3I7XG4gIH1cblxuICBzdGF0aWMgZ2V0R3JhbnRlZFBvbGljeShjb25kaXRpb246IHN0cmluZyA9ICcnKSB7XG4gICAgY29uc3Qga2V5cyA9IGNvbmRpdGlvblxuICAgICAgLnJlcGxhY2UoL1xcKHxcXCl8XFwhfFxccy9nLCAnJylcbiAgICAgIC5zcGxpdCgvXFx8XFx8fCYmLylcbiAgICAgIC5maWx0ZXIoa2V5ID0+IGtleSk7XG5cbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFrZXlzLmxlbmd0aCkgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgY29uc3QgZ2V0UG9saWN5ID0ga2V5ID0+IHNucSgoKSA9PiBzdGF0ZS5hdXRoLmdyYW50ZWRQb2xpY2llc1trZXldLCBmYWxzZSk7XG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0UG9saWN5KGtleSk7XG4gICAgICAgICAgICBjb25kaXRpb24gPSBjb25kaXRpb24ucmVwbGFjZShrZXksIHZhbHVlKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tZXZhbFxuICAgICAgICAgIHJldHVybiBldmFsKGAhISR7Y29uZGl0aW9ufWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldFBvbGljeShjb25kaXRpb24pO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHNlbGVjdG9yO1xuICB9XG5cbiAgc3RhdGljIGdldENvcHkoa2V5OiBzdHJpbmcsIC4uLmludGVycG9sYXRlUGFyYW1zOiBzdHJpbmdbXSkge1xuICAgIGlmICgha2V5KSBrZXkgPSAnJztcblxuICAgIGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJzo6JykgYXMgc3RyaW5nW107XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgICAgIGlmICghc3RhdGUubG9jYWxpemF0aW9uKSByZXR1cm4ga2V5O1xuXG4gICAgICAgIGNvbnN0IHsgZGVmYXVsdFJlc291cmNlTmFtZSB9ID0gc3RhdGUuZW52aXJvbm1lbnQubG9jYWxpemF0aW9uO1xuICAgICAgICBpZiAoa2V5c1swXSA9PT0gJycpIHtcbiAgICAgICAgICBpZiAoIWRlZmF1bHRSZXNvdXJjZU5hbWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFBsZWFzZSBjaGVjayB5b3VyIGVudmlyb25tZW50LiBNYXkgeW91IGZvcmdldCBzZXQgZGVmYXVsdFJlc291cmNlTmFtZT8gXG4gICAgICAgICAgICAgIEhlcmUgaXMgdGhlIGV4YW1wbGU6XG4gICAgICAgICAgICAgICB7IHByb2R1Y3Rpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICBsb2NhbGl6YXRpb246IHtcbiAgICAgICAgICAgICAgICAgICBkZWZhdWx0UmVzb3VyY2VOYW1lOiAnTXlQcm9qZWN0TmFtZSdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBrZXlzWzBdID0gc25xKCgpID0+IGRlZmF1bHRSZXNvdXJjZU5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNvcHkgPSBrZXlzLnJlZHVjZSgoYWNjLCB2YWwpID0+IHtcbiAgICAgICAgICBpZiAoYWNjKSB7XG4gICAgICAgICAgICByZXR1cm4gYWNjW3ZhbF07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSwgc3RhdGUubG9jYWxpemF0aW9uLnZhbHVlcyk7XG5cbiAgICAgICAgaW50ZXJwb2xhdGVQYXJhbXMgPSBpbnRlcnBvbGF0ZVBhcmFtcy5maWx0ZXIocGFyYW1zID0+IHBhcmFtcyAhPSBudWxsKTtcbiAgICAgICAgaWYgKGNvcHkgJiYgaW50ZXJwb2xhdGVQYXJhbXMgJiYgaW50ZXJwb2xhdGVQYXJhbXMubGVuZ3RoKSB7XG4gICAgICAgICAgaW50ZXJwb2xhdGVQYXJhbXMuZm9yRWFjaChwYXJhbSA9PiB7XG4gICAgICAgICAgICBjb3B5ID0gY29weS5yZXBsYWNlKC9bXFwnXFxcIl0/XFx7W1xcZF0rXFx9W1xcJ1xcXCJdPy8sIHBhcmFtKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb3B5IHx8IGtleTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwQ29uZmlndXJhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2UsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIEBBY3Rpb24oR2V0QXBwQ29uZmlndXJhdGlvbilcbiAgYWRkRGF0YSh7IHBhdGNoU3RhdGUsIGRpc3BhdGNoIH06IFN0YXRlQ29udGV4dDxDb25maWcuU3RhdGU+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0Q29uZmlndXJhdGlvbigpLnBpcGUoXG4gICAgICB0YXAoY29uZmlndXJhdGlvbiA9PlxuICAgICAgICBwYXRjaFN0YXRlKHtcbiAgICAgICAgICAuLi5jb25maWd1cmF0aW9uLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzd2l0Y2hNYXAoY29uZmlndXJhdGlvbiA9PiB7XG4gICAgICAgIGxldCBkZWZhdWx0TGFuZzogc3RyaW5nID0gY29uZmlndXJhdGlvbi5zZXR0aW5nLnZhbHVlc1snQWJwLkxvY2FsaXphdGlvbi5EZWZhdWx0TGFuZ3VhZ2UnXTtcblxuICAgICAgICBpZiAoZGVmYXVsdExhbmcuaW5jbHVkZXMoJzsnKSkge1xuICAgICAgICAgIGRlZmF1bHRMYW5nID0gZGVmYXVsdExhbmcuc3BsaXQoJzsnKVswXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSkgPyBvZihudWxsKSA6IGRpc3BhdGNoKG5ldyBTZXRMYW5ndWFnZShkZWZhdWx0TGFuZykpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oUGF0Y2hSb3V0ZUJ5TmFtZSlcbiAgcGF0Y2hSb3V0ZSh7IHBhdGNoU3RhdGUsIGdldFN0YXRlIH06IFN0YXRlQ29udGV4dDxDb25maWcuU3RhdGU+LCB7IG5hbWUsIG5ld1ZhbHVlIH06IFBhdGNoUm91dGVCeU5hbWUpIHtcbiAgICBsZXQgcm91dGVzOiBBQlAuRnVsbFJvdXRlW10gPSBnZXRTdGF0ZSgpLnJvdXRlcztcblxuICAgIGNvbnN0IGluZGV4ID0gcm91dGVzLmZpbmRJbmRleChyb3V0ZSA9PiByb3V0ZS5uYW1lID09PSBuYW1lKTtcblxuICAgIHJvdXRlcyA9IHBhdGNoUm91dGVEZWVwKHJvdXRlcywgbmFtZSwgbmV3VmFsdWUpO1xuXG4gICAgcmV0dXJuIHBhdGNoU3RhdGUoe1xuICAgICAgcm91dGVzLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhdGNoUm91dGVEZWVwKFxuICByb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSxcbiAgbmFtZTogc3RyaW5nLFxuICBuZXdWYWx1ZTogUGFydGlhbDxBQlAuRnVsbFJvdXRlPixcbiAgcGFyZW50VXJsOiBzdHJpbmcgPSBudWxsLFxuKTogQUJQLkZ1bGxSb3V0ZVtdIHtcbiAgcm91dGVzID0gcm91dGVzLm1hcChyb3V0ZSA9PiB7XG4gICAgaWYgKHJvdXRlLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgIGlmIChuZXdWYWx1ZS5wYXRoKSB7XG4gICAgICAgIG5ld1ZhbHVlLnVybCA9IGAke3BhcmVudFVybH0vJHtuZXdWYWx1ZS5wYXRofWA7XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdWYWx1ZS5jaGlsZHJlbiAmJiBuZXdWYWx1ZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgbmV3VmFsdWUuY2hpbGRyZW4gPSBuZXdWYWx1ZS5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gKHtcbiAgICAgICAgICAuLi5jaGlsZCxcbiAgICAgICAgICB1cmw6IGAke3BhcmVudFVybH0vJHtyb3V0ZS5wYXRofS8ke2NoaWxkLnBhdGh9YCxcbiAgICAgICAgfSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4geyAuLi5yb3V0ZSwgLi4ubmV3VmFsdWUgfTtcbiAgICB9IGVsc2UgaWYgKHJvdXRlLmNoaWxkcmVuICYmIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgcm91dGUuY2hpbGRyZW4gPSBwYXRjaFJvdXRlRGVlcChyb3V0ZS5jaGlsZHJlbiwgbmFtZSwgbmV3VmFsdWUsIChwYXJlbnRVcmwgfHwgJy8nKSArIHJvdXRlLnBhdGgpO1xuICAgIH1cblxuICAgIHJldHVybiByb3V0ZTtcbiAgfSk7XG5cbiAgaWYgKHBhcmVudFVybCkge1xuICAgIC8vIHJlY3Vyc2l2ZSBibG9ja1xuICAgIHJldHVybiByb3V0ZXM7XG4gIH1cblxuICByZXR1cm4gb3JnYW5pemVSb3V0ZXMocm91dGVzKTtcbn1cblxuZnVuY3Rpb24gZmluZFJvdXRlKHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdLCBwYXRoPzogc3RyaW5nLCBuYW1lPzogc3RyaW5nKSB7XG4gIGxldCBmb3VuZFJvdXRlO1xuICByb3V0ZXMuZm9yRWFjaChyb3V0ZSA9PiB7XG4gICAgaWYgKGZvdW5kUm91dGUpIHJldHVybjtcblxuICAgIGlmIChwYXRoICYmIHJvdXRlLnBhdGggPT09IHBhdGgpIHtcbiAgICAgIGZvdW5kUm91dGUgPSByb3V0ZTtcbiAgICB9IGVsc2UgaWYgKG5hbWUgJiYgcm91dGUubmFtZSA9PT0gbmFtZSkge1xuICAgICAgZm91bmRSb3V0ZSA9IHJvdXRlO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAocm91dGUuY2hpbGRyZW4gJiYgcm91dGUuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICBmb3VuZFJvdXRlID0gZmluZFJvdXRlKHJvdXRlLmNoaWxkcmVuLCBwYXRoLCBuYW1lKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBmb3VuZFJvdXRlO1xufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy9jb25maWcuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUE2QixjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztJQU1wRSxXQUFXLHlCQUFYLFdBQVc7Ozs7O0lBbUp0QixZQUFvQix1QkFBd0QsRUFBVSxLQUFZO1FBQTlFLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBaUM7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQUcsQ0FBQzs7Ozs7SUFqSnRHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBbUI7UUFDL0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7OztJQUdELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFtQjtRQUMzQyxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxJQUFJLENBQUMsbUJBQUEsRUFBRSxFQUFzQixDQUFDLENBQUM7SUFDckUsQ0FBQzs7Ozs7SUFFRCxN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QUFDO2FBQ2hEO1lBRUQsSUFBSSxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNqRCxRQUFRLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRzs7OztnQkFBQyxLQUFLLENBQUMsRUFBRSxDQUFDLG1CQUM5QyxLQUFLLElBQ1IsR0FBRyxFQUFFLEdBQUcsU0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxJQUMvQyxFQUFDLENBQUM7YUFDTDtZQUVELHlCQUFZLEtBQUssRUFBSyxRQUFRLEVBQUc7U0FDbEM7YUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDbEQsS0FBSyxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsRztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUFDLENBQUM7SUFFSCxJQUFJLFNBQVMsRUFBRTtRQUNiLGtCQUFrQjtRQUNsQixPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlLCBTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3IsIEFjdGlvbiwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IENvbmZpZywgQUJQIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IEdldEFwcENvbmZpZ3VyYXRpb24sIFBhdGNoUm91dGVCeU5hbWUgfSBmcm9tICcuLi9hY3Rpb25zL2NvbmZpZy5hY3Rpb25zJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQgeyBTZXRMYW5ndWFnZSB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgU2Vzc2lvblN0YXRlIH0gZnJvbSAnLi9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzZXRDaGlsZFJvdXRlLCBzb3J0Um91dGVzLCBvcmdhbml6ZVJvdXRlcyB9IGZyb20gJy4uL3V0aWxzL3JvdXRlLXV0aWxzJztcblxuQFN0YXRlPENvbmZpZy5TdGF0ZT4oe1xuICBuYW1lOiAnQ29uZmlnU3RhdGUnLFxuICBkZWZhdWx0czoge30gYXMgQ29uZmlnLlN0YXRlLFxufSlcbmV4cG9ydCBjbGFzcyBDb25maWdTdGF0ZSB7XG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXRBbGwoc3RhdGU6IENvbmZpZy5TdGF0ZSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXRBcHBsaWNhdGlvbkluZm8oc3RhdGU6IENvbmZpZy5TdGF0ZSk6IENvbmZpZy5BcHBsaWNhdGlvbiB7XG4gICAgcmV0dXJuIHN0YXRlLmVudmlyb25tZW50LmFwcGxpY2F0aW9uIHx8ICh7fSBhcyBDb25maWcuQXBwbGljYXRpb24pO1xuICB9XG5cbiAgc3RhdGljIGdldE9uZShrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBbQ29uZmlnU3RhdGVdLFxuICAgICAgZnVuY3Rpb24oc3RhdGU6IENvbmZpZy5TdGF0ZSkge1xuICAgICAgICByZXR1cm4gc3RhdGVba2V5XTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXREZWVwKGtleXM6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBrZXlzID09PSAnc3RyaW5nJykge1xuICAgICAga2V5cyA9IGtleXMuc3BsaXQoJy4nKTtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoa2V5cykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBkb3Qgc3RyaW5nIG9yIGFuIHN0cmluZyBhcnJheS4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIChrZXlzIGFzIHN0cmluZ1tdKS5yZWR1Y2UoKGFjYywgdmFsKSA9PiB7XG4gICAgICAgICAgaWYgKGFjYykge1xuICAgICAgICAgICAgcmV0dXJuIGFjY1t2YWxdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0sIHN0YXRlKTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRSb3V0ZShwYXRoPzogc3RyaW5nLCBuYW1lPzogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgICAgIGNvbnN0IHsgZmxhdHRlZFJvdXRlcyB9ID0gc3RhdGU7XG4gICAgICAgIHJldHVybiAoZmxhdHRlZFJvdXRlcyBhcyBBQlAuRnVsbFJvdXRlW10pLmZpbmQocm91dGUgPT4ge1xuICAgICAgICAgIGlmIChwYXRoICYmIHJvdXRlLnBhdGggPT09IHBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybiByb3V0ZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG5hbWUgJiYgcm91dGUubmFtZSA9PT0gbmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJvdXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gc2VsZWN0b3I7XG4gIH1cblxuICBzdGF0aWMgZ2V0QXBpVXJsKGtleT86IHN0cmluZykge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBbQ29uZmlnU3RhdGVdLFxuICAgICAgZnVuY3Rpb24oc3RhdGU6IENvbmZpZy5TdGF0ZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzdGF0ZS5lbnZpcm9ubWVudC5hcGlzW2tleSB8fCAnZGVmYXVsdCddLnVybDtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTZXR0aW5nKGtleTogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgICAgIHJldHVybiBzbnEoKCkgPT4gc3RhdGUuc2V0dGluZy52YWx1ZXNba2V5XSk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gc2VsZWN0b3I7XG4gIH1cblxuICBzdGF0aWMgZ2V0R3JhbnRlZFBvbGljeShrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBbQ29uZmlnU3RhdGVdLFxuICAgICAgZnVuY3Rpb24oc3RhdGU6IENvbmZpZy5TdGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWtleSkgcmV0dXJuIHRydWU7XG4gICAgICAgIHJldHVybiBzbnEoKCkgPT4gc3RhdGUuYXV0aC5ncmFudGVkUG9saWNpZXNba2V5XSwgZmFsc2UpO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHNlbGVjdG9yO1xuICB9XG5cbiAgc3RhdGljIGdldENvcHkoa2V5OiBzdHJpbmcsIC4uLmludGVycG9sYXRlUGFyYW1zOiBzdHJpbmdbXSkge1xuICAgIGlmICgha2V5KSBrZXkgPSAnJztcblxuICAgIGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJzo6JykgYXMgc3RyaW5nW107XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgICAgIGlmICghc3RhdGUubG9jYWxpemF0aW9uKSByZXR1cm4ga2V5O1xuXG4gICAgICAgIGNvbnN0IHsgZGVmYXVsdFJlc291cmNlTmFtZSB9ID0gc3RhdGUuZW52aXJvbm1lbnQubG9jYWxpemF0aW9uO1xuICAgICAgICBpZiAoa2V5c1swXSA9PT0gJycpIHtcbiAgICAgICAgICBpZiAoIWRlZmF1bHRSZXNvdXJjZU5hbWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFBsZWFzZSBjaGVjayB5b3VyIGVudmlyb25tZW50LiBNYXkgeW91IGZvcmdldCBzZXQgZGVmYXVsdFJlc291cmNlTmFtZT8gXG4gICAgICAgICAgICAgIEhlcmUgaXMgdGhlIGV4YW1wbGU6XG4gICAgICAgICAgICAgICB7IHByb2R1Y3Rpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICBsb2NhbGl6YXRpb246IHtcbiAgICAgICAgICAgICAgICAgICBkZWZhdWx0UmVzb3VyY2VOYW1lOiAnTXlQcm9qZWN0TmFtZSdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBrZXlzWzBdID0gc25xKCgpID0+IGRlZmF1bHRSZXNvdXJjZU5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNvcHkgPSAoa2V5cyBhcyBhbnkpLnJlZHVjZSgoYWNjLCB2YWwpID0+IHtcbiAgICAgICAgICBpZiAoYWNjKSB7XG4gICAgICAgICAgICByZXR1cm4gYWNjW3ZhbF07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSwgc3RhdGUubG9jYWxpemF0aW9uLnZhbHVlcyk7XG5cbiAgICAgICAgaW50ZXJwb2xhdGVQYXJhbXMgPSBpbnRlcnBvbGF0ZVBhcmFtcy5maWx0ZXIocGFyYW1zID0+IHBhcmFtcyAhPSBudWxsKTtcbiAgICAgICAgaWYgKGNvcHkgJiYgaW50ZXJwb2xhdGVQYXJhbXMgJiYgaW50ZXJwb2xhdGVQYXJhbXMubGVuZ3RoKSB7XG4gICAgICAgICAgaW50ZXJwb2xhdGVQYXJhbXMuZm9yRWFjaChwYXJhbSA9PiB7XG4gICAgICAgICAgICBjb3B5ID0gY29weS5yZXBsYWNlKC9bXFwnXFxcIl0/XFx7W1xcZF0rXFx9W1xcJ1xcXCJdPy8sIHBhcmFtKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb3B5IHx8IGtleTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwQ29uZmlndXJhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2UsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIEBBY3Rpb24oR2V0QXBwQ29uZmlndXJhdGlvbilcbiAgYWRkRGF0YSh7IHBhdGNoU3RhdGUsIGRpc3BhdGNoIH06IFN0YXRlQ29udGV4dDxDb25maWcuU3RhdGU+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0Q29uZmlndXJhdGlvbigpLnBpcGUoXG4gICAgICB0YXAoY29uZmlndXJhdGlvbiA9PlxuICAgICAgICBwYXRjaFN0YXRlKHtcbiAgICAgICAgICAuLi5jb25maWd1cmF0aW9uLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzd2l0Y2hNYXAoY29uZmlndXJhdGlvbiA9PiB7XG4gICAgICAgIGxldCBkZWZhdWx0TGFuZzogc3RyaW5nID0gY29uZmlndXJhdGlvbi5zZXR0aW5nLnZhbHVlc1snQWJwLkxvY2FsaXphdGlvbi5EZWZhdWx0TGFuZ3VhZ2UnXTtcblxuICAgICAgICBpZiAoZGVmYXVsdExhbmcuaW5jbHVkZXMoJzsnKSkge1xuICAgICAgICAgIGRlZmF1bHRMYW5nID0gZGVmYXVsdExhbmcuc3BsaXQoJzsnKVswXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSkgPyBvZihudWxsKSA6IGRpc3BhdGNoKG5ldyBTZXRMYW5ndWFnZShkZWZhdWx0TGFuZykpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIEBBY3Rpb24oUGF0Y2hSb3V0ZUJ5TmFtZSlcbiAgcGF0Y2hSb3V0ZSh7IHBhdGNoU3RhdGUsIGdldFN0YXRlIH06IFN0YXRlQ29udGV4dDxDb25maWcuU3RhdGU+LCB7IG5hbWUsIG5ld1ZhbHVlIH06IFBhdGNoUm91dGVCeU5hbWUpIHtcbiAgICBsZXQgcm91dGVzOiBBQlAuRnVsbFJvdXRlW10gPSBnZXRTdGF0ZSgpLnJvdXRlcztcblxuICAgIGNvbnN0IGluZGV4ID0gcm91dGVzLmZpbmRJbmRleChyb3V0ZSA9PiByb3V0ZS5uYW1lID09PSBuYW1lKTtcblxuICAgIHJvdXRlcyA9IHBhdGNoUm91dGVEZWVwKHJvdXRlcywgbmFtZSwgbmV3VmFsdWUpO1xuXG4gICAgcmV0dXJuIHBhdGNoU3RhdGUoe1xuICAgICAgcm91dGVzLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhdGNoUm91dGVEZWVwKFxuICByb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSxcbiAgbmFtZTogc3RyaW5nLFxuICBuZXdWYWx1ZTogUGFydGlhbDxBQlAuRnVsbFJvdXRlPixcbiAgcGFyZW50VXJsOiBzdHJpbmcgPSBudWxsLFxuKTogQUJQLkZ1bGxSb3V0ZVtdIHtcbiAgcm91dGVzID0gcm91dGVzLm1hcChyb3V0ZSA9PiB7XG4gICAgaWYgKHJvdXRlLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgIGlmIChuZXdWYWx1ZS5wYXRoKSB7XG4gICAgICAgIG5ld1ZhbHVlLnVybCA9IGAke3BhcmVudFVybH0vJHtuZXdWYWx1ZS5wYXRofWA7XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdWYWx1ZS5jaGlsZHJlbiAmJiBuZXdWYWx1ZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgbmV3VmFsdWUuY2hpbGRyZW4gPSBuZXdWYWx1ZS5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gKHtcbiAgICAgICAgICAuLi5jaGlsZCxcbiAgICAgICAgICB1cmw6IGAke3BhcmVudFVybH0vJHtyb3V0ZS5wYXRofS8ke2NoaWxkLnBhdGh9YCxcbiAgICAgICAgfSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4geyAuLi5yb3V0ZSwgLi4ubmV3VmFsdWUgfTtcbiAgICB9IGVsc2UgaWYgKHJvdXRlLmNoaWxkcmVuICYmIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgcm91dGUuY2hpbGRyZW4gPSBwYXRjaFJvdXRlRGVlcChyb3V0ZS5jaGlsZHJlbiwgbmFtZSwgbmV3VmFsdWUsIChwYXJlbnRVcmwgfHwgJy8nKSArIHJvdXRlLnBhdGgpO1xuICAgIH1cblxuICAgIHJldHVybiByb3V0ZTtcbiAgfSk7XG5cbiAgaWYgKHBhcmVudFVybCkge1xuICAgIC8vIHJlY3Vyc2l2ZSBibG9ja1xuICAgIHJldHVybiByb3V0ZXM7XG4gIH1cblxuICByZXR1cm4gb3JnYW5pemVSb3V0ZXMocm91dGVzKTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm2015/public-api.js b/npm/ng-packs/dist/core/esm2015/public-api.js index c6a48c31c5..2b78278875 100644 --- a/npm/ng-packs/dist/core/esm2015/public-api.js +++ b/npm/ng-packs/dist/core/esm2015/public-api.js @@ -6,10 +6,11 @@ * Public API Surface of core */ // export * from './lib/handlers'; +export { AbstractNgModelComponent } from './lib/abstracts'; export { PatchRouteByName, GetAppConfiguration, StartLoader, StopLoader, GetProfile, UpdateProfile, ChangePassword, RestOccurError, SetLanguage, SetTenant } from './lib/actions'; export { DynamicLayoutComponent, RouterOutletComponent } from './lib/components'; export {} from './lib/constants'; -export { AutofocusDirective, EllipsisDirective, FormSubmitDirective, PermissionDirective, VisibilityDirective } from './lib/directives'; +export { AutofocusDirective, EllipsisDirective, ForDirective, FormSubmitDirective, PermissionDirective, VisibilityDirective } from './lib/directives'; export {} from './lib/enums'; export { AuthGuard, PermissionGuard } from './lib/guards'; export { ApiInterceptor } from './lib/interceptors'; @@ -20,4 +21,4 @@ export { ProfileState, ConfigState, SessionState } from './lib/states'; export { environmentFactory, configFactory, ENVIRONMENT, CONFIG } from './lib/tokens'; export { noop, uuid, getInitialData, localeInitializer, registerLocale, organizeRoutes, setChildRoute, sortRoutes, takeUntilDestroy } from './lib/utils'; export { CoreModule } from './lib/core.module'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLQSxrS0FBYyxlQUFlLENBQUM7QUFDOUIsOERBQWMsa0JBQWtCLENBQUM7QUFDakMsZUFBYyxpQkFBaUIsQ0FBQztBQUNoQyxxSEFBYyxrQkFBa0IsQ0FBQztBQUNqQyxlQUFjLGFBQWEsQ0FBQztBQUM1QiwyQ0FBYyxjQUFjLENBQUM7QUFDN0IsK0JBQWMsb0JBQW9CLENBQUM7QUFDbkMscUJBQWMsY0FBYyxDQUFDO0FBQzdCLHlEQUFjLGVBQWUsQ0FBQztBQUM5QixrSUFBYyxnQkFBZ0IsQ0FBQztBQUMvQix3REFBYyxjQUFjLENBQUM7QUFDN0IsdUVBQWMsY0FBYyxDQUFDO0FBQzdCLDJJQUFjLGFBQWEsQ0FBQztBQUU1QiwyQkFBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29yZVxuICovXG5cbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2hhbmRsZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnVtcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ndWFyZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJjZXB0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wbHVnaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlLm1vZHVsZSc7XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLQSx5Q0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxrS0FBYyxlQUFlLENBQUM7QUFDOUIsOERBQWMsa0JBQWtCLENBQUM7QUFDakMsZUFBYyxpQkFBaUIsQ0FBQztBQUNoQyxtSUFBYyxrQkFBa0IsQ0FBQztBQUNqQyxlQUFjLGFBQWEsQ0FBQztBQUM1QiwyQ0FBYyxjQUFjLENBQUM7QUFDN0IsK0JBQWMsb0JBQW9CLENBQUM7QUFDbkMscUJBQWMsY0FBYyxDQUFDO0FBQzdCLHlEQUFjLGVBQWUsQ0FBQztBQUM5QixrSUFBYyxnQkFBZ0IsQ0FBQztBQUMvQix3REFBYyxjQUFjLENBQUM7QUFDN0IsdUVBQWMsY0FBYyxDQUFDO0FBQzdCLDJJQUFjLGFBQWEsQ0FBQztBQUU1QiwyQkFBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29yZVxuICovXG5cbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2hhbmRsZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fic3RyYWN0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ3VhcmRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyY2VwdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGx1Z2lucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS5tb2R1bGUnO1xuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/abp-ng.core.js b/npm/ng-packs/dist/core/esm5/abp-ng.core.js index bb50ae9be4..de9301b82d 100644 --- a/npm/ng-packs/dist/core/esm5/abp-ng.core.js +++ b/npm/ng-packs/dist/core/esm5/abp-ng.core.js @@ -5,30 +5,32 @@ /** * Generated bundle index. Do not edit. */ -export { PatchRouteByName, GetAppConfiguration, StartLoader, StopLoader, GetProfile, UpdateProfile, ChangePassword, RestOccurError, SetLanguage, SetTenant, DynamicLayoutComponent, RouterOutletComponent, AutofocusDirective, EllipsisDirective, FormSubmitDirective, PermissionDirective, VisibilityDirective, AuthGuard, PermissionGuard, ApiInterceptor, Rest, NGXS_CONFIG_PLUGIN_OPTIONS, ConfigPlugin, ApplicationConfigurationService, ConfigService, LazyLoadService, LocalizationService, ProfileService, RestService, ProfileState, ConfigState, SessionState, environmentFactory, configFactory, ENVIRONMENT, CONFIG, noop, uuid, getInitialData, localeInitializer, registerLocale, organizeRoutes, setChildRoute, sortRoutes, takeUntilDestroy, CoreModule } from './public-api'; +export { AbstractNgModelComponent, PatchRouteByName, GetAppConfiguration, StartLoader, StopLoader, GetProfile, UpdateProfile, ChangePassword, RestOccurError, SetLanguage, SetTenant, DynamicLayoutComponent, RouterOutletComponent, AutofocusDirective, EllipsisDirective, ForDirective, FormSubmitDirective, PermissionDirective, VisibilityDirective, AuthGuard, PermissionGuard, ApiInterceptor, Rest, NGXS_CONFIG_PLUGIN_OPTIONS, ConfigPlugin, ApplicationConfigurationService, ConfigService, LazyLoadService, LocalizationService, ProfileService, RestService, ProfileState, ConfigState, SessionState, environmentFactory, configFactory, ENVIRONMENT, CONFIG, noop, uuid, getInitialData, localeInitializer, registerLocale, organizeRoutes, setChildRoute, sortRoutes, takeUntilDestroy, CoreModule } from './public-api'; +export { AbstractNgModelComponent as ɵbc } from './lib/abstracts/ng-model.component'; export { GetAppConfiguration as ɵp, PatchRouteByName as ɵo } from './lib/actions/config.actions'; export { ChangePassword as ɵf, GetProfile as ɵd, UpdateProfile as ɵe } from './lib/actions/profile.actions'; export { SetLanguage as ɵj, SetTenant as ɵk } from './lib/actions/session.actions'; export { DynamicLayoutComponent as ɵr } from './lib/components/dynamic-layout.component'; export { RouterOutletComponent as ɵq } from './lib/components/router-outlet.component'; -export { AutofocusDirective as ɵt } from './lib/directives/autofocus.directive'; -export { InputEventDebounceDirective as ɵz } from './lib/directives/debounce.directive'; -export { EllipsisDirective as ɵu } from './lib/directives/ellipsis.directive'; +export { AutofocusDirective as ɵs } from './lib/directives/autofocus.directive'; +export { InputEventDebounceDirective as ɵba } from './lib/directives/debounce.directive'; +export { EllipsisDirective as ɵt } from './lib/directives/ellipsis.directive'; +export { ForDirective as ɵu } from './lib/directives/for.directive'; export { FormSubmitDirective as ɵv } from './lib/directives/form-submit.directive'; -export { PermissionDirective as ɵx } from './lib/directives/permission.directive'; -export { ClickEventStopPropagationDirective as ɵba } from './lib/directives/stop-propagation.directive'; -export { VisibilityDirective as ɵy } from './lib/directives/visibility.directive'; -export { ApiInterceptor as ɵbf } from './lib/interceptors/api.interceptor'; +export { PermissionDirective as ɵy } from './lib/directives/permission.directive'; +export { ClickEventStopPropagationDirective as ɵbb } from './lib/directives/stop-propagation.directive'; +export { VisibilityDirective as ɵz } from './lib/directives/visibility.directive'; +export { ApiInterceptor as ɵbh } from './lib/interceptors/api.interceptor'; export { LocalizationPipe as ɵw } from './lib/pipes/localization.pipe'; -export { ConfigPlugin as ɵbe, NGXS_CONFIG_PLUGIN_OPTIONS as ɵbd } from './lib/plugins/config/config.plugin'; -export { LocaleId as ɵbb, LocaleProvider as ɵbc } from './lib/providers/locale.provider'; +export { SortPipe as ɵx } from './lib/pipes/sort.pipe'; +export { ConfigPlugin as ɵbg, NGXS_CONFIG_PLUGIN_OPTIONS as ɵbf } from './lib/plugins/config/config.plugin'; +export { LocaleId as ɵbd, LocaleProvider as ɵbe } from './lib/providers/locale.provider'; export { ApplicationConfigurationService as ɵn } from './lib/services/application-configuration.service'; export { LocalizationService as ɵi } from './lib/services/localization.service'; export { ProfileService as ɵb } from './lib/services/profile.service'; export { RestService as ɵc } from './lib/services/rest.service'; -export { ConfigState as ɵs } from './lib/states'; export { ConfigState as ɵm } from './lib/states/config.state'; export { ProfileState as ɵa } from './lib/states/profile.state'; export { SessionState as ɵh } from './lib/states/session.state'; -export { getInitialData as ɵbg, localeInitializer as ɵbh } from './lib/utils/initial-utils'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJhYnAtbmcuY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsK3VCQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlGLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3hHLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLFNBQVMsSUFBSSxFQUFFLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRixPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDdkYsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEYsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGtDQUFrQyxJQUFJLEdBQUcsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsY0FBYyxJQUFJLEdBQUcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXpFLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUMsWUFBWSxJQUFJLEdBQUcsRUFBQywwQkFBMEIsSUFBSSxHQUFHLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RyxPQUFPLEVBQUMsUUFBUSxJQUFJLEdBQUcsRUFBQyxjQUFjLElBQUksR0FBRyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEYsT0FBTyxFQUFDLCtCQUErQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGNBQWMsSUFBSSxHQUFHLEVBQUMsaUJBQWlCLElBQUksR0FBRyxFQUFDLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7R2V0QXBwQ29uZmlndXJhdGlvbiBhcyDJtXAsUGF0Y2hSb3V0ZUJ5TmFtZSBhcyDJtW99IGZyb20gJy4vbGliL2FjdGlvbnMvY29uZmlnLmFjdGlvbnMnO1xuZXhwb3J0IHtDaGFuZ2VQYXNzd29yZCBhcyDJtWYsR2V0UHJvZmlsZSBhcyDJtWQsVXBkYXRlUHJvZmlsZSBhcyDJtWV9IGZyb20gJy4vbGliL2FjdGlvbnMvcHJvZmlsZS5hY3Rpb25zJztcbmV4cG9ydCB7U2V0TGFuZ3VhZ2UgYXMgybVqLFNldFRlbmFudCBhcyDJtWt9IGZyb20gJy4vbGliL2FjdGlvbnMvc2Vzc2lvbi5hY3Rpb25zJztcbmV4cG9ydCB7RHluYW1pY0xheW91dENvbXBvbmVudCBhcyDJtXJ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCB7Um91dGVyT3V0bGV0Q29tcG9uZW50IGFzIMm1cX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9yb3V0ZXItb3V0bGV0LmNvbXBvbmVudCc7XG5leHBvcnQge0F1dG9mb2N1c0RpcmVjdGl2ZSBhcyDJtXR9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYXV0b2ZvY3VzLmRpcmVjdGl2ZSc7XG5leHBvcnQge0lucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSBhcyDJtXp9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZGVib3VuY2UuZGlyZWN0aXZlJztcbmV4cG9ydCB7RWxsaXBzaXNEaXJlY3RpdmUgYXMgybV1fSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2VsbGlwc2lzLmRpcmVjdGl2ZSc7XG5leHBvcnQge0Zvcm1TdWJtaXREaXJlY3RpdmUgYXMgybV2fSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2Zvcm0tc3VibWl0LmRpcmVjdGl2ZSc7XG5leHBvcnQge1Blcm1pc3Npb25EaXJlY3RpdmUgYXMgybV4fSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3Blcm1pc3Npb24uZGlyZWN0aXZlJztcbmV4cG9ydCB7Q2xpY2tFdmVudFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSBhcyDJtWJhfSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3N0b3AtcHJvcGFnYXRpb24uZGlyZWN0aXZlJztcbmV4cG9ydCB7VmlzaWJpbGl0eURpcmVjdGl2ZSBhcyDJtXl9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvdmlzaWJpbGl0eS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtBcGlJbnRlcmNlcHRvciBhcyDJtWJmfSBmcm9tICcuL2xpYi9pbnRlcmNlcHRvcnMvYXBpLmludGVyY2VwdG9yJztcbmV4cG9ydCB7QUJQIGFzIMm1bCxQcm9maWxlIGFzIMm1Z30gZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCB7TG9jYWxpemF0aW9uUGlwZSBhcyDJtXd9IGZyb20gJy4vbGliL3BpcGVzL2xvY2FsaXphdGlvbi5waXBlJztcbmV4cG9ydCB7Q29uZmlnUGx1Z2luIGFzIMm1YmUsTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMgYXMgybViZH0gZnJvbSAnLi9saWIvcGx1Z2lucy9jb25maWcvY29uZmlnLnBsdWdpbic7XG5leHBvcnQge0xvY2FsZUlkIGFzIMm1YmIsTG9jYWxlUHJvdmlkZXIgYXMgybViY30gZnJvbSAnLi9saWIvcHJvdmlkZXJzL2xvY2FsZS5wcm92aWRlcic7XG5leHBvcnQge0FwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2UgYXMgybVufSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtMb2NhbGl6YXRpb25TZXJ2aWNlIGFzIMm1aX0gZnJvbSAnLi9saWIvc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtQcm9maWxlU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vbGliL3NlcnZpY2VzL3Byb2ZpbGUuc2VydmljZSc7XG5leHBvcnQge1Jlc3RTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9saWIvc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcbmV4cG9ydCB7Q29uZmlnU3RhdGUgYXMgybVzfSBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuZXhwb3J0IHtDb25maWdTdGF0ZSBhcyDJtW19IGZyb20gJy4vbGliL3N0YXRlcy9jb25maWcuc3RhdGUnO1xuZXhwb3J0IHtQcm9maWxlU3RhdGUgYXMgybVhfSBmcm9tICcuL2xpYi9zdGF0ZXMvcHJvZmlsZS5zdGF0ZSc7XG5leHBvcnQge1Nlc3Npb25TdGF0ZSBhcyDJtWh9IGZyb20gJy4vbGliL3N0YXRlcy9zZXNzaW9uLnN0YXRlJztcbmV4cG9ydCB7Z2V0SW5pdGlhbERhdGEgYXMgybViZyxsb2NhbGVJbml0aWFsaXplciBhcyDJtWJofSBmcm9tICcuL2xpYi91dGlscy9pbml0aWFsLXV0aWxzJzsiXX0= \ No newline at end of file +export { getInitialData as ɵbi, localeInitializer as ɵbj } from './lib/utils/initial-utils'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJhYnAtbmcuY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsdXhCQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RixPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RyxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxTQUFTLElBQUksRUFBRSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDaEYsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFDLDJCQUEyQixJQUFJLEdBQUcsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGtDQUFrQyxJQUFJLEdBQUcsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsY0FBYyxJQUFJLEdBQUcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXpFLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUMsUUFBUSxJQUFJLEVBQUUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxZQUFZLElBQUksR0FBRyxFQUFDLDBCQUEwQixJQUFJLEdBQUcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxRQUFRLElBQUksR0FBRyxFQUFDLGNBQWMsSUFBSSxHQUFHLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RixPQUFPLEVBQUMsK0JBQStCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDdkcsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxJQUFJLEdBQUcsRUFBQyxpQkFBaUIsSUFBSSxHQUFHLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtBYnN0cmFjdE5nTW9kZWxDb21wb25lbnQgYXMgybViY30gZnJvbSAnLi9saWIvYWJzdHJhY3RzL25nLW1vZGVsLmNvbXBvbmVudCc7XG5leHBvcnQge0dldEFwcENvbmZpZ3VyYXRpb24gYXMgybVwLFBhdGNoUm91dGVCeU5hbWUgYXMgybVvfSBmcm9tICcuL2xpYi9hY3Rpb25zL2NvbmZpZy5hY3Rpb25zJztcbmV4cG9ydCB7Q2hhbmdlUGFzc3dvcmQgYXMgybVmLEdldFByb2ZpbGUgYXMgybVkLFVwZGF0ZVByb2ZpbGUgYXMgybVlfSBmcm9tICcuL2xpYi9hY3Rpb25zL3Byb2ZpbGUuYWN0aW9ucyc7XG5leHBvcnQge1NldExhbmd1YWdlIGFzIMm1aixTZXRUZW5hbnQgYXMgybVrfSBmcm9tICcuL2xpYi9hY3Rpb25zL3Nlc3Npb24uYWN0aW9ucyc7XG5leHBvcnQge0R5bmFtaWNMYXlvdXRDb21wb25lbnQgYXMgybVyfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQge1JvdXRlck91dGxldENvbXBvbmVudCBhcyDJtXF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcm91dGVyLW91dGxldC5jb21wb25lbnQnO1xuZXhwb3J0IHtBdXRvZm9jdXNEaXJlY3RpdmUgYXMgybVzfSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xuZXhwb3J0IHtJbnB1dEV2ZW50RGVib3VuY2VEaXJlY3RpdmUgYXMgybViYX0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9kZWJvdW5jZS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtFbGxpcHNpc0RpcmVjdGl2ZSBhcyDJtXR9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZWxsaXBzaXMuZGlyZWN0aXZlJztcbmV4cG9ydCB7Rm9yRGlyZWN0aXZlIGFzIMm1dX0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9mb3IuZGlyZWN0aXZlJztcbmV4cG9ydCB7Rm9ybVN1Ym1pdERpcmVjdGl2ZSBhcyDJtXZ9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXQuZGlyZWN0aXZlJztcbmV4cG9ydCB7UGVybWlzc2lvbkRpcmVjdGl2ZSBhcyDJtXl9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvcGVybWlzc2lvbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHtDbGlja0V2ZW50U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIGFzIMm1YmJ9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvc3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHtWaXNpYmlsaXR5RGlyZWN0aXZlIGFzIMm1en0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy92aXNpYmlsaXR5LmRpcmVjdGl2ZSc7XG5leHBvcnQge0FwaUludGVyY2VwdG9yIGFzIMm1Ymh9IGZyb20gJy4vbGliL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3InO1xuZXhwb3J0IHtBQlAgYXMgybVsLFByb2ZpbGUgYXMgybVnfSBmcm9tICcuL2xpYi9tb2RlbHMnO1xuZXhwb3J0IHtMb2NhbGl6YXRpb25QaXBlIGFzIMm1d30gZnJvbSAnLi9saWIvcGlwZXMvbG9jYWxpemF0aW9uLnBpcGUnO1xuZXhwb3J0IHtTb3J0UGlwZSBhcyDJtXh9IGZyb20gJy4vbGliL3BpcGVzL3NvcnQucGlwZSc7XG5leHBvcnQge0NvbmZpZ1BsdWdpbiBhcyDJtWJnLE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TIGFzIMm1YmZ9IGZyb20gJy4vbGliL3BsdWdpbnMvY29uZmlnL2NvbmZpZy5wbHVnaW4nO1xuZXhwb3J0IHtMb2NhbGVJZCBhcyDJtWJkLExvY2FsZVByb3ZpZGVyIGFzIMm1YmV9IGZyb20gJy4vbGliL3Byb3ZpZGVycy9sb2NhbGUucHJvdmlkZXInO1xuZXhwb3J0IHtBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25TZXJ2aWNlIGFzIMm1bn0gZnJvbSAnLi9saWIvc2VydmljZXMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7TG9jYWxpemF0aW9uU2VydmljZSBhcyDJtWl9IGZyb20gJy4vbGliL3NlcnZpY2VzL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7UHJvZmlsZVNlcnZpY2UgYXMgybVifSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wcm9maWxlLnNlcnZpY2UnO1xuZXhwb3J0IHtSZXN0U2VydmljZSBhcyDJtWN9IGZyb20gJy4vbGliL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XG5leHBvcnQge0NvbmZpZ1N0YXRlIGFzIMm1bX0gZnJvbSAnLi9saWIvc3RhdGVzL2NvbmZpZy5zdGF0ZSc7XG5leHBvcnQge1Byb2ZpbGVTdGF0ZSBhcyDJtWF9IGZyb20gJy4vbGliL3N0YXRlcy9wcm9maWxlLnN0YXRlJztcbmV4cG9ydCB7U2Vzc2lvblN0YXRlIGFzIMm1aH0gZnJvbSAnLi9saWIvc3RhdGVzL3Nlc3Npb24uc3RhdGUnO1xuZXhwb3J0IHtnZXRJbml0aWFsRGF0YSBhcyDJtWJpLGxvY2FsZUluaXRpYWxpemVyIGFzIMm1Ymp9IGZyb20gJy4vbGliL3V0aWxzL2luaXRpYWwtdXRpbHMnOyJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/abstracts/index.js b/npm/ng-packs/dist/core/esm5/lib/abstracts/index.js new file mode 100644 index 0000000000..99c2fd89b9 --- /dev/null +++ b/npm/ng-packs/dist/core/esm5/lib/abstracts/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { AbstractNgModelComponent } from './ng-model.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvYWJzdHJhY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx5Q0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmctbW9kZWwuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/abstracts/ng-model.component.js b/npm/ng-packs/dist/core/esm5/lib/abstracts/ng-model.component.js new file mode 100644 index 0000000000..a43fa207b0 --- /dev/null +++ b/npm/ng-packs/dist/core/esm5/lib/abstracts/ng-model.component.js @@ -0,0 +1,126 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { ChangeDetectorRef, Component, Injector, Input } from '@angular/core'; +/** + * @template T + */ +var AbstractNgModelComponent = /** @class */ (function () { + function AbstractNgModelComponent(injector) { + this.injector = injector; + this.cdRef = injector.get((/** @type {?} */ (ChangeDetectorRef))); + } + Object.defineProperty(AbstractNgModelComponent.prototype, "value", { + get: /** + * @return {?} + */ + function () { + return this._value; + }, + set: /** + * @param {?} value + * @return {?} + */ + function (value) { + this._value = value; + this.notifyValueChange(); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + AbstractNgModelComponent.prototype.notifyValueChange = /** + * @return {?} + */ + function () { + if (this.onChange) { + this.onChange(this.value); + } + }; + /** + * @param {?} value + * @return {?} + */ + AbstractNgModelComponent.prototype.writeValue = /** + * @param {?} value + * @return {?} + */ + function (value) { + var _this = this; + this._value = value; + setTimeout((/** + * @return {?} + */ + function () { return _this.cdRef.detectChanges(); }), 0); + }; + /** + * @param {?} fn + * @return {?} + */ + AbstractNgModelComponent.prototype.registerOnChange = /** + * @param {?} fn + * @return {?} + */ + function (fn) { + this.onChange = fn; + }; + /** + * @param {?} fn + * @return {?} + */ + AbstractNgModelComponent.prototype.registerOnTouched = /** + * @param {?} fn + * @return {?} + */ + function (fn) { + this.onTouched = fn; + }; + /** + * @param {?} isDisabled + * @return {?} + */ + AbstractNgModelComponent.prototype.setDisabledState = /** + * @param {?} isDisabled + * @return {?} + */ + function (isDisabled) { + this.disabled = isDisabled; + }; + AbstractNgModelComponent.decorators = [ + { type: Component, args: [{ template: '' }] } + ]; + /** @nocollapse */ + AbstractNgModelComponent.ctorParameters = function () { return [ + { type: Injector } + ]; }; + AbstractNgModelComponent.propDecorators = { + disabled: [{ type: Input }], + value: [{ type: Input }] + }; + return AbstractNgModelComponent; +}()); +export { AbstractNgModelComponent }; +if (false) { + /** @type {?} */ + AbstractNgModelComponent.prototype.disabled; + /** @type {?} */ + AbstractNgModelComponent.prototype.onChange; + /** @type {?} */ + AbstractNgModelComponent.prototype.onTouched; + /** + * @type {?} + * @protected + */ + AbstractNgModelComponent.prototype._value; + /** + * @type {?} + * @protected + */ + AbstractNgModelComponent.prototype.cdRef; + /** @type {?} */ + AbstractNgModelComponent.prototype.injector; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbW9kZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2Fic3RyYWN0cy9uZy1tb2RlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBUSxNQUFNLGVBQWUsQ0FBQzs7OztBQUVwRjtJQXFCRSxrQ0FBbUIsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQW9CLG1CQUFBLGlCQUFpQixFQUEyQixDQUFDLENBQUM7SUFDN0YsQ0FBQztJQWxCRCxzQkFDSSwyQ0FBSzs7OztRQUtUO1lBQ0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUM7Ozs7O1FBUkQsVUFDVSxLQUFRO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNCLENBQUM7OztPQUFBOzs7O0lBZ0JELG9EQUFpQjs7O0lBQWpCO1FBQ0UsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzs7Ozs7SUFFRCw2Q0FBVTs7OztJQUFWLFVBQVcsS0FBUTtRQUFuQixpQkFHQztRQUZDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLFVBQVU7OztRQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxFQUExQixDQUEwQixHQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7O0lBRUQsbURBQWdCOzs7O0lBQWhCLFVBQWlCLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQzs7Ozs7SUFFRCxvREFBaUI7Ozs7SUFBakIsVUFBa0IsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7OztJQUVELG1EQUFnQjs7OztJQUFoQixVQUFpQixVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDOztnQkE5Q0YsU0FBUyxTQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs7OztnQkFGWSxRQUFROzs7MkJBSTVDLEtBQUs7d0JBR0wsS0FBSzs7SUEwQ1IsK0JBQUM7Q0FBQSxBQS9DRCxJQStDQztTQTlDWSx3QkFBd0I7OztJQUNuQyw0Q0FDa0I7O0lBWWxCLDRDQUEyQjs7SUFDM0IsNkNBQW9COzs7OztJQUVwQiwwQ0FBb0I7Ozs7O0lBQ3BCLHlDQUFtQzs7SUFFdkIsNENBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0TmdNb2RlbENvbXBvbmVudDxUID0gYW55PiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLm5vdGlmeVZhbHVlQ2hhbmdlKCk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogVCkgPT4ge307XG4gIG9uVG91Y2hlZDogKCkgPT4ge307XG5cbiAgcHJvdGVjdGVkIF92YWx1ZTogVDtcbiAgcHJvdGVjdGVkIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy5jZFJlZiA9IGluamVjdG9yLmdldDxDaGFuZ2VEZXRlY3RvclJlZj4oQ2hhbmdlRGV0ZWN0b3JSZWYgYXMgVHlwZTxDaGFuZ2VEZXRlY3RvclJlZj4pO1xuICB9XG5cbiAgbm90aWZ5VmFsdWVDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKSwgMCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/components/dynamic-layout.component.js b/npm/ng-packs/dist/core/esm5/lib/components/dynamic-layout.component.js index 473eeaf8a5..8e9f93d6e5 100644 --- a/npm/ng-packs/dist/core/esm5/lib/components/dynamic-layout.component.js +++ b/npm/ng-packs/dist/core/esm5/lib/components/dynamic-layout.component.js @@ -4,17 +4,35 @@ */ import * as tslib_1 from "tslib"; import { Component } from '@angular/core'; -import { NavigationEnd, Router } from '@angular/router'; +import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; import { Select, Store } from '@ngxs/store'; import { Observable } from 'rxjs'; -import { ConfigState } from '../states'; -import { takeUntilDestroy } from '../utils'; import snq from 'snq'; +import { ConfigState } from '../states/config.state'; +import { takeUntilDestroy } from '../utils/rxjs-utils'; var DynamicLayoutComponent = /** @class */ (function () { - function DynamicLayoutComponent(router, store) { + function DynamicLayoutComponent(router, route, store) { var _this = this; this.router = router; + this.route = route; this.store = store; + var _a = this.store.selectSnapshot(ConfigState.getAll), layouts = _a.requirements.layouts, routes = _a.routes; + if ((this.route.snapshot.data || {}).layout) { + this.layout = layouts + .filter((/** + * @param {?} l + * @return {?} + */ + function (l) { return !!l; })) + .find((/** + * @param {?} l + * @return {?} + */ + function (l) { return snq((/** + * @return {?} + */ + function () { return l.type.toLowerCase().indexOf(_this.route.snapshot.data.layout); }), -1) > -1; })); + } this.router.events.pipe(takeUntilDestroy(this)).subscribe((/** * @param {?} event * @return {?} @@ -22,14 +40,15 @@ var DynamicLayoutComponent = /** @class */ (function () { function (event) { if (event instanceof NavigationEnd) { var segments = _this.router.parseUrl(event.url).root.children.primary.segments; - var _a = _this.store.selectSnapshot(ConfigState.getAll), layouts = _a.requirements.layouts, routes = _a.routes; /** @type {?} */ - var layout_1 = findLayout(segments, routes); - _this.layout = layouts.filter((/** + var layout_1 = (_this.route.snapshot.data || {}).layout || findLayout(segments, routes); + _this.layout = layouts + .filter((/** * @param {?} l * @return {?} */ - function (l) { return !!l; })).find((/** + function (l) { return !!l; })) + .find((/** * @param {?} l * @return {?} */ @@ -56,6 +75,7 @@ var DynamicLayoutComponent = /** @class */ (function () { /** @nocollapse */ DynamicLayoutComponent.ctorParameters = function () { return [ { type: Router }, + { type: ActivatedRoute }, { type: Store } ]; }; tslib_1.__decorate([ @@ -75,6 +95,11 @@ if (false) { * @private */ DynamicLayoutComponent.prototype.router; + /** + * @type {?} + * @private + */ + DynamicLayoutComponent.prototype.route; /** * @type {?} * @private @@ -120,4 +145,4 @@ function findLayout(segments, routes) { } return layout; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUV0QjtJQWVFLGdDQUFvQixNQUFjLEVBQVUsS0FBWTtRQUF4RCxpQkFjQztRQWRtQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxLQUFLO1lBQzdELElBQUksS0FBSyxZQUFZLGFBQWEsRUFBRTtnQkFDMUIsSUFBQSwwRUFBUTtnQkFDVixJQUFBLG1EQUcyQyxFQUYvQixpQ0FBTyxFQUN2QixrQkFDK0M7O29CQUUzQyxRQUFNLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7Z0JBRTNDLEtBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU07Ozs7Z0JBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFILENBQUcsRUFBQyxDQUFDLElBQUk7Ozs7Z0JBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxHQUFHOzs7Z0JBQUMsY0FBTSxPQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQU0sQ0FBQyxFQUFwQyxDQUFvQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQXhELENBQXdELEVBQUMsQ0FBQzthQUM1RztRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELDRDQUFXOzs7SUFBWCxjQUFlLENBQUM7O2dCQS9CakIsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxvU0FLVDtpQkFDRjs7OztnQkFqQnVCLE1BQU07Z0JBQ2IsS0FBSzs7SUFtQnBCO1FBREMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7MENBQzVCLFVBQVU7aUVBQXNCO0lBcUJqRCw2QkFBQztDQUFBLEFBaENELElBZ0NDO1NBdkJZLHNCQUFzQjs7O0lBQ2pDLCtDQUMrQzs7SUFFL0Msd0NBQWtCOzs7OztJQUVOLHdDQUFzQjs7Ozs7SUFBRSx1Q0FBb0I7Ozs7Ozs7QUFtQjFELFNBQVMsVUFBVSxDQUFDLFFBQXNCLEVBQUUsTUFBdUI7O1FBQzdELE1BQU0sc0JBQW9COztRQUV4QixLQUFLLEdBQUcsTUFBTTtTQUNqQixNQUFNOzs7OztJQUFDLFVBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSyxPQUFBLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGtCQUFLLEdBQUcsRUFBSyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsa0JBQUssR0FBRyxHQUFFLEdBQUcsRUFBQyxDQUFDLEVBQXpELENBQXlELEdBQUUsRUFBRSxDQUFDO1NBQ25GLElBQUk7Ozs7SUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBM0IsQ0FBMkIsRUFBQztJQUV6QyxJQUFJLEtBQUssRUFBRTtRQUNULElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNoQixNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUN2QjtRQUVELElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTs7Z0JBQzVELEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUk7Ozs7WUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBM0IsQ0FBMkIsRUFBQztZQUVuRSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUN6QixNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQzthQUN2QjtTQUNGO0tBQ0Y7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciwgVXJsU2VnbWVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZUxheW91dFR5cGUgfSBmcm9tICcuLi9lbnVtcyc7XG5pbXBvcnQgeyBBQlAsIENvbmZpZyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHNucSBmcm9tICdzbnEnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtZHluYW1pYy1sYXlvdXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYXlvdXQgPyBjb21wb25lbnRPdXRsZXQgOiByb3V0ZXJPdXRsZXRcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjcm91dGVyT3V0bGV0Pjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD48L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50T3V0bGV0PjxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwibGF5b3V0XCI+PC9uZy1jb250YWluZXI+PC9uZy10ZW1wbGF0ZT5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBTZWxlY3QoQ29uZmlnU3RhdGUuZ2V0T25lKCdyZXF1aXJlbWVudHMnKSlcbiAgcmVxdWlyZW1lbnRzJDogT2JzZXJ2YWJsZTxDb25maWcuUmVxdWlyZW1lbnRzPjtcblxuICBsYXlvdXQ6IFR5cGU8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge1xuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKHRha2VVbnRpbERlc3Ryb3kodGhpcykpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIGNvbnN0IHsgc2VnbWVudHMgfSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKGV2ZW50LnVybCkucm9vdC5jaGlsZHJlbi5wcmltYXJ5O1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgcmVxdWlyZW1lbnRzOiB7IGxheW91dHMgfSxcbiAgICAgICAgICByb3V0ZXMsXG4gICAgICAgIH0gPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KENvbmZpZ1N0YXRlLmdldEFsbCk7XG5cbiAgICAgICAgY29uc3QgbGF5b3V0ID0gZmluZExheW91dChzZWdtZW50cywgcm91dGVzKTtcblxuICAgICAgICB0aGlzLmxheW91dCA9IGxheW91dHMuZmlsdGVyKGwgPT4gISFsKS5maW5kKGwgPT4gc25xKCgpID0+IGwudHlwZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YobGF5b3V0KSwgLTEpID4gLTEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7fVxufVxuXG5mdW5jdGlvbiBmaW5kTGF5b3V0KHNlZ21lbnRzOiBVcmxTZWdtZW50W10sIHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdKTogZUxheW91dFR5cGUge1xuICBsZXQgbGF5b3V0ID0gZUxheW91dFR5cGUuZW1wdHk7XG5cbiAgY29uc3Qgcm91dGUgPSByb3V0ZXNcbiAgICAucmVkdWNlKChhY2MsIHZhbCkgPT4gKHZhbC53cmFwcGVyID8gWy4uLmFjYywgLi4udmFsLmNoaWxkcmVuXSA6IFsuLi5hY2MsIHZhbF0pLCBbXSlcbiAgICAuZmluZChyID0+IHIucGF0aCA9PT0gc2VnbWVudHNbMF0ucGF0aCk7XG5cbiAgaWYgKHJvdXRlKSB7XG4gICAgaWYgKHJvdXRlLmxheW91dCkge1xuICAgICAgbGF5b3V0ID0gcm91dGUubGF5b3V0O1xuICAgIH1cblxuICAgIGlmIChyb3V0ZS5jaGlsZHJlbiAmJiByb3V0ZS5jaGlsZHJlbi5sZW5ndGggJiYgc2VnbWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgY2hpbGQgPSByb3V0ZS5jaGlsZHJlbi5maW5kKGMgPT4gYy5wYXRoID09PSBzZWdtZW50c1sxXS5wYXRoKTtcblxuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLmxheW91dCkge1xuICAgICAgICBsYXlvdXQgPSBjaGlsZC5sYXlvdXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxheW91dDtcbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFjLE1BQU0saUJBQWlCLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFJdEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZEO0lBZUUsZ0NBQW9CLE1BQWMsRUFBVSxLQUFxQixFQUFVLEtBQVk7UUFBdkYsaUJBdUJDO1FBdkJtQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQy9FLElBQUEsa0RBRzJDLEVBRi9CLGlDQUFPLEVBQ3ZCLGtCQUMrQztRQUVqRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU87aUJBQ2xCLE1BQU07Ozs7WUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLEVBQUgsQ0FBRyxFQUFDO2lCQUNoQixJQUFJOzs7O1lBQUMsVUFBQyxDQUFNLElBQUssT0FBQSxHQUFHOzs7WUFBQyxjQUFN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QUVuRSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUN6QixNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQzthQUN2QjtTQUNGO0tBQ0Y7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBVcmxTZWdtZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJy4uL2VudW1zL2NvbW1vbic7XG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlnJztcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscy9jb21tb24nO1xuaW1wb3J0IHsgQ29uZmlnU3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMvY29uZmlnLnN0YXRlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3kgfSBmcm9tICcuLi91dGlscy9yeGpzLXV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLWR5bmFtaWMtbGF5b3V0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGF5b3V0ID8gY29tcG9uZW50T3V0bGV0IDogcm91dGVyT3V0bGV0XCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3JvdXRlck91dGxldD48cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+PC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudE91dGxldD48bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImxheW91dFwiPjwvbmctY29udGFpbmVyPjwvbmctdGVtcGxhdGU+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAU2VsZWN0KENvbmZpZ1N0YXRlLmdldE9uZSgncmVxdWlyZW1lbnRzJykpXG4gIHJlcXVpcmVtZW50cyQ6IE9ic2VydmFibGU8Q29uZmlnLlJlcXVpcmVtZW50cz47XG5cbiAgbGF5b3V0OiBUeXBlPGFueT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgY29uc3Qge1xuICAgICAgcmVxdWlyZW1lbnRzOiB7IGxheW91dHMgfSxcbiAgICAgIHJvdXRlcyxcbiAgICB9ID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChDb25maWdTdGF0ZS5nZXRBbGwpO1xuXG4gICAgaWYgKCh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEgfHwge30pLmxheW91dCkge1xuICAgICAgdGhpcy5sYXlvdXQgPSBsYXlvdXRzXG4gICAgICAgIC5maWx0ZXIobCA9PiAhIWwpXG4gICAgICAgIC5maW5kKChsOiBhbnkpID0+IHNucSgoKSA9PiBsLnR5cGUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5sYXlvdXQpLCAtMSkgPiAtMSk7XG4gICAgfVxuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUodGFrZVVudGlsRGVzdHJveSh0aGlzKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgY29uc3QgeyBzZWdtZW50cyB9ID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwoZXZlbnQudXJsKS5yb290LmNoaWxkcmVuLnByaW1hcnk7XG5cbiAgICAgICAgY29uc3QgbGF5b3V0ID0gKHRoaXMucm91dGUuc25hcHNob3QuZGF0YSB8fCB7fSkubGF5b3V0IHx8IGZpbmRMYXlvdXQoc2VnbWVudHMsIHJvdXRlcyk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXQgPSBsYXlvdXRzXG4gICAgICAgICAgLmZpbHRlcihsID0+ICEhbClcbiAgICAgICAgICAuZmluZCgobDogYW55KSA9PiBzbnEoKCkgPT4gbC50eXBlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihsYXlvdXQpLCAtMSkgPiAtMSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHt9XG59XG5cbmZ1bmN0aW9uIGZpbmRMYXlvdXQoc2VnbWVudHM6IFVybFNlZ21lbnRbXSwgcm91dGVzOiBBQlAuRnVsbFJvdXRlW10pOiBlTGF5b3V0VHlwZSB7XG4gIGxldCBsYXlvdXQgPSBlTGF5b3V0VHlwZS5lbXB0eTtcblxuICBjb25zdCByb3V0ZSA9IHJvdXRlc1xuICAgIC5yZWR1Y2UoKGFjYywgdmFsKSA9PiAodmFsLndyYXBwZXIgPyBbLi4uYWNjLCAuLi52YWwuY2hpbGRyZW5dIDogWy4uLmFjYywgdmFsXSksIFtdKVxuICAgIC5maW5kKHIgPT4gci5wYXRoID09PSBzZWdtZW50c1swXS5wYXRoKTtcblxuICBpZiAocm91dGUpIHtcbiAgICBpZiAocm91dGUubGF5b3V0KSB7XG4gICAgICBsYXlvdXQgPSByb3V0ZS5sYXlvdXQ7XG4gICAgfVxuXG4gICAgaWYgKHJvdXRlLmNoaWxkcmVuICYmIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCAmJiBzZWdtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBjaGlsZCA9IHJvdXRlLmNoaWxkcmVuLmZpbmQoYyA9PiBjLnBhdGggPT09IHNlZ21lbnRzWzFdLnBhdGgpO1xuXG4gICAgICBpZiAoY2hpbGQgJiYgY2hpbGQubGF5b3V0KSB7XG4gICAgICAgIGxheW91dCA9IGNoaWxkLmxheW91dDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbGF5b3V0O1xufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/core.module.js b/npm/ng-packs/dist/core/esm5/lib/core.module.js index 6dbc7ab22d..486331fde3 100644 --- a/npm/ng-packs/dist/core/esm5/lib/core.module.js +++ b/npm/ng-packs/dist/core/esm5/lib/core.module.js @@ -21,12 +21,15 @@ import { ClickEventStopPropagationDirective } from './directives/stop-propagatio import { VisibilityDirective } from './directives/visibility.directive'; import { ApiInterceptor } from './interceptors/api.interceptor'; import { LocalizationPipe } from './pipes/localization.pipe'; +import { SortPipe } from './pipes/sort.pipe'; import { LocaleProvider } from './providers/locale.provider'; import { ConfigState } from './states/config.state'; import { ProfileState } from './states/profile.state'; import { SessionState } from './states/session.state'; import { getInitialData, localeInitializer } from './utils/initial-utils'; import { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config/config.plugin'; +import { ForDirective } from './directives/for.directive'; +import { AbstractNgModelComponent } from './abstracts/ng-model.component'; var CoreModule = /** @class */ (function () { function CoreModule() { } @@ -90,12 +93,15 @@ var CoreModule = /** @class */ (function () { DynamicLayoutComponent, AutofocusDirective, EllipsisDirective, + ForDirective, FormSubmitDirective, LocalizationPipe, + SortPipe, PermissionDirective, VisibilityDirective, InputEventDebounceDirective, ClickEventStopPropagationDirective, + AbstractNgModelComponent, ], exports: [ CommonModule, @@ -107,13 +113,16 @@ var CoreModule = /** @class */ (function () { DynamicLayoutComponent, AutofocusDirective, EllipsisDirective, + ForDirective, FormSubmitDirective, LocalizationPipe, + SortPipe, PermissionDirective, VisibilityDirective, InputEventDebounceDirective, LocalizationPipe, ClickEventStopPropagationDirective, + AbstractNgModelComponent, ], providers: [LocalizationPipe], entryComponents: [RouterOutletComponent, DynamicLayoutComponent], @@ -122,4 +131,4 @@ var CoreModule = /** @class */ (function () { return CoreModule; }()); export { CoreModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDN0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTFGO0lBQUE7SUErRUEsQ0FBQzs7Ozs7SUFsQ1Esa0JBQU87Ozs7SUFBZCxVQUFlLE9BQXdCO1FBQXhCLHdCQUFBLEVBQUEsNkJBQVUsRUFBRSxFQUFZO1FBQ3JDLE9BQU87WUFDTCxRQUFRLEVBQUUsVUFBVTtZQUNwQixTQUFTLEVBQUU7Z0JBQ1QsY0FBYztnQkFDZDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSwwQkFBMEI7b0JBQ25DLFFBQVEsRUFBRSxPQUFPO2lCQUNsQjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLEtBQUssRUFBRSxJQUFJO29CQUNYLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQztvQkFDaEIsVUFBVSxFQUFFLGNBQWM7aUJBQzNCO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixLQUFLLEVBQUUsSUFBSTtvQkFDWCxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUM7b0JBQ2hCLFVBQVUsRUFBRSxpQkFBaUI7aUJBQzlCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7Z0JBOUVGLFFBQVEsU0FBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7d0JBQ2hFLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsQ0FBQzt3QkFDeEQsc0JBQXNCLENBQUMsT0FBTyxFQUFFO3dCQUNoQyxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0QixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQiwyQkFBMkI7d0JBQzNCLGtDQUFrQztxQkFDbkM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3dCQUMzQixnQkFBZ0I7d0JBQ2hCLGtDQUFrQztxQkFDbkM7b0JBQ0QsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzdCLGVBQWUsRUFBRSxDQUFDLHFCQUFxQixFQUFFLHNCQUFzQixDQUFDO2lCQUNqRTs7SUFvQ0QsaUJBQUM7Q0FBQSxBQS9FRCxJQStFQztTQW5DWSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUsIEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3RvciwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5neHNSb3V0ZXJQbHVnaW5Nb2R1bGUgfSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luJztcbmltcG9ydCB7IE5neHNTdG9yYWdlUGx1Z2luTW9kdWxlIH0gZnJvbSAnQG5neHMvc3RvcmFnZS1wbHVnaW4nO1xuaW1wb3J0IHsgTmd4c01vZHVsZSwgTkdYU19QTFVHSU5TIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgRHluYW1pY0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm91dGVyT3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JvdXRlci1vdXRsZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9hdXRvZm9jdXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IElucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kZWJvdW5jZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWxsaXBzaXNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZWxsaXBzaXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1TdWJtaXREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBlcm1pc3Npb25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcGVybWlzc2lvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2xpY2tFdmVudFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zdG9wLXByb3BhZ2F0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWaXNpYmlsaXR5RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Zpc2liaWxpdHkuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFwaUludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvYXBpLmludGVyY2VwdG9yJztcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4vbW9kZWxzL2NvbW1vbic7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9sb2NhbGl6YXRpb24ucGlwZSc7XG5pbXBvcnQgeyBMb2NhbGVQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2xvY2FsZS5wcm92aWRlcic7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4vc3RhdGVzL2NvbmZpZy5zdGF0ZSc7XG5pbXBvcnQgeyBQcm9maWxlU3RhdGUgfSBmcm9tICcuL3N0YXRlcy9wcm9maWxlLnN0YXRlJztcbmltcG9ydCB7IFNlc3Npb25TdGF0ZSB9IGZyb20gJy4vc3RhdGVzL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHsgZ2V0SW5pdGlhbERhdGEsIGxvY2FsZUluaXRpYWxpemVyIH0gZnJvbSAnLi91dGlscy9pbml0aWFsLXV0aWxzJztcbmltcG9ydCB7IENvbmZpZ1BsdWdpbiwgTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMgfSBmcm9tICcuL3BsdWdpbnMvY29uZmlnL2NvbmZpZy5wbHVnaW4nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgTmd4c01vZHVsZS5mb3JGZWF0dXJlKFtQcm9maWxlU3RhdGUsIFNlc3Npb25TdGF0ZSwgQ29uZmlnU3RhdGVdKSxcbiAgICBOZ3hzU3RvcmFnZVBsdWdpbk1vZHVsZS5mb3JSb290KHsga2V5OiAnU2Vzc2lvblN0YXRlJyB9KSxcbiAgICBOZ3hzUm91dGVyUGx1Z2luTW9kdWxlLmZvclJvb3QoKSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUm91dGVyT3V0bGV0Q29tcG9uZW50LFxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlLFxuICAgIEVsbGlwc2lzRGlyZWN0aXZlLFxuICAgIEZvcm1TdWJtaXREaXJlY3RpdmUsXG4gICAgTG9jYWxpemF0aW9uUGlwZSxcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxuICAgIFZpc2liaWxpdHlEaXJlY3RpdmUsXG4gICAgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlLFxuICAgIENsaWNrRXZlbnRTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBSb3V0ZXJPdXRsZXRDb21wb25lbnQsXG4gICAgRHluYW1pY0xheW91dENvbXBvbmVudCxcbiAgICBBdXRvZm9jdXNEaXJlY3RpdmUsXG4gICAgRWxsaXBzaXNEaXJlY3RpdmUsXG4gICAgRm9ybVN1Ym1pdERpcmVjdGl2ZSxcbiAgICBMb2NhbGl6YXRpb25QaXBlLFxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXG4gICAgVmlzaWJpbGl0eURpcmVjdGl2ZSxcbiAgICBJbnB1dEV2ZW50RGVib3VuY2VEaXJlY3RpdmUsXG4gICAgTG9jYWxpemF0aW9uUGlwZSxcbiAgICBDbGlja0V2ZW50U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxuICBdLFxuICBwcm92aWRlcnM6IFtMb2NhbGl6YXRpb25QaXBlXSxcbiAgZW50cnlDb21wb25lbnRzOiBbUm91dGVyT3V0bGV0Q29tcG9uZW50LCBEeW5hbWljTGF5b3V0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KG9wdGlvbnMgPSB7fSBhcyBBQlAuUm9vdCk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQ29yZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBMb2NhbGVQcm92aWRlcixcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWFNfUExVR0lOUyxcbiAgICAgICAgICB1c2VDbGFzczogQ29uZmlnUGx1Z2luLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMsXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgICB1c2VDbGFzczogQXBpSW50ZXJjZXB0b3IsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgZGVwczogW0luamVjdG9yXSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBnZXRJbml0aWFsRGF0YSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICBkZXBzOiBbSW5qZWN0b3JdLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsZUluaXRpYWxpemVyLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDN0YsT0FB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LG1CQUFtQjt3QkFDbkIsMkJBQTJCO3dCQUMzQixnQkFBZ0I7d0JBQ2hCLGtDQUFrQzt3QkFDbEMsd0JBQXdCO3FCQUN6QjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDN0IsZUFBZSxFQUFFLENBQUMscUJBQXFCLEVBQUUsc0JBQXNCLENBQUM7aUJBQ2pFOztJQW9DRCxpQkFBQztDQUFBLEFBckZELElBcUZDO1NBbkNZLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSwgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmd4c1JvdXRlclBsdWdpbk1vZHVsZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgTmd4c1N0b3JhZ2VQbHVnaW5Nb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yYWdlLXBsdWdpbic7XG5pbXBvcnQgeyBOZ3hzTW9kdWxlLCBOR1hTX1BMVUdJTlMgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBEeW5hbWljTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3V0ZXJPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm91dGVyLW91dGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b2ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RlYm91bmNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFbGxpcHNpc0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9lbGxpcHNpcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9ybVN1Ym1pdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDbGlja0V2ZW50U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3N0b3AtcHJvcGFnYXRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFZpc2liaWxpdHlEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmlzaWJpbGl0eS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXBpSW50ZXJjZXB0b3IgfSBmcm9tICcuL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3InO1xuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi9tb2RlbHMvY29tbW9uJztcbmltcG9ydCB7IExvY2FsaXphdGlvblBpcGUgfSBmcm9tICcuL3BpcGVzL2xvY2FsaXphdGlvbi5waXBlJztcbmltcG9ydCB7IFNvcnRQaXBlIH0gZnJvbSAnLi9waXBlcy9zb3J0LnBpcGUnO1xuaW1wb3J0IHsgTG9jYWxlUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9sb2NhbGUucHJvdmlkZXInO1xuaW1wb3J0IHsgQ29uZmlnU3RhdGUgfSBmcm9tICcuL3N0YXRlcy9jb25maWcuc3RhdGUnO1xuaW1wb3J0IHsgUHJvZmlsZVN0YXRlIH0gZnJvbSAnLi9zdGF0ZXMvcHJvZmlsZS5zdGF0ZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuL3N0YXRlcy9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7IGdldEluaXRpYWxEYXRhLCBsb2NhbGVJbml0aWFsaXplciB9IGZyb20gJy4vdXRpbHMvaW5pdGlhbC11dGlscyc7XG5pbXBvcnQgeyBDb25maWdQbHVnaW4sIE5HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TIH0gZnJvbSAnLi9wbHVnaW5zL2NvbmZpZy9jb25maWcucGx1Z2luJztcbmltcG9ydCB7IEZvckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3RzL25nLW1vZGVsLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBOZ3hzTW9kdWxlLmZvckZlYXR1cmUoW1Byb2ZpbGVTdGF0ZSwgU2Vzc2lvblN0YXRlLCBDb25maWdTdGF0ZV0pLFxuICAgIE5neHNTdG9yYWdlUGx1Z2luTW9kdWxlLmZvclJvb3QoeyBrZXk6ICdTZXNzaW9uU3RhdGUnIH0pLFxuICAgIE5neHNSb3V0ZXJQbHVnaW5Nb2R1bGUuZm9yUm9vdCgpLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBSb3V0ZXJPdXRsZXRDb21wb25lbnQsXG4gICAgRHluYW1pY0xheW91dENvbXBvbmVudCxcbiAgICBBdXRvZm9jdXNEaXJlY3RpdmUsXG4gICAgRWxsaXBzaXNEaXJlY3RpdmUsXG4gICAgRm9yRGlyZWN0aXZlLFxuICAgIEZvcm1TdWJtaXREaXJlY3RpdmUsXG4gICAgTG9jYWxpemF0aW9uUGlwZSxcbiAgICBTb3J0UGlwZSxcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxuICAgIFZpc2liaWxpdHlEaXJlY3RpdmUsXG4gICAgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlLFxuICAgIENsaWNrRXZlbnRTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gICAgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgUm91dGVyT3V0bGV0Q29tcG9uZW50LFxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlLFxuICAgIEVsbGlwc2lzRGlyZWN0aXZlLFxuICAgIEZvckRpcmVjdGl2ZSxcbiAgICBGb3JtU3VibWl0RGlyZWN0aXZlLFxuICAgIExvY2FsaXphdGlvblBpcGUsXG4gICAgU29ydFBpcGUsXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcbiAgICBWaXNpYmlsaXR5RGlyZWN0aXZlLFxuICAgIElucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSxcbiAgICBMb2NhbGl6YXRpb25QaXBlLFxuICAgIENsaWNrRXZlbnRTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gICAgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtMb2NhbGl6YXRpb25QaXBlXSxcbiAgZW50cnlDb21wb25lbnRzOiBbUm91dGVyT3V0bGV0Q29tcG9uZW50LCBEeW5hbWljTGF5b3V0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KG9wdGlvbnMgPSB7fSBhcyBBQlAuUm9vdCk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQ29yZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBMb2NhbGVQcm92aWRlcixcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWFNfUExVR0lOUyxcbiAgICAgICAgICB1c2VDbGFzczogQ29uZmlnUGx1Z2luLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMsXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgICB1c2VDbGFzczogQXBpSW50ZXJjZXB0b3IsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgZGVwczogW0luamVjdG9yXSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBnZXRJbml0aWFsRGF0YSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICBkZXBzOiBbSW5qZWN0b3JdLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsZUluaXRpYWxpemVyLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/directives/for.directive.js b/npm/ng-packs/dist/core/esm5/lib/directives/for.directive.js new file mode 100644 index 0000000000..6b5818a9ab --- /dev/null +++ b/npm/ng-packs/dist/core/esm5/lib/directives/for.directive.js @@ -0,0 +1,298 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Directive, Input, IterableDiffers, TemplateRef, ViewContainerRef, } from '@angular/core'; +import compare from 'just-compare'; +import clone from 'just-clone'; +var AbpForContext = /** @class */ (function () { + function AbpForContext($implicit, index, count, list) { + this.$implicit = $implicit; + this.index = index; + this.count = count; + this.list = list; + } + return AbpForContext; +}()); +if (false) { + /** @type {?} */ + AbpForContext.prototype.$implicit; + /** @type {?} */ + AbpForContext.prototype.index; + /** @type {?} */ + AbpForContext.prototype.count; + /** @type {?} */ + AbpForContext.prototype.list; +} +var RecordView = /** @class */ (function () { + function RecordView(record, view) { + this.record = record; + this.view = view; + } + return RecordView; +}()); +if (false) { + /** @type {?} */ + RecordView.prototype.record; + /** @type {?} */ + RecordView.prototype.view; +} +var ForDirective = /** @class */ (function () { + function ForDirective(tempRef, vcRef, differs) { + this.tempRef = tempRef; + this.vcRef = vcRef; + this.differs = differs; + } + Object.defineProperty(ForDirective.prototype, "compareFn", { + get: /** + * @return {?} + */ + function () { + return this.compareBy || compare; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ForDirective.prototype, "trackByFn", { + get: /** + * @return {?} + */ + function () { + return this.trackBy || ((/** + * @param {?} index + * @param {?} item + * @return {?} + */ + function (index, item) { return ((/** @type {?} */ (item))).id || index; })); + }, + enumerable: true, + configurable: true + }); + /** + * @private + * @param {?} changes + * @return {?} + */ + ForDirective.prototype.iterateOverAppliedOperations = /** + * @private + * @param {?} changes + * @return {?} + */ + function (changes) { + var _this = this; + /** @type {?} */ + var rw = []; + changes.forEachOperation((/** + * @param {?} record + * @param {?} previousIndex + * @param {?} currentIndex + * @return {?} + */ + function (record, previousIndex, currentIndex) { + if (record.previousIndex == null) { + /** @type {?} */ + var view = _this.vcRef.createEmbeddedView(_this.tempRef, new AbpForContext(null, -1, -1, _this.items), currentIndex); + rw.push(new RecordView(record, view)); + } + else if (currentIndex == null) { + _this.vcRef.remove(previousIndex); + } + else { + /** @type {?} */ + var view = _this.vcRef.get(previousIndex); + _this.vcRef.move(view, currentIndex); + rw.push(new RecordView(record, (/** @type {?} */ (view)))); + } + })); + for (var i = 0, l = rw.length; i < l; i++) { + rw[i].view.context.$implicit = rw[i].record.item; + } + }; + /** + * @private + * @param {?} changes + * @return {?} + */ + ForDirective.prototype.iterateOverAttachedViews = /** + * @private + * @param {?} changes + * @return {?} + */ + function (changes) { + var _this = this; + for (var i = 0, l = this.vcRef.length; i < l; i++) { + /** @type {?} */ + var viewRef = (/** @type {?} */ (this.vcRef.get(i))); + viewRef.context.index = i; + viewRef.context.count = l; + viewRef.context.list = this.items; + } + changes.forEachIdentityChange((/** + * @param {?} record + * @return {?} + */ + function (record) { + /** @type {?} */ + var viewRef = (/** @type {?} */ (_this.vcRef.get(record.currentIndex))); + viewRef.context.$implicit = record.item; + })); + }; + /** + * @private + * @param {?} items + * @return {?} + */ + ForDirective.prototype.projectItems = /** + * @private + * @param {?} items + * @return {?} + */ + function (items) { + if (!items.length && this.emptyRef) { + this.vcRef.createEmbeddedView(this.emptyRef).rootNodes; + this.isShowEmptyRef = true; + return; + } + if (this.emptyRef && this.isShowEmptyRef) { + this.vcRef.clear(); + this.isShowEmptyRef = false; + } + if (!this.differ && items) { + this.differ = this.differs.find(items).create(this.trackByFn); + } + if (this.differ) { + /** @type {?} */ + var changes = this.differ.diff(items); + if (changes) { + this.iterateOverAppliedOperations(changes); + this.iterateOverAttachedViews(changes); + } + } + }; + /** + * @private + * @param {?} items + * @return {?} + */ + ForDirective.prototype.sortItems = /** + * @private + * @param {?} items + * @return {?} + */ + function (items) { + var _this = this; + if (this.orderBy) { + items.sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + function (a, b) { return (a[_this.orderBy] > b[_this.orderBy] ? 1 : a[_this.orderBy] < b[_this.orderBy] ? -1 : 0); })); + } + else { + items.sort(); + } + }; + /** + * @return {?} + */ + ForDirective.prototype.ngOnChanges = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var items = (/** @type {?} */ (clone(this.items))); + if (!Array.isArray(items)) + return; + /** @type {?} */ + var compareFn = this.compareFn; + if (typeof this.filterBy !== 'undefined') { + items = items.filter((/** + * @param {?} item + * @return {?} + */ + function (item) { return compareFn(item[_this.filterBy], _this.filterVal); })); + } + switch (this.orderDir) { + case 'ASC': + this.sortItems(items); + this.projectItems(items); + break; + case 'DESC': + this.sortItems(items); + items.reverse(); + this.projectItems(items); + break; + default: + this.projectItems(items); + } + }; + ForDirective.decorators = [ + { type: Directive, args: [{ + selector: '[abpFor]', + },] } + ]; + /** @nocollapse */ + ForDirective.ctorParameters = function () { return [ + { type: TemplateRef }, + { type: ViewContainerRef }, + { type: IterableDiffers } + ]; }; + ForDirective.propDecorators = { + items: [{ type: Input, args: ['abpForOf',] }], + orderBy: [{ type: Input, args: ['abpForOrderBy',] }], + orderDir: [{ type: Input, args: ['abpForOrderDir',] }], + filterBy: [{ type: Input, args: ['abpForFilterBy',] }], + filterVal: [{ type: Input, args: ['abpForFilterVal',] }], + trackBy: [{ type: Input, args: ['abpForTrackBy',] }], + compareBy: [{ type: Input, args: ['abpForCompareBy',] }], + emptyRef: [{ type: Input, args: ['abpForEmptyRef',] }] + }; + return ForDirective; +}()); +export { ForDirective }; +if (false) { + /** @type {?} */ + ForDirective.prototype.items; + /** @type {?} */ + ForDirective.prototype.orderBy; + /** @type {?} */ + ForDirective.prototype.orderDir; + /** @type {?} */ + ForDirective.prototype.filterBy; + /** @type {?} */ + ForDirective.prototype.filterVal; + /** @type {?} */ + ForDirective.prototype.trackBy; + /** @type {?} */ + ForDirective.prototype.compareBy; + /** @type {?} */ + ForDirective.prototype.emptyRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.differ; + /** + * @type {?} + * @private + */ + ForDirective.prototype.isShowEmptyRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.tempRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.vcRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.differs; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2Zvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUlMLGVBQWUsRUFFZixXQUFXLEVBRVgsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUNuQyxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFJL0I7SUFDRSx1QkFBbUIsU0FBYyxFQUFTLEtBQWEsRUFBUyxLQUFhLEVBQVMsSUFBVztRQUE5RSxjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFPO0lBQUcsQ0FBQztJQUN2RyxvQkFBQztBQUFELENBQUMsQUFGRCxJQUVDOzs7SUFEYSxrQ0FBcUI7O0lBQUUsOEJBQW9COztJQUFFLDhCQUFvQjs7SUFBRSw2QkFBa0I7O0FBR25HO0lBQ0Usb0JBQW1CLE1BQWlDLEVBQVMsSUFBb0M7UUFBOUUsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFnQztJQUFHLENBQUM7SUFDdkcsaUJBQUM7QUFBRCxDQUFDLEFBRkQsSUFFQzs7O0lBRGEsNEJBQXdDOztJQUFFLDBCQUEyQzs7QUFHbkc7SUF3Q0Usc0JBQ1UsT0FBbUMsRUFDbkMsS0FBdUIsRUFDdkIsT0FBd0I7UUFGeEIsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7UUFDbkMsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7SUFDL0IsQ0FBQztJQVpKLHNCQUFJLG1DQUFTOzs7O1FBQWI7WUFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDO1FBQ25DLENBQUM7OztPQUFBO0lBRUQsc0JBQUksbUNBQVM7Ozs7UUFBYjtZQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSTs7Ozs7WUFBQyxVQUFDLEtBQWEsRUFBRSxJQUFTLElBQUssT0FBQSxDQUFDLG1CQUFBLElBQUksRUFBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBekIsQ0FBeUIsRUFBQyxDQUFDO1FBQ25GLENBQUM7OztPQUFBOzs7Ozs7SUFRTyxtREFBNEI7Ozs7O0lBQXBDLFVBQXFDLE9BQTZCO1FBQWxFLGlCQXlCQzs7WUF4Qk8sRUFBRSxHQUFpQixFQUFFO1FBRTNCLE9BQU8sQ0FBQyxnQkFBZ0I7Ozs7OztRQUFDLFVBQUMsTUFBaUMsRUFBRSxhQUFxQixFQUFFLFlBQW9CO1lBQ3RHLElBQUksTUFBTSxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUU7O29CQUMxQixJQUFJLEdBQUcsS0FBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FDeEMsS0FBSSxDQUFDLE9BQU8sRUFDWixJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSSxDQUFDLEtBQUssQ0FBQyxFQUMzQyxZQUFZLENBQ2I7Z0JBRUQsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUN2QztpQkFBTSxJQUFJLFlBQVksSUFBSSxJQUFJLEVBQUU7Z0JBQy9CLEtBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ2xDO2lCQUFNOztvQkFDQyxJQUFJLEdBQUcsS0FBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO2dCQUMxQyxLQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBRXBDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLG1CQUFBLElBQUksRUFBa0MsQ0FBQyxDQUFDLENBQUM7YUFDekU7UUFDSCxDQUFDLEVBQUMsQ0FBQztRQUVILEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQzs7Ozs7O0lBRU8sK0NBQXdCOzs7OztJQUFoQyxVQUFpQyxPQUE2QjtRQUE5RCxpQkFZQztRQVhDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFOztnQkFDM0MsT0FBTyxHQUFHLG1CQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFrQztZQUNuRSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDMUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbkM7UUFFRCxPQUFPLENBQUMscUJBQXFCOzs7O1FBQUMsVUFBQyxNQUFpQzs7Z0JBQ3hELE9BQU8sR0FBRyxtQkFBQSxLQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQWtDO1lBQ3JGLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDMUMsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7SUFFTyxtQ0FBWTs7Ozs7SUFBcEIsVUFBcUIsS0FBWTtRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUUzQixPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1NBQzdCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMvRDtRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTs7Z0JBQ1QsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUV2QyxJQUFJLE9BQU8sRUFBRTtnQkFDWCxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN4QztTQUNGO0lBQ0gsQ0FBQzs7Ozs7O0lBRU8sZ0NBQVM7Ozs7O0lBQWpCLFVBQWtCLEtBQVk7UUFBOUIsaUJBTUM7UUFMQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsS0FBSyxDQUFDLElBQUk7Ozs7O1lBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQXBGLENBQW9GLEVBQUMsQ0FBQztTQUM1RzthQUFNO1lBQ0wsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2Q7SUFDSCxDQUFDOzs7O0lBRUQsa0NBQVc7OztJQUFYO1FBQUEsaUJBeUJDOztZQXhCSyxLQUFLLEdBQUcsbUJBQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBUztRQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPOztZQUU1QixTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVM7UUFFaEMsSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQ3hDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTTs7OztZQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSSxDQUFDLFNBQVMsQ0FBQyxFQUE5QyxDQUE4QyxFQUFDLENBQUM7U0FDOUU7UUFFRCxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckIsS0FBSyxLQUFLO2dCQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU07WUFFUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QixNQUFNO1lBRVI7Z0JBQ0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7O2dCQW5KRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7aUJBQ3JCOzs7O2dCQW5CQyxXQUFXO2dCQUVYLGdCQUFnQjtnQkFKaEIsZUFBZTs7O3dCQXVCZCxLQUFLLFNBQUMsVUFBVTswQkFHaEIsS0FBSyxTQUFDLGVBQWU7MkJBR3JCLEtBQUssU0FBQyxnQkFBZ0I7MkJBR3RCLEtBQUssU0FBQyxnQkFBZ0I7NEJBR3RCLEtBQUssU0FBQyxpQkFBaUI7MEJBR3ZCLEtBQUssU0FBQyxlQUFlOzRCQUdyQixLQUFLLFNBQUMsaUJBQWlCOzJCQUd2QixLQUFLLFNBQUMsZ0JBQWdCOztJQTJIekIsbUJBQUM7Q0FBQSxBQXBKRCxJQW9KQztTQWpKWSxZQUFZOzs7SUFDdkIsNkJBQ2E7O0lBRWIsK0JBQ2dCOztJQUVoQixnQ0FDeUI7O0lBRXpCLGdDQUNpQjs7SUFFakIsaUNBQ2U7O0lBRWYsK0JBQ1E7O0lBRVIsaUNBQ3FCOztJQUVyQixnQ0FDMkI7Ozs7O0lBRTNCLDhCQUFvQzs7Ozs7SUFFcEMsc0NBQWdDOzs7OztJQVc5QiwrQkFBMkM7Ozs7O0lBQzNDLDZCQUErQjs7Ozs7SUFDL0IsK0JBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIElucHV0LFxuICBJdGVyYWJsZUNoYW5nZVJlY29yZCxcbiAgSXRlcmFibGVDaGFuZ2VzLFxuICBJdGVyYWJsZURpZmZlcixcbiAgSXRlcmFibGVEaWZmZXJzLFxuICBPbkNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGNvbXBhcmUgZnJvbSAnanVzdC1jb21wYXJlJztcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJztcblxuZXhwb3J0IHR5cGUgQ29tcGFyZUZuPFQgPSBhbnk+ID0gKHZhbHVlOiBULCBjb21wYXJpc29uOiBUKSA9PiBib29sZWFuO1xuXG5jbGFzcyBBYnBGb3JDb250ZXh0IHtcbiAgY29uc3RydWN0b3IocHVibGljICRpbXBsaWNpdDogYW55LCBwdWJsaWMgaW5kZXg6IG51bWJlciwgcHVibGljIGNvdW50OiBudW1iZXIsIHB1YmxpYyBsaXN0OiBhbnlbXSkge31cbn1cblxuY2xhc3MgUmVjb3JkVmlldyB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPGFueT4sIHB1YmxpYyB2aWV3OiBFbWJlZGRlZFZpZXdSZWY8QWJwRm9yQ29udGV4dD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thYnBGb3JdJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9yRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCdhYnBGb3JPZicpXG4gIGl0ZW1zOiBhbnlbXTtcblxuICBASW5wdXQoJ2FicEZvck9yZGVyQnknKVxuICBvcmRlckJ5OiBzdHJpbmc7XG5cbiAgQElucHV0KCdhYnBGb3JPcmRlckRpcicpXG4gIG9yZGVyRGlyOiAnQVNDJyB8ICdERVNDJztcblxuICBASW5wdXQoJ2FicEZvckZpbHRlckJ5JylcbiAgZmlsdGVyQnk6IHN0cmluZztcblxuICBASW5wdXQoJ2FicEZvckZpbHRlclZhbCcpXG4gIGZpbHRlclZhbDogYW55O1xuXG4gIEBJbnB1dCgnYWJwRm9yVHJhY2tCeScpXG4gIHRyYWNrQnk7XG5cbiAgQElucHV0KCdhYnBGb3JDb21wYXJlQnknKVxuICBjb21wYXJlQnk6IENvbXBhcmVGbjtcblxuICBASW5wdXQoJ2FicEZvckVtcHR5UmVmJylcbiAgZW1wdHlSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPGFueT47XG5cbiAgcHJpdmF0ZSBpc1Nob3dFbXB0eVJlZjogYm9vbGVhbjtcblxuICBnZXQgY29tcGFyZUZuKCk6IENvbXBhcmVGbiB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGFyZUJ5IHx8IGNvbXBhcmU7XG4gIH1cblxuICBnZXQgdHJhY2tCeUZuKCk6IFRyYWNrQnlGdW5jdGlvbjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy50cmFja0J5IHx8ICgoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSA9PiAoaXRlbSBhcyBhbnkpLmlkIHx8IGluZGV4KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGVtcFJlZjogVGVtcGxhdGVSZWY8QWJwRm9yQ29udGV4dD4sXG4gICAgcHJpdmF0ZSB2Y1JlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgKSB7fVxuXG4gIHByaXZhdGUgaXRlcmF0ZU92ZXJBcHBsaWVkT3BlcmF0aW9ucyhjaGFuZ2VzOiBJdGVyYWJsZUNoYW5nZXM8YW55Pikge1xuICAgIGNvbnN0IHJ3OiBSZWNvcmRWaWV3W10gPSBbXTtcblxuICAgIGNoYW5nZXMuZm9yRWFjaE9wZXJhdGlvbigocmVjb3JkOiBJdGVyYWJsZUNoYW5nZVJlY29yZDxhbnk+LCBwcmV2aW91c0luZGV4OiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAocmVjb3JkLnByZXZpb3VzSW5kZXggPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcoXG4gICAgICAgICAgdGhpcy50ZW1wUmVmLFxuICAgICAgICAgIG5ldyBBYnBGb3JDb250ZXh0KG51bGwsIC0xLCAtMSwgdGhpcy5pdGVtcyksXG4gICAgICAgICAgY3VycmVudEluZGV4LFxuICAgICAgICApO1xuXG4gICAgICAgIHJ3LnB1c2gobmV3IFJlY29yZFZpZXcocmVjb3JkLCB2aWV3KSk7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRJbmRleCA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMudmNSZWYucmVtb3ZlKHByZXZpb3VzSW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdmlldyA9IHRoaXMudmNSZWYuZ2V0KHByZXZpb3VzSW5kZXgpO1xuICAgICAgICB0aGlzLnZjUmVmLm1vdmUodmlldywgY3VycmVudEluZGV4KTtcblxuICAgICAgICBydy5wdXNoKG5ldyBSZWNvcmRWaWV3KHJlY29yZCwgdmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8QWJwRm9yQ29udGV4dD4pKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGZvciAobGV0IGkgPSAwLCBsID0gcncubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICByd1tpXS52aWV3LmNvbnRleHQuJGltcGxpY2l0ID0gcndbaV0ucmVjb3JkLml0ZW07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpdGVyYXRlT3ZlckF0dGFjaGVkVmlld3MoY2hhbmdlczogSXRlcmFibGVDaGFuZ2VzPGFueT4pIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMudmNSZWYubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB2aWV3UmVmID0gdGhpcy52Y1JlZi5nZXQoaSkgYXMgRW1iZWRkZWRWaWV3UmVmPEFicEZvckNvbnRleHQ+O1xuICAgICAgdmlld1JlZi5jb250ZXh0LmluZGV4ID0gaTtcbiAgICAgIHZpZXdSZWYuY29udGV4dC5jb3VudCA9IGw7XG4gICAgICB2aWV3UmVmLmNvbnRleHQubGlzdCA9IHRoaXMuaXRlbXM7XG4gICAgfVxuXG4gICAgY2hhbmdlcy5mb3JFYWNoSWRlbnRpdHlDaGFuZ2UoKHJlY29yZDogSXRlcmFibGVDaGFuZ2VSZWNvcmQ8YW55PikgPT4ge1xuICAgICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmNSZWYuZ2V0KHJlY29yZC5jdXJyZW50SW5kZXgpIGFzIEVtYmVkZGVkVmlld1JlZjxBYnBGb3JDb250ZXh0PjtcbiAgICAgIHZpZXdSZWYuY29udGV4dC4kaW1wbGljaXQgPSByZWNvcmQuaXRlbTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvamVjdEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IHZvaWQge1xuICAgIGlmICghaXRlbXMubGVuZ3RoICYmIHRoaXMuZW1wdHlSZWYpIHtcbiAgICAgIHRoaXMudmNSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuZW1wdHlSZWYpLnJvb3ROb2RlcztcbiAgICAgIHRoaXMuaXNTaG93RW1wdHlSZWYgPSB0cnVlO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZW1wdHlSZWYgJiYgdGhpcy5pc1Nob3dFbXB0eVJlZikge1xuICAgICAgdGhpcy52Y1JlZi5jbGVhcigpO1xuICAgICAgdGhpcy5pc1Nob3dFbXB0eVJlZiA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kaWZmZXIgJiYgaXRlbXMpIHtcbiAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoaXRlbXMpLmNyZWF0ZSh0aGlzLnRyYWNrQnlGbik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGlmZmVyKSB7XG4gICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5kaWZmZXIuZGlmZihpdGVtcyk7XG5cbiAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuaXRlcmF0ZU92ZXJBcHBsaWVkT3BlcmF0aW9ucyhjaGFuZ2VzKTtcbiAgICAgICAgdGhpcy5pdGVyYXRlT3ZlckF0dGFjaGVkVmlld3MoY2hhbmdlcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzb3J0SXRlbXMoaXRlbXM6IGFueVtdKSB7XG4gICAgaWYgKHRoaXMub3JkZXJCeSkge1xuICAgICAgaXRlbXMuc29ydCgoYSwgYikgPT4gKGFbdGhpcy5vcmRlckJ5XSA+IGJbdGhpcy5vcmRlckJ5XSA/IDEgOiBhW3RoaXMub3JkZXJCeV0gPCBiW3RoaXMub3JkZXJCeV0gPyAtMSA6IDApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaXRlbXMuc29ydCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGxldCBpdGVtcyA9IGNsb25lKHRoaXMuaXRlbXMpIGFzIGFueVtdO1xuICAgIGlmICghQXJyYXkuaXNBcnJheShpdGVtcykpIHJldHVybjtcblxuICAgIGNvbnN0IGNvbXBhcmVGbiA9IHRoaXMuY29tcGFyZUZuO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmZpbHRlckJ5ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgaXRlbXMgPSBpdGVtcy5maWx0ZXIoaXRlbSA9PiBjb21wYXJlRm4oaXRlbVt0aGlzLmZpbHRlckJ5XSwgdGhpcy5maWx0ZXJWYWwpKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMub3JkZXJEaXIpIHtcbiAgICAgIGNhc2UgJ0FTQyc6XG4gICAgICAgIHRoaXMuc29ydEl0ZW1zKGl0ZW1zKTtcbiAgICAgICAgdGhpcy5wcm9qZWN0SXRlbXMoaXRlbXMpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnREVTQyc6XG4gICAgICAgIHRoaXMuc29ydEl0ZW1zKGl0ZW1zKTtcbiAgICAgICAgaXRlbXMucmV2ZXJzZSgpO1xuICAgICAgICB0aGlzLnByb2plY3RJdGVtcyhpdGVtcyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnByb2plY3RJdGVtcyhpdGVtcyk7XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/directives/index.js b/npm/ng-packs/dist/core/esm5/lib/directives/index.js index a90d5a4597..80dcedb82e 100644 --- a/npm/ng-packs/dist/core/esm5/lib/directives/index.js +++ b/npm/ng-packs/dist/core/esm5/lib/directives/index.js @@ -4,7 +4,8 @@ */ export { AutofocusDirective } from './autofocus.directive'; export { EllipsisDirective } from './ellipsis.directive'; +export { ForDirective } from './for.directive'; export { FormSubmitDirective } from './form-submit.directive'; export { PermissionDirective } from './permission.directive'; export { VisibilityDirective } from './visibility.directive'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQWMsdUJBQXVCLENBQUM7QUFDdEMsa0NBQWMsc0JBQXNCLENBQUM7QUFDckMsb0NBQWMseUJBQXlCLENBQUM7QUFDeEMsb0NBQWMsd0JBQXdCLENBQUM7QUFDdkMsb0NBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGxpcHNpcy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Zpc2liaWxpdHkuZGlyZWN0aXZlJztcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQWMsdUJBQXVCLENBQUM7QUFDdEMsa0NBQWMsc0JBQXNCLENBQUM7QUFDckMsNkJBQWMsaUJBQWlCLENBQUM7QUFDaEMsb0NBQWMseUJBQXlCLENBQUM7QUFDeEMsb0NBQWMsd0JBQXdCLENBQUM7QUFDdkMsb0NBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGxpcHNpcy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1zdWJtaXQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vcGVybWlzc2lvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi92aXNpYmlsaXR5LmRpcmVjdGl2ZSc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/directives/visibility.directive.js b/npm/ng-packs/dist/core/esm5/lib/directives/visibility.directive.js index 3d208599db..cc01a8aeed 100644 --- a/npm/ng-packs/dist/core/esm5/lib/directives/visibility.directive.js +++ b/npm/ng-packs/dist/core/esm5/lib/directives/visibility.directive.js @@ -9,6 +9,7 @@ var VisibilityDirective = /** @class */ (function () { function VisibilityDirective(elRef, renderer) { this.elRef = elRef; this.renderer = renderer; + this.mutationObserverEnabled = true; this.completed$ = new Subject(); } /** @@ -20,44 +21,65 @@ var VisibilityDirective = /** @class */ (function () { function () { var _this = this; /** @type {?} */ - var observer = new MutationObserver((/** - * @param {?} mutations - * @return {?} - */ - function (mutations) { - mutations.forEach((/** - * @param {?} mutation + var observer; + if (this.mutationObserverEnabled) { + observer = new MutationObserver((/** + * @param {?} mutations + * @return {?} + */ + function (mutations) { + mutations.forEach((/** + * @param {?} mutation + * @return {?} + */ + function (mutation) { + if (!mutation.target) + return; + /** @type {?} */ + var htmlNodes = snq((/** + * @return {?} + */ + function () { return Array.from(mutation.target.childNodes).filter((/** + * @param {?} node + * @return {?} + */ + function (node) { return node instanceof HTMLElement; })); }), []); + if (!htmlNodes.length) { + _this.removeFromDOM(); + _this.disconnect(); + } + else { + setTimeout((/** + * @return {?} + */ + function () { + _this.disconnect(); + }), 0); + } + })); + })); + observer.observe(this.focusedElement, { + childList: true, + }); + } + else { + setTimeout((/** * @return {?} */ - function (mutation) { - if (!mutation.target) - return; + function () { /** @type {?} */ var htmlNodes = snq((/** * @return {?} */ - function () { return Array.from(mutation.target.childNodes).filter((/** + function () { return Array.from(_this.focusedElement.childNodes).filter((/** * @param {?} node * @return {?} */ function (node) { return node instanceof HTMLElement; })); }), []); - if (!htmlNodes.length) { - _this.renderer.removeChild(_this.elRef.nativeElement.parentElement, _this.elRef.nativeElement); - _this.disconnect(); - } - else { - setTimeout((/** - * @return {?} - */ - function () { - _this.disconnect(); - }), 0); - } - })); - })); - observer.observe(this.focusedElement, { - childList: true, - }); + if (!htmlNodes.length) + _this.removeFromDOM(); + }), 0); + } this.completed$.subscribe((/** * @return {?} */ @@ -73,6 +95,15 @@ var VisibilityDirective = /** @class */ (function () { this.completed$.next(); this.completed$.complete(); }; + /** + * @return {?} + */ + VisibilityDirective.prototype.removeFromDOM = /** + * @return {?} + */ + function () { + this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement); + }; VisibilityDirective.decorators = [ { type: Directive, args: [{ selector: '[abpVisibility]', @@ -84,7 +115,8 @@ var VisibilityDirective = /** @class */ (function () { { type: Renderer2 } ]; }; VisibilityDirective.propDecorators = { - focusedElement: [{ type: Input, args: ['abpVisibility',] }] + focusedElement: [{ type: Input, args: ['abpVisibility',] }], + mutationObserverEnabled: [{ type: Input }] }; return VisibilityDirective; }()); @@ -93,6 +125,8 @@ if (false) { /** @type {?} */ VisibilityDirective.prototype.focusedElement; /** @type {?} */ + VisibilityDirective.prototype.mutationObserverEnabled; + /** @type {?} */ VisibilityDirective.prototype.completed$; /** * @type {?} @@ -105,4 +139,4 @@ if (false) { */ VisibilityDirective.prototype.renderer; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy92aXNpYmlsaXR5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBRXRCO0lBU0UsNkJBQWdDLEtBQWlCLEVBQVUsUUFBbUI7UUFBOUMsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFGOUUsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFFNkMsQ0FBQzs7OztJQUVsRiw2Q0FBZTs7O0lBQWY7UUFBQSxpQkEwQkM7O1lBekJPLFFBQVEsR0FBRyxJQUFJLGdCQUFnQjs7OztRQUFDLFVBQUEsU0FBUztZQUM3QyxTQUFTLENBQUMsT0FBTzs7OztZQUFDLFVBQUEsUUFBUTtnQkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO29CQUFFLE9BQU87O29CQUV2QixTQUFTLEdBQUcsR0FBRzs7O2dCQUNuQixjQUFNLE9BQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU07Ozs7Z0JBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLFlBQVksV0FBVyxFQUEzQixDQUEyQixFQUFDLEVBQWxGLENBQWtGLEdBQ3hGLEVBQUUsQ0FDSDtnQkFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtvQkFDckIsS0FBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLEtBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQzVGLEtBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztpQkFDbkI7cUJBQU07b0JBQ0wsVUFBVTs7O29CQUFDO3dCQUNULEtBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDcEIsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUNQO1lBQ0gsQ0FBQyxFQUFDLENBQUM7UUFDTCxDQUFDLEVBQUM7UUFFRixRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDcEMsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTOzs7UUFBQyxjQUFNLE9BQUEsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFyQixDQUFxQixFQUFDLENBQUM7SUFDekQsQ0FBQzs7OztJQUVELHdDQUFVOzs7SUFBVjtRQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOztnQkExQ0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCOzs7O2dCQU5vQyxVQUFVLHVCQWFoQyxRQUFRO2dCQWIwQixTQUFTOzs7aUNBUXZELEtBQUssU0FBQyxlQUFlOztJQXVDeEIsMEJBQUM7Q0FBQSxBQTNDRCxJQTJDQztTQXhDWSxtQkFBbUI7OztJQUM5Qiw2Q0FDNEI7O0lBRTVCLHlDQUFvQzs7Ozs7SUFFeEIsb0NBQXFDOzs7OztJQUFFLHVDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9wdGlvbmFsLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FicFZpc2liaWxpdHldJyxcbn0pXG5leHBvcnQgY2xhc3MgVmlzaWJpbGl0eURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoJ2FicFZpc2liaWxpdHknKVxuICBmb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgY29tcGxldGVkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9ucyA9PiB7XG4gICAgICBtdXRhdGlvbnMuZm9yRWFjaChtdXRhdGlvbiA9PiB7XG4gICAgICAgIGlmICghbXV0YXRpb24udGFyZ2V0KSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaHRtbE5vZGVzID0gc25xKFxuICAgICAgICAgICgpID0+IEFycmF5LmZyb20obXV0YXRpb24udGFyZ2V0LmNoaWxkTm9kZXMpLmZpbHRlcihub2RlID0+IG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCksXG4gICAgICAgICAgW10sXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFodG1sTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5mb2N1c2VkRWxlbWVudCwge1xuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb21wbGV0ZWQkLnN1YnNjcmliZSgoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCkpO1xuICB9XG5cbiAgZGlzY29ubmVjdCgpIHtcbiAgICB0aGlzLmNvbXBsZXRlZCQubmV4dCgpO1xuICAgIHRoaXMuY29tcGxldGVkJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy92aXNpYmlsaXR5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBRXRCO0lBWUUsNkJBQWdDLEtBQWlCLEVBQVUsUUFBbUI7UUFBOUMsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFKOUUsNEJBQXVCLEdBQVksSUFBSSxDQUFDO1FBRXhDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBRTZDLENBQUM7Ozs7SUFFbEYsNkNBQWU7OztJQUFmO1FBQUEsaUJBc0NDOztZQXJDSyxRQUEwQjtRQUM5QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUNoQyxRQUFRLEdBQUcsSUFBSSxnQkFBZ0I7Ozs7WUFBQyxVQUFBLFNBQVM7Z0JBQ3ZDLFNBQVMsQ0FBQyxPQUFPOzs7O2dCQUFDLFVBQUEsUUFBUTtvQkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO3dCQUFFLE9BQU87O3dCQUV2QixTQUFTLEdBQUcsR0FBRzs7O29CQUNuQixjQUFNLE9BQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU07Ozs7b0JBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLFlBQVksV0FBVyxFQUEzQixDQUEyQixFQUFDLEVBQWxGLENBQWtGLEdBQ3hGLEVBQUUsQ0FDSDtvQkFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTt3QkFDckIsS0FBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO3dCQUNyQixLQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7cUJBQ25CO3lCQUFNO3dCQUNMLFVBQVU7Ozt3QkFBQzs0QkFDVCxLQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7d0JBQ3BCLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztxQkFDUDtnQkFDSCxDQUFDLEVBQUMsQ0FBQztZQUNMLENBQUMsRUFBQyxDQUFDO1lBRUgsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNwQyxTQUFTLEVBQUUsSUFBSTthQUNoQixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsVUFBVTs7O1lBQUM7O29CQUNILFNBQVMsR0FBRyxHQUFHOzs7Z0JBQ25CLGNBQU0sT0FBQSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTTs7OztnQkFBQyxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksWUFBWSxXQUFXLEVBQTNCLENBQTJCLEVBQUMsRUFBdEYsQ0FBc0YsR0FDNUYsRUFBRSxDQUNIO2dCQUVELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTTtvQkFBRSxLQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1A7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVM7OztRQUFDLGNBQU0sT0FBQSxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQXJCLENBQXFCLEVBQUMsQ0FBQztJQUN6RCxDQUFDOzs7O0lBRUQsd0NBQVU7OztJQUFWO1FBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7Ozs7SUFFRCwyQ0FBYTs7O0lBQWI7UUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RixDQUFDOztnQkE3REYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCOzs7O2dCQU5vQyxVQUFVLHVCQWdCaEMsUUFBUTtnQkFoQjBCLFNBQVM7OztpQ0FRdkQsS0FBSyxTQUFDLGVBQWU7MENBR3JCLEtBQUs7O0lBdURSLDBCQUFDO0NBQUEsQUE5REQsSUE4REM7U0EzRFksbUJBQW1COzs7SUFDOUIsNkNBQzRCOztJQUU1QixzREFDd0M7O0lBRXhDLHlDQUFvQzs7Ozs7SUFFeEIsb0NBQXFDOzs7OztJQUFFLHVDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9wdGlvbmFsLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FicFZpc2liaWxpdHldJyxcbn0pXG5leHBvcnQgY2xhc3MgVmlzaWJpbGl0eURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoJ2FicFZpc2liaWxpdHknKVxuICBmb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgQElucHV0KClcbiAgbXV0YXRpb25PYnNlcnZlckVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbXBsZXRlZCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgbGV0IG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuICAgIGlmICh0aGlzLm11dGF0aW9uT2JzZXJ2ZXJFbmFibGVkKSB7XG4gICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9ucyA9PiB7XG4gICAgICAgIG11dGF0aW9ucy5mb3JFYWNoKG11dGF0aW9uID0+IHtcbiAgICAgICAgICBpZiAoIW11dGF0aW9uLnRhcmdldCkgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgaHRtbE5vZGVzID0gc25xKFxuICAgICAgICAgICAgKCkgPT4gQXJyYXkuZnJvbShtdXRhdGlvbi50YXJnZXQuY2hpbGROb2RlcykuZmlsdGVyKG5vZGUgPT4gbm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSxcbiAgICAgICAgICAgIFtdLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoIWh0bWxOb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRnJvbURPTSgpO1xuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmZvY3VzZWRFbGVtZW50LCB7XG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgaHRtbE5vZGVzID0gc25xKFxuICAgICAgICAgICgpID0+IEFycmF5LmZyb20odGhpcy5mb2N1c2VkRWxlbWVudC5jaGlsZE5vZGVzKS5maWx0ZXIobm9kZSA9PiBub2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpLFxuICAgICAgICAgIFtdLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghaHRtbE5vZGVzLmxlbmd0aCkgdGhpcy5yZW1vdmVGcm9tRE9NKCk7XG4gICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBsZXRlZCQuc3Vic2NyaWJlKCgpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKSk7XG4gIH1cblxuICBkaXNjb25uZWN0KCkge1xuICAgIHRoaXMuY29tcGxldGVkJC5uZXh0KCk7XG4gICAgdGhpcy5jb21wbGV0ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICByZW1vdmVGcm9tRE9NKCkge1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/enums/common.js b/npm/ng-packs/dist/core/esm5/lib/enums/common.js index 0d3c14b333..27b646f576 100644 --- a/npm/ng-packs/dist/core/esm5/lib/enums/common.js +++ b/npm/ng-packs/dist/core/esm5/lib/enums/common.js @@ -7,6 +7,7 @@ var eLayoutType = { account: 'account', application: 'application', empty: 'empty', + setting: 'setting', }; export { eLayoutType }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2VudW1zL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7SUFDRSxTQUFVLFNBQVM7SUFDbkIsYUFBYyxhQUFhO0lBQzNCLE9BQVEsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVMYXlvdXRUeXBlIHtcbiAgYWNjb3VudCA9ICdhY2NvdW50JyxcbiAgYXBwbGljYXRpb24gPSAnYXBwbGljYXRpb24nLFxuICBlbXB0eSA9ICdlbXB0eScsXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL2VudW1zL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7SUFDRSxTQUFVLFNBQVM7SUFDbkIsYUFBYyxhQUFhO0lBQzNCLE9BQVEsT0FBTztJQUNmLFNBQVUsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVMYXlvdXRUeXBlIHtcbiAgYWNjb3VudCA9ICdhY2NvdW50JyxcbiAgYXBwbGljYXRpb24gPSAnYXBwbGljYXRpb24nLFxuICBlbXB0eSA9ICdlbXB0eScsXG4gIHNldHRpbmcgPSAnc2V0dGluZycsXG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/guards/auth.guard.js b/npm/ng-packs/dist/core/esm5/lib/guards/auth.guard.js index ab1ba105a8..bf6da523c3 100644 --- a/npm/ng-packs/dist/core/esm5/lib/guards/auth.guard.js +++ b/npm/ng-packs/dist/core/esm5/lib/guards/auth.guard.js @@ -3,16 +3,18 @@ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; +import { Router } from '@angular/router'; import { Store } from '@ngxs/store'; import { OAuthService } from 'angular-oauth2-oidc'; -import { Navigate } from '@ngxs/router-plugin'; import * as i0 from "@angular/core"; import * as i1 from "angular-oauth2-oidc"; import * as i2 from "@ngxs/store"; +import * as i3 from "@angular/router"; var AuthGuard = /** @class */ (function () { - function AuthGuard(oauthService, store) { + function AuthGuard(oauthService, store, router) { this.oauthService = oauthService; this.store = store; + this.router = router; } /** * @param {?} _ @@ -30,8 +32,7 @@ var AuthGuard = /** @class */ (function () { if (hasValidAccessToken) { return hasValidAccessToken; } - this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } })); - return false; + return this.router.createUrlTree(['/account/login'], { state: { redirectUrl: state.url } }); }; AuthGuard.decorators = [ { type: Injectable, args: [{ @@ -41,9 +42,10 @@ var AuthGuard = /** @class */ (function () { /** @nocollapse */ AuthGuard.ctorParameters = function () { return [ { type: OAuthService }, - { type: Store } + { type: Store }, + { type: Router } ]; }; - /** @nocollapse */ AuthGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(i0.ɵɵinject(i1.OAuthService), i0.ɵɵinject(i2.Store)); }, token: AuthGuard, providedIn: "root" }); + /** @nocollapse */ AuthGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(i0.ɵɵinject(i1.OAuthService), i0.ɵɵinject(i2.Store), i0.ɵɵinject(i3.Router)); }, token: AuthGuard, providedIn: "root" }); return AuthGuard; }()); export { AuthGuard }; @@ -58,5 +60,10 @@ if (false) { * @private */ AuthGuard.prototype.store; + /** + * @type {?} + * @private + */ + AuthGuard.prototype.router; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ndWFyZHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFFL0M7SUFJRSxtQkFBb0IsWUFBMEIsRUFBVSxLQUFZO1FBQWhELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUFHLENBQUM7Ozs7OztJQUN4RSwrQkFBVzs7Ozs7SUFBWCxVQUFZLENBQXlCLEVBQUUsS0FBMEI7O1lBQ3pELG1CQUFtQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUU7UUFDbkUsSUFBSSxtQkFBbUIsRUFBRTtZQUN2QixPQUFPLG1CQUFtQixDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbkcsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztnQkFkRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQU5RLFlBQVk7Z0JBRFosS0FBSzs7O29CQUZkO0NBc0JDLEFBZkQsSUFlQztTQVpZLFNBQVM7Ozs7OztJQUNSLGlDQUFrQzs7Ozs7SUFBRSwwQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmF2aWdhdGUgfSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG4gIGNhbkFjdGl2YXRlKF86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB8IGJvb2xlYW4gfCBVcmxUcmVlIHtcbiAgICBjb25zdCBoYXNWYWxpZEFjY2Vzc1Rva2VuID0gdGhpcy5vYXV0aFNlcnZpY2UuaGFzVmFsaWRBY2Nlc3NUb2tlbigpO1xuICAgIGlmIChoYXNWYWxpZEFjY2Vzc1Rva2VuKSB7XG4gICAgICByZXR1cm4gaGFzVmFsaWRBY2Nlc3NUb2tlbjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZShbJy9hY2NvdW50L2xvZ2luJ10sIG51bGwsIHsgc3RhdGU6IHsgcmVkaXJlY3RVcmw6IHN0YXRlLnVybCB9IH0pKTtcblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ndWFyZHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUluRDtJQUlFLG1CQUFvQixZQUEwQixFQUFVLEtBQVksRUFBVSxNQUFjO1FBQXhFLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBRyxDQUFDOzs7Ozs7SUFFaEcsK0JBQVc7Ozs7O0lBQVgsVUFBWSxDQUF5QixFQUFFLEtBQTBCOztZQUN6RCxtQkFBbUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFO1FBQ25FLElBQUksbUJBQW1CLEVBQUU7WUFDdkIsT0FBTyxtQkFBbUIsQ0FBQztTQUM1QjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQzs7Z0JBYkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFOUSxZQUFZO2dCQURaLEtBQUs7Z0JBRDhELE1BQU07OztvQkFEbEY7Q0FxQkMsQUFkRCxJQWNDO1NBWFksU0FBUzs7Ozs7O0lBQ1IsaUNBQWtDOzs7OztJQUFFLDBCQUFvQjs7Ozs7SUFBRSwyQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsVHJlZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOYXZpZ2F0ZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLCBwcml2YXRlIHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICBjYW5BY3RpdmF0ZShfOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgY29uc3QgaGFzVmFsaWRBY2Nlc3NUb2tlbiA9IHRoaXMub2F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKTtcbiAgICBpZiAoaGFzVmFsaWRBY2Nlc3NUb2tlbikge1xuICAgICAgcmV0dXJuIGhhc1ZhbGlkQWNjZXNzVG9rZW47XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycvYWNjb3VudC9sb2dpbiddLCB7IHN0YXRlOiB7IHJlZGlyZWN0VXJsOiBzdGF0ZS51cmwgfSB9KTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/models/common.js b/npm/ng-packs/dist/core/esm5/lib/models/common.js index b636460473..93e41737de 100644 --- a/npm/ng-packs/dist/core/esm5/lib/models/common.js +++ b/npm/ng-packs/dist/core/esm5/lib/models/common.js @@ -88,4 +88,4 @@ export var ABP; BasicItem.prototype.name; } })(ABP || (ABP = {})); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE1BQU0sS0FBVyxHQUFHLENBMENuQjtBQTFDRCxXQUFpQixHQUFHOzs7O0lBQ2xCLG1CQUdDOzs7O1FBRkMsMkJBQXlDOztRQUN6Qyw0QkFBa0M7Ozs7OztJQU9wQyxpQ0FFQzs7OztRQURDLG1DQUFXOzs7OztJQUdiLDhCQUtDOzs7O1FBSkMsaUNBQWdCOztRQUNoQixrQ0FBaUI7O1FBQ2pCLG9DQUFtQjs7UUFDbkIseUNBQXdCOzs7OztJQUcxQixvQkFVQzs7OztRQVRDLHlCQUFtQjs7UUFDbkIsMEJBQW9COztRQUNwQix1QkFBcUI7O1FBQ3JCLHFCQUFhOztRQUNiLHNCQUFlOztRQUNmLDJCQUFvQjs7UUFDcEIscUJBQWE7O1FBQ2IsK0JBQXdCOztRQUN4QiwwQkFBbUI7Ozs7O0lBR3JCLHdCQUdDOzs7O1FBRkMsd0JBQWE7O1FBQ2IsNEJBQWtCOzs7OztJQUdwQix3QkFHQzs7OztRQUZDLHVCQUFXOztRQUNYLHlCQUFhOztBQUVqQixDQUFDLEVBMUNnQixHQUFHLEtBQUgsR0FBRyxRQTBDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IG5hbWVzcGFjZSBBQlAge1xuICBleHBvcnQgaW50ZXJmYWNlIFJvb3Qge1xuICAgIGVudmlyb25tZW50OiBQYXJ0aWFsPENvbmZpZy5FbnZpcm9ubWVudD47XG4gICAgcmVxdWlyZW1lbnRzOiBDb25maWcuUmVxdWlyZW1lbnRzO1xuICB9XG5cbiAgZXhwb3J0IHR5cGUgUGFnZWRSZXNwb25zZTxUPiA9IHtcbiAgICB0b3RhbENvdW50OiBudW1iZXI7XG4gIH0gJiBQYWdlZEl0ZW1zUmVzcG9uc2U8VD47XG5cbiAgZXhwb3J0IGludGVyZmFjZSBQYWdlZEl0ZW1zUmVzcG9uc2U8VD4ge1xuICAgIGl0ZW1zOiBUW107XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFBhZ2VRdWVyeVBhcmFtcyB7XG4gICAgZmlsdGVyPzogc3RyaW5nO1xuICAgIHNvcnRpbmc/OiBzdHJpbmc7XG4gICAgc2tpcENvdW50PzogbnVtYmVyO1xuICAgIG1heFJlc3VsdENvdW50PzogbnVtYmVyO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBSb3V0ZSB7XG4gICAgY2hpbGRyZW4/OiBSb3V0ZVtdO1xuICAgIGludmlzaWJsZT86IGJvb2xlYW47XG4gICAgbGF5b3V0PzogZUxheW91dFR5cGU7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIG9yZGVyPzogbnVtYmVyO1xuICAgIHBhcmVudE5hbWU/OiBzdHJpbmc7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHJlcXVpcmVkUG9saWN5Pzogc3RyaW5nO1xuICAgIGljb25DbGFzcz86IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgRnVsbFJvdXRlIGV4dGVuZHMgUm91dGUge1xuICAgIHVybD86IHN0cmluZztcbiAgICB3cmFwcGVyPzogYm9vbGVhbjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQmFzaWNJdGVtIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE1BQU0sS0FBVyxHQUFHLENBMENuQjtBQTFDRCxXQUFpQixHQUFHOzs7O0lBQ2xCLG1CQUdDOzs7O1FBRkMsMkJBQXlDOztRQUN6Qyw0QkFBa0M7Ozs7OztJQU9wQyxpQ0FFQzs7OztRQURDLG1DQUFXOzs7OztJQUdiLDhCQUtDOzs7O1FBSkMsaUNBQWdCOztRQUNoQixrQ0FBaUI7O1FBQ2pCLG9DQUFtQjs7UUFDbkIseUNBQXdCOzs7OztJQUcxQixvQkFVQzs7OztRQVRDLHlCQUFtQjs7UUFDbkIsMEJBQW9COztRQUNwQix1QkFBcUI7O1FBQ3JCLHFCQUFhOztRQUNiLHNCQUFlOztRQUNmLDJCQUFvQjs7UUFDcEIscUJBQWE7O1FBQ2IsK0JBQXdCOztRQUN4QiwwQkFBbUI7Ozs7O0lBR3JCLHdCQUdDOzs7O1FBRkMsd0JBQWE7O1FBQ2IsNEJBQWtCOzs7OztJQUdwQix3QkFHQzs7OztRQUZDLHVCQUFXOztRQUNYLHlCQUFhOztBQUVqQixDQUFDLEVBMUNnQixHQUFHLEtBQUgsR0FBRyxRQTBDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJy4uL2VudW1zL2NvbW1vbic7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQUJQIHtcbiAgZXhwb3J0IGludGVyZmFjZSBSb290IHtcbiAgICBlbnZpcm9ubWVudDogUGFydGlhbDxDb25maWcuRW52aXJvbm1lbnQ+O1xuICAgIHJlcXVpcmVtZW50czogQ29uZmlnLlJlcXVpcmVtZW50cztcbiAgfVxuXG4gIGV4cG9ydCB0eXBlIFBhZ2VkUmVzcG9uc2U8VD4gPSB7XG4gICAgdG90YWxDb3VudDogbnVtYmVyO1xuICB9ICYgUGFnZWRJdGVtc1Jlc3BvbnNlPFQ+O1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUGFnZWRJdGVtc1Jlc3BvbnNlPFQ+IHtcbiAgICBpdGVtczogVFtdO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBQYWdlUXVlcnlQYXJhbXMge1xuICAgIGZpbHRlcj86IHN0cmluZztcbiAgICBzb3J0aW5nPzogc3RyaW5nO1xuICAgIHNraXBDb3VudD86IG51bWJlcjtcbiAgICBtYXhSZXN1bHRDb3VudD86IG51bWJlcjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUm91dGUge1xuICAgIGNoaWxkcmVuPzogUm91dGVbXTtcbiAgICBpbnZpc2libGU/OiBib29sZWFuO1xuICAgIGxheW91dD86IGVMYXlvdXRUeXBlO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBwYXJlbnROYW1lPzogc3RyaW5nO1xuICAgIHBhdGg6IHN0cmluZztcbiAgICByZXF1aXJlZFBvbGljeT86IHN0cmluZztcbiAgICBpY29uQ2xhc3M/OiBzdHJpbmc7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEZ1bGxSb3V0ZSBleHRlbmRzIFJvdXRlIHtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgd3JhcHBlcj86IGJvb2xlYW47XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEJhc2ljSXRlbSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/models/config.js b/npm/ng-packs/dist/core/esm5/lib/models/config.js index 40d9fa406b..01cd2c8a7b 100644 --- a/npm/ng-packs/dist/core/esm5/lib/models/config.js +++ b/npm/ng-packs/dist/core/esm5/lib/models/config.js @@ -4,11 +4,6 @@ */ export var Config; (function (Config) { - /** - * @record - */ - function State() { } - Config.State = State; /** * @record */ @@ -23,6 +18,8 @@ export var Config; Environment.prototype.oAuthConfig; /** @type {?} */ Environment.prototype.apis; + /** @type {?} */ + Environment.prototype.localization; } /** * @record @@ -50,4 +47,4 @@ export var Config; Requirements.prototype.layouts; } })(Config || (Config = {})); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE1BQU0sS0FBVyxNQUFNLENBd0J0QjtBQXhCRCxXQUFpQixNQUFNOzs7O0lBQ3JCLG9CQUVDOzs7OztJQUVELDBCQUtDOzs7O1FBSkMsa0NBQXlCOztRQUN6QixpQ0FBb0I7O1FBQ3BCLGtDQUF3Qjs7UUFDeEIsMkJBQVc7Ozs7O0lBR2IsMEJBR0M7Ozs7UUFGQywyQkFBYTs7UUFDYiw4QkFBaUI7Ozs7O0lBR25CLG1CQUVDOzs7OztJQUVELDJCQUVDOzs7O1FBREMsK0JBQXFCOztBQUV6QixDQUFDLEVBeEJnQixNQUFNLEtBQU4sTUFBTSxRQXdCdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoQ29uZmlnIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29uZmlnIHtcbiAgZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XG4gICAgYXBwbGljYXRpb246IEFwcGxpY2F0aW9uO1xuICAgIHByb2R1Y3Rpb246IGJvb2xlYW47XG4gICAgb0F1dGhDb25maWc6IEF1dGhDb25maWc7XG4gICAgYXBpczogQXBpcztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb24ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBsb2dvVXJsPzogc3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBBcGlzIHtcbiAgICBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBSZXF1aXJlbWVudHMge1xuICAgIGxheW91dHM6IFR5cGU8YW55PltdO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUtBLE1BQU0sS0FBVyxNQUFNLENBMkJ0QjtBQTNCRCxXQUFpQixNQUFNOzs7O0lBT3JCLDBCQU1DOzs7O1FBTEMsa0NBQXlCOztRQUN6QixpQ0FBb0I7O1FBQ3BCLGtDQUF3Qjs7UUFDeEIsMkJBQVc7O1FBQ1gsbUNBQThDOzs7OztJQUdoRCwwQkFHQzs7OztRQUZDLDJCQUFhOztRQUNiLDhCQUFpQjs7Ozs7SUFHbkIsbUJBRUM7Ozs7O0lBRUQsMkJBRUM7Ozs7UUFEQywrQkFBcUI7O0FBRXpCLENBQUMsRUEzQmdCLE1BQU0sS0FBTixNQUFNLFFBMkJ0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vYXBwbGljYXRpb24tY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuL2NvbW1vbic7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29uZmlnIHtcbiAgZXhwb3J0IHR5cGUgU3RhdGUgPSBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24uUmVzcG9uc2UgJlxuICAgIEFCUC5Sb290ICYgeyBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQgfSAmIHtcbiAgICAgIHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdO1xuICAgICAgZmxhdHRlZFJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdO1xuICAgIH07XG5cbiAgZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XG4gICAgYXBwbGljYXRpb246IEFwcGxpY2F0aW9uO1xuICAgIHByb2R1Y3Rpb246IGJvb2xlYW47XG4gICAgb0F1dGhDb25maWc6IEF1dGhDb25maWc7XG4gICAgYXBpczogQXBpcztcbiAgICBsb2NhbGl6YXRpb246IHsgZGVmYXVsdFJlc291cmNlTmFtZTogc3RyaW5nIH07XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbG9nb1VybD86IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXBpcyB7XG4gICAgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZW1lbnRzIHtcbiAgICBsYXlvdXRzOiBUeXBlPGFueT5bXTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/pipes/sort.pipe.js b/npm/ng-packs/dist/core/esm5/lib/pipes/sort.pipe.js new file mode 100644 index 0000000000..26903ac4fb --- /dev/null +++ b/npm/ng-packs/dist/core/esm5/lib/pipes/sort.pipe.js @@ -0,0 +1,35 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Pipe } from '@angular/core'; +var SortPipe = /** @class */ (function () { + function SortPipe() { + } + /** + * @param {?} value + * @param {?} sortOrder + * @return {?} + */ + SortPipe.prototype.transform = /** + * @param {?} value + * @param {?} sortOrder + * @return {?} + */ + function (value, sortOrder) { + sortOrder = sortOrder.toLowerCase(); + if (sortOrder === "desc") + return value.reverse(); + else + return value; + }; + SortPipe.decorators = [ + { type: Pipe, args: [{ + name: 'abpSort', + pure: false + },] } + ]; + return SortPipe; +}()); +export { SortPipe }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3BpcGVzL3NvcnQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQ7SUFBQTtJQVVBLENBQUM7Ozs7OztJQUxHLDRCQUFTOzs7OztJQUFULFVBQVUsS0FBWSxFQUFFLFNBQWlCO1FBQ3JDLFNBQVMsR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBRyxTQUFTLEtBQUssTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDOztZQUMzQyxPQUFPLEtBQUssQ0FBQztJQUN0QixDQUFDOztnQkFUSixJQUFJLFNBQUM7b0JBQ0YsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLEtBQUs7aUJBQ2Q7O0lBT0QsZUFBQztDQUFBLEFBVkQsSUFVQztTQU5ZLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnYWJwU29ydCcsXG4gICAgcHVyZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU29ydFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueVtdLCBzb3J0T3JkZXI6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHNvcnRPcmRlciA9IHNvcnRPcmRlci50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZihzb3J0T3JkZXIgPT09IFwiZGVzY1wiKSByZXR1cm4gdmFsdWUucmV2ZXJzZSgpO1xuICAgICAgICBlbHNlIHJldHVybiB2YWx1ZTtcbiAgICB9XG59Il19 \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/plugins/config/config.plugin.js b/npm/ng-packs/dist/core/esm5/lib/plugins/config/config.plugin.js index fc8daea656..bddc09bc88 100644 --- a/npm/ng-packs/dist/core/esm5/lib/plugins/config/config.plugin.js +++ b/npm/ng-packs/dist/core/esm5/lib/plugins/config/config.plugin.js @@ -8,6 +8,7 @@ import { Router } from '@angular/router'; import { actionMatcher, InitState, setValue, UpdateState } from '@ngxs/store'; import snq from 'snq'; import { organizeRoutes } from '../../utils/route-utils'; +import clone from 'just-clone'; /** @type {?} */ export var NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS'); var ConfigPlugin = /** @class */ (function () { @@ -37,7 +38,10 @@ var ConfigPlugin = /** @class */ (function () { if (isInitAction && !this.initialized) { var _a = transformRoutes(this.router.config), routes = _a.routes, wrappers = _a.wrappers; routes = organizeRoutes(routes, wrappers); - state = setValue(state, 'ConfigState', tslib_1.__assign({}, (state.ConfigState && tslib_1.__assign({}, state.ConfigState)), this.options, { routes: routes })); + /** @type {?} */ + var flattedRoutes = flatRoutes(clone(routes)); + state = setValue(state, 'ConfigState', tslib_1.__assign({}, (state.ConfigState && tslib_1.__assign({}, state.ConfigState)), this.options, { routes: routes, + flattedRoutes: flattedRoutes })); this.initialized = true; } return next(state, event); @@ -166,4 +170,31 @@ function setUrls(routes, parentUrl) { children: setUrls(route.children, "/" + route.path), }))); })); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9wbHVnaW5zL2NvbmZpZy9jb25maWcucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBZ0MsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFFdEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUV6RCxNQUFNLEtBQU8sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQUMsNEJBQTRCLENBQUM7QUFFMUY7SUFJRSxzQkFBd0QsT0FBaUIsRUFBVSxNQUFjO1FBQXpDLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRnpGLGdCQUFXLEdBQVksS0FBSyxDQUFDO0lBRStELENBQUM7Ozs7Ozs7SUFFckcsNkJBQU07Ozs7OztJQUFOLFVBQU8sS0FBVSxFQUFFLEtBQVUsRUFBRSxJQUFzQjs7WUFDN0MsT0FBTyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7O1lBQzlCLFlBQVksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUUvRCw2R0FBNkc7UUFDN0csSUFBSSxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2pDLElBQUEsd0NBQTBELEVBQXhELGtCQUFNLEVBQUUsc0JBQWdEO1lBQzlELE1BQU0sR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRTFDLEtBQUss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O1NBQ3JCO0lBQ0gsQ0FBQyxFQUFDLENBQUM7SUFFTCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLFVBQUEsRUFBRSxDQUFDO0FBQ3BELENBQUM7Ozs7OztBQUVELFNBQVMsT0FBTyxDQUFDLE1BQXVCLEVBQUUsU0FBa0I7SUFDMUQsSUFBSSxTQUFTLEVBQUU7UUFDYiw4Q0FBOEM7UUFFOUMsT0FBTyxNQUFNLENBQUMsR0FBRzs7OztRQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsc0JBQ3RCLEtBQUssSUFDUixHQUFHLEVBQUssU0FBUyxTQUFJLEtBQUssQ0FBQyxJQUFNLElBQzlCLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFDaEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUk7WUFDdkIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFLLFNBQVMsU0FBSSxLQUFLLENBQUMsSUFBTSxDQUFDO1NBQ2hFLENBQUMsRUFDSixFQVB5QixDQU96QixFQUFDLENBQUM7S0FDTDtJQUVELE9BQU8sTUFBTSxDQUFDLEdBQUc7Ozs7SUFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLHNCQUN0QixLQUFLLElBQ1IsR0FBRyxFQUFFLE1BQUksS0FBSyxDQUFDLElBQU0sSUFDbEIsQ0FBQyxLQUFLLENBQUMsUUFBUTtRQUNoQixLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSTtRQUN2QixRQUFRLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBSSxLQUFLLENBQUMsSUFBTSxDQUFDO0tBQ3BELENBQUMsRUFDSixFQVB5QixDQU96QixFQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYWN0aW9uTWF0Y2hlciwgSW5pdFN0YXRlLCBOZ3hzTmV4dFBsdWdpbkZuLCBOZ3hzUGx1Z2luLCBzZXRWYWx1ZSwgVXBkYXRlU3RhdGUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgb3JnYW5pemVSb3V0ZXMgfSBmcm9tICcuLi8uLi91dGlscy9yb3V0ZS11dGlscyc7XG5cbmV4cG9ydCBjb25zdCBOR1hTX0NPTkZJR19QTFVHSU5fT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbignTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMnKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbmZpZ1BsdWdpbiBpbXBsZW1lbnRzIE5neHNQbHVnaW4ge1xuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChOR1hTX0NPTkZJR19QTFVHSU5fT1BUSU9OUykgcHJpdmF0ZSBvcHRpb25zOiBBQlAuUm9vdCwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICBoYW5kbGUoc3RhdGU6IGFueSwgZXZlbnQ6IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5Gbikge1xuICAgIGNvbnN0IG1hdGNoZXMgPSBhY3Rpb25NYXRjaGVyKGV2ZW50KTtcbiAgICBjb25zdCBpc0luaXRBY3Rpb24gPSBtYXRjaGVzKEluaXRTdGF0ZSkgfHwgbWF0Y2hlcyhVcGRhdGVTdGF0ZSk7XG5cbiAgICAvLyBjb25zdCBsYXlvdXRzID0gc25xKCgpID0+IHRoaXMub3B0aW9ucy5yZXF1aXJlbWVudHMubGF5b3V0cy5maWx0ZXIobGF5b3V0ID0+IGxheW91dCBpbnN0YW5jZW9mIFR5cGUpLCBbXSk7XG4gICAgaWYgKGlzSW5pdEFjdGlvbiAmJiAhdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgbGV0IHsgcm91dGVzLCB3cmFwcGVycyB9ID0gdHJhbnNmb3JtUm91dGVzKHRoaXMucm91dGVyLmNvbmZpZyk7XG4gICAgICByb3V0ZXMgPSBvcmdhbml6ZVJvdXRlcyhyb3V0ZXMsIHdyYXBwZXJzKTtcblxuICAgICAgc3RhdGUgPSBzZXRWYWx1ZShzdGF0ZSwgJ0NvbmZpZ1N0YXRlJywge1xuICAgICAgICAuLi4oc3RhdGUuQ29uZmlnU3RhdGUgJiYgeyAuLi5zdGF0ZS5Db25maWdTdGF0ZSB9KSxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICByb3V0ZXMsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1Sb3V0ZXMocm91dGVzOiBSb3V0ZXMgPSBbXSwgd3JhcHBlcnM6IEFCUC5GdWxsUm91dGVbXSA9IFtdKTogYW55IHtcbiAgY29uc3QgYWJwUm91dGVzOiBBQlAuRnVsbFJvdXRlW10gPSByb3V0ZXNcbiAgICAuZmlsdGVyKHJvdXRlID0+IHtcbiAgICAgIHJldHVybiBzbnEoKCkgPT4gcm91dGUuZGF0YS5yb3V0ZXMucm91dGVzLmZpbmQociA9PiByLnBhdGggPT09IHJvdXRlLnBhdGgpLCBmYWxzZSk7XG4gICAgfSlcbiAgICAucmVkdWNlKChhY2MsIHZhbCkgPT4gWy4uLmFjYywgLi4udmFsLmRhdGEucm91dGVzLnJvdXRlc10sIFtdKTtcblxuICB3cmFwcGVycyA9IGFicFJvdXRlcy5maWx0ZXIoYXIgPT4gYXIud3JhcHBlcik7XG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gW10gYXMgQUJQLkZ1bGxSb3V0ZVtdO1xuICByb3V0ZXNcbiAgICAuZmlsdGVyKHJvdXRlID0+IChyb3V0ZS5kYXRhIHx8IHt9KS5yb3V0ZXMgJiYgKHJvdXRlLmNvbXBvbmVudCB8fCByb3V0ZS5sb2FkQ2hpbGRyZW4pKVxuICAgIC5mb3JFYWNoKHJvdXRlID0+IHtcbiAgICAgIGNvbnN0IGFicFBhY2thZ2UgPSBhYnBSb3V0ZXMuZmluZChcbiAgICAgICAgYWJwID0+IGFicC5wYXRoLnRvTG93ZXJDYXNlKCkgPT09IHJvdXRlLnBhdGgudG9Mb3dlckNhc2UoKSAmJiBzbnEoKCkgPT4gcm91dGUuZGF0YS5yb3V0ZXMucm91dGVzLmxlbmd0aCwgZmFsc2UpLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHsgbGVuZ3RoIH0gPSB0cmFuc2Zvcm1lZDtcblxuICAgICAgaWYgKGFicFBhY2thZ2UpIHtcbiAgICAgICAgdHJhbnNmb3JtZWQucHVzaChhYnBQYWNrYWdlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRyYW5zZm9ybWVkLmxlbmd0aCA9PT0gbGVuZ3RoKSB7XG4gICAgICAgIHRyYW5zZm9ybWVkLnB1c2goe1xuICAgICAgICAgIC4uLnJvdXRlLmRhdGEucm91dGVzLFxuICAgICAgICAgIHBhdGg6IHJvdXRlLnBhdGgsXG4gICAgICAgICAgbmFtZTogc25xKCgpID0+IHJvdXRlLmRhdGEucm91dGVzLm5hbWUsIHJvdXRlLnBhdGgpLFxuICAgICAgICAgIGNoaWxkcmVuOiByb3V0ZS5kYXRhLnJvdXRlcy5jaGlsZHJlbiB8fCBbXSxcbiAgICAgICAgfSBhcyBBQlAuRnVsbFJvdXRlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICByZXR1cm4geyByb3V0ZXM6IHNldFVybHModHJhbnNmb3JtZWQpLCB3cmFwcGVycyB9O1xufVxuXG5mdW5jdGlvbiBzZXRVcmxzKHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdLCBwYXJlbnRVcmw/OiBzdHJpbmcpOiBBQlAuRnVsbFJvdXRlW10ge1xuICBpZiAocGFyZW50VXJsKSB7XG4gICAgLy8gdGhpcyBpZiBibG9jayB1c2luZyBmb3Igb25seSByZWN1cnNpdmUgY2FsbFxuXG4gICAgcmV0dXJuIHJvdXRlcy5tYXAocm91dGUgPT4gKHtcbiAgICAgIC4uLnJvdXRlLFxuICAgICAgdXJsOiBgJHtwYXJlbnRVcmx9LyR7cm91dGUucGF0aH1gLFxuICAgICAgLi4uKHJvdXRlLmNoaWxkcmVuICYmXG4gICAgICAgIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCAmJiB7XG4gICAgICAgICAgY2hpbGRyZW46IHNldFVybHMocm91dGUuY2hpbGRyZW4sIGAke3BhcmVudFVybH0vJHtyb3V0ZS5wYXRofWApLFxuICAgICAgICB9KSxcbiAgICB9KSk7XG4gIH1cblxuICByZXR1cm4gcm91dGVzLm1hcChyb3V0ZSA9PiAoe1xuICAgIC4uLnJvdXRlLFxuICAgIHVybDogYC8ke3JvdXRlLnBhdGh9YCxcbiAgICAuLi4ocm91dGUuY2hpbGRyZW4gJiZcbiAgICAgIHJvdXRlLmNoaWxkcmVuLmxlbmd0aCAmJiB7XG4gICAgICAgIGNoaWxkcmVuOiBzZXRVcmxzKHJvdXRlLmNoaWxkcmVuLCBgLyR7cm91dGUucGF0aH1gKSxcbiAgICAgIH0pLFxuICB9KSk7XG59XG4iXX0= \ No newline at end of file +/** + * @param {?} routes + * @return {?} + */ +function flatRoutes(routes) { + /** @type {?} */ + var flat = (/** + * @param {?} r + * @return {?} + */ + function (r) { + return r.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { + /** @type {?} */ + var value = [val]; + if (val.children) { + value = tslib_1.__spread([val], flat(val.children)); + } + return tslib_1.__spread(acc, value); + }), []); + }); + return flat(routes); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbImxpYi9wbHVnaW5zL2NvbmZpZy9jb25maWcucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBZ0MsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFFdEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQzs7QUFFL0IsTUFBTSxLQUFPLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFDLDRCQUE0QixDQUFDO0FBRTFGO0lBSUUsc0JBQXdELE9BQWlCLEVBQVUsTUFBYztRQUF6QyxZQUFPLEdBQVAsT0FBTyxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUZ6RixnQkFBVyxHQUFZLEtBQUssQ0FBQztJQUUrRCxDQUFDOzs7Ozs7O0lBRXJHLDZCQUFNOzs7Ozs7SUFBTixVQUFPLEtBQVUsRUFBRSxLQUFVLEVBQUUsSUFBc0I7O1lBQzdDLE9BQU8sR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDOztZQUM5QixZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFFL0QsNkdBQTZHO1FBQzdHLElBQUksWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNqQyxJQUFBLHdDQUEwRCxFQUF4RCxrQkFBTSxFQUFFLHNCQUFnRDtZQUM5RCxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQzs7Z0JBQ3BDLGFBQWEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9DLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLGFBQWEsdUJBQ2hDLENBQUMsS0FBSyxDQUFDLFdBQVcseUJBQVMsS0FBSyxDQUFDLFdBQVcsQ0FBRSxDQUFDLEVBQy9DLElBQUksQ0FBQyxPQUFPLElBQ2YsTUFBTSxRQUFBO2dCQUNOLGFBQWEsZUFBQSxJQUNiLENBQUM7WUFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUN6QjtRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOztnQkExQkYsVUFBVTs7OztnREFJSSxNQUFNLFNBQUMsMEJBQTBCO2dCQWJ2QyxNQUFNOztJQW9DZixtQkFBQztDQUFBLEFBM0JELElBMkJDO1NBMUJZLFlBQVk7Ozs7OztJQUN2QixtQ0FBcUM7Ozs7O0lBRXpCLCtCQUE2RDs7Ozs7SUFBRSw4QkFBc0I7Ozs7Ozs7QUF5Qm5HLFNBQVMsZUFBZSxDQUFDLE1BQW1CLEVBQUUsUUFBOEI7SUFBbkQsdUJBQUEsRUFBQSxXQUFtQjtJQUFFLHlCQUFBLEVBQUEsYUFBOEI7O1FBQ3BFLFNBQVMsR0FBb0IsTUFBTTtTQUN0QyxNQUFNOzs7O0lBQUMsVUFBQSxLQUFLO1FBQ1gsT0FBTyxHQUFHOzs7UUFBQyxjQUFNLE9BQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUk7Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksRUFBckIsQ0FBcUIsRUFBQyxFQUF6RCxDQUF5RCxHQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JGLENBQUMsRUFBQztTQUNELE1BQU07Ozs7O0lBQUMsVUFBQyxHQUFHLEVBQUUsR0FBRyxJQUFLLHdCQUFJLEdBQUcsRUFBSyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQWxDLENBQW1DLEdBQUUsRUFBRSxDQUFDO0lBRWhFLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTTs7OztJQUFDLFVBQUEsRUFBRSxJQUFJLE9BQUEsRUFBRSxDQUFDLE9BQU8sRUFBVixDQUFVLEVBQUMsQ0FBQzs7UUFDeEMsV0FBVyxHQUFHLG1CQUFBLEVBQUUsRUFBbUI7SUFDekMsTUFBTTtTQUNILE1BQU07Ozs7SUFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBcEUsQ0FBb0UsRUFBQztTQUNyRixPQUFPOzs7O0lBQUMsVUFBQSxLQUFLOztZQUNOLFVBQVUsR0FBRyxTQUFTLENBQUMsSUFBSTs7OztRQUMvQixVQUFBLEdBQUcsSUFBSSxPQUFBLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxHQUFHOzs7UUFBQyxjQUFNLE9BQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBL0IsQ0FBK0IsR0FBRSxLQUFLLENBQUMsRUFBeEcsQ0FBd0csRUFDaEg7UUFDTyxJQUFBLDJCQUFNO1FBRWQsSUFBSSxVQUFVLEVBQUU7WUFDZCxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlCO1FBRUQsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRTtZQUNqQyxXQUFXLENBQUMsSUFBSSxDQUFDLHdDQUNaLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUNwQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFDaEIsSUFBSSxFQUFFLEdBQUc7OztnQkFBQyxjQUFNLE9BQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUF0QixDQUFzQixHQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDbkQsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLEtBQzFCLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUMsRUFBQyxDQUFDO0lBRUwsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxVQUFBLEVBQUUsQ0FBQztBQUNwRCxDQUFDOzs7Ozs7QUFFRCxTQUFTLE9BQU8sQ0FBQyxNQUF1QixFQUFFLFNBQWtCO0lBQzFELElBQUksU0FBUyxFQUFFO1FBQ2IsOENBQThDO1FBRTlDLE9BQU8sTUFBTSxDQUFDLEdBQUc7Ozs7UUFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLHNCQUN0QixLQUFLLElBQ1IsR0FBRyxFQUFLLFNBQVMsU0FBSSxLQUFLLENBQUMsSUFBTSxJQUM5QixDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQ2hCLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJO1lBQ3ZCLFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBSyxTQUFTLFNBQUksS0FBSyxDQUFDLElBQU0sQ0FBQztTQUNoRSxDQUFDLEVBQ0osRUFQeUIsQ0FPekIsRUFBQyxDQUFDO0tBQ0w7SUFFRCxPQUFPLE1BQU0sQ0FBQyxHQUFHOzs7O0lBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxzQkFDdEIsS0FBSyxJQUNSLEdBQUcsRUFBRSxNQUFJLEtBQUssQ0FBQyxJQUFNLElBQ2xCLENBQUMsS0FBSyxDQUFDLFFBQVE7UUFDaEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUk7UUFDdkIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQUksS0FBSyxDQUFDLElBQU0sQ0FBQztLQUNwRCxDQUFDLEVBQ0osRUFQeUIsQ0FPekIsRUFBQyxDQUFDO0FBQ04sQ0FBQzs7Ozs7QUFFRCxTQUFTLFVBQVUsQ0FBQyxNQUF1Qjs7UUFDbkMsSUFBSTs7OztJQUFHLFVBQUMsQ0FBa0I7UUFDOUIsT0FBTyxDQUFDLENBQUMsTUFBTTs7Ozs7UUFBQyxVQUFDLEdBQUcsRUFBRSxHQUFHOztnQkFDbkIsS0FBSyxHQUFvQixDQUFDLEdBQUcsQ0FBQztZQUNsQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hCLEtBQUsscUJBQUksR0FBRyxHQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUN0QztZQUVELHdCQUFXLEdBQUcsRUFBSyxLQUFLLEVBQUU7UUFDNUIsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQyxDQUFBO0lBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGFjdGlvbk1hdGNoZXIsIEluaXRTdGF0ZSwgTmd4c05leHRQbHVnaW5GbiwgTmd4c1BsdWdpbiwgc2V0VmFsdWUsIFVwZGF0ZVN0YXRlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHNucSBmcm9tICdzbnEnO1xuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IG9yZ2FuaXplUm91dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcm91dGUtdXRpbHMnO1xuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnO1xuXG5leHBvcnQgY29uc3QgTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ05HWFNfQ09ORklHX1BMVUdJTl9PUFRJT05TJyk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb25maWdQbHVnaW4gaW1wbGVtZW50cyBOZ3hzUGx1Z2luIHtcbiAgcHJpdmF0ZSBpbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTkdYU19DT05GSUdfUExVR0lOX09QVElPTlMpIHByaXZhdGUgb3B0aW9uczogQUJQLlJvb3QsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgaGFuZGxlKHN0YXRlOiBhbnksIGV2ZW50OiBhbnksIG5leHQ6IE5neHNOZXh0UGx1Z2luRm4pIHtcbiAgICBjb25zdCBtYXRjaGVzID0gYWN0aW9uTWF0Y2hlcihldmVudCk7XG4gICAgY29uc3QgaXNJbml0QWN0aW9uID0gbWF0Y2hlcyhJbml0U3RhdGUpIHx8IG1hdGNoZXMoVXBkYXRlU3RhdGUpO1xuXG4gICAgLy8gY29uc3QgbGF5b3V0cyA9IHNucSgoKSA9PiB0aGlzLm9wdGlvbnMucmVxdWlyZW1lbnRzLmxheW91dHMuZmlsdGVyKGxheW91dCA9PiBsYXlvdXQgaW5zdGFuY2VvZiBUeXBlKSwgW10pO1xuICAgIGlmIChpc0luaXRBY3Rpb24gJiYgIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGxldCB7IHJvdXRlcywgd3JhcHBlcnMgfSA9IHRyYW5zZm9ybVJvdXRlcyh0aGlzLnJvdXRlci5jb25maWcpO1xuICAgICAgcm91dGVzID0gb3JnYW5pemVSb3V0ZXMocm91dGVzLCB3cmFwcGVycyk7XG4gICAgICBjb25zdCBmbGF0dGVkUm91dGVzID0gZmxhdFJvdXRlcyhjbG9uZShyb3V0ZXMpKTtcbiAgICAgIHN0YXRlID0gc2V0VmFsdWUoc3RhdGUsICdDb25maWdTdGF0ZScsIHtcbiAgICAgICAgLi4uKHN0YXRlLkNvbmZpZ1N0YXRlICYmIHsgLi4uc3RhdGUuQ29uZmlnU3RhdGUgfSksXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgICAgcm91dGVzLFxuICAgICAgICBmbGF0dGVkUm91dGVzLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHN0YXRlLCBldmVudCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtUm91dGVzKHJvdXRlczogUm91dGVzID0gW10sIHdyYXBwZXJzOiBBQlAuRnVsbFJvdXRlW10gPSBbXSk6IGFueSB7XG4gIGNvbnN0IGFicFJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdID0gcm91dGVzXG4gICAgLmZpbHRlcihyb3V0ZSA9PiB7XG4gICAgICByZXR1cm4gc25xKCgpID0+IHJvdXRlLmRhdGEucm91dGVzLnJvdXRlcy5maW5kKHIgPT4gci5wYXRoID09PSByb3V0ZS5wYXRoKSwgZmFsc2UpO1xuICAgIH0pXG4gICAgLnJlZHVjZSgoYWNjLCB2YWwpID0+IFsuLi5hY2MsIC4uLnZhbC5kYXRhLnJvdXRlcy5yb3V0ZXNdLCBbXSk7XG5cbiAgd3JhcHBlcnMgPSBhYnBSb3V0ZXMuZmlsdGVyKGFyID0+IGFyLndyYXBwZXIpO1xuICBjb25zdCB0cmFuc2Zvcm1lZCA9IFtdIGFzIEFCUC5GdWxsUm91dGVbXTtcbiAgcm91dGVzXG4gICAgLmZpbHRlcihyb3V0ZSA9PiAocm91dGUuZGF0YSB8fCB7fSkucm91dGVzICYmIChyb3V0ZS5jb21wb25lbnQgfHwgcm91dGUubG9hZENoaWxkcmVuKSlcbiAgICAuZm9yRWFjaChyb3V0ZSA9PiB7XG4gICAgICBjb25zdCBhYnBQYWNrYWdlID0gYWJwUm91dGVzLmZpbmQoXG4gICAgICAgIGFicCA9PiBhYnAucGF0aC50b0xvd2VyQ2FzZSgpID09PSByb3V0ZS5wYXRoLnRvTG93ZXJDYXNlKCkgJiYgc25xKCgpID0+IHJvdXRlLmRhdGEucm91dGVzLnJvdXRlcy5sZW5ndGgsIGZhbHNlKSxcbiAgICAgICk7XG4gICAgICBjb25zdCB7IGxlbmd0aCB9ID0gdHJhbnNmb3JtZWQ7XG5cbiAgICAgIGlmIChhYnBQYWNrYWdlKSB7XG4gICAgICAgIHRyYW5zZm9ybWVkLnB1c2goYWJwUGFja2FnZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0cmFuc2Zvcm1lZC5sZW5ndGggPT09IGxlbmd0aCkge1xuICAgICAgICB0cmFuc2Zvcm1lZC5wdXNoKHtcbiAgICAgICAgICAuLi5yb3V0ZS5kYXRhLnJvdXRlcyxcbiAgICAgICAgICBwYXRoOiByb3V0ZS5wYXRoLFxuICAgICAgICAgIG5hbWU6IHNucSgoKSA9PiByb3V0ZS5kYXRhLnJvdXRlcy5uYW1lLCByb3V0ZS5wYXRoKSxcbiAgICAgICAgICBjaGlsZHJlbjogcm91dGUuZGF0YS5yb3V0ZXMuY2hpbGRyZW4gfHwgW10sXG4gICAgICAgIH0gYXMgQUJQLkZ1bGxSb3V0ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgcmV0dXJuIHsgcm91dGVzOiBzZXRVcmxzKHRyYW5zZm9ybWVkKSwgd3JhcHBlcnMgfTtcbn1cblxuZnVuY3Rpb24gc2V0VXJscyhyb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSwgcGFyZW50VXJsPzogc3RyaW5nKTogQUJQLkZ1bGxSb3V0ZVtdIHtcbiAgaWYgKHBhcmVudFVybCkge1xuICAgIC8vIHRoaXMgaWYgYmxvY2sgdXNpbmcgZm9yIG9ubHkgcmVjdXJzaXZlIGNhbGxcblxuICAgIHJldHVybiByb3V0ZXMubWFwKHJvdXRlID0+ICh7XG4gICAgICAuLi5yb3V0ZSxcbiAgICAgIHVybDogYCR7cGFyZW50VXJsfS8ke3JvdXRlLnBhdGh9YCxcbiAgICAgIC4uLihyb3V0ZS5jaGlsZHJlbiAmJlxuICAgICAgICByb3V0ZS5jaGlsZHJlbi5sZW5ndGggJiYge1xuICAgICAgICAgIGNoaWxkcmVuOiBzZXRVcmxzKHJvdXRlLmNoaWxkcmVuLCBgJHtwYXJlbnRVcmx9LyR7cm91dGUucGF0aH1gKSxcbiAgICAgICAgfSksXG4gICAgfSkpO1xuICB9XG5cbiAgcmV0dXJuIHJvdXRlcy5tYXAocm91dGUgPT4gKHtcbiAgICAuLi5yb3V0ZSxcbiAgICB1cmw6IGAvJHtyb3V0ZS5wYXRofWAsXG4gICAgLi4uKHJvdXRlLmNoaWxkcmVuICYmXG4gICAgICByb3V0ZS5jaGlsZHJlbi5sZW5ndGggJiYge1xuICAgICAgICBjaGlsZHJlbjogc2V0VXJscyhyb3V0ZS5jaGlsZHJlbiwgYC8ke3JvdXRlLnBhdGh9YCksXG4gICAgICB9KSxcbiAgfSkpO1xufVxuXG5mdW5jdGlvbiBmbGF0Um91dGVzKHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdKTogQUJQLkZ1bGxSb3V0ZVtdIHtcbiAgY29uc3QgZmxhdCA9IChyOiBBQlAuRnVsbFJvdXRlW10pID0+IHtcbiAgICByZXR1cm4gci5yZWR1Y2UoKGFjYywgdmFsKSA9PiB7XG4gICAgICBsZXQgdmFsdWU6IEFCUC5GdWxsUm91dGVbXSA9IFt2YWxdO1xuICAgICAgaWYgKHZhbC5jaGlsZHJlbikge1xuICAgICAgICB2YWx1ZSA9IFt2YWwsIC4uLmZsYXQodmFsLmNoaWxkcmVuKV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbLi4uYWNjLCAuLi52YWx1ZV07XG4gICAgfSwgW10pO1xuICB9O1xuXG4gIHJldHVybiBmbGF0KHJvdXRlcyk7XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/services/localization.service.js b/npm/ng-packs/dist/core/esm5/lib/services/localization.service.js index 1a8375256d..703cb433e5 100644 --- a/npm/ng-packs/dist/core/esm5/lib/services/localization.service.js +++ b/npm/ng-packs/dist/core/esm5/lib/services/localization.service.js @@ -3,7 +3,7 @@ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; -import { Injectable, Optional, SkipSelf } from '@angular/core'; +import { Injectable, Optional, SkipSelf, NgZone } from '@angular/core'; import { Router } from '@angular/router'; import { Actions, Store } from '@ngxs/store'; import { noop } from 'rxjs'; @@ -14,9 +14,10 @@ import * as i0 from "@angular/core"; import * as i1 from "@ngxs/store"; import * as i2 from "@angular/router"; var LocalizationService = /** @class */ (function () { - function LocalizationService(store, router, actions, otherInstance) { + function LocalizationService(store, router, ngZone, actions, otherInstance) { this.store = store; this.router = router; + this.ngZone = ngZone; this.actions = actions; if (otherInstance) throw new Error('LocaleService should have only one instance.'); @@ -63,17 +64,22 @@ var LocalizationService = /** @class */ (function () { return registerLocale(locale).then((/** * @return {?} */ - function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.router.navigateByUrl(this.router.url).catch(noop)]; - case 1: - _a.sent(); - this.setRouteReuse(shouldReuseRoute); - return [2 /*return*/]; - } - }); - }); })); + function () { + _this.ngZone.run((/** + * @return {?} + */ + function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { + return tslib_1.__generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, this.router.navigateByUrl(this.router.url).catch(noop)]; + case 1: + _a.sent(); + this.setRouteReuse(shouldReuseRoute); + return [2 /*return*/]; + } + }); + }); })); + })); }; /** * @param {?} keys @@ -116,10 +122,11 @@ var LocalizationService = /** @class */ (function () { LocalizationService.ctorParameters = function () { return [ { type: Store }, { type: Router }, + { type: NgZone }, { type: Actions }, { type: LocalizationService, decorators: [{ type: Optional }, { type: SkipSelf }] } ]; }; - /** @nocollapse */ LocalizationService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(i0.ɵɵinject(i1.Store), i0.ɵɵinject(i2.Router), i0.ɵɵinject(i1.Actions), i0.ɵɵinject(LocalizationService, 12)); }, token: LocalizationService, providedIn: "root" }); + /** @nocollapse */ LocalizationService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(i0.ɵɵinject(i1.Store), i0.ɵɵinject(i2.Router), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.Actions), i0.ɵɵinject(LocalizationService, 12)); }, token: LocalizationService, providedIn: "root" }); return LocalizationService; }()); export { LocalizationService }; @@ -134,10 +141,15 @@ if (false) { * @private */ LocalizationService.prototype.router; + /** + * @type {?} + * @private + */ + LocalizationService.prototype.ngZone; /** * @type {?} * @private */ LocalizationService.prototype.actions; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUEwQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBSXhEO0lBTUUsNkJBQ1UsS0FBWSxFQUNaLE1BQWMsRUFDZCxPQUFnQixFQUd4QixhQUFrQztRQUwxQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFLeEIsSUFBSSxhQUFhO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFiRCxzQkFBSSw0Q0FBVzs7OztRQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsQ0FBQzs7O09BQUE7Ozs7OztJQWFPLDJDQUFhOzs7OztJQUFyQixVQUFzQixLQUF1QjtRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUMxRCxDQUFDOzs7OztJQUVELDRDQUFjOzs7O0lBQWQsVUFBZSxNQUFjO1FBQTdCLGlCQVVDO1FBVFMsSUFBQSxrRUFBZ0I7UUFFeEIsSUFBSSxDQUFDLGFBQWE7OztRQUFDLGNBQU0sT0FBQSxLQUFLLEVBQUwsQ0FBSyxFQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTlCLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUk7OztRQUFDOzs7NEJBQ2pDLHFCQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFBOzt3QkFBNUQsU0FBNEQsQ0FBQzt3QkFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDOzs7O2FBQ3RDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7OztJQUVELGlDQUFHOzs7OztJQUFILFVBQUksSUFBWTtRQUFFLDJCQUE4QjthQUE5QixVQUE4QixFQUE5QixxQkFBOEIsRUFBOUIsSUFBOEI7WUFBOUIsMENBQThCOztRQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLE9BQW5CLFdBQVcsb0JBQVMsSUFBSSxHQUFLLGlCQUFpQixHQUFFLENBQUM7SUFDNUUsQ0FBQzs7Ozs7O0lBRUQscUNBQU87Ozs7O0lBQVAsVUFBUSxJQUFZO1FBQUUsMkJBQThCO2FBQTlCLFVBQThCLEVBQTlCLHFCQUE4QixFQUE5QixJQUE4QjtZQUE5QiwwQ0FBOEI7O1FBQ2xELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sT0FBbkIsV0FBVyxvQkFBUyxJQUFJLEdBQUssaUJBQWlCLEdBQUUsQ0FBQztJQUNwRixDQUFDOztnQkF2Q0YsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7OztnQkFSaEIsS0FBSztnQkFEVSxNQUFNO2dCQUM5QixPQUFPO2dCQW9CRyxtQkFBbUIsdUJBRmpDLFFBQVEsWUFDUixRQUFROzs7OEJBckJiO0NBa0RDLEFBeENELElBd0NDO1NBdkNZLG1CQUFtQjs7Ozs7O0lBTTVCLG9DQUFvQjs7Ozs7SUFDcEIscUNBQXNCOzs7OztJQUN0QixzQ0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBY3Rpb25zLCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IG5vb3AsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpZ1N0YXRlIH0gZnJvbSAnLi4vc3RhdGVzL2NvbmZpZy5zdGF0ZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMvc2Vzc2lvbi5zdGF0ZSc7XG5pbXBvcnQgeyByZWdpc3RlckxvY2FsZSB9IGZyb20gJy4uL3V0aWxzL2luaXRpYWwtdXRpbHMnO1xuXG50eXBlIFNob3VsZFJldXNlUm91dGUgPSAoZnV0dXJlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSA9PiBib29sZWFuO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvblNlcnZpY2Uge1xuICBnZXQgY3VycmVudExhbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGlvbnM6IEFjdGlvbnMsXG4gICAgQE9wdGlvbmFsKClcbiAgICBAU2tpcFNlbGYoKVxuICAgIG90aGVySW5zdGFuY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICkge1xuICAgIGlmIChvdGhlckluc3RhbmNlKSB0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsZVNlcnZpY2Ugc2hvdWxkIGhhdmUgb25seSBvbmUgaW5zdGFuY2UuJyk7XG4gIH1cblxuICBwcml2YXRlIHNldFJvdXRlUmV1c2UocmV1c2U6IFNob3VsZFJldXNlUm91dGUpIHtcbiAgICB0aGlzLnJvdXRlci5yb3V0ZVJldXNlU3RyYXRlZ3kuc2hvdWxkUmV1c2VSb3V0ZSA9IHJldXNlO1xuICB9XG5cbiAgcmVnaXN0ZXJMb2NhbGUobG9jYWxlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IHNob3VsZFJldXNlUm91dGUgfSA9IHRoaXMucm91dGVyLnJvdXRlUmV1c2VTdHJhdGVneTtcblxuICAgIHRoaXMuc2V0Um91dGVSZXVzZSgoKSA9PiBmYWxzZSk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVkID0gZmFsc2U7XG5cbiAgICByZXR1cm4gcmVnaXN0ZXJMb2NhbGUobG9jYWxlKS50aGVuKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yb3V0ZXIudXJsKS5jYXRjaChub29wKTtcbiAgICAgIHRoaXMuc2V0Um91dGVSZXVzZShzaG91bGRSZXVzZVJvdXRlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldChrZXlzOiBzdHJpbmcsIC4uLmludGVycG9sYXRlUGFyYW1zOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1N0YXRlLmdldENvcHkoa2V5cywgLi4uaW50ZXJwb2xhdGVQYXJhbXMpKTtcbiAgfVxuXG4gIGluc3RhbnQoa2V5czogc3RyaW5nLCAuLi5pbnRlcnBvbGF0ZVBhcmFtczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KENvbmZpZ1N0YXRlLmdldENvcHkoa2V5cywgLi4uaW50ZXJwb2xhdGVQYXJhbXMpKTtcbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBMEIsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUl4RDtJQU1FLDZCQUNVLEtBQVksRUFDWixNQUFjLEVBQ2QsTUFBYyxFQUNkLE9BQWdCLEVBR3hCLGFBQWtDO1FBTjFCLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFLeEIsSUFBSSxhQUFhO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFkRCxzQkFBSSw0Q0FBVzs7OztRQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsQ0FBQzs7O09BQUE7Ozs7OztJQWNPLDJDQUFhOzs7OztJQUFyQixVQUFzQixLQUF1QjtRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUMxRCxDQUFDOzs7OztJQUVELDRDQUFjOzs7O0lBQWQsVUFBZSxNQUFjO1FBQTdCLGlCQVlDO1FBWFMsSUFBQSxrRUFBZ0I7UUFFeEIsSUFBSSxDQUFDLGFBQWE7OztRQUFDLGNBQU0sT0FBQSxLQUFLLEVBQUwsQ0FBSyxFQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTlCLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUk7OztRQUFDO1lBQ2pDLEtBQUksQ0FBQyxNQUFNLENBQUMsR0FBRzs7O1lBQUM7OztnQ0FDZCxxQkFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQTs7NEJBQTVELFNBQTRELENBQUM7NEJBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzs7OztpQkFDdEMsRUFBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7SUFFRCxpQ0FBRzs7Ozs7SUFBSCxVQUFJLElBQVk7UUFBRSwyQkFBOEI7YUFBOUIsVUFBOEIsRUFBOUIscUJBQThCLEVBQTlCLElBQThCO1lBQTlCLDBDQUE4Qjs7UUFDOUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxPQUFuQixXQUFXLG9CQUFTLElBQUksR0FBSyxpQkFBaUIsR0FBRSxDQUFDO0lBQzVFLENBQUM7Ozs7OztJQUVELHFDQUFPOzs7OztJQUFQLFVBQVEsSUFBWTtRQUFFLDJCQUE4QjthQUE5QixVQUE4QixFQUE5QixxQkFBOEIsRUFBOUIsSUFBOEI7WUFBOUIsMENBQThCOztRQUNsRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxPQUFPLE9BQW5CLFdBQVcsb0JBQVMsSUFBSSxHQUFLLGlCQUFpQixHQUFFLENBQUM7SUFDcEYsQ0FBQzs7Z0JBMUNGLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7Ozs7Z0JBUmhCLEtBQUs7Z0JBRFUsTUFBTTtnQkFERSxNQUFNO2dCQUV0QyxPQUFPO2dCQXFCRyxtQkFBbUIsdUJBRmpDLFFBQVEsWUFDUixRQUFROzs7OEJBdEJiO0NBcURDLEFBM0NELElBMkNDO1NBMUNZLG1CQUFtQjs7Ozs7O0lBTTVCLG9DQUFvQjs7Ozs7SUFDcEIscUNBQXNCOzs7OztJQUN0QixxQ0FBc0I7Ozs7O0lBQ3RCLHNDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsLCBTa2lwU2VsZiwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aW9ucywgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBub29wLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL3N0YXRlcy9jb25maWcuc3RhdGUnO1xuaW1wb3J0IHsgU2Vzc2lvblN0YXRlIH0gZnJvbSAnLi4vc3RhdGVzL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHsgcmVnaXN0ZXJMb2NhbGUgfSBmcm9tICcuLi91dGlscy9pbml0aWFsLXV0aWxzJztcblxudHlwZSBTaG91bGRSZXVzZVJvdXRlID0gKGZ1dHVyZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgY3VycjogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkgPT4gYm9vbGVhbjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcbiAgZ2V0IGN1cnJlbnRMYW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2Vzc2lvblN0YXRlLmdldExhbmd1YWdlKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGFjdGlvbnM6IEFjdGlvbnMsXG4gICAgQE9wdGlvbmFsKClcbiAgICBAU2tpcFNlbGYoKVxuICAgIG90aGVySW5zdGFuY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICkge1xuICAgIGlmIChvdGhlckluc3RhbmNlKSB0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsZVNlcnZpY2Ugc2hvdWxkIGhhdmUgb25seSBvbmUgaW5zdGFuY2UuJyk7XG4gIH1cblxuICBwcml2YXRlIHNldFJvdXRlUmV1c2UocmV1c2U6IFNob3VsZFJldXNlUm91dGUpIHtcbiAgICB0aGlzLnJvdXRlci5yb3V0ZVJldXNlU3RyYXRlZ3kuc2hvdWxkUmV1c2VSb3V0ZSA9IHJldXNlO1xuICB9XG5cbiAgcmVnaXN0ZXJMb2NhbGUobG9jYWxlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IHNob3VsZFJldXNlUm91dGUgfSA9IHRoaXMucm91dGVyLnJvdXRlUmV1c2VTdHJhdGVneTtcblxuICAgIHRoaXMuc2V0Um91dGVSZXVzZSgoKSA9PiBmYWxzZSk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVkID0gZmFsc2U7XG5cbiAgICByZXR1cm4gcmVnaXN0ZXJMb2NhbGUobG9jYWxlKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bihhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yb3V0ZXIudXJsKS5jYXRjaChub29wKTtcbiAgICAgICAgdGhpcy5zZXRSb3V0ZVJldXNlKHNob3VsZFJldXNlUm91dGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQoa2V5czogc3RyaW5nLCAuLi5pbnRlcnBvbGF0ZVBhcmFtczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTdGF0ZS5nZXRDb3B5KGtleXMsIC4uLmludGVycG9sYXRlUGFyYW1zKSk7XG4gIH1cblxuICBpbnN0YW50KGtleXM6IHN0cmluZywgLi4uaW50ZXJwb2xhdGVQYXJhbXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChDb25maWdTdGF0ZS5nZXRDb3B5KGtleXMsIC4uLmludGVycG9sYXRlUGFyYW1zKSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/lib/states/config.state.js b/npm/ng-packs/dist/core/esm5/lib/states/config.state.js index 9ebf5f5f17..9c07eee74b 100644 --- a/npm/ng-packs/dist/core/esm5/lib/states/config.state.js +++ b/npm/ng-packs/dist/core/esm5/lib/states/config.state.js @@ -38,7 +38,7 @@ var ConfigState = /** @class */ (function () { * @return {?} */ function (state) { - return state.environment.application || {}; + return state.environment.application || ((/** @type {?} */ ({}))); }; /** * @param {?} key @@ -111,7 +111,19 @@ var ConfigState = /** @class */ (function () { * @return {?} */ function (state) { - return findRoute(state.routes, path, name); + var flattedRoutes = state.flattedRoutes; + return ((/** @type {?} */ (flattedRoutes))).find((/** + * @param {?} route + * @return {?} + */ + function (route) { + if (path && route.path === path) { + return route; + } + else if (name && route.name === name) { + return route; + } + })); })); return selector; }; @@ -157,55 +169,26 @@ var ConfigState = /** @class */ (function () { return selector; }; /** - * @param {?=} condition + * @param {?} key * @return {?} */ ConfigState.getGrantedPolicy = /** - * @param {?=} condition + * @param {?} key * @return {?} */ - function (condition) { - if (condition === void 0) { condition = ''; } - /** @type {?} */ - var keys = condition - .replace(/\(|\)|\!|\s/g, '') - .split(/\|\||&&/) - .filter((/** - * @param {?} key - * @return {?} - */ - function (key) { return key; })); + function (key) { /** @type {?} */ var selector = createSelector([ConfigState_1], (/** * @param {?} state * @return {?} */ function (state) { - if (!keys.length) + if (!key) return true; - /** @type {?} */ - var getPolicy = (/** - * @param {?} key - * @return {?} - */ - function (key) { return snq((/** + return snq((/** * @return {?} */ - function () { return state.auth.grantedPolicies[key]; }), false); }); - if (keys.length > 1) { - keys.forEach((/** - * @param {?} key - * @return {?} - */ - function (key) { - /** @type {?} */ - var value = getPolicy(key); - condition = condition.replace(key, value); - })); - // tslint:disable-next-line: no-eval - return eval("!!" + condition); - } - return getPolicy(condition); + function () { return state.auth.grantedPolicies[key]; }), false); })); return selector; }; @@ -247,7 +230,7 @@ var ConfigState = /** @class */ (function () { function () { return defaultResourceName; })); } /** @type {?} */ - var copy = keys.reduce((/** + var copy = ((/** @type {?} */ (keys))).reduce((/** * @param {?} acc * @param {?} val * @return {?} @@ -355,7 +338,7 @@ var ConfigState = /** @class */ (function () { Selector(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object]), - tslib_1.__metadata("design:returntype", void 0) + tslib_1.__metadata("design:returntype", Object) ], ConfigState, "getApplicationInfo", null); ConfigState = ConfigState_1 = tslib_1.__decorate([ State({ @@ -417,34 +400,4 @@ function patchRouteDeep(routes, name, newValue, parentUrl) { } return organizeRoutes(routes); } -/** - * @param {?} routes - * @param {?=} path - * @param {?=} name - * @return {?} - */ -function findRoute(routes, path, name) { - /** @type {?} */ - var foundRoute; - routes.forEach((/** - * @param {?} route - * @return {?} - */ - function (route) { - if (foundRoute) - return; - if (path && route.path === path) { - foundRoute = route; - } - else if (name && route.name === name) { - foundRoute = route; - return; - } - else if (route.children && route.children.length) { - foundRoute = findRoute(route.children, path, name); - return; - } - })); - return foundRoute; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy9jb25maWcuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFnQixLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQTZCLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztJQW1LL0UscUJBQW9CLHVCQUF3RCxFQUFVLEtBQVk7UUFBOUUsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFpQztRQUFVLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRyxDQUFDO29CQTdKM0YsV0FBVzs7Ozs7SUFFZixrQkFBTTs7OztJQUFiLFVBQWMsS0FBbUI7UUFDL0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7OztJQUdNLDhCQUFrQjs7OztJQUF6QixVQUEwQixLQUFtQjtRQUMzQyxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDOzs7OztJQUVNLGtCQUFNOzs7O0lBQWIsVUFBYyxHQUFXOztZQUNqQixRQUFRLEdB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LE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFRCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQyxDQUFDOzs7Ozs7O0FBRUQsU0FBUyxTQUFTLENBQUMsTUFBdUIsRUFBRSxJQUFhLEVBQUUsSUFBYTs7UUFDbEUsVUFBVTtJQUNkLE1BQU0sQ0FBQyxPQUFPOzs7O0lBQUMsVUFBQSxLQUFLO1FBQ2xCLElBQUksVUFBVTtZQUFFLE9BQU87UUFFdkIsSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDL0IsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUNwQjthQUFNLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ3RDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDbkIsT0FBTztTQUNSO2FBQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ2xELFVBQVUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkQsT0FBTztTQUNSO0lBQ0gsQ0FBQyxFQUFDLENBQUM7SUFFSCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGUsIFNlbGVjdG9yLCBjcmVhdGVTZWxlY3RvciwgQWN0aW9uLCBTdGF0ZUNvbnRleHQsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgQ29uZmlnLCBBQlAgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgR2V0QXBwQ29uZmlndXJhdGlvbiwgUGF0Y2hSb3V0ZUJ5TmFtZSB9IGZyb20gJy4uL2FjdGlvbnMvY29uZmlnLmFjdGlvbnMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Db25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyB0YXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcbmltcG9ydCB7IFNldExhbmd1YWdlIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNldENoaWxkUm91dGUsIHNvcnRSb3V0ZXMsIG9yZ2FuaXplUm91dGVzIH0gZnJvbSAnLi4vdXRpbHMvcm91dGUtdXRpbHMnO1xuXG5AU3RhdGU8Q29uZmlnLlN0YXRlPih7XG4gIG5hbWU6ICdDb25maWdTdGF0ZScsXG4gIGRlZmF1bHRzOiB7fSBhcyBDb25maWcuU3RhdGUsXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ1N0YXRlIHtcbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldEFsbChzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldEFwcGxpY2F0aW9uSW5mbyhzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgcmV0dXJuIHN0YXRlLmVudmlyb25tZW50LmFwcGxpY2F0aW9uIHx8IHt9O1xuICB9XG5cbiAgc3RhdGljIGdldE9uZShrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBbQ29uZmlnU3RhdGVdLFxuICAgICAgZnVuY3Rpb24oc3RhdGU6IENvbmZpZy5TdGF0ZSkge1xuICAgICAgICByZXR1cm4gc3RhdGVba2V5XTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXREZWVwKGtleXM6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBrZXlzID09PSAnc3RyaW5nJykge1xuICAgICAga2V5cyA9IGtleXMuc3BsaXQoJy4nKTtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoa2V5cykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBkb3Qgc3RyaW5nIG9yIGFuIHN0cmluZyBhcnJheS4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIChrZXlzIGFzIHN0cmluZ1tdKS5yZWR1Y2UoKGFjYywgdmFsKSA9PiB7XG4gICAgICAgICAgaWYgKGFjYykge1xuICAgICAgICAgICAgcmV0dXJuIGFjY1t2YWxdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0sIHN0YXRlKTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRSb3V0ZShwYXRoPzogc3RyaW5nLCBuYW1lPzogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgICAgIHJldHVybiBmaW5kUm91dGUoc3RhdGUucm91dGVzLCBwYXRoLCBuYW1lKTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBcGlVcmwoa2V5Pzogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlLmVudmlyb25tZW50LmFwaXNba2V5IHx8ICdkZWZhdWx0J10udXJsO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHNlbGVjdG9yO1xuICB9XG5cbiAgc3RhdGljIGdldFNldHRpbmcoa2V5OiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIHNucSgoKSA9PiBzdGF0ZS5zZXR0aW5nLnZhbHVlc1trZXldKTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRHcmFudGVkUG9saWN5KGNvbmRpdGlvbjogc3RyaW5nID0gJycpIHtcbiAgICBjb25zdCBrZXlzID0gY29uZGl0aW9uXG4gICAgICAucmVwbGFjZSgvXFwofFxcKXxcXCF8XFxzL2csICcnKVxuICAgICAgLnNwbGl0KC9cXHxcXHx8JiYvKVxuICAgICAgLmZpbHRlcihrZXkgPT4ga2V5KTtcblxuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBbQ29uZmlnU3RhdGVdLFxuICAgICAgZnVuY3Rpb24oc3RhdGU6IENvbmZpZy5TdGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWtleXMubGVuZ3RoKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBjb25zdCBnZXRQb2xpY3kgPSBrZXkgPT4gc25xKCgpID0+IHN0YXRlLmF1dGguZ3JhbnRlZFBvbGljaWVzW2tleV0sIGZhbHNlKTtcbiAgICAgICAgaWYgKGtleXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRQb2xpY3koa2V5KTtcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5yZXBsYWNlKGtleSwgdmFsdWUpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1ldmFsXG4gICAgICAgICAgcmV0dXJuIGV2YWwoYCEhJHtjb25kaXRpb259YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2V0UG9saWN5KGNvbmRpdGlvbik7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gc2VsZWN0b3I7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29weShrZXk6IHN0cmluZywgLi4uaW50ZXJwb2xhdGVQYXJhbXM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKCFrZXkpIGtleSA9ICcnO1xuXG4gICAgY29uc3Qga2V5cyA9IGtleS5zcGxpdCgnOjonKSBhcyBzdHJpbmdbXTtcbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgaWYgKCFzdGF0ZS5sb2NhbGl6YXRpb24pIHJldHVybiBrZXk7XG5cbiAgICAgICAgY29uc3QgeyBkZWZhdWx0UmVzb3VyY2VOYW1lIH0gPSBzdGF0ZS5lbnZpcm9ubWVudC5sb2NhbGl6YXRpb247XG4gICAgICAgIGlmIChrZXlzWzBdID09PSAnJykge1xuICAgICAgICAgIGlmICghZGVmYXVsdFJlc291cmNlTmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgUGxlYXNlIGNoZWNrIHlvdXIgZW52aXJvbm1lbnQuIE1heSB5b3UgZm9yZ2V0IHNldCBkZWZhdWx0UmVzb3VyY2VOYW1lPyBcbiAgICAgICAgICAgICAgSGVyZSBpcyB0aGUgZXhhbXBsZTpcbiAgICAgICAgICAgICAgIHsgcHJvZHVjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgIGxvY2FsaXphdGlvbjoge1xuICAgICAgICAgICAgICAgICAgIGRlZmF1bHRSZXNvdXJjZU5hbWU6ICdNeVByb2plY3ROYW1lJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGtleXNbMF0gPSBzbnEoKCkgPT4gZGVmYXVsdFJlc291cmNlTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29weSA9IGtleXMucmVkdWNlKChhY2MsIHZhbCkgPT4ge1xuICAgICAgICAgIGlmIChhY2MpIHtcbiAgICAgICAgICAgIHJldHVybiBhY2NbdmFsXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9LCBzdGF0ZS5sb2NhbGl6YXRpb24udmFsdWVzKTtcblxuICAgICAgICBpbnRlcnBvbGF0ZVBhcmFtcyA9IGludGVycG9sYXRlUGFyYW1zLmZpbHRlcihwYXJhbXMgPT4gcGFyYW1zICE9IG51bGwpO1xuICAgICAgICBpZiAoY29weSAmJiBpbnRlcnBvbGF0ZVBhcmFtcyAmJiBpbnRlcnBvbGF0ZVBhcmFtcy5sZW5ndGgpIHtcbiAgICAgICAgICBpbnRlcnBvbGF0ZVBhcmFtcy5mb3JFYWNoKHBhcmFtID0+IHtcbiAgICAgICAgICAgIGNvcHkgPSBjb3B5LnJlcGxhY2UoL1tcXCdcXFwiXT9cXHtbXFxkXStcXH1bXFwnXFxcIl0/LywgcGFyYW0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvcHkgfHwga2V5O1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHNlbGVjdG9yO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcHBDb25maWd1cmF0aW9uU2VydmljZTogQXBwbGljYXRpb25Db25maWd1cmF0aW9uU2VydmljZSwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgQEFjdGlvbihHZXRBcHBDb25maWd1cmF0aW9uKVxuICBhZGREYXRhKHsgcGF0Y2hTdGF0ZSwgZGlzcGF0Y2ggfTogU3RhdGVDb250ZXh0PENvbmZpZy5TdGF0ZT4pIHtcbiAgICByZXR1cm4gdGhpcy5hcHBDb25maWd1cmF0aW9uU2VydmljZS5nZXRDb25maWd1cmF0aW9uKCkucGlwZShcbiAgICAgIHRhcChjb25maWd1cmF0aW9uID0+XG4gICAgICAgIHBhdGNoU3RhdGUoe1xuICAgICAgICAgIC4uLmNvbmZpZ3VyYXRpb24sXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIHN3aXRjaE1hcChjb25maWd1cmF0aW9uID0+IHtcbiAgICAgICAgbGV0IGRlZmF1bHRMYW5nOiBzdHJpbmcgPSBjb25maWd1cmF0aW9uLnNldHRpbmcudmFsdWVzWydBYnAuTG9jYWxpemF0aW9uLkRlZmF1bHRMYW5ndWFnZSddO1xuXG4gICAgICAgIGlmIChkZWZhdWx0TGFuZy5pbmNsdWRlcygnOycpKSB7XG4gICAgICAgICAgZGVmYXVsdExhbmcgPSBkZWZhdWx0TGFuZy5zcGxpdCgnOycpWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2Vzc2lvblN0YXRlLmdldExhbmd1YWdlKSA/IG9mKG51bGwpIDogZGlzcGF0Y2gobmV3IFNldExhbmd1YWdlKGRlZmF1bHRMYW5nKSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihQYXRjaFJvdXRlQnlOYW1lKVxuICBwYXRjaFJvdXRlKHsgcGF0Y2hTdGF0ZSwgZ2V0U3RhdGUgfTogU3RhdGVDb250ZXh0PENvbmZpZy5TdGF0ZT4sIHsgbmFtZSwgbmV3VmFsdWUgfTogUGF0Y2hSb3V0ZUJ5TmFtZSkge1xuICAgIGxldCByb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSA9IGdldFN0YXRlKCkucm91dGVzO1xuXG4gICAgY29uc3QgaW5kZXggPSByb3V0ZXMuZmluZEluZGV4KHJvdXRlID0+IHJvdXRlLm5hbWUgPT09IG5hbWUpO1xuXG4gICAgcm91dGVzID0gcGF0Y2hSb3V0ZURlZXAocm91dGVzLCBuYW1lLCBuZXdWYWx1ZSk7XG5cbiAgICByZXR1cm4gcGF0Y2hTdGF0ZSh7XG4gICAgICByb3V0ZXMsXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGF0Y2hSb3V0ZURlZXAoXG4gIHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdLFxuICBuYW1lOiBzdHJpbmcsXG4gIG5ld1ZhbHVlOiBQYXJ0aWFsPEFCUC5GdWxsUm91dGU+LFxuICBwYXJlbnRVcmw6IHN0cmluZyA9IG51bGwsXG4pOiBBQlAuRnVsbFJvdXRlW10ge1xuICByb3V0ZXMgPSByb3V0ZXMubWFwKHJvdXRlID0+IHtcbiAgICBpZiAocm91dGUubmFtZSA9PT0gbmFtZSkge1xuICAgICAgaWYgKG5ld1ZhbHVlLnBhdGgpIHtcbiAgICAgICAgbmV3VmFsdWUudXJsID0gYCR7cGFyZW50VXJsfS8ke25ld1ZhbHVlLnBhdGh9YDtcbiAgICAgIH1cblxuICAgICAgaWYgKG5ld1ZhbHVlLmNoaWxkcmVuICYmIG5ld1ZhbHVlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICBuZXdWYWx1ZS5jaGlsZHJlbiA9IG5ld1ZhbHVlLmNoaWxkcmVuLm1hcChjaGlsZCA9PiAoe1xuICAgICAgICAgIC4uLmNoaWxkLFxuICAgICAgICAgIHVybDogYCR7cGFyZW50VXJsfS8ke3JvdXRlLnBhdGh9LyR7Y2hpbGQucGF0aH1gLFxuICAgICAgICB9KSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IC4uLnJvdXRlLCAuLi5uZXdWYWx1ZSB9O1xuICAgIH0gZWxzZSBpZiAocm91dGUuY2hpbGRyZW4gJiYgcm91dGUuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICByb3V0ZS5jaGlsZHJlbiA9IHBhdGNoUm91dGVEZWVwKHJvdXRlLmNoaWxkcmVuLCBuYW1lLCBuZXdWYWx1ZSwgKHBhcmVudFVybCB8fCAnLycpICsgcm91dGUucGF0aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJvdXRlO1xuICB9KTtcblxuICBpZiAocGFyZW50VXJsKSB7XG4gICAgLy8gcmVjdXJzaXZlIGJsb2NrXG4gICAgcmV0dXJuIHJvdXRlcztcbiAgfVxuXG4gIHJldHVybiBvcmdhbml6ZVJvdXRlcyhyb3V0ZXMpO1xufVxuXG5mdW5jdGlvbiBmaW5kUm91dGUocm91dGVzOiBBQlAuRnVsbFJvdXRlW10sIHBhdGg/OiBzdHJpbmcsIG5hbWU/OiBzdHJpbmcpIHtcbiAgbGV0IGZvdW5kUm91dGU7XG4gIHJvdXRlcy5mb3JFYWNoKHJvdXRlID0+IHtcbiAgICBpZiAoZm91bmRSb3V0ZSkgcmV0dXJuO1xuXG4gICAgaWYgKHBhdGggJiYgcm91dGUucGF0aCA9PT0gcGF0aCkge1xuICAgICAgZm91bmRSb3V0ZSA9IHJvdXRlO1xuICAgIH0gZWxzZSBpZiAobmFtZSAmJiByb3V0ZS5uYW1lID09PSBuYW1lKSB7XG4gICAgICBmb3VuZFJvdXRlID0gcm91dGU7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChyb3V0ZS5jaGlsZHJlbiAmJiByb3V0ZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIGZvdW5kUm91dGUgPSBmaW5kUm91dGUocm91dGUuY2hpbGRyZW4sIHBhdGgsIG5hbWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGZvdW5kUm91dGU7XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5jb3JlLyIsInNvdXJjZXMiOlsibGliL3N0YXRlcy9jb25maWcuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFnQixLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQTZCLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztJQXlKL0UscUJBQW9CLHVCQUF3RCxFQUFVLEtBQVk7UUFBOUUsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFpQztRQUFVLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRyxDQUFDO29CQW5KM0YsV0FBVzs7Ozs7SUFFZixrQkFBTTs7OztJQUFiLFVBQWMsS0FBbUI7UUFDL0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7OztJQUdNLDhCQUFrQjs7OztJQUF6QixVQUEwQixLQUFtQjtRQUMzQyxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxJQUFJLENBQUMsbUJBQUEsRUFBRSxFQUFzQixDQUFDLENBQUM7SUFDckUsQ0FBQzs7Ozs7SUFFTSxrQkFBTTs7OztJQUFiLFVB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O2dCQUNqQixRQUFRLENBQUMsR0FBRyxHQUFNLFNBQVMsU0FBSSxRQUFRLENBQUMsSUFBTSxDQUFDO2FBQ2hEO1lBRUQsSUFBSSxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNqRCxRQUFRLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRzs7OztnQkFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLHNCQUM5QyxLQUFLLElBQ1IsR0FBRyxFQUFLLFNBQVMsU0FBSSxLQUFLLENBQUMsSUFBSSxTQUFJLEtBQUssQ0FBQyxJQUFNLElBQy9DLEVBSGlELENBR2pELEVBQUMsQ0FBQzthQUNMO1lBRUQsNEJBQVksS0FBSyxFQUFLLFFBQVEsRUFBRztTQUNsQzthQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNsRCxLQUFLLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xHO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUMsQ0FBQztJQUVILElBQUksU0FBUyxFQUFFO1FBQ2Isa0JBQWtCO1FBQ2xCLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFRCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGUsIFNlbGVjdG9yLCBjcmVhdGVTZWxlY3RvciwgQWN0aW9uLCBTdGF0ZUNvbnRleHQsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgQ29uZmlnLCBBQlAgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgR2V0QXBwQ29uZmlndXJhdGlvbiwgUGF0Y2hSb3V0ZUJ5TmFtZSB9IGZyb20gJy4uL2FjdGlvbnMvY29uZmlnLmFjdGlvbnMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Db25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyB0YXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcbmltcG9ydCB7IFNldExhbmd1YWdlIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNldENoaWxkUm91dGUsIHNvcnRSb3V0ZXMsIG9yZ2FuaXplUm91dGVzIH0gZnJvbSAnLi4vdXRpbHMvcm91dGUtdXRpbHMnO1xuXG5AU3RhdGU8Q29uZmlnLlN0YXRlPih7XG4gIG5hbWU6ICdDb25maWdTdGF0ZScsXG4gIGRlZmF1bHRzOiB7fSBhcyBDb25maWcuU3RhdGUsXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ1N0YXRlIHtcbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldEFsbChzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldEFwcGxpY2F0aW9uSW5mbyhzdGF0ZTogQ29uZmlnLlN0YXRlKTogQ29uZmlnLkFwcGxpY2F0aW9uIHtcbiAgICByZXR1cm4gc3RhdGUuZW52aXJvbm1lbnQuYXBwbGljYXRpb24gfHwgKHt9IGFzIENvbmZpZy5BcHBsaWNhdGlvbik7XG4gIH1cblxuICBzdGF0aWMgZ2V0T25lKGtleTogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZVtrZXldO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHNlbGVjdG9yO1xuICB9XG5cbiAgc3RhdGljIGdldERlZXAoa2V5czogc3RyaW5nW10gfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIGtleXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBrZXlzID0ga2V5cy5zcGxpdCgnLicpO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShrZXlzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgYXJndW1lbnQgbXVzdCBiZSBhIGRvdCBzdHJpbmcgb3IgYW4gc3RyaW5nIGFycmF5LicpO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBbQ29uZmlnU3RhdGVdLFxuICAgICAgZnVuY3Rpb24oc3RhdGU6IENvbmZpZy5TdGF0ZSkge1xuICAgICAgICByZXR1cm4gKGtleXMgYXMgc3RyaW5nW10pLnJlZHVjZSgoYWNjLCB2YWwpID0+IHtcbiAgICAgICAgICBpZiAoYWNjKSB7XG4gICAgICAgICAgICByZXR1cm4gYWNjW3ZhbF07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSwgc3RhdGUpO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHNlbGVjdG9yO1xuICB9XG5cbiAgc3RhdGljIGdldFJvdXRlKHBhdGg/OiBzdHJpbmcsIG5hbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgY29uc3QgeyBmbGF0dGVkUm91dGVzIH0gPSBzdGF0ZTtcbiAgICAgICAgcmV0dXJuIChmbGF0dGVkUm91dGVzIGFzIEFCUC5GdWxsUm91dGVbXSkuZmluZChyb3V0ZSA9PiB7XG4gICAgICAgICAgaWYgKHBhdGggJiYgcm91dGUucGF0aCA9PT0gcGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHJvdXRlO1xuICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSAmJiByb3V0ZS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gcm91dGU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBcGlVcmwoa2V5Pzogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlLmVudmlyb25tZW50LmFwaXNba2V5IHx8ICdkZWZhdWx0J10udXJsO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHNlbGVjdG9yO1xuICB9XG5cbiAgc3RhdGljIGdldFNldHRpbmcoa2V5OiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIHNucSgoKSA9PiBzdGF0ZS5zZXR0aW5nLnZhbHVlc1trZXldKTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBzZWxlY3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBnZXRHcmFudGVkUG9saWN5KGtleTogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIFtDb25maWdTdGF0ZV0sXG4gICAgICBmdW5jdGlvbihzdGF0ZTogQ29uZmlnLlN0YXRlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICgha2V5KSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHNucSgoKSA9PiBzdGF0ZS5hdXRoLmdyYW50ZWRQb2xpY2llc1trZXldLCBmYWxzZSk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gc2VsZWN0b3I7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29weShrZXk6IHN0cmluZywgLi4uaW50ZXJwb2xhdGVQYXJhbXM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKCFrZXkpIGtleSA9ICcnO1xuXG4gICAgY29uc3Qga2V5cyA9IGtleS5zcGxpdCgnOjonKSBhcyBzdHJpbmdbXTtcbiAgICBjb25zdCBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgW0NvbmZpZ1N0YXRlXSxcbiAgICAgIGZ1bmN0aW9uKHN0YXRlOiBDb25maWcuU3RhdGUpIHtcbiAgICAgICAgaWYgKCFzdGF0ZS5sb2NhbGl6YXRpb24pIHJldHVybiBrZXk7XG5cbiAgICAgICAgY29uc3QgeyBkZWZhdWx0UmVzb3VyY2VOYW1lIH0gPSBzdGF0ZS5lbnZpcm9ubWVudC5sb2NhbGl6YXRpb247XG4gICAgICAgIGlmIChrZXlzWzBdID09PSAnJykge1xuICAgICAgICAgIGlmICghZGVmYXVsdFJlc291cmNlTmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgUGxlYXNlIGNoZWNrIHlvdXIgZW52aXJvbm1lbnQuIE1heSB5b3UgZm9yZ2V0IHNldCBkZWZhdWx0UmVzb3VyY2VOYW1lPyBcbiAgICAgICAgICAgICAgSGVyZSBpcyB0aGUgZXhhbXBsZTpcbiAgICAgICAgICAgICAgIHsgcHJvZHVjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgIGxvY2FsaXphdGlvbjoge1xuICAgICAgICAgICAgICAgICAgIGRlZmF1bHRSZXNvdXJjZU5hbWU6ICdNeVByb2plY3ROYW1lJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGtleXNbMF0gPSBzbnEoKCkgPT4gZGVmYXVsdFJlc291cmNlTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29weSA9IChrZXlzIGFzIGFueSkucmVkdWNlKChhY2MsIHZhbCkgPT4ge1xuICAgICAgICAgIGlmIChhY2MpIHtcbiAgICAgICAgICAgIHJldHVybiBhY2NbdmFsXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9LCBzdGF0ZS5sb2NhbGl6YXRpb24udmFsdWVzKTtcblxuICAgICAgICBpbnRlcnBvbGF0ZVBhcmFtcyA9IGludGVycG9sYXRlUGFyYW1zLmZpbHRlcihwYXJhbXMgPT4gcGFyYW1zICE9IG51bGwpO1xuICAgICAgICBpZiAoY29weSAmJiBpbnRlcnBvbGF0ZVBhcmFtcyAmJiBpbnRlcnBvbGF0ZVBhcmFtcy5sZW5ndGgpIHtcbiAgICAgICAgICBpbnRlcnBvbGF0ZVBhcmFtcy5mb3JFYWNoKHBhcmFtID0+IHtcbiAgICAgICAgICAgIGNvcHkgPSBjb3B5LnJlcGxhY2UoL1tcXCdcXFwiXT9cXHtbXFxkXStcXH1bXFwnXFxcIl0/LywgcGFyYW0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvcHkgfHwga2V5O1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHNlbGVjdG9yO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcHBDb25maWd1cmF0aW9uU2VydmljZTogQXBwbGljYXRpb25Db25maWd1cmF0aW9uU2VydmljZSwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgQEFjdGlvbihHZXRBcHBDb25maWd1cmF0aW9uKVxuICBhZGREYXRhKHsgcGF0Y2hTdGF0ZSwgZGlzcGF0Y2ggfTogU3RhdGVDb250ZXh0PENvbmZpZy5TdGF0ZT4pIHtcbiAgICByZXR1cm4gdGhpcy5hcHBDb25maWd1cmF0aW9uU2VydmljZS5nZXRDb25maWd1cmF0aW9uKCkucGlwZShcbiAgICAgIHRhcChjb25maWd1cmF0aW9uID0+XG4gICAgICAgIHBhdGNoU3RhdGUoe1xuICAgICAgICAgIC4uLmNvbmZpZ3VyYXRpb24sXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIHN3aXRjaE1hcChjb25maWd1cmF0aW9uID0+IHtcbiAgICAgICAgbGV0IGRlZmF1bHRMYW5nOiBzdHJpbmcgPSBjb25maWd1cmF0aW9uLnNldHRpbmcudmFsdWVzWydBYnAuTG9jYWxpemF0aW9uLkRlZmF1bHRMYW5ndWFnZSddO1xuXG4gICAgICAgIGlmIChkZWZhdWx0TGFuZy5pbmNsdWRlcygnOycpKSB7XG4gICAgICAgICAgZGVmYXVsdExhbmcgPSBkZWZhdWx0TGFuZy5zcGxpdCgnOycpWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2Vzc2lvblN0YXRlLmdldExhbmd1YWdlKSA/IG9mKG51bGwpIDogZGlzcGF0Y2gobmV3IFNldExhbmd1YWdlKGRlZmF1bHRMYW5nKSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihQYXRjaFJvdXRlQnlOYW1lKVxuICBwYXRjaFJvdXRlKHsgcGF0Y2hTdGF0ZSwgZ2V0U3RhdGUgfTogU3RhdGVDb250ZXh0PENvbmZpZy5TdGF0ZT4sIHsgbmFtZSwgbmV3VmFsdWUgfTogUGF0Y2hSb3V0ZUJ5TmFtZSkge1xuICAgIGxldCByb3V0ZXM6IEFCUC5GdWxsUm91dGVbXSA9IGdldFN0YXRlKCkucm91dGVzO1xuXG4gICAgY29uc3QgaW5kZXggPSByb3V0ZXMuZmluZEluZGV4KHJvdXRlID0+IHJvdXRlLm5hbWUgPT09IG5hbWUpO1xuXG4gICAgcm91dGVzID0gcGF0Y2hSb3V0ZURlZXAocm91dGVzLCBuYW1lLCBuZXdWYWx1ZSk7XG5cbiAgICByZXR1cm4gcGF0Y2hTdGF0ZSh7XG4gICAgICByb3V0ZXMsXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGF0Y2hSb3V0ZURlZXAoXG4gIHJvdXRlczogQUJQLkZ1bGxSb3V0ZVtdLFxuICBuYW1lOiBzdHJpbmcsXG4gIG5ld1ZhbHVlOiBQYXJ0aWFsPEFCUC5GdWxsUm91dGU+LFxuICBwYXJlbnRVcmw6IHN0cmluZyA9IG51bGwsXG4pOiBBQlAuRnVsbFJvdXRlW10ge1xuICByb3V0ZXMgPSByb3V0ZXMubWFwKHJvdXRlID0+IHtcbiAgICBpZiAocm91dGUubmFtZSA9PT0gbmFtZSkge1xuICAgICAgaWYgKG5ld1ZhbHVlLnBhdGgpIHtcbiAgICAgICAgbmV3VmFsdWUudXJsID0gYCR7cGFyZW50VXJsfS8ke25ld1ZhbHVlLnBhdGh9YDtcbiAgICAgIH1cblxuICAgICAgaWYgKG5ld1ZhbHVlLmNoaWxkcmVuICYmIG5ld1ZhbHVlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICBuZXdWYWx1ZS5jaGlsZHJlbiA9IG5ld1ZhbHVlLmNoaWxkcmVuLm1hcChjaGlsZCA9PiAoe1xuICAgICAgICAgIC4uLmNoaWxkLFxuICAgICAgICAgIHVybDogYCR7cGFyZW50VXJsfS8ke3JvdXRlLnBhdGh9LyR7Y2hpbGQucGF0aH1gLFxuICAgICAgICB9KSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IC4uLnJvdXRlLCAuLi5uZXdWYWx1ZSB9O1xuICAgIH0gZWxzZSBpZiAocm91dGUuY2hpbGRyZW4gJiYgcm91dGUuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICByb3V0ZS5jaGlsZHJlbiA9IHBhdGNoUm91dGVEZWVwKHJvdXRlLmNoaWxkcmVuLCBuYW1lLCBuZXdWYWx1ZSwgKHBhcmVudFVybCB8fCAnLycpICsgcm91dGUucGF0aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJvdXRlO1xuICB9KTtcblxuICBpZiAocGFyZW50VXJsKSB7XG4gICAgLy8gcmVjdXJzaXZlIGJsb2NrXG4gICAgcmV0dXJuIHJvdXRlcztcbiAgfVxuXG4gIHJldHVybiBvcmdhbml6ZVJvdXRlcyhyb3V0ZXMpO1xufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/core/esm5/public-api.js b/npm/ng-packs/dist/core/esm5/public-api.js index c6a48c31c5..2b78278875 100644 --- a/npm/ng-packs/dist/core/esm5/public-api.js +++ b/npm/ng-packs/dist/core/esm5/public-api.js @@ -6,10 +6,11 @@ * Public API Surface of core */ // export * from './lib/handlers'; +export { AbstractNgModelComponent } from './lib/abstracts'; export { PatchRouteByName, GetAppConfiguration, StartLoader, StopLoader, GetProfile, UpdateProfile, ChangePassword, RestOccurError, SetLanguage, SetTenant } from './lib/actions'; export { DynamicLayoutComponent, RouterOutletComponent } from './lib/components'; export {} from './lib/constants'; -export { AutofocusDirective, EllipsisDirective, FormSubmitDirective, PermissionDirective, VisibilityDirective } from './lib/directives'; +export { AutofocusDirective, EllipsisDirective, ForDirective, FormSubmitDirective, PermissionDirective, VisibilityDirective } from './lib/directives'; export {} from './lib/enums'; export { AuthGuard, PermissionGuard } from './lib/guards'; export { ApiInterceptor } from './lib/interceptors'; @@ -20,4 +21,4 @@ export { ProfileState, ConfigState, SessionState } from './lib/states'; export { environmentFactory, configFactory, ENVIRONMENT, CONFIG } from './lib/tokens'; export { noop, uuid, getInitialData, localeInitializer, registerLocale, organizeRoutes, setChildRoute, sortRoutes, takeUntilDestroy } from './lib/utils'; export { CoreModule } from './lib/core.module'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLQSxrS0FBYyxlQUFlLENBQUM7QUFDOUIsOERBQWMsa0JBQWtCLENBQUM7QUFDakMsZUFBYyxpQkFBaUIsQ0FBQztBQUNoQyxxSEFBYyxrQkFBa0IsQ0FBQztBQUNqQyxlQUFjLGFBQWEsQ0FBQztBQUM1QiwyQ0FBYyxjQUFjLENBQUM7QUFDN0IsK0JBQWMsb0JBQW9CLENBQUM7QUFDbkMscUJBQWMsY0FBYyxDQUFDO0FBQzdCLHlEQUFjLGVBQWUsQ0FBQztBQUM5QixrSUFBYyxnQkFBZ0IsQ0FBQztBQUMvQix3REFBYyxjQUFjLENBQUM7QUFDN0IsdUVBQWMsY0FBYyxDQUFDO0FBQzdCLDJJQUFjLGFBQWEsQ0FBQztBQUU1QiwyQkFBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29yZVxuICovXG5cbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2hhbmRsZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnVtcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ndWFyZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJjZXB0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wbHVnaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlLm1vZHVsZSc7XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuY29yZS8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLQSx5Q0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxrS0FBYyxlQUFlLENBQUM7QUFDOUIsOERBQWMsa0JBQWtCLENBQUM7QUFDakMsZUFBYyxpQkFBaUIsQ0FBQztBQUNoQyxtSUFBYyxrQkFBa0IsQ0FBQztBQUNqQyxlQUFjLGFBQWEsQ0FBQztBQUM1QiwyQ0FBYyxjQUFjLENBQUM7QUFDN0IsK0JBQWMsb0JBQW9CLENBQUM7QUFDbkMscUJBQWMsY0FBYyxDQUFDO0FBQzdCLHlEQUFjLGVBQWUsQ0FBQztBQUM5QixrSUFBYyxnQkFBZ0IsQ0FBQztBQUMvQix3REFBYyxjQUFjLENBQUM7QUFDN0IsdUVBQWMsY0FBYyxDQUFDO0FBQzdCLDJJQUFjLGFBQWEsQ0FBQztBQUU1QiwyQkFBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29yZVxuICovXG5cbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2hhbmRsZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fic3RyYWN0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ3VhcmRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyY2VwdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGx1Z2lucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS5tb2R1bGUnO1xuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/core/fesm2015/abp-ng.core.js b/npm/ng-packs/dist/core/fesm2015/abp-ng.core.js index 249358f969..27793b7b50 100644 --- a/npm/ng-packs/dist/core/fesm2015/abp-ng.core.js +++ b/npm/ng-packs/dist/core/fesm2015/abp-ng.core.js @@ -1,18 +1,127 @@ -import { __rest, __decorate, __metadata, __awaiter } from 'tslib'; -import { Injectable, ɵɵdefineInjectable, ɵɵinject, Optional, SkipSelf, Component, Directive, ElementRef, Input, ChangeDetectorRef, HostBinding, EventEmitter, Self, Output, Renderer2, InjectionToken, Inject, Pipe, LOCALE_ID, APP_INITIALIZER, Injector, NgModule } from '@angular/core'; -import { Router, NavigationEnd, RouterModule } from '@angular/router'; -import { Store, Action, Selector, State, Actions, createSelector, Select, actionMatcher, InitState, UpdateState, setValue, NGXS_PLUGINS, NgxsModule } from '@ngxs/store'; -import { throwError, noop as noop$1, combineLatest, from, of, Subject, Observable, fromEvent, ReplaySubject } from 'rxjs'; -import { HttpClient, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; -import { take, catchError, tap, switchMap, takeUntil, debounceTime, filter, finalize, distinctUntilChanged } from 'rxjs/operators'; +import { ChangeDetectorRef, Component, Injector, Input, Injectable, ɵɵdefineInjectable, ɵɵinject, NgZone, Optional, SkipSelf, Directive, ElementRef, HostBinding, TemplateRef, ViewContainerRef, IterableDiffers, EventEmitter, Self, Output, Renderer2, InjectionToken, Inject, Pipe, LOCALE_ID, APP_INITIALIZER, NgModule } from '@angular/core'; +import { __decorate, __metadata, __awaiter, __rest } from 'tslib'; +import { Router, NavigationEnd, ActivatedRoute, RouterModule } from '@angular/router'; +import { Action, Selector, State, Store, Actions, createSelector, Select, actionMatcher, InitState, UpdateState, setValue, NGXS_PLUGINS, NgxsModule } from '@ngxs/store'; +import { noop as noop$1, combineLatest, from, throwError, of, Subject, Observable, fromEvent, ReplaySubject } from 'rxjs'; import snq from 'snq'; +import { HttpClient, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; +import { tap, take, catchError, switchMap, takeUntil, debounceTime, filter, finalize, distinctUntilChanged } from 'rxjs/operators'; import { registerLocaleData, CommonModule } from '@angular/common'; +import compare from 'just-compare'; +import clone from 'just-clone'; import { FormGroupDirective, FormsModule, ReactiveFormsModule } from '@angular/forms'; import { OAuthService } from 'angular-oauth2-oidc'; -import { Navigate, NgxsRouterPluginModule } from '@ngxs/router-plugin'; +import { NgxsRouterPluginModule } from '@ngxs/router-plugin'; import { NgxsStoragePluginModule } from '@ngxs/storage-plugin'; import { takeUntilDestroy as takeUntilDestroy$1 } from '@ngx-validate/core'; +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @template T + */ +class AbstractNgModelComponent { + /** + * @param {?} injector + */ + constructor(injector) { + this.injector = injector; + this.cdRef = injector.get((/** @type {?} */ (ChangeDetectorRef))); + } + /** + * @param {?} value + * @return {?} + */ + set value(value) { + this._value = value; + this.notifyValueChange(); + } + /** + * @return {?} + */ + get value() { + return this._value; + } + /** + * @return {?} + */ + notifyValueChange() { + if (this.onChange) { + this.onChange(this.value); + } + } + /** + * @param {?} value + * @return {?} + */ + writeValue(value) { + this._value = value; + setTimeout((/** + * @return {?} + */ + () => this.cdRef.detectChanges()), 0); + } + /** + * @param {?} fn + * @return {?} + */ + registerOnChange(fn) { + this.onChange = fn; + } + /** + * @param {?} fn + * @return {?} + */ + registerOnTouched(fn) { + this.onTouched = fn; + } + /** + * @param {?} isDisabled + * @return {?} + */ + setDisabledState(isDisabled) { + this.disabled = isDisabled; + } +} +AbstractNgModelComponent.decorators = [ + { type: Component, args: [{ template: '' }] } +]; +/** @nocollapse */ +AbstractNgModelComponent.ctorParameters = () => [ + { type: Injector } +]; +AbstractNgModelComponent.propDecorators = { + disabled: [{ type: Input }], + value: [{ type: Input }] +}; +if (false) { + /** @type {?} */ + AbstractNgModelComponent.prototype.disabled; + /** @type {?} */ + AbstractNgModelComponent.prototype.onChange; + /** @type {?} */ + AbstractNgModelComponent.prototype.onTouched; + /** + * @type {?} + * @protected + */ + AbstractNgModelComponent.prototype._value; + /** + * @type {?} + * @protected + */ + AbstractNgModelComponent.prototype.cdRef; + /** @type {?} */ + AbstractNgModelComponent.prototype.injector; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -181,76 +290,6 @@ if (false) { * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -class RestService { - /** - * @param {?} http - * @param {?} store - */ - constructor(http, store) { - this.http = http; - this.store = store; - } - /** - * @param {?} err - * @return {?} - */ - handleError(err) { - this.store.dispatch(new RestOccurError(err)); - console.error(err); - return throwError(err); - } - /** - * @template T, R - * @param {?} request - * @param {?=} config - * @param {?=} api - * @return {?} - */ - request(request, config = {}, api) { - const { observe = "body" /* Body */, skipHandleError } = config; - /** @type {?} */ - const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url; - const { method } = request, options = __rest(request, ["method"]); - return this.http.request(method, url, (/** @type {?} */ (Object.assign({ observe }, options)))).pipe(observe === "body" /* Body */ ? take(1) : null, catchError((/** - * @param {?} err - * @return {?} - */ - err => { - if (skipHandleError) { - return throwError(err); - } - return this.handleError(err); - }))); - } -} -RestService.decorators = [ - { type: Injectable, args: [{ - providedIn: 'root', - },] } -]; -/** @nocollapse */ -RestService.ctorParameters = () => [ - { type: HttpClient }, - { type: Store } -]; -/** @nocollapse */ RestService.ngInjectableDef = ɵɵdefineInjectable({ factory: function RestService_Factory() { return new RestService(ɵɵinject(HttpClient), ɵɵinject(Store)); }, token: RestService, providedIn: "root" }); -if (false) { - /** - * @type {?} - * @private - */ - RestService.prototype.http; - /** - * @type {?} - * @private - */ - RestService.prototype.store; -} - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -412,47 +451,6 @@ if (false) { ProfileState.prototype.profileService; } -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -class ApplicationConfigurationService { - /** - * @param {?} rest - */ - constructor(rest) { - this.rest = rest; - } - /** - * @return {?} - */ - getConfiguration() { - /** @type {?} */ - const request = { - method: 'GET', - url: '/api/abp/application-configuration', - }; - return this.rest.request(request); - } -} -ApplicationConfigurationService.decorators = [ - { type: Injectable, args: [{ - providedIn: 'root', - },] } -]; -/** @nocollapse */ -ApplicationConfigurationService.ctorParameters = () => [ - { type: RestService } -]; -/** @nocollapse */ ApplicationConfigurationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ApplicationConfigurationService_Factory() { return new ApplicationConfigurationService(ɵɵinject(RestService)); }, token: ApplicationConfigurationService, providedIn: "root" }); -if (false) { - /** - * @type {?} - * @private - */ - ApplicationConfigurationService.prototype.rest; -} - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -562,12 +560,14 @@ class LocalizationService { /** * @param {?} store * @param {?} router + * @param {?} ngZone * @param {?} actions * @param {?} otherInstance */ - constructor(store, router, actions, otherInstance) { + constructor(store, router, ngZone, actions, otherInstance) { this.store = store; this.router = router; + this.ngZone = ngZone; this.actions = actions; if (otherInstance) throw new Error('LocaleService should have only one instance.'); @@ -600,10 +600,15 @@ class LocalizationService { return registerLocale(locale).then((/** * @return {?} */ - () => __awaiter(this, void 0, void 0, function* () { - yield this.router.navigateByUrl(this.router.url).catch(noop$1); - this.setRouteReuse(shouldReuseRoute); - }))); + () => { + this.ngZone.run((/** + * @return {?} + */ + () => __awaiter(this, void 0, void 0, function* () { + yield this.router.navigateByUrl(this.router.url).catch(noop$1); + this.setRouteReuse(shouldReuseRoute); + }))); + })); } /** * @param {?} keys @@ -629,10 +634,11 @@ LocalizationService.decorators = [ LocalizationService.ctorParameters = () => [ { type: Store }, { type: Router }, + { type: NgZone }, { type: Actions }, { type: LocalizationService, decorators: [{ type: Optional }, { type: SkipSelf }] } ]; -/** @nocollapse */ LocalizationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(ɵɵinject(Store), ɵɵinject(Router), ɵɵinject(Actions), ɵɵinject(LocalizationService, 12)); }, token: LocalizationService, providedIn: "root" }); +/** @nocollapse */ LocalizationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(ɵɵinject(Store), ɵɵinject(Router), ɵɵinject(NgZone), ɵɵinject(Actions), ɵɵinject(LocalizationService, 12)); }, token: LocalizationService, providedIn: "root" }); if (false) { /** * @type {?} @@ -644,6 +650,11 @@ if (false) { * @private */ LocalizationService.prototype.router; + /** + * @type {?} + * @private + */ + LocalizationService.prototype.ngZone; /** * @type {?} * @private @@ -737,6 +748,122 @@ if (false) { SessionState.prototype.localizationService; } +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class RestService { + /** + * @param {?} http + * @param {?} store + */ + constructor(http, store) { + this.http = http; + this.store = store; + } + /** + * @param {?} err + * @return {?} + */ + handleError(err) { + this.store.dispatch(new RestOccurError(err)); + console.error(err); + return throwError(err); + } + /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + request(request, config = {}, api) { + const { observe = "body" /* Body */, skipHandleError } = config; + /** @type {?} */ + const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url; + const { method } = request, options = __rest(request, ["method"]); + return this.http.request(method, url, (/** @type {?} */ (Object.assign({ observe }, options)))).pipe(observe === "body" /* Body */ ? take(1) : null, catchError((/** + * @param {?} err + * @return {?} + */ + err => { + if (skipHandleError) { + return throwError(err); + } + return this.handleError(err); + }))); + } +} +RestService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +RestService.ctorParameters = () => [ + { type: HttpClient }, + { type: Store } +]; +/** @nocollapse */ RestService.ngInjectableDef = ɵɵdefineInjectable({ factory: function RestService_Factory() { return new RestService(ɵɵinject(HttpClient), ɵɵinject(Store)); }, token: RestService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + RestService.prototype.http; + /** + * @type {?} + * @private + */ + RestService.prototype.store; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class ApplicationConfigurationService { + /** + * @param {?} rest + */ + constructor(rest) { + this.rest = rest; + } + /** + * @return {?} + */ + getConfiguration() { + /** @type {?} */ + const request = { + method: 'GET', + url: '/api/abp/application-configuration', + }; + return this.rest.request(request); + } +} +ApplicationConfigurationService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } +]; +/** @nocollapse */ +ApplicationConfigurationService.ctorParameters = () => [ + { type: RestService } +]; +/** @nocollapse */ ApplicationConfigurationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ApplicationConfigurationService_Factory() { return new ApplicationConfigurationService(ɵɵinject(RestService)); }, token: ApplicationConfigurationService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + ApplicationConfigurationService.prototype.rest; +} + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -849,7 +976,7 @@ let ConfigState = ConfigState_1 = class ConfigState { * @return {?} */ static getApplicationInfo(state) { - return state.environment.application || {}; + return state.environment.application || ((/** @type {?} */ ({}))); } /** * @param {?} key @@ -909,7 +1036,19 @@ let ConfigState = ConfigState_1 = class ConfigState { * @return {?} */ function (state) { - return findRoute(state.routes, path, name); + const { flattedRoutes } = state; + return ((/** @type {?} */ (flattedRoutes))).find((/** + * @param {?} route + * @return {?} + */ + route => { + if (path && route.path === path) { + return route; + } + else if (name && route.name === name) { + return route; + } + })); })); return selector; } @@ -947,50 +1086,22 @@ let ConfigState = ConfigState_1 = class ConfigState { return selector; } /** - * @param {?=} condition + * @param {?} key * @return {?} */ - static getGrantedPolicy(condition = '') { - /** @type {?} */ - const keys = condition - .replace(/\(|\)|\!|\s/g, '') - .split(/\|\||&&/) - .filter((/** - * @param {?} key - * @return {?} - */ - key => key)); + static getGrantedPolicy(key) { /** @type {?} */ const selector = createSelector([ConfigState_1], (/** * @param {?} state * @return {?} */ function (state) { - if (!keys.length) + if (!key) return true; - /** @type {?} */ - const getPolicy = (/** - * @param {?} key - * @return {?} - */ - key => snq((/** + return snq((/** * @return {?} */ - () => state.auth.grantedPolicies[key]), false)); - if (keys.length > 1) { - keys.forEach((/** - * @param {?} key - * @return {?} - */ - key => { - /** @type {?} */ - const value = getPolicy(key); - condition = condition.replace(key, value); - })); - // tslint:disable-next-line: no-eval - return eval(`!!${condition}`); - } - return getPolicy(condition); + () => state.auth.grantedPolicies[key]), false); })); return selector; } @@ -1029,7 +1140,7 @@ let ConfigState = ConfigState_1 = class ConfigState { () => defaultResourceName)); } /** @type {?} */ - let copy = keys.reduce((/** + let copy = ((/** @type {?} */ (keys))).reduce((/** * @param {?} acc * @param {?} val * @return {?} @@ -1122,7 +1233,7 @@ __decorate([ Selector(), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), - __metadata("design:returntype", void 0) + __metadata("design:returntype", Object) ], ConfigState, "getApplicationInfo", null); ConfigState = ConfigState_1 = __decorate([ State({ @@ -1180,71 +1291,6 @@ function patchRouteDeep(routes, name, newValue, parentUrl = null) { } return organizeRoutes(routes); } -/** - * @param {?} routes - * @param {?=} path - * @param {?=} name - * @return {?} - */ -function findRoute(routes, path, name) { - /** @type {?} */ - let foundRoute; - routes.forEach((/** - * @param {?} route - * @return {?} - */ - route => { - if (foundRoute) - return; - if (path && route.path === path) { - foundRoute = route; - } - else if (name && route.name === name) { - foundRoute = route; - return; - } - else if (route.children && route.children.length) { - foundRoute = findRoute(route.children, path, name); - return; - } - })); - return foundRoute; -} - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -/** - * @return {?} - */ -function noop() { - /** @type {?} */ - const fn = (/** - * @return {?} - */ - function () { }); - return fn; -} - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -/** - * @param {?=} a - * @return {?} - */ -function uuid(a) { - return a - ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) - : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); -} /** * @fileoverview added by tsickle @@ -1288,11 +1334,6 @@ const takeUntilDestroy = (/** return source.pipe(takeUntil(componentInstance['__takeUntilDestroy'])); })); -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -1300,11 +1341,30 @@ const takeUntilDestroy = (/** class DynamicLayoutComponent { /** * @param {?} router + * @param {?} route * @param {?} store */ - constructor(router, store) { + constructor(router, route, store) { this.router = router; + this.route = route; this.store = store; + const { requirements: { layouts }, routes, } = this.store.selectSnapshot(ConfigState.getAll); + if ((this.route.snapshot.data || {}).layout) { + this.layout = layouts + .filter((/** + * @param {?} l + * @return {?} + */ + l => !!l)) + .find((/** + * @param {?} l + * @return {?} + */ + (l) => snq((/** + * @return {?} + */ + () => l.type.toLowerCase().indexOf(this.route.snapshot.data.layout)), -1) > -1)); + } this.router.events.pipe(takeUntilDestroy(this)).subscribe((/** * @param {?} event * @return {?} @@ -1312,18 +1372,19 @@ class DynamicLayoutComponent { event => { if (event instanceof NavigationEnd) { const { segments } = this.router.parseUrl(event.url).root.children.primary; - const { requirements: { layouts }, routes, } = this.store.selectSnapshot(ConfigState.getAll); /** @type {?} */ - const layout = findLayout(segments, routes); - this.layout = layouts.filter((/** + const layout = (this.route.snapshot.data || {}).layout || findLayout(segments, routes); + this.layout = layouts + .filter((/** * @param {?} l * @return {?} */ - l => !!l)).find((/** + l => !!l)) + .find((/** * @param {?} l * @return {?} */ - l => snq((/** + (l) => snq((/** * @return {?} */ () => l.type.toLowerCase().indexOf(layout)), -1) > -1)); @@ -1349,6 +1410,7 @@ DynamicLayoutComponent.decorators = [ /** @nocollapse */ DynamicLayoutComponent.ctorParameters = () => [ { type: Router }, + { type: ActivatedRoute }, { type: Store } ]; __decorate([ @@ -1365,6 +1427,11 @@ if (false) { * @private */ DynamicLayoutComponent.prototype.router; + /** + * @type {?} + * @private + */ + DynamicLayoutComponent.prototype.route; /** * @type {?} * @private @@ -1566,6 +1633,312 @@ if (false) { EllipsisDirective.prototype.elRef; } +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class AbpForContext { + /** + * @param {?} $implicit + * @param {?} index + * @param {?} count + * @param {?} list + */ + constructor($implicit, index, count, list) { + this.$implicit = $implicit; + this.index = index; + this.count = count; + this.list = list; + } +} +if (false) { + /** @type {?} */ + AbpForContext.prototype.$implicit; + /** @type {?} */ + AbpForContext.prototype.index; + /** @type {?} */ + AbpForContext.prototype.count; + /** @type {?} */ + AbpForContext.prototype.list; +} +class RecordView { + /** + * @param {?} record + * @param {?} view + */ + constructor(record, view) { + this.record = record; + this.view = view; + } +} +if (false) { + /** @type {?} */ + RecordView.prototype.record; + /** @type {?} */ + RecordView.prototype.view; +} +class ForDirective { + /** + * @param {?} tempRef + * @param {?} vcRef + * @param {?} differs + */ + constructor(tempRef, vcRef, differs) { + this.tempRef = tempRef; + this.vcRef = vcRef; + this.differs = differs; + } + /** + * @return {?} + */ + get compareFn() { + return this.compareBy || compare; + } + /** + * @return {?} + */ + get trackByFn() { + return this.trackBy || ((/** + * @param {?} index + * @param {?} item + * @return {?} + */ + (index, item) => ((/** @type {?} */ (item))).id || index)); + } + /** + * @private + * @param {?} changes + * @return {?} + */ + iterateOverAppliedOperations(changes) { + /** @type {?} */ + const rw = []; + changes.forEachOperation((/** + * @param {?} record + * @param {?} previousIndex + * @param {?} currentIndex + * @return {?} + */ + (record, previousIndex, currentIndex) => { + if (record.previousIndex == null) { + /** @type {?} */ + const view = this.vcRef.createEmbeddedView(this.tempRef, new AbpForContext(null, -1, -1, this.items), currentIndex); + rw.push(new RecordView(record, view)); + } + else if (currentIndex == null) { + this.vcRef.remove(previousIndex); + } + else { + /** @type {?} */ + const view = this.vcRef.get(previousIndex); + this.vcRef.move(view, currentIndex); + rw.push(new RecordView(record, (/** @type {?} */ (view)))); + } + })); + for (let i = 0, l = rw.length; i < l; i++) { + rw[i].view.context.$implicit = rw[i].record.item; + } + } + /** + * @private + * @param {?} changes + * @return {?} + */ + iterateOverAttachedViews(changes) { + for (let i = 0, l = this.vcRef.length; i < l; i++) { + /** @type {?} */ + const viewRef = (/** @type {?} */ (this.vcRef.get(i))); + viewRef.context.index = i; + viewRef.context.count = l; + viewRef.context.list = this.items; + } + changes.forEachIdentityChange((/** + * @param {?} record + * @return {?} + */ + (record) => { + /** @type {?} */ + const viewRef = (/** @type {?} */ (this.vcRef.get(record.currentIndex))); + viewRef.context.$implicit = record.item; + })); + } + /** + * @private + * @param {?} items + * @return {?} + */ + projectItems(items) { + if (!items.length && this.emptyRef) { + this.vcRef.createEmbeddedView(this.emptyRef).rootNodes; + this.isShowEmptyRef = true; + return; + } + if (this.emptyRef && this.isShowEmptyRef) { + this.vcRef.clear(); + this.isShowEmptyRef = false; + } + if (!this.differ && items) { + this.differ = this.differs.find(items).create(this.trackByFn); + } + if (this.differ) { + /** @type {?} */ + const changes = this.differ.diff(items); + if (changes) { + this.iterateOverAppliedOperations(changes); + this.iterateOverAttachedViews(changes); + } + } + } + /** + * @private + * @param {?} items + * @return {?} + */ + sortItems(items) { + if (this.orderBy) { + items.sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + (a, b) => (a[this.orderBy] > b[this.orderBy] ? 1 : a[this.orderBy] < b[this.orderBy] ? -1 : 0))); + } + else { + items.sort(); + } + } + /** + * @return {?} + */ + ngOnChanges() { + /** @type {?} */ + let items = (/** @type {?} */ (clone(this.items))); + if (!Array.isArray(items)) + return; + /** @type {?} */ + const compareFn = this.compareFn; + if (typeof this.filterBy !== 'undefined') { + items = items.filter((/** + * @param {?} item + * @return {?} + */ + item => compareFn(item[this.filterBy], this.filterVal))); + } + switch (this.orderDir) { + case 'ASC': + this.sortItems(items); + this.projectItems(items); + break; + case 'DESC': + this.sortItems(items); + items.reverse(); + this.projectItems(items); + break; + default: + this.projectItems(items); + } + } +} +ForDirective.decorators = [ + { type: Directive, args: [{ + selector: '[abpFor]', + },] } +]; +/** @nocollapse */ +ForDirective.ctorParameters = () => [ + { type: TemplateRef }, + { type: ViewContainerRef }, + { type: IterableDiffers } +]; +ForDirective.propDecorators = { + items: [{ type: Input, args: ['abpForOf',] }], + orderBy: [{ type: Input, args: ['abpForOrderBy',] }], + orderDir: [{ type: Input, args: ['abpForOrderDir',] }], + filterBy: [{ type: Input, args: ['abpForFilterBy',] }], + filterVal: [{ type: Input, args: ['abpForFilterVal',] }], + trackBy: [{ type: Input, args: ['abpForTrackBy',] }], + compareBy: [{ type: Input, args: ['abpForCompareBy',] }], + emptyRef: [{ type: Input, args: ['abpForEmptyRef',] }] +}; +if (false) { + /** @type {?} */ + ForDirective.prototype.items; + /** @type {?} */ + ForDirective.prototype.orderBy; + /** @type {?} */ + ForDirective.prototype.orderDir; + /** @type {?} */ + ForDirective.prototype.filterBy; + /** @type {?} */ + ForDirective.prototype.filterVal; + /** @type {?} */ + ForDirective.prototype.trackBy; + /** @type {?} */ + ForDirective.prototype.compareBy; + /** @type {?} */ + ForDirective.prototype.emptyRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.differ; + /** + * @type {?} + * @private + */ + ForDirective.prototype.isShowEmptyRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.tempRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.vcRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.differs; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @return {?} + */ +function noop() { + /** @type {?} */ + const fn = (/** + * @return {?} + */ + function () { }); + return fn; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?=} a + * @return {?} + */ +function uuid(a) { + return a + ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) + : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -1785,6 +2158,7 @@ class VisibilityDirective { constructor(elRef, renderer) { this.elRef = elRef; this.renderer = renderer; + this.mutationObserverEnabled = true; this.completed$ = new Subject(); } /** @@ -1792,44 +2166,65 @@ class VisibilityDirective { */ ngAfterViewInit() { /** @type {?} */ - const observer = new MutationObserver((/** - * @param {?} mutations - * @return {?} - */ - mutations => { - mutations.forEach((/** - * @param {?} mutation + let observer; + if (this.mutationObserverEnabled) { + observer = new MutationObserver((/** + * @param {?} mutations + * @return {?} + */ + mutations => { + mutations.forEach((/** + * @param {?} mutation + * @return {?} + */ + mutation => { + if (!mutation.target) + return; + /** @type {?} */ + const htmlNodes = snq((/** + * @return {?} + */ + () => Array.from(mutation.target.childNodes).filter((/** + * @param {?} node + * @return {?} + */ + node => node instanceof HTMLElement))), []); + if (!htmlNodes.length) { + this.removeFromDOM(); + this.disconnect(); + } + else { + setTimeout((/** + * @return {?} + */ + () => { + this.disconnect(); + }), 0); + } + })); + })); + observer.observe(this.focusedElement, { + childList: true, + }); + } + else { + setTimeout((/** * @return {?} */ - mutation => { - if (!mutation.target) - return; + () => { /** @type {?} */ const htmlNodes = snq((/** * @return {?} */ - () => Array.from(mutation.target.childNodes).filter((/** + () => Array.from(this.focusedElement.childNodes).filter((/** * @param {?} node * @return {?} */ node => node instanceof HTMLElement))), []); - if (!htmlNodes.length) { - this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement); - this.disconnect(); - } - else { - setTimeout((/** - * @return {?} - */ - () => { - this.disconnect(); - }), 0); - } - })); - })); - observer.observe(this.focusedElement, { - childList: true, - }); + if (!htmlNodes.length) + this.removeFromDOM(); + }), 0); + } this.completed$.subscribe((/** * @return {?} */ @@ -1842,6 +2237,12 @@ class VisibilityDirective { this.completed$.next(); this.completed$.complete(); } + /** + * @return {?} + */ + removeFromDOM() { + this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement); + } } VisibilityDirective.decorators = [ { type: Directive, args: [{ @@ -1854,12 +2255,15 @@ VisibilityDirective.ctorParameters = () => [ { type: Renderer2 } ]; VisibilityDirective.propDecorators = { - focusedElement: [{ type: Input, args: ['abpVisibility',] }] + focusedElement: [{ type: Input, args: ['abpVisibility',] }], + mutationObserverEnabled: [{ type: Input }] }; if (false) { /** @type {?} */ VisibilityDirective.prototype.focusedElement; /** @type {?} */ + VisibilityDirective.prototype.mutationObserverEnabled; + /** @type {?} */ VisibilityDirective.prototype.completed$; /** * @type {?} @@ -1887,6 +2291,7 @@ const eLayoutType = { account: 'account', application: 'application', empty: 'empty', + setting: 'setting', }; /** @@ -1902,10 +2307,12 @@ class AuthGuard { /** * @param {?} oauthService * @param {?} store + * @param {?} router */ - constructor(oauthService, store) { + constructor(oauthService, store, router) { this.oauthService = oauthService; this.store = store; + this.router = router; } /** * @param {?} _ @@ -1918,8 +2325,7 @@ class AuthGuard { if (hasValidAccessToken) { return hasValidAccessToken; } - this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } })); - return false; + return this.router.createUrlTree(['/account/login'], { state: { redirectUrl: state.url } }); } } AuthGuard.decorators = [ @@ -1930,9 +2336,10 @@ AuthGuard.decorators = [ /** @nocollapse */ AuthGuard.ctorParameters = () => [ { type: OAuthService }, - { type: Store } + { type: Store }, + { type: Router } ]; -/** @nocollapse */ AuthGuard.ngInjectableDef = ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(ɵɵinject(OAuthService), ɵɵinject(Store)); }, token: AuthGuard, providedIn: "root" }); +/** @nocollapse */ AuthGuard.ngInjectableDef = ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(ɵɵinject(OAuthService), ɵɵinject(Store), ɵɵinject(Router)); }, token: AuthGuard, providedIn: "root" }); if (false) { /** * @type {?} @@ -1944,6 +2351,11 @@ if (false) { * @private */ AuthGuard.prototype.store; + /** + * @type {?} + * @private + */ + AuthGuard.prototype.router; } /** @@ -2273,11 +2685,6 @@ var ABP; */ var Config; (function (Config) { - /** - * @record - */ - function State() { } - Config.State = State; /** * @record */ @@ -2292,6 +2699,8 @@ var Config; Environment.prototype.oAuthConfig; /** @type {?} */ Environment.prototype.apis; + /** @type {?} */ + Environment.prototype.localization; } /** * @record @@ -2463,7 +2872,10 @@ class ConfigPlugin { if (isInitAction && !this.initialized) { let { routes, wrappers } = transformRoutes(this.router.config); routes = organizeRoutes(routes, wrappers); - state = setValue(state, 'ConfigState', Object.assign({}, (state.ConfigState && Object.assign({}, state.ConfigState)), this.options, { routes })); + /** @type {?} */ + const flattedRoutes = flatRoutes(clone(routes)); + state = setValue(state, 'ConfigState', Object.assign({}, (state.ConfigState && Object.assign({}, state.ConfigState)), this.options, { routes, + flattedRoutes })); this.initialized = true; } return next(state, event); @@ -2588,6 +3000,33 @@ function setUrls(routes, parentUrl) { children: setUrls(route.children, `/${route.path}`), }))))); } +/** + * @param {?} routes + * @return {?} + */ +function flatRoutes(routes) { + /** @type {?} */ + const flat = (/** + * @param {?} r + * @return {?} + */ + (r) => { + return r.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + (acc, val) => { + /** @type {?} */ + let value = [val]; + if (val.children) { + value = [val, ...flat(val.children)]; + } + return [...acc, ...value]; + }), []); + }); + return flat(routes); +} /** * @fileoverview added by tsickle @@ -2939,6 +3378,31 @@ if (false) { LocalizationPipe.prototype.store; } +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class SortPipe { + /** + * @param {?} value + * @param {?} sortOrder + * @return {?} + */ + transform(value, sortOrder) { + sortOrder = sortOrder.toLowerCase(); + if (sortOrder === "desc") + return value.reverse(); + else + return value; + } +} +SortPipe.decorators = [ + { type: Pipe, args: [{ + name: 'abpSort', + pure: false + },] } +]; + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -3040,12 +3504,15 @@ CoreModule.decorators = [ DynamicLayoutComponent, AutofocusDirective, EllipsisDirective, + ForDirective, FormSubmitDirective, LocalizationPipe, + SortPipe, PermissionDirective, VisibilityDirective, InputEventDebounceDirective, ClickEventStopPropagationDirective, + AbstractNgModelComponent, ], exports: [ CommonModule, @@ -3057,13 +3524,16 @@ CoreModule.decorators = [ DynamicLayoutComponent, AutofocusDirective, EllipsisDirective, + ForDirective, FormSubmitDirective, LocalizationPipe, + SortPipe, PermissionDirective, VisibilityDirective, InputEventDebounceDirective, LocalizationPipe, ClickEventStopPropagationDirective, + AbstractNgModelComponent, ], providers: [LocalizationPipe], entryComponents: [RouterOutletComponent, DynamicLayoutComponent], @@ -3080,5 +3550,5 @@ CoreModule.decorators = [ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { ApiInterceptor, ApplicationConfigurationService, AuthGuard, AutofocusDirective, CONFIG, ChangePassword, ConfigPlugin, ConfigService, ConfigState, CoreModule, DynamicLayoutComponent, ENVIRONMENT, EllipsisDirective, FormSubmitDirective, GetAppConfiguration, GetProfile, LazyLoadService, LocalizationService, NGXS_CONFIG_PLUGIN_OPTIONS, PatchRouteByName, PermissionDirective, PermissionGuard, ProfileService, ProfileState, Rest, RestOccurError, RestService, RouterOutletComponent, SessionState, SetLanguage, SetTenant, StartLoader, StopLoader, UpdateProfile, VisibilityDirective, configFactory, environmentFactory, getInitialData, localeInitializer, noop, organizeRoutes, registerLocale, setChildRoute, sortRoutes, takeUntilDestroy, uuid, ProfileState as ɵa, ProfileService as ɵb, ClickEventStopPropagationDirective as ɵba, LocaleId as ɵbb, LocaleProvider as ɵbc, NGXS_CONFIG_PLUGIN_OPTIONS as ɵbd, ConfigPlugin as ɵbe, ApiInterceptor as ɵbf, getInitialData as ɵbg, localeInitializer as ɵbh, RestService as ɵc, GetProfile as ɵd, UpdateProfile as ɵe, ChangePassword as ɵf, SessionState as ɵh, LocalizationService as ɵi, SetLanguage as ɵj, SetTenant as ɵk, ConfigState as ɵm, ApplicationConfigurationService as ɵn, PatchRouteByName as ɵo, GetAppConfiguration as ɵp, RouterOutletComponent as ɵq, DynamicLayoutComponent as ɵr, ConfigState as ɵs, AutofocusDirective as ɵt, EllipsisDirective as ɵu, FormSubmitDirective as ɵv, LocalizationPipe as ɵw, PermissionDirective as ɵx, VisibilityDirective as ɵy, InputEventDebounceDirective as ɵz }; +export { AbstractNgModelComponent, ApiInterceptor, ApplicationConfigurationService, AuthGuard, AutofocusDirective, CONFIG, ChangePassword, ConfigPlugin, ConfigService, ConfigState, CoreModule, DynamicLayoutComponent, ENVIRONMENT, EllipsisDirective, ForDirective, FormSubmitDirective, GetAppConfiguration, GetProfile, LazyLoadService, LocalizationService, NGXS_CONFIG_PLUGIN_OPTIONS, PatchRouteByName, PermissionDirective, PermissionGuard, ProfileService, ProfileState, Rest, RestOccurError, RestService, RouterOutletComponent, SessionState, SetLanguage, SetTenant, StartLoader, StopLoader, UpdateProfile, VisibilityDirective, configFactory, environmentFactory, getInitialData, localeInitializer, noop, organizeRoutes, registerLocale, setChildRoute, sortRoutes, takeUntilDestroy, uuid, ProfileState as ɵa, ProfileService as ɵb, InputEventDebounceDirective as ɵba, ClickEventStopPropagationDirective as ɵbb, AbstractNgModelComponent as ɵbc, LocaleId as ɵbd, LocaleProvider as ɵbe, NGXS_CONFIG_PLUGIN_OPTIONS as ɵbf, ConfigPlugin as ɵbg, ApiInterceptor as ɵbh, getInitialData as ɵbi, localeInitializer as ɵbj, RestService as ɵc, GetProfile as ɵd, UpdateProfile as ɵe, ChangePassword as ɵf, SessionState as ɵh, LocalizationService as ɵi, SetLanguage as ɵj, SetTenant as ɵk, ConfigState as ɵm, ApplicationConfigurationService as ɵn, PatchRouteByName as ɵo, GetAppConfiguration as ɵp, RouterOutletComponent as ɵq, DynamicLayoutComponent as ɵr, AutofocusDirective as ɵs, EllipsisDirective as ɵt, ForDirective as ɵu, FormSubmitDirective as ɵv, LocalizationPipe as ɵw, SortPipe as ɵx, PermissionDirective as ɵy, VisibilityDirective as ɵz }; //# sourceMappingURL=abp-ng.core.js.map diff --git a/npm/ng-packs/dist/core/fesm2015/abp-ng.core.js.map b/npm/ng-packs/dist/core/fesm2015/abp-ng.core.js.map index d4f2ea659b..cf032f55b6 100644 --- a/npm/ng-packs/dist/core/fesm2015/abp-ng.core.js.map +++ b/npm/ng-packs/dist/core/fesm2015/abp-ng.core.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.core.js","sources":["ng://@abp/ng.core/lib/actions/config.actions.ts","ng://@abp/ng.core/lib/actions/loader.actions.ts","ng://@abp/ng.core/lib/actions/profile.actions.ts","ng://@abp/ng.core/lib/actions/rest.actions.ts","ng://@abp/ng.core/lib/actions/session.actions.ts","ng://@abp/ng.core/lib/services/rest.service.ts","ng://@abp/ng.core/lib/services/profile.service.ts","ng://@abp/ng.core/lib/states/profile.state.ts","ng://@abp/ng.core/lib/services/application-configuration.service.ts","ng://@abp/ng.core/lib/constants/different-locales.ts","ng://@abp/ng.core/lib/utils/initial-utils.ts","ng://@abp/ng.core/lib/services/localization.service.ts","ng://@abp/ng.core/lib/states/session.state.ts","ng://@abp/ng.core/lib/utils/route-utils.ts","ng://@abp/ng.core/lib/states/config.state.ts","ng://@abp/ng.core/lib/utils/common-utils.ts","ng://@abp/ng.core/lib/utils/generator-utils.ts","ng://@abp/ng.core/lib/utils/rxjs-utils.ts","ng://@abp/ng.core/lib/components/dynamic-layout.component.ts","ng://@abp/ng.core/lib/components/router-outlet.component.ts","ng://@abp/ng.core/lib/directives/autofocus.directive.ts","ng://@abp/ng.core/lib/directives/ellipsis.directive.ts","ng://@abp/ng.core/lib/directives/form-submit.directive.ts","ng://@abp/ng.core/lib/directives/permission.directive.ts","ng://@abp/ng.core/lib/directives/visibility.directive.ts","ng://@abp/ng.core/lib/enums/common.ts","ng://@abp/ng.core/lib/guards/auth.guard.ts","ng://@abp/ng.core/lib/guards/permission.guard.ts","ng://@abp/ng.core/lib/interceptors/api.interceptor.ts","ng://@abp/ng.core/lib/models/application-configuration.ts","ng://@abp/ng.core/lib/models/common.ts","ng://@abp/ng.core/lib/models/config.ts","ng://@abp/ng.core/lib/models/rest.ts","ng://@abp/ng.core/lib/models/session.ts","ng://@abp/ng.core/lib/models/profile.ts","ng://@abp/ng.core/lib/plugins/config/config.plugin.ts","ng://@abp/ng.core/lib/services/config.service.ts","ng://@abp/ng.core/lib/services/lazy-load.service.ts","ng://@abp/ng.core/lib/tokens/common.token.ts","ng://@abp/ng.core/lib/directives/debounce.directive.ts","ng://@abp/ng.core/lib/directives/stop-propagation.directive.ts","ng://@abp/ng.core/lib/pipes/localization.pipe.ts","ng://@abp/ng.core/lib/providers/locale.provider.ts","ng://@abp/ng.core/lib/core.module.ts"],"sourcesContent":["import { ABP } from '../models';\n\nexport class PatchRouteByName {\n static readonly type = '[Config] Patch Route By Name';\n constructor(public name: string, public newValue: Partial) {}\n}\n\nexport class GetAppConfiguration {\n static readonly type = '[Config] Get App Configuration';\n}\n","import { HttpRequest } from '@angular/common/http';\n\nexport class StartLoader {\n static readonly type = '[Loader] Start';\n constructor(public payload: HttpRequest) {}\n}\n\nexport class StopLoader {\n static readonly type = '[Loader] Stop';\n constructor(public payload: HttpRequest) {}\n}\n","import { Profile } from '../models';\n\nexport class GetProfile {\n static readonly type = '[Profile] Get';\n}\n\nexport class UpdateProfile {\n static readonly type = '[Profile] Update';\n constructor(public payload: Profile.Response) {}\n}\n\nexport class ChangePassword {\n static readonly type = '[Profile] Change Password';\n constructor(public payload: Profile.ChangePasswordRequest) {}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class RestOccurError {\n static readonly type = '[Rest] Error';\n constructor(public payload: HttpErrorResponse | any) {}\n}\n","import { ABP } from '../models';\n\nexport class SetLanguage {\n static readonly type = '[Session] Set Language';\n constructor(public payload: string) {}\n}\nexport class SetTenant {\n static readonly type = '[Session] Set Tenant';\n constructor(public payload: ABP.BasicItem) {}\n}\n","import { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { NEVER, Observable, throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport { Rest } from '../models/rest';\nimport { ConfigState } from '../states';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestService {\n constructor(private http: HttpClient, private store: Store) {}\n\n handleError(err: any): Observable {\n this.store.dispatch(new RestOccurError(err));\n console.error(err);\n return throwError(err);\n }\n\n request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {\n const { observe = Rest.Observe.Body, skipHandleError } = config;\n const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;\n const { method, ...options } = request;\n return this.http.request(method, url, { observe, ...options } as any).pipe(\n observe === Rest.Observe.Body ? take(1) : null,\n catchError(err => {\n if (skipHandleError) {\n return throwError(err);\n }\n\n return this.handleError(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService } from './rest.service';\nimport { Profile, Rest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/my-profile',\n };\n\n return this.rest.request(request);\n }\n\n update(body: Profile.Response): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/identity/my-profile',\n body,\n };\n\n return this.rest.request(request);\n }\n\n changePassword(body: Profile.ChangePasswordRequest, skipHandleError: boolean = false): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/my-profile/change-password',\n body,\n };\n\n return this.rest.request(request, { skipHandleError });\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetProfile, ChangePassword, UpdateProfile } from '../actions/profile.actions';\nimport { Profile } from '../models/profile';\nimport { ProfileService } from '../services/profile.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'ProfileState',\n defaults: {} as Profile.State,\n})\nexport class ProfileState {\n @Selector()\n static getProfile({ profile }: Profile.State): Profile.Response {\n return profile;\n }\n\n constructor(private profileService: ProfileService) {}\n\n @Action(GetProfile)\n profileGet({ patchState }: StateContext) {\n return this.profileService.get().pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(UpdateProfile)\n profileUpdate({ patchState }: StateContext, { payload }: UpdateProfile) {\n return this.profileService.update(payload).pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ChangePassword)\n changePassword(_, { payload }: ChangePassword) {\n return this.profileService.changePassword(payload, true);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApplicationConfiguration, Rest } from '../models';\nimport { RestService } from './rest.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationConfigurationService {\n constructor(private rest: RestService) {}\n\n getConfiguration(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/application-configuration',\n };\n\n return this.rest.request(request);\n }\n}\n","// Different locales from .NET\n// Key is .NET locale, value is Angular locale\n\nexport default {\n 'ar-sa': 'ar-SA',\n 'ca-ES-valencia': 'ca-ES-VALENCIA',\n 'de-de': 'de',\n 'es-ES': 'es',\n 'en-US': 'en',\n 'fil-Latn': 'en',\n 'ku-Arab': 'en',\n 'ky-Cyrl': 'en',\n 'mi-Latn': 'en',\n 'prs-Arab': 'en',\n 'qut-Latn': 'en',\n nso: 'en',\n quz: 'en',\n 'fr-FR': 'fr',\n 'gd-Latn': 'gd',\n 'ha-Latn': 'ha',\n 'ig-Latn': 'ig',\n 'it-it': 'it',\n 'mn-Cyrl': 'mn',\n 'pt-BR': 'pt',\n 'sd-Arab': 'pa-Arab',\n 'sr-Cyrl-RS': 'sr-Cyrl',\n 'sr-Latn-RS': 'sr-Latn',\n 'tg-Cyrl': 'tg',\n 'tk-Latn': 'tk',\n 'tt-Cyrl': 'tt',\n 'ug-Arab': 'ug',\n 'yo-Latn': 'yo',\n};\n","import { registerLocaleData } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport differentLocales from '../constants/different-locales';\nimport { SessionState } from '../states/session.state';\n\nexport function getInitialData(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n return store.dispatch(new GetAppConfiguration()).toPromise();\n };\n\n return fn;\n}\n\nexport function localeInitializer(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n const lang = store.selectSnapshot(SessionState.getLanguage) || 'en';\n\n return new Promise((resolve, reject) => {\n registerLocale(lang).then(() => resolve(), reject);\n });\n };\n\n return fn;\n}\n\nexport function registerLocale(locale: string) {\n return import(\n /* webpackInclude: /(af|am|ar-SA|as|az-Latn|be|bg|bn-BD|bn-IN|bs|ca|ca-ES-VALENCIA|cs|cy|da|de|de|el|en-GB|en|es|en|es-US|es-MX|et|eu|fa|fi|en|fr|fr|fr-CA|ga|gd|gl|gu|ha|he|hi|hr|hu|hy|id|ig|is|it|it|ja|ka|kk|km|kn|ko|kok|en|en|lb|lt|lv|en|mk|ml|mn|mr|ms|mt|nb|ne|nl|nl-BE|nn|en|or|pa|pa-Arab|pl|en|pt|pt-PT|en|en|ro|ru|rw|pa-Arab|si|sk|sl|sq|sr-Cyrl-BA|sr-Cyrl|sr-Latn|sv|sw|ta|te|tg|th|ti|tk|tn|tr|tt|ug|uk|ur|uz-Latn|vi|wo|xh|yo|zh-Hans|zh-Hant|zu)\\.js$/ */\n `@angular/common/locales/${differentLocales[locale] || locale}.js`\n ).then(module => {\n registerLocaleData(module.default);\n });\n}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { Actions, Store } from '@ngxs/store';\nimport { noop, Observable } from 'rxjs';\nimport { ConfigState } from '../states/config.state';\nimport { SessionState } from '../states/session.state';\nimport { registerLocale } from '../utils/initial-utils';\n\ntype ShouldReuseRoute = (future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot) => boolean;\n\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService {\n get currentLang(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n constructor(\n private store: Store,\n private router: Router,\n private actions: Actions,\n @Optional()\n @SkipSelf()\n otherInstance: LocalizationService,\n ) {\n if (otherInstance) throw new Error('LocaleService should have only one instance.');\n }\n\n private setRouteReuse(reuse: ShouldReuseRoute) {\n this.router.routeReuseStrategy.shouldReuseRoute = reuse;\n }\n\n registerLocale(locale: string) {\n const { shouldReuseRoute } = this.router.routeReuseStrategy;\n\n this.setRouteReuse(() => false);\n this.router.navigated = false;\n\n return registerLocale(locale).then(async () => {\n await this.router.navigateByUrl(this.router.url).catch(noop);\n this.setRouteReuse(shouldReuseRoute);\n });\n }\n\n get(keys: string, ...interpolateParams: string[]): Observable {\n return this.store.select(ConfigState.getCopy(keys, ...interpolateParams));\n }\n\n instant(keys: string, ...interpolateParams: string[]): string {\n return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams));\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { SetLanguage, SetTenant } from '../actions/session.actions';\nimport { ABP, Session } from '../models';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport { LocalizationService } from '../services/localization.service';\nimport { from, combineLatest } from 'rxjs';\n\n@State({\n name: 'SessionState',\n defaults: {} as Session.State,\n})\nexport class SessionState {\n @Selector()\n static getLanguage({ language }: Session.State): string {\n return language;\n }\n\n @Selector()\n static getTenant({ tenant }: Session.State): ABP.BasicItem {\n return tenant;\n }\n\n constructor(private localizationService: LocalizationService) {}\n\n @Action(SetLanguage)\n setLanguage({ patchState, dispatch }: StateContext, { payload }: SetLanguage) {\n patchState({\n language: payload,\n });\n\n return combineLatest([dispatch(new GetAppConfiguration()), from(this.localizationService.registerLocale(payload))]);\n }\n\n @Action(SetTenant)\n setTenantId({ patchState }: StateContext, { payload }: SetTenant) {\n patchState({\n tenant: payload,\n });\n }\n}\n","import { ABP } from '../models';\n\nexport function organizeRoutes(\n routes: ABP.FullRoute[],\n wrappers: ABP.FullRoute[] = [],\n parentNameArr = [] as ABP.FullRoute[],\n parentName: string = null,\n): ABP.FullRoute[] {\n const filter = route => {\n if (route.children && route.children.length) {\n route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name);\n }\n\n if (route.parentName && route.parentName !== parentName) {\n parentNameArr.push(route);\n return false;\n }\n\n return true;\n };\n\n if (parentName) {\n // recursive block\n return routes.filter(filter);\n }\n\n const filteredRoutes = routes.filter(filter);\n\n if (parentNameArr.length) {\n return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr));\n }\n\n return filteredRoutes;\n}\n\nexport function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] {\n return routes.map(route => {\n if (route.children && route.children.length) {\n route.children = setChildRoute(route.children, parentNameArr);\n }\n\n const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name);\n if (foundedChildren && foundedChildren.length) {\n route.children = [...(route.children || []), ...foundedChildren];\n }\n\n return route;\n });\n}\n\nexport function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] {\n if (!routes.length) return [];\n return routes\n .sort((a, b) => a.order - b.order)\n .map(route => {\n if (route.children && route.children.length) {\n route.children = sortRoutes(route.children);\n }\n\n return route;\n });\n}\n","import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store';\nimport { Config, ABP } from '../models';\nimport { GetAppConfiguration, PatchRouteByName } from '../actions/config.actions';\nimport { ApplicationConfigurationService } from '../services/application-configuration.service';\nimport { tap, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { SetLanguage } from '../actions';\nimport { SessionState } from './session.state';\nimport { of } from 'rxjs';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\n@State({\n name: 'ConfigState',\n defaults: {} as Config.State,\n})\nexport class ConfigState {\n @Selector()\n static getAll(state: Config.State) {\n return state;\n }\n\n @Selector()\n static getApplicationInfo(state: Config.State) {\n return state.environment.application || {};\n }\n\n static getOne(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return state[key];\n },\n );\n\n return selector;\n }\n\n static getDeep(keys: string[] | string) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return (keys as string[]).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state);\n },\n );\n\n return selector;\n }\n\n static getRoute(path?: string, name?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return findRoute(state.routes, path, name);\n },\n );\n\n return selector;\n }\n\n static getApiUrl(key?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): string {\n return state.environment.apis[key || 'default'].url;\n },\n );\n\n return selector;\n }\n\n static getSetting(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return snq(() => state.setting.values[key]);\n },\n );\n\n return selector;\n }\n\n static getGrantedPolicy(condition: string = '') {\n const keys = condition\n .replace(/\\(|\\)|\\!|\\s/g, '')\n .split(/\\|\\||&&/)\n .filter(key => key);\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): boolean {\n if (!keys.length) return true;\n\n const getPolicy = key => snq(() => state.auth.grantedPolicies[key], false);\n if (keys.length > 1) {\n keys.forEach(key => {\n const value = getPolicy(key);\n condition = condition.replace(key, value);\n });\n\n // tslint:disable-next-line: no-eval\n return eval(`!!${condition}`);\n }\n\n return getPolicy(condition);\n },\n );\n\n return selector;\n }\n\n static getCopy(key: string, ...interpolateParams: string[]) {\n if (!key) key = '';\n\n const keys = key.split('::') as string[];\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n if (!state.localization) return key;\n\n const { defaultResourceName } = state.environment.localization;\n if (keys[0] === '') {\n if (!defaultResourceName) {\n throw new Error(\n `Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }`,\n );\n }\n\n keys[0] = snq(() => defaultResourceName);\n }\n\n let copy = keys.reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state.localization.values);\n\n interpolateParams = interpolateParams.filter(params => params != null);\n if (copy && interpolateParams && interpolateParams.length) {\n interpolateParams.forEach(param => {\n copy = copy.replace(/[\\'\\\"]?\\{[\\d]+\\}[\\'\\\"]?/, param);\n });\n }\n\n return copy || key;\n },\n );\n\n return selector;\n }\n\n constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {}\n\n @Action(GetAppConfiguration)\n addData({ patchState, dispatch }: StateContext) {\n return this.appConfigurationService.getConfiguration().pipe(\n tap(configuration =>\n patchState({\n ...configuration,\n }),\n ),\n switchMap(configuration => {\n let defaultLang: string = configuration.setting.values['Abp.Localization.DefaultLanguage'];\n\n if (defaultLang.includes(';')) {\n defaultLang = defaultLang.split(';')[0];\n }\n\n return this.store.selectSnapshot(SessionState.getLanguage) ? of(null) : dispatch(new SetLanguage(defaultLang));\n }),\n );\n }\n\n @Action(PatchRouteByName)\n patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) {\n let routes: ABP.FullRoute[] = getState().routes;\n\n const index = routes.findIndex(route => route.name === name);\n\n routes = patchRouteDeep(routes, name, newValue);\n\n return patchState({\n routes,\n });\n }\n}\n\nfunction patchRouteDeep(\n routes: ABP.FullRoute[],\n name: string,\n newValue: Partial,\n parentUrl: string = null,\n): ABP.FullRoute[] {\n routes = routes.map(route => {\n if (route.name === name) {\n if (newValue.path) {\n newValue.url = `${parentUrl}/${newValue.path}`;\n }\n\n if (newValue.children && newValue.children.length) {\n newValue.children = newValue.children.map(child => ({\n ...child,\n url: `${parentUrl}/${route.path}/${child.path}`,\n }));\n }\n\n return { ...route, ...newValue };\n } else if (route.children && route.children.length) {\n route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path);\n }\n\n return route;\n });\n\n if (parentUrl) {\n // recursive block\n return routes;\n }\n\n return organizeRoutes(routes);\n}\n\nfunction findRoute(routes: ABP.FullRoute[], path?: string, name?: string) {\n let foundRoute;\n routes.forEach(route => {\n if (foundRoute) return;\n\n if (path && route.path === path) {\n foundRoute = route;\n } else if (name && route.name === name) {\n foundRoute = route;\n return;\n } else if (route.children && route.children.length) {\n foundRoute = findRoute(route.children, path, name);\n return;\n }\n });\n\n return foundRoute;\n}\n","export function noop() {\n const fn = function() {};\n return fn;\n}\n","export function uuid(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nexport const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => (\n source: Observable,\n) => {\n const originalDestroy = componentInstance[destroyMethodName];\n if (isFunction(originalDestroy) === false) {\n throw new Error(\n `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`,\n );\n }\n if (!componentInstance['__takeUntilDestroy']) {\n componentInstance['__takeUntilDestroy'] = new Subject();\n\n componentInstance[destroyMethodName] = function() {\n isFunction(originalDestroy) && originalDestroy.apply(this, arguments);\n componentInstance['__takeUntilDestroy'].next(true);\n componentInstance['__takeUntilDestroy'].complete();\n };\n }\n return source.pipe(takeUntil(componentInstance['__takeUntilDestroy']));\n};\n","import { Component, OnDestroy, Type } from '@angular/core';\nimport { NavigationEnd, Router, UrlSegment } from '@angular/router';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { eLayoutType } from '../enums';\nimport { ABP, Config } from '../models';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport snq from 'snq';\n\n@Component({\n selector: 'abp-dynamic-layout',\n template: `\n \n\n \n \n `,\n})\nexport class DynamicLayoutComponent implements OnDestroy {\n @Select(ConfigState.getOne('requirements'))\n requirements$: Observable;\n\n layout: Type;\n\n constructor(private router: Router, private store: Store) {\n this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n const { segments } = this.router.parseUrl(event.url).root.children.primary;\n const {\n requirements: { layouts },\n routes,\n } = this.store.selectSnapshot(ConfigState.getAll);\n\n const layout = findLayout(segments, routes);\n\n this.layout = layouts.filter(l => !!l).find(l => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1);\n }\n });\n }\n\n ngOnDestroy() {}\n}\n\nfunction findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType {\n let layout = eLayoutType.empty;\n\n const route = routes\n .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), [])\n .find(r => r.path === segments[0].path);\n\n if (route) {\n if (route.layout) {\n layout = route.layout;\n }\n\n if (route.children && route.children.length && segments.length > 1) {\n const child = route.children.find(c => c.path === segments[1].path);\n\n if (child && child.layout) {\n layout = child.layout;\n }\n }\n }\n\n return layout;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-router-outlet',\n template: `\n \n `,\n})\nexport class RouterOutletComponent {}\n","import { Directive, ElementRef, Input, AfterViewInit } from '@angular/core';\n\n@Directive({\n selector: '[autofocus]',\n})\nexport class AutofocusDirective implements AfterViewInit {\n @Input('autofocus')\n delay: number = 0;\n\n constructor(private elRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => this.elRef.nativeElement.focus(), this.delay);\n }\n}\n","import { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[abpEllipsis]',\n})\nexport class EllipsisDirective implements AfterContentInit {\n @Input('abpEllipsis')\n width: string;\n\n @HostBinding('title')\n @Input()\n title: string;\n\n @Input('abpEllipsisEnabled')\n enabled = true;\n\n @HostBinding('class.abp-ellipsis-inline')\n get inlineClass() {\n return this.enabled && this.width;\n }\n\n @HostBinding('class.abp-ellipsis')\n get class() {\n return this.enabled && !this.width;\n }\n\n @HostBinding('style.max-width')\n get maxWidth() {\n return this.enabled && this.width ? this.width || '170px' : undefined;\n }\n\n constructor(private cdRef: ChangeDetectorRef, private elRef: ElementRef) {}\n\n ngAfterContentInit() {\n setTimeout(() => {\n const title = this.title;\n this.title = title || (this.elRef.nativeElement as HTMLElement).innerText;\n\n if (this.title !== title) {\n this.cdRef.detectChanges();\n }\n }, 0);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Self,\n} from '@angular/core';\nimport { FormControl, FormGroup, FormGroupDirective } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { takeUntilDestroy } from '../utils';\n\ntype Controls = { [key: string]: FormControl } | FormGroup[];\n\n@Directive({\n selector: 'form[ngSubmit][formGroup]',\n})\nexport class FormSubmitDirective implements OnInit, OnDestroy {\n @Input()\n notValidateOnSubmit: string | boolean;\n\n @Output()\n ngSubmit = new EventEmitter();\n\n executedNgSubmit: boolean = false;\n\n constructor(\n @Self() private formGroupDirective: FormGroupDirective,\n private host: ElementRef,\n private cdRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.formGroupDirective.ngSubmit.pipe(takeUntilDestroy(this)).subscribe(() => {\n this.markAsDirty();\n this.executedNgSubmit = true;\n });\n\n fromEvent(this.host.nativeElement as HTMLElement, 'keyup')\n .pipe(\n debounceTime(200),\n filter((key: KeyboardEvent) => key && key.key === 'Enter'),\n takeUntilDestroy(this),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n }\n\n this.executedNgSubmit = false;\n });\n\n fromEvent(this.host.nativeElement, 'submit')\n .pipe(\n takeUntilDestroy(this),\n filter(() => !this.notValidateOnSubmit && typeof this.notValidateOnSubmit !== 'string'),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.markAsDirty();\n }\n });\n }\n\n ngOnDestroy(): void {}\n\n markAsDirty() {\n const { form } = this.formGroupDirective;\n\n setDirty(form.controls as { [key: string]: FormControl });\n form.markAsDirty();\n\n this.cdRef.detectChanges();\n }\n}\n\nfunction setDirty(controls: Controls) {\n if (Array.isArray(controls)) {\n controls.forEach(group => {\n setDirty(group.controls as { [key: string]: FormControl });\n });\n return;\n }\n\n Object.keys(controls).forEach(key => {\n controls[key].markAsDirty();\n controls[key].updateValueAndValidity();\n });\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\n\n@Directive({\n selector: '[abpPermission]',\n})\nexport class PermissionDirective implements OnInit, OnDestroy {\n @Input('abpPermission') condition: string;\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {}\n\n ngOnInit() {\n if (this.condition) {\n this.store\n .select(ConfigState.getGrantedPolicy(this.condition))\n .pipe(takeUntilDestroy(this))\n .subscribe(isGranted => {\n if (!isGranted) {\n this.renderer.removeChild(\n (this.elRef.nativeElement as HTMLElement).parentElement,\n this.elRef.nativeElement,\n );\n }\n });\n }\n }\n\n ngOnDestroy(): void {}\n}\n","import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport snq from 'snq';\n\n@Directive({\n selector: '[abpVisibility]',\n})\nexport class VisibilityDirective implements AfterViewInit {\n @Input('abpVisibility')\n focusedElement: HTMLElement;\n\n completed$ = new Subject();\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (!mutation.target) return;\n\n const htmlNodes = snq(\n () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) {\n this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement);\n this.disconnect();\n } else {\n setTimeout(() => {\n this.disconnect();\n }, 0);\n }\n });\n });\n\n observer.observe(this.focusedElement, {\n childList: true,\n });\n\n this.completed$.subscribe(() => observer.disconnect());\n }\n\n disconnect() {\n this.completed$.next();\n this.completed$.complete();\n }\n}\n","export const enum eLayoutType {\n account = 'account',\n application = 'application',\n empty = 'empty',\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { Navigate } from '@ngxs/router-plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n constructor(private oauthService: OAuthService, private store: Store) {}\n canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree {\n const hasValidAccessToken = this.oauthService.hasValidAccessToken();\n if (hasValidAccessToken) {\n return hasValidAccessToken;\n }\n\n this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } }));\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { ConfigState } from '../states';\nimport { tap } from 'rxjs/operators';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionGuard implements CanActivate {\n constructor(private store: Store) {}\n\n canActivate({ data }: ActivatedRouteSnapshot): Observable {\n const resource = data.requiredPolicy as string;\n return this.store.select(ConfigState.getGrantedPolicy(resource)).pipe(\n tap(access => {\n if (!access) {\n this.store.dispatch(new RestOccurError({ status: 403 }));\n }\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Store } from '@ngxs/store';\nimport { SessionState } from '../states';\nimport { StartLoader, StopLoader } from '../actions/loader.actions';\nimport { finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n constructor(private oAuthService: OAuthService, private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler) {\n this.store.dispatch(new StartLoader(request));\n\n const headers = {} as any;\n\n const token = this.oAuthService.getAccessToken();\n if (!request.headers.has('Authorization') && token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const lang = this.store.selectSnapshot(SessionState.getLanguage);\n if (!request.headers.has('Accept-Language') && lang) {\n headers['Accept-Language'] = lang;\n }\n\n const tenant = this.store.selectSnapshot(SessionState.getTenant);\n if (!request.headers.has('__tenant') && tenant) {\n headers['__tenant'] = tenant.id;\n }\n\n return next\n .handle(\n request.clone({\n setHeaders: headers,\n }),\n )\n .pipe(finalize(() => this.store.dispatch(new StopLoader(request))));\n }\n}\n","export namespace ApplicationConfiguration {\n export interface Response {\n localization: Localization;\n auth: Auth;\n setting: Setting;\n currentUser: CurrentUser;\n features: Features;\n }\n\n export interface Localization {\n values: LocalizationValue;\n languages: Language[];\n }\n\n export interface LocalizationValue {\n [key: string]: { [key: string]: string };\n }\n\n export interface Language {\n cultureName: string;\n uiCultureName: string;\n displayName: string;\n flagIcon: string;\n }\n\n export interface Auth {\n policies: Policy;\n grantedPolicies: Policy;\n }\n\n export interface Policy {\n [key: string]: boolean;\n }\n\n export interface Setting {\n values: { [key: string]: 'Abp.Localization.DefaultLanguage' };\n }\n\n export interface CurrentUser {\n isAuthenticated: boolean;\n id: string;\n tenantId: string;\n userName: string;\n }\n\n export interface Features {\n values: Setting;\n }\n}\n","import { Config } from './config';\nimport { eLayoutType } from '../enums';\n\nexport namespace ABP {\n export interface Root {\n environment: Partial;\n requirements: Config.Requirements;\n }\n\n export type PagedResponse = {\n totalCount: number;\n } & PagedItemsResponse;\n\n export interface PagedItemsResponse {\n items: T[];\n }\n\n export interface PageQueryParams {\n filter?: string;\n sorting?: string;\n skipCount?: number;\n maxResultCount?: number;\n }\n\n export interface Route {\n children?: Route[];\n invisible?: boolean;\n layout?: eLayoutType;\n name: string;\n order?: number;\n parentName?: string;\n path: string;\n requiredPolicy?: string;\n iconClass?: string;\n }\n\n export interface FullRoute extends Route {\n url?: string;\n wrapper?: boolean;\n }\n\n export interface BasicItem {\n id: string;\n name: string;\n }\n}\n","import { AuthConfig } from 'angular-oauth2-oidc';\nimport { Type } from '@angular/core';\n\nexport namespace Config {\n export interface State {\n [key: string]: any;\n }\n\n export interface Environment {\n application: Application;\n production: boolean;\n oAuthConfig: AuthConfig;\n apis: Apis;\n }\n\n export interface Application {\n name: string;\n logoUrl?: string;\n }\n\n export interface Apis {\n [key: string]: { [key: string]: string };\n }\n\n export interface Requirements {\n layouts: Type[];\n }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\n\nexport namespace Rest {\n export interface Config {\n skipHandleError?: boolean;\n observe?: Observe;\n }\n\n export const enum Observe {\n Body = 'body',\n Events = 'events',\n Response = 'response',\n }\n\n export const enum ResponseType {\n ArrayBuffer = 'arraybuffer',\n Blob = 'blob',\n JSON = 'json',\n Text = 'text',\n }\n\n export interface Request {\n body?: T;\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n method: string;\n params?:\n | HttpParams\n | {\n [param: string]: any;\n };\n reportProgress?: boolean;\n responseType?: ResponseType;\n url: string;\n withCredentials?: boolean;\n }\n}\n","import { ABP } from '../models';\n\nexport namespace Session {\n export interface State {\n language: string;\n tenant: ABP.BasicItem;\n }\n}\n","export namespace Profile {\n export interface State {\n profile: Response;\n }\n\n export interface Response {\n userName: string;\n email: string;\n name: string;\n surname: string;\n phoneNumber: string;\n }\n\n export interface ChangePasswordRequest {\n currentPassword: string;\n newPassword: string;\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Router, Routes } from '@angular/router';\nimport { actionMatcher, InitState, NgxsNextPluginFn, NgxsPlugin, setValue, UpdateState } from '@ngxs/store';\nimport snq from 'snq';\nimport { ABP } from '../../models';\nimport { organizeRoutes } from '../../utils/route-utils';\n\nexport const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS');\n\n@Injectable()\nexport class ConfigPlugin implements NgxsPlugin {\n private initialized: boolean = false;\n\n constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const matches = actionMatcher(event);\n const isInitAction = matches(InitState) || matches(UpdateState);\n\n // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []);\n if (isInitAction && !this.initialized) {\n let { routes, wrappers } = transformRoutes(this.router.config);\n routes = organizeRoutes(routes, wrappers);\n\n state = setValue(state, 'ConfigState', {\n ...(state.ConfigState && { ...state.ConfigState }),\n ...this.options,\n routes,\n });\n\n this.initialized = true;\n }\n\n return next(state, event);\n }\n}\n\nfunction transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any {\n const abpRoutes: ABP.FullRoute[] = routes\n .filter(route => {\n return snq(() => route.data.routes.routes.find(r => r.path === route.path), false);\n })\n .reduce((acc, val) => [...acc, ...val.data.routes.routes], []);\n\n wrappers = abpRoutes.filter(ar => ar.wrapper);\n const transformed = [] as ABP.FullRoute[];\n routes\n .filter(route => (route.data || {}).routes && (route.component || route.loadChildren))\n .forEach(route => {\n const abpPackage = abpRoutes.find(\n abp => abp.path.toLowerCase() === route.path.toLowerCase() && snq(() => route.data.routes.routes.length, false),\n );\n const { length } = transformed;\n\n if (abpPackage) {\n transformed.push(abpPackage);\n }\n\n if (transformed.length === length) {\n transformed.push({\n ...route.data.routes,\n path: route.path,\n name: snq(() => route.data.routes.name, route.path),\n children: route.data.routes.children || [],\n } as ABP.FullRoute);\n }\n });\n\n return { routes: setUrls(transformed), wrappers };\n}\n\nfunction setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] {\n if (parentUrl) {\n // this if block using for only recursive call\n\n return routes.map(route => ({\n ...route,\n url: `${parentUrl}/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `${parentUrl}/${route.path}`),\n }),\n }));\n }\n\n return routes.map(route => ({\n ...route,\n url: `/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `/${route.path}`),\n }),\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n constructor(private store: Store) {}\n\n getAll() {\n return this.store.selectSnapshot(ConfigState.getAll);\n }\n\n getOne(key: string) {\n return this.store.selectSnapshot(ConfigState.getOne(key));\n }\n\n getDeep(keys: string[] | string) {\n return this.store.selectSnapshot(ConfigState.getDeep(keys));\n }\n\n getSetting(key: string) {\n return this.store.selectSnapshot(ConfigState.getSetting(key));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { uuid } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyLoadService {\n loadedLibraries: { [url: string]: ReplaySubject } = {};\n\n load(\n url: string,\n type: 'script' | 'style',\n content: string = '',\n targetQuery: string = 'body',\n position: InsertPosition = 'afterend',\n ): Observable {\n if (!url && !content) return;\n const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid();\n\n if (this.loadedLibraries[key]) {\n return this.loadedLibraries[key].asObservable();\n }\n\n this.loadedLibraries[key] = new ReplaySubject();\n\n let library;\n if (type === 'script') {\n library = document.createElement('script');\n library.type = 'text/javascript';\n if (url) {\n (library as HTMLScriptElement).src = url;\n }\n\n (library as HTMLScriptElement).text = content;\n } else if (url) {\n library = document.createElement('link');\n library.type = 'text/css';\n (library as HTMLLinkElement).rel = 'stylesheet';\n\n if (url) {\n (library as HTMLLinkElement).href = url;\n }\n } else {\n library = document.createElement('style');\n (library as HTMLStyleElement).textContent = content;\n }\n\n library.onload = () => {\n this.loadedLibraries[key].next();\n this.loadedLibraries[key].complete();\n };\n\n document.querySelector(targetQuery).insertAdjacentElement(position, library);\n\n return this.loadedLibraries[key].asObservable();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Config } from '../models';\n\nexport function environmentFactory(environment: Config.Environment) {\n return {\n ...environment,\n };\n}\n\nexport function configFactory(config: Config.Requirements) {\n return {\n ...config,\n };\n}\n\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\n\nexport const CONFIG = new InjectionToken('CONFIG');\n","import { Directive, Output, Renderer2, ElementRef, OnInit, EventEmitter, Input } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[input.debounce]',\n})\nexport class InputEventDebounceDirective implements OnInit {\n @Input() debounce: number = 300;\n\n @Output('input.debounce') debounceEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'input')\n .pipe(\n debounceTime(this.debounce),\n takeUntilDestroy(this),\n )\n .subscribe((event: Event) => {\n this.debounceEvent.emit(event);\n });\n }\n}\n","import { Directive, ElementRef, EventEmitter, OnInit, Output, Renderer2 } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[click.stop]',\n})\nexport class ClickEventStopPropagationDirective implements OnInit {\n @Output('click.stop') stopPropEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'click')\n .pipe(takeUntilDestroy(this))\n .subscribe((event: MouseEvent) => {\n event.stopPropagation();\n this.stopPropEvent.emit(event);\n });\n }\n}\n","import { Pipe, PipeTransform, OnDestroy } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Pipe({\n name: 'abpLocalization',\n pure: false, // required to update the value\n})\nexport class LocalizationPipe implements PipeTransform, OnDestroy {\n initialValue: string = '';\n\n value: string;\n\n destroy$ = new Subject();\n\n constructor(private store: Store) {}\n\n transform(value: string = '', ...interpolateParams: string[]): string {\n if (this.initialValue !== value) {\n this.initialValue = value;\n this.destroy$.next();\n\n this.store\n .select(\n ConfigState.getCopy(\n value,\n ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []),\n ),\n )\n .pipe(\n takeUntil(this.destroy$),\n takeUntilDestroy(this),\n distinctUntilChanged(),\n )\n .subscribe(copy => (this.value = copy));\n }\n\n return this.value;\n }\n\n ngOnDestroy() {}\n}\n","import { LOCALE_ID, Provider } from '@angular/core';\nimport localesMapping from '../constants/different-locales';\nimport { LocalizationService } from '../services/localization.service';\n\nexport class LocaleId extends String {\n constructor(private localizationService: LocalizationService) {\n super();\n }\n\n toString(): string {\n const { currentLang } = this.localizationService;\n return localesMapping[currentLang] || currentLang;\n }\n\n valueOf(): string {\n return this.toString();\n }\n}\n\nexport const LocaleProvider: Provider = {\n provide: LOCALE_ID,\n useClass: LocaleId,\n deps: [LocalizationService],\n};\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxsRouterPluginModule } from '@ngxs/router-plugin';\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\nimport { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\nimport { RouterOutletComponent } from './components/router-outlet.component';\nimport { AutofocusDirective } from './directives/autofocus.directive';\nimport { InputEventDebounceDirective } from './directives/debounce.directive';\nimport { EllipsisDirective } from './directives/ellipsis.directive';\nimport { FormSubmitDirective } from './directives/form-submit.directive';\nimport { PermissionDirective } from './directives/permission.directive';\nimport { ClickEventStopPropagationDirective } from './directives/stop-propagation.directive';\nimport { VisibilityDirective } from './directives/visibility.directive';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ABP } from './models/common';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { LocaleProvider } from './providers/locale.provider';\nimport { ConfigState } from './states/config.state';\nimport { ProfileState } from './states/profile.state';\nimport { SessionState } from './states/session.state';\nimport { getInitialData, localeInitializer } from './utils/initial-utils';\nimport { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config/config.plugin';\n\n@NgModule({\n imports: [\n NgxsModule.forFeature([ProfileState, SessionState, ConfigState]),\n NgxsStoragePluginModule.forRoot({ key: 'SessionState' }),\n NgxsRouterPluginModule.forRoot(),\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n ],\n declarations: [\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n FormSubmitDirective,\n LocalizationPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n ClickEventStopPropagationDirective,\n ],\n exports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n FormSubmitDirective,\n LocalizationPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n LocalizationPipe,\n ClickEventStopPropagationDirective,\n ],\n providers: [LocalizationPipe],\n entryComponents: [RouterOutletComponent, DynamicLayoutComponent],\n})\nexport class CoreModule {\n static forRoot(options = {} as ABP.Root): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [\n LocaleProvider,\n {\n provide: NGXS_PLUGINS,\n useClass: ConfigPlugin,\n multi: true,\n },\n {\n provide: NGXS_CONFIG_PLUGIN_OPTIONS,\n useValue: options,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: localeInitializer,\n },\n ],\n };\n }\n}\n"],"names":["tslib_1.__decorate","differentLocales","noop","takeUntilDestroy"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.core.js","sources":["ng://@abp/ng.core/lib/abstracts/ng-model.component.ts","ng://@abp/ng.core/lib/actions/config.actions.ts","ng://@abp/ng.core/lib/actions/loader.actions.ts","ng://@abp/ng.core/lib/actions/profile.actions.ts","ng://@abp/ng.core/lib/actions/rest.actions.ts","ng://@abp/ng.core/lib/actions/session.actions.ts","ng://@abp/ng.core/lib/services/profile.service.ts","ng://@abp/ng.core/lib/states/profile.state.ts","ng://@abp/ng.core/lib/constants/different-locales.ts","ng://@abp/ng.core/lib/utils/initial-utils.ts","ng://@abp/ng.core/lib/services/localization.service.ts","ng://@abp/ng.core/lib/states/session.state.ts","ng://@abp/ng.core/lib/services/rest.service.ts","ng://@abp/ng.core/lib/services/application-configuration.service.ts","ng://@abp/ng.core/lib/utils/route-utils.ts","ng://@abp/ng.core/lib/states/config.state.ts","ng://@abp/ng.core/lib/utils/rxjs-utils.ts","ng://@abp/ng.core/lib/components/dynamic-layout.component.ts","ng://@abp/ng.core/lib/components/router-outlet.component.ts","ng://@abp/ng.core/lib/directives/autofocus.directive.ts","ng://@abp/ng.core/lib/directives/ellipsis.directive.ts","ng://@abp/ng.core/lib/directives/for.directive.ts","ng://@abp/ng.core/lib/utils/common-utils.ts","ng://@abp/ng.core/lib/utils/generator-utils.ts","ng://@abp/ng.core/lib/directives/form-submit.directive.ts","ng://@abp/ng.core/lib/directives/permission.directive.ts","ng://@abp/ng.core/lib/directives/visibility.directive.ts","ng://@abp/ng.core/lib/enums/common.ts","ng://@abp/ng.core/lib/guards/auth.guard.ts","ng://@abp/ng.core/lib/guards/permission.guard.ts","ng://@abp/ng.core/lib/interceptors/api.interceptor.ts","ng://@abp/ng.core/lib/models/application-configuration.ts","ng://@abp/ng.core/lib/models/common.ts","ng://@abp/ng.core/lib/models/config.ts","ng://@abp/ng.core/lib/models/rest.ts","ng://@abp/ng.core/lib/models/session.ts","ng://@abp/ng.core/lib/models/profile.ts","ng://@abp/ng.core/lib/plugins/config/config.plugin.ts","ng://@abp/ng.core/lib/services/config.service.ts","ng://@abp/ng.core/lib/services/lazy-load.service.ts","ng://@abp/ng.core/lib/tokens/common.token.ts","ng://@abp/ng.core/lib/directives/debounce.directive.ts","ng://@abp/ng.core/lib/directives/stop-propagation.directive.ts","ng://@abp/ng.core/lib/pipes/localization.pipe.ts","ng://@abp/ng.core/lib/pipes/sort.pipe.ts","ng://@abp/ng.core/lib/providers/locale.provider.ts","ng://@abp/ng.core/lib/core.module.ts"],"sourcesContent":["import { ControlValueAccessor } from '@angular/forms';\nimport { ChangeDetectorRef, Component, Injector, Input, Type } from '@angular/core';\n\n@Component({ template: '' })\nexport class AbstractNgModelComponent implements ControlValueAccessor {\n @Input()\n disabled: boolean;\n\n @Input()\n set value(value: T) {\n this._value = value;\n this.notifyValueChange();\n }\n\n get value(): T {\n return this._value;\n }\n\n onChange: (value: T) => {};\n onTouched: () => {};\n\n protected _value: T;\n protected cdRef: ChangeDetectorRef;\n\n constructor(public injector: Injector) {\n this.cdRef = injector.get(ChangeDetectorRef as Type);\n }\n\n notifyValueChange(): void {\n if (this.onChange) {\n this.onChange(this.value);\n }\n }\n\n writeValue(value: T): void {\n this._value = value;\n setTimeout(() => this.cdRef.detectChanges(), 0);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import { ABP } from '../models';\n\nexport class PatchRouteByName {\n static readonly type = '[Config] Patch Route By Name';\n constructor(public name: string, public newValue: Partial) {}\n}\n\nexport class GetAppConfiguration {\n static readonly type = '[Config] Get App Configuration';\n}\n","import { HttpRequest } from '@angular/common/http';\n\nexport class StartLoader {\n static readonly type = '[Loader] Start';\n constructor(public payload: HttpRequest) {}\n}\n\nexport class StopLoader {\n static readonly type = '[Loader] Stop';\n constructor(public payload: HttpRequest) {}\n}\n","import { Profile } from '../models';\n\nexport class GetProfile {\n static readonly type = '[Profile] Get';\n}\n\nexport class UpdateProfile {\n static readonly type = '[Profile] Update';\n constructor(public payload: Profile.Response) {}\n}\n\nexport class ChangePassword {\n static readonly type = '[Profile] Change Password';\n constructor(public payload: Profile.ChangePasswordRequest) {}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class RestOccurError {\n static readonly type = '[Rest] Error';\n constructor(public payload: HttpErrorResponse | any) {}\n}\n","import { ABP } from '../models';\n\nexport class SetLanguage {\n static readonly type = '[Session] Set Language';\n constructor(public payload: string) {}\n}\nexport class SetTenant {\n static readonly type = '[Session] Set Tenant';\n constructor(public payload: ABP.BasicItem) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService } from './rest.service';\nimport { Profile, Rest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/my-profile',\n };\n\n return this.rest.request(request);\n }\n\n update(body: Profile.Response): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/identity/my-profile',\n body,\n };\n\n return this.rest.request(request);\n }\n\n changePassword(body: Profile.ChangePasswordRequest, skipHandleError: boolean = false): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/my-profile/change-password',\n body,\n };\n\n return this.rest.request(request, { skipHandleError });\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetProfile, ChangePassword, UpdateProfile } from '../actions/profile.actions';\nimport { Profile } from '../models/profile';\nimport { ProfileService } from '../services/profile.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'ProfileState',\n defaults: {} as Profile.State,\n})\nexport class ProfileState {\n @Selector()\n static getProfile({ profile }: Profile.State): Profile.Response {\n return profile;\n }\n\n constructor(private profileService: ProfileService) {}\n\n @Action(GetProfile)\n profileGet({ patchState }: StateContext) {\n return this.profileService.get().pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(UpdateProfile)\n profileUpdate({ patchState }: StateContext, { payload }: UpdateProfile) {\n return this.profileService.update(payload).pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ChangePassword)\n changePassword(_, { payload }: ChangePassword) {\n return this.profileService.changePassword(payload, true);\n }\n}\n","// Different locales from .NET\n// Key is .NET locale, value is Angular locale\n\nexport default {\n 'ar-sa': 'ar-SA',\n 'ca-ES-valencia': 'ca-ES-VALENCIA',\n 'de-de': 'de',\n 'es-ES': 'es',\n 'en-US': 'en',\n 'fil-Latn': 'en',\n 'ku-Arab': 'en',\n 'ky-Cyrl': 'en',\n 'mi-Latn': 'en',\n 'prs-Arab': 'en',\n 'qut-Latn': 'en',\n nso: 'en',\n quz: 'en',\n 'fr-FR': 'fr',\n 'gd-Latn': 'gd',\n 'ha-Latn': 'ha',\n 'ig-Latn': 'ig',\n 'it-it': 'it',\n 'mn-Cyrl': 'mn',\n 'pt-BR': 'pt',\n 'sd-Arab': 'pa-Arab',\n 'sr-Cyrl-RS': 'sr-Cyrl',\n 'sr-Latn-RS': 'sr-Latn',\n 'tg-Cyrl': 'tg',\n 'tk-Latn': 'tk',\n 'tt-Cyrl': 'tt',\n 'ug-Arab': 'ug',\n 'yo-Latn': 'yo',\n};\n","import { registerLocaleData } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport differentLocales from '../constants/different-locales';\nimport { SessionState } from '../states/session.state';\n\nexport function getInitialData(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n return store.dispatch(new GetAppConfiguration()).toPromise();\n };\n\n return fn;\n}\n\nexport function localeInitializer(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n const lang = store.selectSnapshot(SessionState.getLanguage) || 'en';\n\n return new Promise((resolve, reject) => {\n registerLocale(lang).then(() => resolve(), reject);\n });\n };\n\n return fn;\n}\n\nexport function registerLocale(locale: string) {\n return import(\n /* webpackInclude: /(af|am|ar-SA|as|az-Latn|be|bg|bn-BD|bn-IN|bs|ca|ca-ES-VALENCIA|cs|cy|da|de|de|el|en-GB|en|es|en|es-US|es-MX|et|eu|fa|fi|en|fr|fr|fr-CA|ga|gd|gl|gu|ha|he|hi|hr|hu|hy|id|ig|is|it|it|ja|ka|kk|km|kn|ko|kok|en|en|lb|lt|lv|en|mk|ml|mn|mr|ms|mt|nb|ne|nl|nl-BE|nn|en|or|pa|pa-Arab|pl|en|pt|pt-PT|en|en|ro|ru|rw|pa-Arab|si|sk|sl|sq|sr-Cyrl-BA|sr-Cyrl|sr-Latn|sv|sw|ta|te|tg|th|ti|tk|tn|tr|tt|ug|uk|ur|uz-Latn|vi|wo|xh|yo|zh-Hans|zh-Hant|zu)\\.js$/ */\n `@angular/common/locales/${differentLocales[locale] || locale}.js`\n ).then(module => {\n registerLocaleData(module.default);\n });\n}\n","import { Injectable, Optional, SkipSelf, NgZone } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { Actions, Store } from '@ngxs/store';\nimport { noop, Observable } from 'rxjs';\nimport { ConfigState } from '../states/config.state';\nimport { SessionState } from '../states/session.state';\nimport { registerLocale } from '../utils/initial-utils';\n\ntype ShouldReuseRoute = (future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot) => boolean;\n\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService {\n get currentLang(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n constructor(\n private store: Store,\n private router: Router,\n private ngZone: NgZone,\n private actions: Actions,\n @Optional()\n @SkipSelf()\n otherInstance: LocalizationService,\n ) {\n if (otherInstance) throw new Error('LocaleService should have only one instance.');\n }\n\n private setRouteReuse(reuse: ShouldReuseRoute) {\n this.router.routeReuseStrategy.shouldReuseRoute = reuse;\n }\n\n registerLocale(locale: string) {\n const { shouldReuseRoute } = this.router.routeReuseStrategy;\n\n this.setRouteReuse(() => false);\n this.router.navigated = false;\n\n return registerLocale(locale).then(() => {\n this.ngZone.run(async () => {\n await this.router.navigateByUrl(this.router.url).catch(noop);\n this.setRouteReuse(shouldReuseRoute);\n });\n });\n }\n\n get(keys: string, ...interpolateParams: string[]): Observable {\n return this.store.select(ConfigState.getCopy(keys, ...interpolateParams));\n }\n\n instant(keys: string, ...interpolateParams: string[]): string {\n return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams));\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { SetLanguage, SetTenant } from '../actions/session.actions';\nimport { ABP, Session } from '../models';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport { LocalizationService } from '../services/localization.service';\nimport { from, combineLatest } from 'rxjs';\n\n@State({\n name: 'SessionState',\n defaults: {} as Session.State,\n})\nexport class SessionState {\n @Selector()\n static getLanguage({ language }: Session.State): string {\n return language;\n }\n\n @Selector()\n static getTenant({ tenant }: Session.State): ABP.BasicItem {\n return tenant;\n }\n\n constructor(private localizationService: LocalizationService) {}\n\n @Action(SetLanguage)\n setLanguage({ patchState, dispatch }: StateContext, { payload }: SetLanguage) {\n patchState({\n language: payload,\n });\n\n return combineLatest([dispatch(new GetAppConfiguration()), from(this.localizationService.registerLocale(payload))]);\n }\n\n @Action(SetTenant)\n setTenantId({ patchState }: StateContext, { payload }: SetTenant) {\n patchState({\n tenant: payload,\n });\n }\n}\n","import { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { NEVER, Observable, throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport { Rest } from '../models/rest';\nimport { ConfigState } from '../states';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestService {\n constructor(private http: HttpClient, private store: Store) {}\n\n handleError(err: any): Observable {\n this.store.dispatch(new RestOccurError(err));\n console.error(err);\n return throwError(err);\n }\n\n request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {\n const { observe = Rest.Observe.Body, skipHandleError } = config;\n const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;\n const { method, ...options } = request;\n return this.http.request(method, url, { observe, ...options } as any).pipe(\n observe === Rest.Observe.Body ? take(1) : null,\n catchError(err => {\n if (skipHandleError) {\n return throwError(err);\n }\n\n return this.handleError(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApplicationConfiguration, Rest } from '../models';\nimport { RestService } from './rest.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationConfigurationService {\n constructor(private rest: RestService) {}\n\n getConfiguration(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/application-configuration',\n };\n\n return this.rest.request(request);\n }\n}\n","import { ABP } from '../models';\n\nexport function organizeRoutes(\n routes: ABP.FullRoute[],\n wrappers: ABP.FullRoute[] = [],\n parentNameArr = [] as ABP.FullRoute[],\n parentName: string = null,\n): ABP.FullRoute[] {\n const filter = route => {\n if (route.children && route.children.length) {\n route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name);\n }\n\n if (route.parentName && route.parentName !== parentName) {\n parentNameArr.push(route);\n return false;\n }\n\n return true;\n };\n\n if (parentName) {\n // recursive block\n return routes.filter(filter);\n }\n\n const filteredRoutes = routes.filter(filter);\n\n if (parentNameArr.length) {\n return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr));\n }\n\n return filteredRoutes;\n}\n\nexport function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] {\n return routes.map(route => {\n if (route.children && route.children.length) {\n route.children = setChildRoute(route.children, parentNameArr);\n }\n\n const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name);\n if (foundedChildren && foundedChildren.length) {\n route.children = [...(route.children || []), ...foundedChildren];\n }\n\n return route;\n });\n}\n\nexport function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] {\n if (!routes.length) return [];\n return routes\n .sort((a, b) => a.order - b.order)\n .map(route => {\n if (route.children && route.children.length) {\n route.children = sortRoutes(route.children);\n }\n\n return route;\n });\n}\n","import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store';\nimport { Config, ABP } from '../models';\nimport { GetAppConfiguration, PatchRouteByName } from '../actions/config.actions';\nimport { ApplicationConfigurationService } from '../services/application-configuration.service';\nimport { tap, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { SetLanguage } from '../actions';\nimport { SessionState } from './session.state';\nimport { of } from 'rxjs';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\n@State({\n name: 'ConfigState',\n defaults: {} as Config.State,\n})\nexport class ConfigState {\n @Selector()\n static getAll(state: Config.State) {\n return state;\n }\n\n @Selector()\n static getApplicationInfo(state: Config.State): Config.Application {\n return state.environment.application || ({} as Config.Application);\n }\n\n static getOne(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return state[key];\n },\n );\n\n return selector;\n }\n\n static getDeep(keys: string[] | string) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return (keys as string[]).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state);\n },\n );\n\n return selector;\n }\n\n static getRoute(path?: string, name?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n const { flattedRoutes } = state;\n return (flattedRoutes as ABP.FullRoute[]).find(route => {\n if (path && route.path === path) {\n return route;\n } else if (name && route.name === name) {\n return route;\n }\n });\n },\n );\n\n return selector;\n }\n\n static getApiUrl(key?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): string {\n return state.environment.apis[key || 'default'].url;\n },\n );\n\n return selector;\n }\n\n static getSetting(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return snq(() => state.setting.values[key]);\n },\n );\n\n return selector;\n }\n\n static getGrantedPolicy(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): boolean {\n if (!key) return true;\n return snq(() => state.auth.grantedPolicies[key], false);\n },\n );\n\n return selector;\n }\n\n static getCopy(key: string, ...interpolateParams: string[]) {\n if (!key) key = '';\n\n const keys = key.split('::') as string[];\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n if (!state.localization) return key;\n\n const { defaultResourceName } = state.environment.localization;\n if (keys[0] === '') {\n if (!defaultResourceName) {\n throw new Error(\n `Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }`,\n );\n }\n\n keys[0] = snq(() => defaultResourceName);\n }\n\n let copy = (keys as any).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state.localization.values);\n\n interpolateParams = interpolateParams.filter(params => params != null);\n if (copy && interpolateParams && interpolateParams.length) {\n interpolateParams.forEach(param => {\n copy = copy.replace(/[\\'\\\"]?\\{[\\d]+\\}[\\'\\\"]?/, param);\n });\n }\n\n return copy || key;\n },\n );\n\n return selector;\n }\n\n constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {}\n\n @Action(GetAppConfiguration)\n addData({ patchState, dispatch }: StateContext) {\n return this.appConfigurationService.getConfiguration().pipe(\n tap(configuration =>\n patchState({\n ...configuration,\n }),\n ),\n switchMap(configuration => {\n let defaultLang: string = configuration.setting.values['Abp.Localization.DefaultLanguage'];\n\n if (defaultLang.includes(';')) {\n defaultLang = defaultLang.split(';')[0];\n }\n\n return this.store.selectSnapshot(SessionState.getLanguage) ? of(null) : dispatch(new SetLanguage(defaultLang));\n }),\n );\n }\n\n @Action(PatchRouteByName)\n patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) {\n let routes: ABP.FullRoute[] = getState().routes;\n\n const index = routes.findIndex(route => route.name === name);\n\n routes = patchRouteDeep(routes, name, newValue);\n\n return patchState({\n routes,\n });\n }\n}\n\nfunction patchRouteDeep(\n routes: ABP.FullRoute[],\n name: string,\n newValue: Partial,\n parentUrl: string = null,\n): ABP.FullRoute[] {\n routes = routes.map(route => {\n if (route.name === name) {\n if (newValue.path) {\n newValue.url = `${parentUrl}/${newValue.path}`;\n }\n\n if (newValue.children && newValue.children.length) {\n newValue.children = newValue.children.map(child => ({\n ...child,\n url: `${parentUrl}/${route.path}/${child.path}`,\n }));\n }\n\n return { ...route, ...newValue };\n } else if (route.children && route.children.length) {\n route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path);\n }\n\n return route;\n });\n\n if (parentUrl) {\n // recursive block\n return routes;\n }\n\n return organizeRoutes(routes);\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nexport const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => (\n source: Observable,\n) => {\n const originalDestroy = componentInstance[destroyMethodName];\n if (isFunction(originalDestroy) === false) {\n throw new Error(\n `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`,\n );\n }\n if (!componentInstance['__takeUntilDestroy']) {\n componentInstance['__takeUntilDestroy'] = new Subject();\n\n componentInstance[destroyMethodName] = function() {\n isFunction(originalDestroy) && originalDestroy.apply(this, arguments);\n componentInstance['__takeUntilDestroy'].next(true);\n componentInstance['__takeUntilDestroy'].complete();\n };\n }\n return source.pipe(takeUntil(componentInstance['__takeUntilDestroy']));\n};\n","import { Component, Input, OnDestroy, Type } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router, UrlSegment } from '@angular/router';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport snq from 'snq';\nimport { eLayoutType } from '../enums/common';\nimport { Config } from '../models/config';\nimport { ABP } from '../models/common';\nimport { ConfigState } from '../states/config.state';\nimport { takeUntilDestroy } from '../utils/rxjs-utils';\n\n@Component({\n selector: 'abp-dynamic-layout',\n template: `\n \n\n \n \n `,\n})\nexport class DynamicLayoutComponent implements OnDestroy {\n @Select(ConfigState.getOne('requirements'))\n requirements$: Observable;\n\n layout: Type;\n\n constructor(private router: Router, private route: ActivatedRoute, private store: Store) {\n const {\n requirements: { layouts },\n routes,\n } = this.store.selectSnapshot(ConfigState.getAll);\n\n if ((this.route.snapshot.data || {}).layout) {\n this.layout = layouts\n .filter(l => !!l)\n .find((l: any) => snq(() => l.type.toLowerCase().indexOf(this.route.snapshot.data.layout), -1) > -1);\n }\n\n this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n const { segments } = this.router.parseUrl(event.url).root.children.primary;\n\n const layout = (this.route.snapshot.data || {}).layout || findLayout(segments, routes);\n\n this.layout = layouts\n .filter(l => !!l)\n .find((l: any) => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1);\n }\n });\n }\n\n ngOnDestroy() {}\n}\n\nfunction findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType {\n let layout = eLayoutType.empty;\n\n const route = routes\n .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), [])\n .find(r => r.path === segments[0].path);\n\n if (route) {\n if (route.layout) {\n layout = route.layout;\n }\n\n if (route.children && route.children.length && segments.length > 1) {\n const child = route.children.find(c => c.path === segments[1].path);\n\n if (child && child.layout) {\n layout = child.layout;\n }\n }\n }\n\n return layout;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-router-outlet',\n template: `\n \n `,\n})\nexport class RouterOutletComponent {}\n","import { Directive, ElementRef, Input, AfterViewInit } from '@angular/core';\n\n@Directive({\n selector: '[autofocus]',\n})\nexport class AutofocusDirective implements AfterViewInit {\n @Input('autofocus')\n delay: number = 0;\n\n constructor(private elRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => this.elRef.nativeElement.focus(), this.delay);\n }\n}\n","import { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[abpEllipsis]',\n})\nexport class EllipsisDirective implements AfterContentInit {\n @Input('abpEllipsis')\n width: string;\n\n @HostBinding('title')\n @Input()\n title: string;\n\n @Input('abpEllipsisEnabled')\n enabled = true;\n\n @HostBinding('class.abp-ellipsis-inline')\n get inlineClass() {\n return this.enabled && this.width;\n }\n\n @HostBinding('class.abp-ellipsis')\n get class() {\n return this.enabled && !this.width;\n }\n\n @HostBinding('style.max-width')\n get maxWidth() {\n return this.enabled && this.width ? this.width || '170px' : undefined;\n }\n\n constructor(private cdRef: ChangeDetectorRef, private elRef: ElementRef) {}\n\n ngAfterContentInit() {\n setTimeout(() => {\n const title = this.title;\n this.title = title || (this.elRef.nativeElement as HTMLElement).innerText;\n\n if (this.title !== title) {\n this.cdRef.detectChanges();\n }\n }, 0);\n }\n}\n","import {\n Directive,\n EmbeddedViewRef,\n Input,\n IterableChangeRecord,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n OnChanges,\n TemplateRef,\n TrackByFunction,\n ViewContainerRef,\n} from '@angular/core';\nimport compare from 'just-compare';\nimport clone from 'just-clone';\n\nexport type CompareFn = (value: T, comparison: T) => boolean;\n\nclass AbpForContext {\n constructor(public $implicit: any, public index: number, public count: number, public list: any[]) {}\n}\n\nclass RecordView {\n constructor(public record: IterableChangeRecord, public view: EmbeddedViewRef) {}\n}\n\n@Directive({\n selector: '[abpFor]',\n})\nexport class ForDirective implements OnChanges {\n @Input('abpForOf')\n items: any[];\n\n @Input('abpForOrderBy')\n orderBy: string;\n\n @Input('abpForOrderDir')\n orderDir: 'ASC' | 'DESC';\n\n @Input('abpForFilterBy')\n filterBy: string;\n\n @Input('abpForFilterVal')\n filterVal: any;\n\n @Input('abpForTrackBy')\n trackBy;\n\n @Input('abpForCompareBy')\n compareBy: CompareFn;\n\n @Input('abpForEmptyRef')\n emptyRef: TemplateRef;\n\n private differ: IterableDiffer;\n\n private isShowEmptyRef: boolean;\n\n get compareFn(): CompareFn {\n return this.compareBy || compare;\n }\n\n get trackByFn(): TrackByFunction {\n return this.trackBy || ((index: number, item: any) => (item as any).id || index);\n }\n\n constructor(\n private tempRef: TemplateRef,\n private vcRef: ViewContainerRef,\n private differs: IterableDiffers,\n ) {}\n\n private iterateOverAppliedOperations(changes: IterableChanges) {\n const rw: RecordView[] = [];\n\n changes.forEachOperation((record: IterableChangeRecord, previousIndex: number, currentIndex: number) => {\n if (record.previousIndex == null) {\n const view = this.vcRef.createEmbeddedView(\n this.tempRef,\n new AbpForContext(null, -1, -1, this.items),\n currentIndex,\n );\n\n rw.push(new RecordView(record, view));\n } else if (currentIndex == null) {\n this.vcRef.remove(previousIndex);\n } else {\n const view = this.vcRef.get(previousIndex);\n this.vcRef.move(view, currentIndex);\n\n rw.push(new RecordView(record, view as EmbeddedViewRef));\n }\n });\n\n for (let i = 0, l = rw.length; i < l; i++) {\n rw[i].view.context.$implicit = rw[i].record.item;\n }\n }\n\n private iterateOverAttachedViews(changes: IterableChanges) {\n for (let i = 0, l = this.vcRef.length; i < l; i++) {\n const viewRef = this.vcRef.get(i) as EmbeddedViewRef;\n viewRef.context.index = i;\n viewRef.context.count = l;\n viewRef.context.list = this.items;\n }\n\n changes.forEachIdentityChange((record: IterableChangeRecord) => {\n const viewRef = this.vcRef.get(record.currentIndex) as EmbeddedViewRef;\n viewRef.context.$implicit = record.item;\n });\n }\n\n private projectItems(items: any[]): void {\n if (!items.length && this.emptyRef) {\n this.vcRef.createEmbeddedView(this.emptyRef).rootNodes;\n this.isShowEmptyRef = true;\n\n return;\n }\n\n if (this.emptyRef && this.isShowEmptyRef) {\n this.vcRef.clear();\n this.isShowEmptyRef = false;\n }\n\n if (!this.differ && items) {\n this.differ = this.differs.find(items).create(this.trackByFn);\n }\n\n if (this.differ) {\n const changes = this.differ.diff(items);\n\n if (changes) {\n this.iterateOverAppliedOperations(changes);\n this.iterateOverAttachedViews(changes);\n }\n }\n }\n\n private sortItems(items: any[]) {\n if (this.orderBy) {\n items.sort((a, b) => (a[this.orderBy] > b[this.orderBy] ? 1 : a[this.orderBy] < b[this.orderBy] ? -1 : 0));\n } else {\n items.sort();\n }\n }\n\n ngOnChanges() {\n let items = clone(this.items) as any[];\n if (!Array.isArray(items)) return;\n\n const compareFn = this.compareFn;\n\n if (typeof this.filterBy !== 'undefined') {\n items = items.filter(item => compareFn(item[this.filterBy], this.filterVal));\n }\n\n switch (this.orderDir) {\n case 'ASC':\n this.sortItems(items);\n this.projectItems(items);\n break;\n\n case 'DESC':\n this.sortItems(items);\n items.reverse();\n this.projectItems(items);\n break;\n\n default:\n this.projectItems(items);\n }\n }\n}\n","export function noop() {\n const fn = function() {};\n return fn;\n}\n","export function uuid(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Self,\n} from '@angular/core';\nimport { FormControl, FormGroup, FormGroupDirective } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { takeUntilDestroy } from '../utils';\n\ntype Controls = { [key: string]: FormControl } | FormGroup[];\n\n@Directive({\n selector: 'form[ngSubmit][formGroup]',\n})\nexport class FormSubmitDirective implements OnInit, OnDestroy {\n @Input()\n notValidateOnSubmit: string | boolean;\n\n @Output()\n ngSubmit = new EventEmitter();\n\n executedNgSubmit: boolean = false;\n\n constructor(\n @Self() private formGroupDirective: FormGroupDirective,\n private host: ElementRef,\n private cdRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.formGroupDirective.ngSubmit.pipe(takeUntilDestroy(this)).subscribe(() => {\n this.markAsDirty();\n this.executedNgSubmit = true;\n });\n\n fromEvent(this.host.nativeElement as HTMLElement, 'keyup')\n .pipe(\n debounceTime(200),\n filter((key: KeyboardEvent) => key && key.key === 'Enter'),\n takeUntilDestroy(this),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n }\n\n this.executedNgSubmit = false;\n });\n\n fromEvent(this.host.nativeElement, 'submit')\n .pipe(\n takeUntilDestroy(this),\n filter(() => !this.notValidateOnSubmit && typeof this.notValidateOnSubmit !== 'string'),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.markAsDirty();\n }\n });\n }\n\n ngOnDestroy(): void {}\n\n markAsDirty() {\n const { form } = this.formGroupDirective;\n\n setDirty(form.controls as { [key: string]: FormControl });\n form.markAsDirty();\n\n this.cdRef.detectChanges();\n }\n}\n\nfunction setDirty(controls: Controls) {\n if (Array.isArray(controls)) {\n controls.forEach(group => {\n setDirty(group.controls as { [key: string]: FormControl });\n });\n return;\n }\n\n Object.keys(controls).forEach(key => {\n controls[key].markAsDirty();\n controls[key].updateValueAndValidity();\n });\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\n\n@Directive({\n selector: '[abpPermission]',\n})\nexport class PermissionDirective implements OnInit, OnDestroy {\n @Input('abpPermission') condition: string;\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {}\n\n ngOnInit() {\n if (this.condition) {\n this.store\n .select(ConfigState.getGrantedPolicy(this.condition))\n .pipe(takeUntilDestroy(this))\n .subscribe(isGranted => {\n if (!isGranted) {\n this.renderer.removeChild(\n (this.elRef.nativeElement as HTMLElement).parentElement,\n this.elRef.nativeElement,\n );\n }\n });\n }\n }\n\n ngOnDestroy(): void {}\n}\n","import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport snq from 'snq';\n\n@Directive({\n selector: '[abpVisibility]',\n})\nexport class VisibilityDirective implements AfterViewInit {\n @Input('abpVisibility')\n focusedElement: HTMLElement;\n\n @Input()\n mutationObserverEnabled: boolean = true;\n\n completed$ = new Subject();\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n let observer: MutationObserver;\n if (this.mutationObserverEnabled) {\n observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (!mutation.target) return;\n\n const htmlNodes = snq(\n () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) {\n this.removeFromDOM();\n this.disconnect();\n } else {\n setTimeout(() => {\n this.disconnect();\n }, 0);\n }\n });\n });\n\n observer.observe(this.focusedElement, {\n childList: true,\n });\n } else {\n setTimeout(() => {\n const htmlNodes = snq(\n () => Array.from(this.focusedElement.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) this.removeFromDOM();\n }, 0);\n }\n\n this.completed$.subscribe(() => observer.disconnect());\n }\n\n disconnect() {\n this.completed$.next();\n this.completed$.complete();\n }\n\n removeFromDOM() {\n this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement);\n }\n}\n","export const enum eLayoutType {\n account = 'account',\n application = 'application',\n empty = 'empty',\n setting = 'setting',\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { Navigate } from '@ngxs/router-plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n constructor(private oauthService: OAuthService, private store: Store, private router: Router) {}\n\n canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree {\n const hasValidAccessToken = this.oauthService.hasValidAccessToken();\n if (hasValidAccessToken) {\n return hasValidAccessToken;\n }\n\n return this.router.createUrlTree(['/account/login'], { state: { redirectUrl: state.url } });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { ConfigState } from '../states';\nimport { tap } from 'rxjs/operators';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionGuard implements CanActivate {\n constructor(private store: Store) {}\n\n canActivate({ data }: ActivatedRouteSnapshot): Observable {\n const resource = data.requiredPolicy as string;\n return this.store.select(ConfigState.getGrantedPolicy(resource)).pipe(\n tap(access => {\n if (!access) {\n this.store.dispatch(new RestOccurError({ status: 403 }));\n }\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Store } from '@ngxs/store';\nimport { SessionState } from '../states';\nimport { StartLoader, StopLoader } from '../actions/loader.actions';\nimport { finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n constructor(private oAuthService: OAuthService, private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler) {\n this.store.dispatch(new StartLoader(request));\n\n const headers = {} as any;\n\n const token = this.oAuthService.getAccessToken();\n if (!request.headers.has('Authorization') && token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const lang = this.store.selectSnapshot(SessionState.getLanguage);\n if (!request.headers.has('Accept-Language') && lang) {\n headers['Accept-Language'] = lang;\n }\n\n const tenant = this.store.selectSnapshot(SessionState.getTenant);\n if (!request.headers.has('__tenant') && tenant) {\n headers['__tenant'] = tenant.id;\n }\n\n return next\n .handle(\n request.clone({\n setHeaders: headers,\n }),\n )\n .pipe(finalize(() => this.store.dispatch(new StopLoader(request))));\n }\n}\n","export namespace ApplicationConfiguration {\n export interface Response {\n localization: Localization;\n auth: Auth;\n setting: Setting;\n currentUser: CurrentUser;\n features: Features;\n }\n\n export interface Localization {\n values: LocalizationValue;\n languages: Language[];\n }\n\n export interface LocalizationValue {\n [key: string]: { [key: string]: string };\n }\n\n export interface Language {\n cultureName: string;\n uiCultureName: string;\n displayName: string;\n flagIcon: string;\n }\n\n export interface Auth {\n policies: Policy;\n grantedPolicies: Policy;\n }\n\n export interface Policy {\n [key: string]: boolean;\n }\n\n export interface Setting {\n values: { [key: string]: 'Abp.Localization.DefaultLanguage' };\n }\n\n export interface CurrentUser {\n isAuthenticated: boolean;\n id: string;\n tenantId: string;\n userName: string;\n }\n\n export interface Features {\n values: Setting;\n }\n}\n","import { Config } from './config';\nimport { eLayoutType } from '../enums/common';\n\nexport namespace ABP {\n export interface Root {\n environment: Partial;\n requirements: Config.Requirements;\n }\n\n export type PagedResponse = {\n totalCount: number;\n } & PagedItemsResponse;\n\n export interface PagedItemsResponse {\n items: T[];\n }\n\n export interface PageQueryParams {\n filter?: string;\n sorting?: string;\n skipCount?: number;\n maxResultCount?: number;\n }\n\n export interface Route {\n children?: Route[];\n invisible?: boolean;\n layout?: eLayoutType;\n name: string;\n order?: number;\n parentName?: string;\n path: string;\n requiredPolicy?: string;\n iconClass?: string;\n }\n\n export interface FullRoute extends Route {\n url?: string;\n wrapper?: boolean;\n }\n\n export interface BasicItem {\n id: string;\n name: string;\n }\n}\n","import { AuthConfig } from 'angular-oauth2-oidc';\nimport { Type } from '@angular/core';\nimport { ApplicationConfiguration } from './application-configuration';\nimport { ABP } from './common';\n\nexport namespace Config {\n export type State = ApplicationConfiguration.Response &\n ABP.Root & { environment: Environment } & {\n routes: ABP.FullRoute[];\n flattedRoutes: ABP.FullRoute[];\n };\n\n export interface Environment {\n application: Application;\n production: boolean;\n oAuthConfig: AuthConfig;\n apis: Apis;\n localization: { defaultResourceName: string };\n }\n\n export interface Application {\n name: string;\n logoUrl?: string;\n }\n\n export interface Apis {\n [key: string]: { [key: string]: string };\n }\n\n export interface Requirements {\n layouts: Type[];\n }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\n\nexport namespace Rest {\n export interface Config {\n skipHandleError?: boolean;\n observe?: Observe;\n }\n\n export const enum Observe {\n Body = 'body',\n Events = 'events',\n Response = 'response',\n }\n\n export const enum ResponseType {\n ArrayBuffer = 'arraybuffer',\n Blob = 'blob',\n JSON = 'json',\n Text = 'text',\n }\n\n export interface Request {\n body?: T;\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n method: string;\n params?:\n | HttpParams\n | {\n [param: string]: any;\n };\n reportProgress?: boolean;\n responseType?: ResponseType;\n url: string;\n withCredentials?: boolean;\n }\n}\n","import { ABP } from '../models';\n\nexport namespace Session {\n export interface State {\n language: string;\n tenant: ABP.BasicItem;\n }\n}\n","export namespace Profile {\n export interface State {\n profile: Response;\n }\n\n export interface Response {\n userName: string;\n email: string;\n name: string;\n surname: string;\n phoneNumber: string;\n }\n\n export interface ChangePasswordRequest {\n currentPassword: string;\n newPassword: string;\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Router, Routes } from '@angular/router';\nimport { actionMatcher, InitState, NgxsNextPluginFn, NgxsPlugin, setValue, UpdateState } from '@ngxs/store';\nimport snq from 'snq';\nimport { ABP } from '../../models';\nimport { organizeRoutes } from '../../utils/route-utils';\nimport clone from 'just-clone';\n\nexport const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS');\n\n@Injectable()\nexport class ConfigPlugin implements NgxsPlugin {\n private initialized: boolean = false;\n\n constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const matches = actionMatcher(event);\n const isInitAction = matches(InitState) || matches(UpdateState);\n\n // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []);\n if (isInitAction && !this.initialized) {\n let { routes, wrappers } = transformRoutes(this.router.config);\n routes = organizeRoutes(routes, wrappers);\n const flattedRoutes = flatRoutes(clone(routes));\n state = setValue(state, 'ConfigState', {\n ...(state.ConfigState && { ...state.ConfigState }),\n ...this.options,\n routes,\n flattedRoutes,\n });\n\n this.initialized = true;\n }\n\n return next(state, event);\n }\n}\n\nfunction transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any {\n const abpRoutes: ABP.FullRoute[] = routes\n .filter(route => {\n return snq(() => route.data.routes.routes.find(r => r.path === route.path), false);\n })\n .reduce((acc, val) => [...acc, ...val.data.routes.routes], []);\n\n wrappers = abpRoutes.filter(ar => ar.wrapper);\n const transformed = [] as ABP.FullRoute[];\n routes\n .filter(route => (route.data || {}).routes && (route.component || route.loadChildren))\n .forEach(route => {\n const abpPackage = abpRoutes.find(\n abp => abp.path.toLowerCase() === route.path.toLowerCase() && snq(() => route.data.routes.routes.length, false),\n );\n const { length } = transformed;\n\n if (abpPackage) {\n transformed.push(abpPackage);\n }\n\n if (transformed.length === length) {\n transformed.push({\n ...route.data.routes,\n path: route.path,\n name: snq(() => route.data.routes.name, route.path),\n children: route.data.routes.children || [],\n } as ABP.FullRoute);\n }\n });\n\n return { routes: setUrls(transformed), wrappers };\n}\n\nfunction setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] {\n if (parentUrl) {\n // this if block using for only recursive call\n\n return routes.map(route => ({\n ...route,\n url: `${parentUrl}/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `${parentUrl}/${route.path}`),\n }),\n }));\n }\n\n return routes.map(route => ({\n ...route,\n url: `/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `/${route.path}`),\n }),\n }));\n}\n\nfunction flatRoutes(routes: ABP.FullRoute[]): ABP.FullRoute[] {\n const flat = (r: ABP.FullRoute[]) => {\n return r.reduce((acc, val) => {\n let value: ABP.FullRoute[] = [val];\n if (val.children) {\n value = [val, ...flat(val.children)];\n }\n\n return [...acc, ...value];\n }, []);\n };\n\n return flat(routes);\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n constructor(private store: Store) {}\n\n getAll() {\n return this.store.selectSnapshot(ConfigState.getAll);\n }\n\n getOne(key: string) {\n return this.store.selectSnapshot(ConfigState.getOne(key));\n }\n\n getDeep(keys: string[] | string) {\n return this.store.selectSnapshot(ConfigState.getDeep(keys));\n }\n\n getSetting(key: string) {\n return this.store.selectSnapshot(ConfigState.getSetting(key));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { uuid } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyLoadService {\n loadedLibraries: { [url: string]: ReplaySubject } = {};\n\n load(\n url: string,\n type: 'script' | 'style',\n content: string = '',\n targetQuery: string = 'body',\n position: InsertPosition = 'afterend',\n ): Observable {\n if (!url && !content) return;\n const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid();\n\n if (this.loadedLibraries[key]) {\n return this.loadedLibraries[key].asObservable();\n }\n\n this.loadedLibraries[key] = new ReplaySubject();\n\n let library;\n if (type === 'script') {\n library = document.createElement('script');\n library.type = 'text/javascript';\n if (url) {\n (library as HTMLScriptElement).src = url;\n }\n\n (library as HTMLScriptElement).text = content;\n } else if (url) {\n library = document.createElement('link');\n library.type = 'text/css';\n (library as HTMLLinkElement).rel = 'stylesheet';\n\n if (url) {\n (library as HTMLLinkElement).href = url;\n }\n } else {\n library = document.createElement('style');\n (library as HTMLStyleElement).textContent = content;\n }\n\n library.onload = () => {\n this.loadedLibraries[key].next();\n this.loadedLibraries[key].complete();\n };\n\n document.querySelector(targetQuery).insertAdjacentElement(position, library);\n\n return this.loadedLibraries[key].asObservable();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Config } from '../models';\n\nexport function environmentFactory(environment: Config.Environment) {\n return {\n ...environment,\n };\n}\n\nexport function configFactory(config: Config.Requirements) {\n return {\n ...config,\n };\n}\n\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\n\nexport const CONFIG = new InjectionToken('CONFIG');\n","import { Directive, Output, Renderer2, ElementRef, OnInit, EventEmitter, Input } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[input.debounce]',\n})\nexport class InputEventDebounceDirective implements OnInit {\n @Input() debounce: number = 300;\n\n @Output('input.debounce') debounceEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'input')\n .pipe(\n debounceTime(this.debounce),\n takeUntilDestroy(this),\n )\n .subscribe((event: Event) => {\n this.debounceEvent.emit(event);\n });\n }\n}\n","import { Directive, ElementRef, EventEmitter, OnInit, Output, Renderer2 } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[click.stop]',\n})\nexport class ClickEventStopPropagationDirective implements OnInit {\n @Output('click.stop') stopPropEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'click')\n .pipe(takeUntilDestroy(this))\n .subscribe((event: MouseEvent) => {\n event.stopPropagation();\n this.stopPropEvent.emit(event);\n });\n }\n}\n","import { Pipe, PipeTransform, OnDestroy } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Pipe({\n name: 'abpLocalization',\n pure: false, // required to update the value\n})\nexport class LocalizationPipe implements PipeTransform, OnDestroy {\n initialValue: string = '';\n\n value: string;\n\n destroy$ = new Subject();\n\n constructor(private store: Store) {}\n\n transform(value: string = '', ...interpolateParams: string[]): string {\n if (this.initialValue !== value) {\n this.initialValue = value;\n this.destroy$.next();\n\n this.store\n .select(\n ConfigState.getCopy(\n value,\n ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []),\n ),\n )\n .pipe(\n takeUntil(this.destroy$),\n takeUntilDestroy(this),\n distinctUntilChanged(),\n )\n .subscribe(copy => (this.value = copy));\n }\n\n return this.value;\n }\n\n ngOnDestroy() {}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'abpSort',\n pure: false\n})\nexport class SortPipe implements PipeTransform {\n transform(value: any[], sortOrder: string): any {\n sortOrder = sortOrder.toLowerCase();\n if(sortOrder === \"desc\") return value.reverse();\n else return value;\n }\n}","import { LOCALE_ID, Provider } from '@angular/core';\nimport localesMapping from '../constants/different-locales';\nimport { LocalizationService } from '../services/localization.service';\n\nexport class LocaleId extends String {\n constructor(private localizationService: LocalizationService) {\n super();\n }\n\n toString(): string {\n const { currentLang } = this.localizationService;\n return localesMapping[currentLang] || currentLang;\n }\n\n valueOf(): string {\n return this.toString();\n }\n}\n\nexport const LocaleProvider: Provider = {\n provide: LOCALE_ID,\n useClass: LocaleId,\n deps: [LocalizationService],\n};\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxsRouterPluginModule } from '@ngxs/router-plugin';\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\nimport { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\nimport { RouterOutletComponent } from './components/router-outlet.component';\nimport { AutofocusDirective } from './directives/autofocus.directive';\nimport { InputEventDebounceDirective } from './directives/debounce.directive';\nimport { EllipsisDirective } from './directives/ellipsis.directive';\nimport { FormSubmitDirective } from './directives/form-submit.directive';\nimport { PermissionDirective } from './directives/permission.directive';\nimport { ClickEventStopPropagationDirective } from './directives/stop-propagation.directive';\nimport { VisibilityDirective } from './directives/visibility.directive';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ABP } from './models/common';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { SortPipe } from './pipes/sort.pipe';\nimport { LocaleProvider } from './providers/locale.provider';\nimport { ConfigState } from './states/config.state';\nimport { ProfileState } from './states/profile.state';\nimport { SessionState } from './states/session.state';\nimport { getInitialData, localeInitializer } from './utils/initial-utils';\nimport { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config/config.plugin';\nimport { ForDirective } from './directives/for.directive';\nimport { AbstractNgModelComponent } from './abstracts/ng-model.component';\n\n@NgModule({\n imports: [\n NgxsModule.forFeature([ProfileState, SessionState, ConfigState]),\n NgxsStoragePluginModule.forRoot({ key: 'SessionState' }),\n NgxsRouterPluginModule.forRoot(),\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n ],\n declarations: [\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n ForDirective,\n FormSubmitDirective,\n LocalizationPipe,\n SortPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n ClickEventStopPropagationDirective,\n AbstractNgModelComponent,\n ],\n exports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n ForDirective,\n FormSubmitDirective,\n LocalizationPipe,\n SortPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n LocalizationPipe,\n ClickEventStopPropagationDirective,\n AbstractNgModelComponent,\n ],\n providers: [LocalizationPipe],\n entryComponents: [RouterOutletComponent, DynamicLayoutComponent],\n})\nexport class CoreModule {\n static forRoot(options = {} as ABP.Root): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [\n LocaleProvider,\n {\n provide: NGXS_PLUGINS,\n useClass: ConfigPlugin,\n multi: true,\n },\n {\n provide: NGXS_CONFIG_PLUGIN_OPTIONS,\n useValue: options,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: localeInitializer,\n },\n ],\n };\n }\n}\n"],"names":["tslib_1.__decorate","differentLocales","noop","takeUntilDestroy"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/core/fesm5/abp-ng.core.js b/npm/ng-packs/dist/core/fesm5/abp-ng.core.js index ad15db7bb7..65a3c0a520 100644 --- a/npm/ng-packs/dist/core/fesm5/abp-ng.core.js +++ b/npm/ng-packs/dist/core/fesm5/abp-ng.core.js @@ -1,18 +1,149 @@ -import { __rest, __assign, __decorate, __metadata, __awaiter, __generator, __spread, __extends } from 'tslib'; -import { Injectable, ɵɵdefineInjectable, ɵɵinject, Optional, SkipSelf, Component, Directive, ElementRef, Input, ChangeDetectorRef, HostBinding, EventEmitter, Self, Output, Renderer2, InjectionToken, Inject, Pipe, LOCALE_ID, APP_INITIALIZER, Injector, NgModule } from '@angular/core'; -import { Router, NavigationEnd, RouterModule } from '@angular/router'; -import { Store, Action, Selector, State, Actions, createSelector, Select, actionMatcher, InitState, UpdateState, setValue, NGXS_PLUGINS, NgxsModule } from '@ngxs/store'; -import { throwError, noop as noop$1, combineLatest, from, of, Subject, Observable, fromEvent, ReplaySubject } from 'rxjs'; -import { HttpClient, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; -import { take, catchError, tap, switchMap, takeUntil, debounceTime, filter, finalize, distinctUntilChanged } from 'rxjs/operators'; +import { ChangeDetectorRef, Component, Injector, Input, Injectable, ɵɵdefineInjectable, ɵɵinject, NgZone, Optional, SkipSelf, Directive, ElementRef, HostBinding, TemplateRef, ViewContainerRef, IterableDiffers, EventEmitter, Self, Output, Renderer2, InjectionToken, Inject, Pipe, LOCALE_ID, APP_INITIALIZER, NgModule } from '@angular/core'; +import { __decorate, __metadata, __awaiter, __generator, __spread, __rest, __assign, __extends } from 'tslib'; +import { Router, NavigationEnd, ActivatedRoute, RouterModule } from '@angular/router'; +import { Action, Selector, State, Store, Actions, createSelector, Select, actionMatcher, InitState, UpdateState, setValue, NGXS_PLUGINS, NgxsModule } from '@ngxs/store'; +import { noop as noop$1, combineLatest, from, throwError, of, Subject, Observable, fromEvent, ReplaySubject } from 'rxjs'; import snq from 'snq'; +import { HttpClient, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; +import { tap, take, catchError, switchMap, takeUntil, debounceTime, filter, finalize, distinctUntilChanged } from 'rxjs/operators'; import { registerLocaleData, CommonModule } from '@angular/common'; +import compare from 'just-compare'; +import clone from 'just-clone'; import { FormGroupDirective, FormsModule, ReactiveFormsModule } from '@angular/forms'; import { OAuthService } from 'angular-oauth2-oidc'; -import { Navigate, NgxsRouterPluginModule } from '@ngxs/router-plugin'; +import { NgxsRouterPluginModule } from '@ngxs/router-plugin'; import { NgxsStoragePluginModule } from '@ngxs/storage-plugin'; import { takeUntilDestroy as takeUntilDestroy$1 } from '@ngx-validate/core'; +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @template T + */ +var AbstractNgModelComponent = /** @class */ (function () { + function AbstractNgModelComponent(injector) { + this.injector = injector; + this.cdRef = injector.get((/** @type {?} */ (ChangeDetectorRef))); + } + Object.defineProperty(AbstractNgModelComponent.prototype, "value", { + get: /** + * @return {?} + */ + function () { + return this._value; + }, + set: /** + * @param {?} value + * @return {?} + */ + function (value) { + this._value = value; + this.notifyValueChange(); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + AbstractNgModelComponent.prototype.notifyValueChange = /** + * @return {?} + */ + function () { + if (this.onChange) { + this.onChange(this.value); + } + }; + /** + * @param {?} value + * @return {?} + */ + AbstractNgModelComponent.prototype.writeValue = /** + * @param {?} value + * @return {?} + */ + function (value) { + var _this = this; + this._value = value; + setTimeout((/** + * @return {?} + */ + function () { return _this.cdRef.detectChanges(); }), 0); + }; + /** + * @param {?} fn + * @return {?} + */ + AbstractNgModelComponent.prototype.registerOnChange = /** + * @param {?} fn + * @return {?} + */ + function (fn) { + this.onChange = fn; + }; + /** + * @param {?} fn + * @return {?} + */ + AbstractNgModelComponent.prototype.registerOnTouched = /** + * @param {?} fn + * @return {?} + */ + function (fn) { + this.onTouched = fn; + }; + /** + * @param {?} isDisabled + * @return {?} + */ + AbstractNgModelComponent.prototype.setDisabledState = /** + * @param {?} isDisabled + * @return {?} + */ + function (isDisabled) { + this.disabled = isDisabled; + }; + AbstractNgModelComponent.decorators = [ + { type: Component, args: [{ template: '' }] } + ]; + /** @nocollapse */ + AbstractNgModelComponent.ctorParameters = function () { return [ + { type: Injector } + ]; }; + AbstractNgModelComponent.propDecorators = { + disabled: [{ type: Input }], + value: [{ type: Input }] + }; + return AbstractNgModelComponent; +}()); +if (false) { + /** @type {?} */ + AbstractNgModelComponent.prototype.disabled; + /** @type {?} */ + AbstractNgModelComponent.prototype.onChange; + /** @type {?} */ + AbstractNgModelComponent.prototype.onTouched; + /** + * @type {?} + * @protected + */ + AbstractNgModelComponent.prototype._value; + /** + * @type {?} + * @protected + */ + AbstractNgModelComponent.prototype.cdRef; + /** @type {?} */ + AbstractNgModelComponent.prototype.injector; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -170,86 +301,6 @@ if (false) { * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -var RestService = /** @class */ (function () { - function RestService(http, store) { - this.http = http; - this.store = store; - } - /** - * @param {?} err - * @return {?} - */ - RestService.prototype.handleError = /** - * @param {?} err - * @return {?} - */ - function (err) { - this.store.dispatch(new RestOccurError(err)); - console.error(err); - return throwError(err); - }; - /** - * @template T, R - * @param {?} request - * @param {?=} config - * @param {?=} api - * @return {?} - */ - RestService.prototype.request = /** - * @template T, R - * @param {?} request - * @param {?=} config - * @param {?=} api - * @return {?} - */ - function (request, config, api) { - var _this = this; - if (config === void 0) { config = {}; } - var _a = config.observe, observe = _a === void 0 ? "body" /* Body */ : _a, skipHandleError = config.skipHandleError; - /** @type {?} */ - var url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url; - var method = request.method, options = __rest(request, ["method"]); - return this.http.request(method, url, (/** @type {?} */ (__assign({ observe: observe }, options)))).pipe(observe === "body" /* Body */ ? take(1) : null, catchError((/** - * @param {?} err - * @return {?} - */ - function (err) { - if (skipHandleError) { - return throwError(err); - } - return _this.handleError(err); - }))); - }; - RestService.decorators = [ - { type: Injectable, args: [{ - providedIn: 'root', - },] } - ]; - /** @nocollapse */ - RestService.ctorParameters = function () { return [ - { type: HttpClient }, - { type: Store } - ]; }; - /** @nocollapse */ RestService.ngInjectableDef = ɵɵdefineInjectable({ factory: function RestService_Factory() { return new RestService(ɵɵinject(HttpClient), ɵɵinject(Store)); }, token: RestService, providedIn: "root" }); - return RestService; -}()); -if (false) { - /** - * @type {?} - * @private - */ - RestService.prototype.http; - /** - * @type {?} - * @private - */ - RestService.prototype.store; -} - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -447,48 +498,6 @@ if (false) { ProfileState.prototype.profileService; } -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -var ApplicationConfigurationService = /** @class */ (function () { - function ApplicationConfigurationService(rest) { - this.rest = rest; - } - /** - * @return {?} - */ - ApplicationConfigurationService.prototype.getConfiguration = /** - * @return {?} - */ - function () { - /** @type {?} */ - var request = { - method: 'GET', - url: '/api/abp/application-configuration', - }; - return this.rest.request(request); - }; - ApplicationConfigurationService.decorators = [ - { type: Injectable, args: [{ - providedIn: 'root', - },] } - ]; - /** @nocollapse */ - ApplicationConfigurationService.ctorParameters = function () { return [ - { type: RestService } - ]; }; - /** @nocollapse */ ApplicationConfigurationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ApplicationConfigurationService_Factory() { return new ApplicationConfigurationService(ɵɵinject(RestService)); }, token: ApplicationConfigurationService, providedIn: "root" }); - return ApplicationConfigurationService; -}()); -if (false) { - /** - * @type {?} - * @private - */ - ApplicationConfigurationService.prototype.rest; -} - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -595,9 +604,10 @@ function registerLocale(locale) { * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var LocalizationService = /** @class */ (function () { - function LocalizationService(store, router, actions, otherInstance) { + function LocalizationService(store, router, ngZone, actions, otherInstance) { this.store = store; this.router = router; + this.ngZone = ngZone; this.actions = actions; if (otherInstance) throw new Error('LocaleService should have only one instance.'); @@ -644,17 +654,22 @@ var LocalizationService = /** @class */ (function () { return registerLocale(locale).then((/** * @return {?} */ - function () { return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.router.navigateByUrl(this.router.url).catch(noop$1)]; - case 1: - _a.sent(); - this.setRouteReuse(shouldReuseRoute); - return [2 /*return*/]; - } - }); - }); })); + function () { + _this.ngZone.run((/** + * @return {?} + */ + function () { return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, this.router.navigateByUrl(this.router.url).catch(noop$1)]; + case 1: + _a.sent(); + this.setRouteReuse(shouldReuseRoute); + return [2 /*return*/]; + } + }); + }); })); + })); }; /** * @param {?} keys @@ -697,10 +712,11 @@ var LocalizationService = /** @class */ (function () { LocalizationService.ctorParameters = function () { return [ { type: Store }, { type: Router }, + { type: NgZone }, { type: Actions }, { type: LocalizationService, decorators: [{ type: Optional }, { type: SkipSelf }] } ]; }; - /** @nocollapse */ LocalizationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(ɵɵinject(Store), ɵɵinject(Router), ɵɵinject(Actions), ɵɵinject(LocalizationService, 12)); }, token: LocalizationService, providedIn: "root" }); + /** @nocollapse */ LocalizationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(ɵɵinject(Store), ɵɵinject(Router), ɵɵinject(NgZone), ɵɵinject(Actions), ɵɵinject(LocalizationService, 12)); }, token: LocalizationService, providedIn: "root" }); return LocalizationService; }()); if (false) { @@ -714,6 +730,11 @@ if (false) { * @private */ LocalizationService.prototype.router; + /** + * @type {?} + * @private + */ + LocalizationService.prototype.ngZone; /** * @type {?} * @private @@ -772,61 +793,188 @@ var SessionState = /** @class */ (function () { return combineLatest([dispatch(new GetAppConfiguration()), from(this.localizationService.registerLocale(payload))]); }; /** - * @param {?} __0 - * @param {?} __1 + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + SessionState.prototype.setTenantId = /** + * @param {?} __0 + * @param {?} __1 + * @return {?} + */ + function (_a, _b) { + var patchState = _a.patchState; + var payload = _b.payload; + patchState({ + tenant: payload, + }); + }; + __decorate([ + Action(SetLanguage), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, SetLanguage]), + __metadata("design:returntype", void 0) + ], SessionState.prototype, "setLanguage", null); + __decorate([ + Action(SetTenant), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object, SetTenant]), + __metadata("design:returntype", void 0) + ], SessionState.prototype, "setTenantId", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", String) + ], SessionState, "getLanguage", null); + __decorate([ + Selector(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", Object) + ], SessionState, "getTenant", null); + SessionState = __decorate([ + State({ + name: 'SessionState', + defaults: (/** @type {?} */ ({})), + }), + __metadata("design:paramtypes", [LocalizationService]) + ], SessionState); + return SessionState; +}()); +if (false) { + /** + * @type {?} + * @private + */ + SessionState.prototype.localizationService; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var RestService = /** @class */ (function () { + function RestService(http, store) { + this.http = http; + this.store = store; + } + /** + * @param {?} err + * @return {?} + */ + RestService.prototype.handleError = /** + * @param {?} err + * @return {?} + */ + function (err) { + this.store.dispatch(new RestOccurError(err)); + console.error(err); + return throwError(err); + }; + /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + RestService.prototype.request = /** + * @template T, R + * @param {?} request + * @param {?=} config + * @param {?=} api + * @return {?} + */ + function (request, config, api) { + var _this = this; + if (config === void 0) { config = {}; } + var _a = config.observe, observe = _a === void 0 ? "body" /* Body */ : _a, skipHandleError = config.skipHandleError; + /** @type {?} */ + var url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url; + var method = request.method, options = __rest(request, ["method"]); + return this.http.request(method, url, (/** @type {?} */ (__assign({ observe: observe }, options)))).pipe(observe === "body" /* Body */ ? take(1) : null, catchError((/** + * @param {?} err + * @return {?} + */ + function (err) { + if (skipHandleError) { + return throwError(err); + } + return _this.handleError(err); + }))); + }; + RestService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + RestService.ctorParameters = function () { return [ + { type: HttpClient }, + { type: Store } + ]; }; + /** @nocollapse */ RestService.ngInjectableDef = ɵɵdefineInjectable({ factory: function RestService_Factory() { return new RestService(ɵɵinject(HttpClient), ɵɵinject(Store)); }, token: RestService, providedIn: "root" }); + return RestService; +}()); +if (false) { + /** + * @type {?} + * @private + */ + RestService.prototype.http; + /** + * @type {?} + * @private + */ + RestService.prototype.store; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ApplicationConfigurationService = /** @class */ (function () { + function ApplicationConfigurationService(rest) { + this.rest = rest; + } + /** * @return {?} */ - SessionState.prototype.setTenantId = /** - * @param {?} __0 - * @param {?} __1 + ApplicationConfigurationService.prototype.getConfiguration = /** * @return {?} */ - function (_a, _b) { - var patchState = _a.patchState; - var payload = _b.payload; - patchState({ - tenant: payload, - }); + function () { + /** @type {?} */ + var request = { + method: 'GET', + url: '/api/abp/application-configuration', + }; + return this.rest.request(request); }; - __decorate([ - Action(SetLanguage), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Object, SetLanguage]), - __metadata("design:returntype", void 0) - ], SessionState.prototype, "setLanguage", null); - __decorate([ - Action(SetTenant), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Object, SetTenant]), - __metadata("design:returntype", void 0) - ], SessionState.prototype, "setTenantId", null); - __decorate([ - Selector(), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Object]), - __metadata("design:returntype", String) - ], SessionState, "getLanguage", null); - __decorate([ - Selector(), - __metadata("design:type", Function), - __metadata("design:paramtypes", [Object]), - __metadata("design:returntype", Object) - ], SessionState, "getTenant", null); - SessionState = __decorate([ - State({ - name: 'SessionState', - defaults: (/** @type {?} */ ({})), - }), - __metadata("design:paramtypes", [LocalizationService]) - ], SessionState); - return SessionState; + ApplicationConfigurationService.decorators = [ + { type: Injectable, args: [{ + providedIn: 'root', + },] } + ]; + /** @nocollapse */ + ApplicationConfigurationService.ctorParameters = function () { return [ + { type: RestService } + ]; }; + /** @nocollapse */ ApplicationConfigurationService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ApplicationConfigurationService_Factory() { return new ApplicationConfigurationService(ɵɵinject(RestService)); }, token: ApplicationConfigurationService, providedIn: "root" }); + return ApplicationConfigurationService; }()); if (false) { /** * @type {?} * @private */ - SessionState.prototype.localizationService; + ApplicationConfigurationService.prototype.rest; } /** @@ -953,7 +1101,7 @@ var ConfigState = /** @class */ (function () { * @return {?} */ function (state) { - return state.environment.application || {}; + return state.environment.application || ((/** @type {?} */ ({}))); }; /** * @param {?} key @@ -1026,7 +1174,19 @@ var ConfigState = /** @class */ (function () { * @return {?} */ function (state) { - return findRoute(state.routes, path, name); + var flattedRoutes = state.flattedRoutes; + return ((/** @type {?} */ (flattedRoutes))).find((/** + * @param {?} route + * @return {?} + */ + function (route) { + if (path && route.path === path) { + return route; + } + else if (name && route.name === name) { + return route; + } + })); })); return selector; }; @@ -1072,55 +1232,26 @@ var ConfigState = /** @class */ (function () { return selector; }; /** - * @param {?=} condition + * @param {?} key * @return {?} */ ConfigState.getGrantedPolicy = /** - * @param {?=} condition + * @param {?} key * @return {?} */ - function (condition) { - if (condition === void 0) { condition = ''; } - /** @type {?} */ - var keys = condition - .replace(/\(|\)|\!|\s/g, '') - .split(/\|\||&&/) - .filter((/** - * @param {?} key - * @return {?} - */ - function (key) { return key; })); + function (key) { /** @type {?} */ var selector = createSelector([ConfigState_1], (/** * @param {?} state * @return {?} */ function (state) { - if (!keys.length) + if (!key) return true; - /** @type {?} */ - var getPolicy = (/** - * @param {?} key - * @return {?} - */ - function (key) { return snq((/** + return snq((/** * @return {?} */ - function () { return state.auth.grantedPolicies[key]; }), false); }); - if (keys.length > 1) { - keys.forEach((/** - * @param {?} key - * @return {?} - */ - function (key) { - /** @type {?} */ - var value = getPolicy(key); - condition = condition.replace(key, value); - })); - // tslint:disable-next-line: no-eval - return eval("!!" + condition); - } - return getPolicy(condition); + function () { return state.auth.grantedPolicies[key]; }), false); })); return selector; }; @@ -1162,7 +1293,7 @@ var ConfigState = /** @class */ (function () { function () { return defaultResourceName; })); } /** @type {?} */ - var copy = keys.reduce((/** + var copy = ((/** @type {?} */ (keys))).reduce((/** * @param {?} acc * @param {?} val * @return {?} @@ -1270,7 +1401,7 @@ var ConfigState = /** @class */ (function () { Selector(), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), - __metadata("design:returntype", void 0) + __metadata("design:returntype", Object) ], ConfigState, "getApplicationInfo", null); ConfigState = ConfigState_1 = __decorate([ State({ @@ -1331,71 +1462,6 @@ function patchRouteDeep(routes, name, newValue, parentUrl) { } return organizeRoutes(routes); } -/** - * @param {?} routes - * @param {?=} path - * @param {?=} name - * @return {?} - */ -function findRoute(routes, path, name) { - /** @type {?} */ - var foundRoute; - routes.forEach((/** - * @param {?} route - * @return {?} - */ - function (route) { - if (foundRoute) - return; - if (path && route.path === path) { - foundRoute = route; - } - else if (name && route.name === name) { - foundRoute = route; - return; - } - else if (route.children && route.children.length) { - foundRoute = findRoute(route.children, path, name); - return; - } - })); - return foundRoute; -} - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -/** - * @return {?} - */ -function noop() { - /** @type {?} */ - var fn = (/** - * @return {?} - */ - function () { }); - return fn; -} - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -/** - * @param {?=} a - * @return {?} - */ -function uuid(a) { - return a - ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) - : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); -} /** * @fileoverview added by tsickle @@ -1442,20 +1508,33 @@ function (componentInstance, destroyMethodName) { }); }); -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var DynamicLayoutComponent = /** @class */ (function () { - function DynamicLayoutComponent(router, store) { + function DynamicLayoutComponent(router, route, store) { var _this = this; this.router = router; + this.route = route; this.store = store; + var _a = this.store.selectSnapshot(ConfigState.getAll), layouts = _a.requirements.layouts, routes = _a.routes; + if ((this.route.snapshot.data || {}).layout) { + this.layout = layouts + .filter((/** + * @param {?} l + * @return {?} + */ + function (l) { return !!l; })) + .find((/** + * @param {?} l + * @return {?} + */ + function (l) { return snq((/** + * @return {?} + */ + function () { return l.type.toLowerCase().indexOf(_this.route.snapshot.data.layout); }), -1) > -1; })); + } this.router.events.pipe(takeUntilDestroy(this)).subscribe((/** * @param {?} event * @return {?} @@ -1463,14 +1542,15 @@ var DynamicLayoutComponent = /** @class */ (function () { function (event) { if (event instanceof NavigationEnd) { var segments = _this.router.parseUrl(event.url).root.children.primary.segments; - var _a = _this.store.selectSnapshot(ConfigState.getAll), layouts = _a.requirements.layouts, routes = _a.routes; /** @type {?} */ - var layout_1 = findLayout(segments, routes); - _this.layout = layouts.filter((/** + var layout_1 = (_this.route.snapshot.data || {}).layout || findLayout(segments, routes); + _this.layout = layouts + .filter((/** * @param {?} l * @return {?} */ - function (l) { return !!l; })).find((/** + function (l) { return !!l; })) + .find((/** * @param {?} l * @return {?} */ @@ -1497,6 +1577,7 @@ var DynamicLayoutComponent = /** @class */ (function () { /** @nocollapse */ DynamicLayoutComponent.ctorParameters = function () { return [ { type: Router }, + { type: ActivatedRoute }, { type: Store } ]; }; __decorate([ @@ -1515,6 +1596,11 @@ if (false) { * @private */ DynamicLayoutComponent.prototype.router; + /** + * @type {?} + * @private + */ + DynamicLayoutComponent.prototype.route; /** * @type {?} * @private @@ -1637,101 +1723,430 @@ if (false) { * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -var EllipsisDirective = /** @class */ (function () { - function EllipsisDirective(cdRef, elRef) { - this.cdRef = cdRef; - this.elRef = elRef; - this.enabled = true; +var EllipsisDirective = /** @class */ (function () { + function EllipsisDirective(cdRef, elRef) { + this.cdRef = cdRef; + this.elRef = elRef; + this.enabled = true; + } + Object.defineProperty(EllipsisDirective.prototype, "inlineClass", { + get: /** + * @return {?} + */ + function () { + return this.enabled && this.width; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(EllipsisDirective.prototype, "class", { + get: /** + * @return {?} + */ + function () { + return this.enabled && !this.width; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(EllipsisDirective.prototype, "maxWidth", { + get: /** + * @return {?} + */ + function () { + return this.enabled && this.width ? this.width || '170px' : undefined; + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + EllipsisDirective.prototype.ngAfterContentInit = /** + * @return {?} + */ + function () { + var _this = this; + setTimeout((/** + * @return {?} + */ + function () { + /** @type {?} */ + var title = _this.title; + _this.title = title || ((/** @type {?} */ (_this.elRef.nativeElement))).innerText; + if (_this.title !== title) { + _this.cdRef.detectChanges(); + } + }), 0); + }; + EllipsisDirective.decorators = [ + { type: Directive, args: [{ + selector: '[abpEllipsis]', + },] } + ]; + /** @nocollapse */ + EllipsisDirective.ctorParameters = function () { return [ + { type: ChangeDetectorRef }, + { type: ElementRef } + ]; }; + EllipsisDirective.propDecorators = { + width: [{ type: Input, args: ['abpEllipsis',] }], + title: [{ type: HostBinding, args: ['title',] }, { type: Input }], + enabled: [{ type: Input, args: ['abpEllipsisEnabled',] }], + inlineClass: [{ type: HostBinding, args: ['class.abp-ellipsis-inline',] }], + class: [{ type: HostBinding, args: ['class.abp-ellipsis',] }], + maxWidth: [{ type: HostBinding, args: ['style.max-width',] }] + }; + return EllipsisDirective; +}()); +if (false) { + /** @type {?} */ + EllipsisDirective.prototype.width; + /** @type {?} */ + EllipsisDirective.prototype.title; + /** @type {?} */ + EllipsisDirective.prototype.enabled; + /** + * @type {?} + * @private + */ + EllipsisDirective.prototype.cdRef; + /** + * @type {?} + * @private + */ + EllipsisDirective.prototype.elRef; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var AbpForContext = /** @class */ (function () { + function AbpForContext($implicit, index, count, list) { + this.$implicit = $implicit; + this.index = index; + this.count = count; + this.list = list; } - Object.defineProperty(EllipsisDirective.prototype, "inlineClass", { + return AbpForContext; +}()); +if (false) { + /** @type {?} */ + AbpForContext.prototype.$implicit; + /** @type {?} */ + AbpForContext.prototype.index; + /** @type {?} */ + AbpForContext.prototype.count; + /** @type {?} */ + AbpForContext.prototype.list; +} +var RecordView = /** @class */ (function () { + function RecordView(record, view) { + this.record = record; + this.view = view; + } + return RecordView; +}()); +if (false) { + /** @type {?} */ + RecordView.prototype.record; + /** @type {?} */ + RecordView.prototype.view; +} +var ForDirective = /** @class */ (function () { + function ForDirective(tempRef, vcRef, differs) { + this.tempRef = tempRef; + this.vcRef = vcRef; + this.differs = differs; + } + Object.defineProperty(ForDirective.prototype, "compareFn", { get: /** * @return {?} */ function () { - return this.enabled && this.width; + return this.compareBy || compare; }, enumerable: true, configurable: true }); - Object.defineProperty(EllipsisDirective.prototype, "class", { + Object.defineProperty(ForDirective.prototype, "trackByFn", { get: /** * @return {?} */ function () { - return this.enabled && !this.width; + return this.trackBy || ((/** + * @param {?} index + * @param {?} item + * @return {?} + */ + function (index, item) { return ((/** @type {?} */ (item))).id || index; })); }, enumerable: true, configurable: true }); - Object.defineProperty(EllipsisDirective.prototype, "maxWidth", { - get: /** + /** + * @private + * @param {?} changes + * @return {?} + */ + ForDirective.prototype.iterateOverAppliedOperations = /** + * @private + * @param {?} changes + * @return {?} + */ + function (changes) { + var _this = this; + /** @type {?} */ + var rw = []; + changes.forEachOperation((/** + * @param {?} record + * @param {?} previousIndex + * @param {?} currentIndex * @return {?} */ - function () { - return this.enabled && this.width ? this.width || '170px' : undefined; - }, - enumerable: true, - configurable: true - }); + function (record, previousIndex, currentIndex) { + if (record.previousIndex == null) { + /** @type {?} */ + var view = _this.vcRef.createEmbeddedView(_this.tempRef, new AbpForContext(null, -1, -1, _this.items), currentIndex); + rw.push(new RecordView(record, view)); + } + else if (currentIndex == null) { + _this.vcRef.remove(previousIndex); + } + else { + /** @type {?} */ + var view = _this.vcRef.get(previousIndex); + _this.vcRef.move(view, currentIndex); + rw.push(new RecordView(record, (/** @type {?} */ (view)))); + } + })); + for (var i = 0, l = rw.length; i < l; i++) { + rw[i].view.context.$implicit = rw[i].record.item; + } + }; /** + * @private + * @param {?} changes * @return {?} */ - EllipsisDirective.prototype.ngAfterContentInit = /** + ForDirective.prototype.iterateOverAttachedViews = /** + * @private + * @param {?} changes * @return {?} */ - function () { + function (changes) { var _this = this; - setTimeout((/** + for (var i = 0, l = this.vcRef.length; i < l; i++) { + /** @type {?} */ + var viewRef = (/** @type {?} */ (this.vcRef.get(i))); + viewRef.context.index = i; + viewRef.context.count = l; + viewRef.context.list = this.items; + } + changes.forEachIdentityChange((/** + * @param {?} record * @return {?} */ - function () { + function (record) { /** @type {?} */ - var title = _this.title; - _this.title = title || ((/** @type {?} */ (_this.elRef.nativeElement))).innerText; - if (_this.title !== title) { - _this.cdRef.detectChanges(); + var viewRef = (/** @type {?} */ (_this.vcRef.get(record.currentIndex))); + viewRef.context.$implicit = record.item; + })); + }; + /** + * @private + * @param {?} items + * @return {?} + */ + ForDirective.prototype.projectItems = /** + * @private + * @param {?} items + * @return {?} + */ + function (items) { + if (!items.length && this.emptyRef) { + this.vcRef.createEmbeddedView(this.emptyRef).rootNodes; + this.isShowEmptyRef = true; + return; + } + if (this.emptyRef && this.isShowEmptyRef) { + this.vcRef.clear(); + this.isShowEmptyRef = false; + } + if (!this.differ && items) { + this.differ = this.differs.find(items).create(this.trackByFn); + } + if (this.differ) { + /** @type {?} */ + var changes = this.differ.diff(items); + if (changes) { + this.iterateOverAppliedOperations(changes); + this.iterateOverAttachedViews(changes); } - }), 0); + } }; - EllipsisDirective.decorators = [ + /** + * @private + * @param {?} items + * @return {?} + */ + ForDirective.prototype.sortItems = /** + * @private + * @param {?} items + * @return {?} + */ + function (items) { + var _this = this; + if (this.orderBy) { + items.sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + function (a, b) { return (a[_this.orderBy] > b[_this.orderBy] ? 1 : a[_this.orderBy] < b[_this.orderBy] ? -1 : 0); })); + } + else { + items.sort(); + } + }; + /** + * @return {?} + */ + ForDirective.prototype.ngOnChanges = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var items = (/** @type {?} */ (clone(this.items))); + if (!Array.isArray(items)) + return; + /** @type {?} */ + var compareFn = this.compareFn; + if (typeof this.filterBy !== 'undefined') { + items = items.filter((/** + * @param {?} item + * @return {?} + */ + function (item) { return compareFn(item[_this.filterBy], _this.filterVal); })); + } + switch (this.orderDir) { + case 'ASC': + this.sortItems(items); + this.projectItems(items); + break; + case 'DESC': + this.sortItems(items); + items.reverse(); + this.projectItems(items); + break; + default: + this.projectItems(items); + } + }; + ForDirective.decorators = [ { type: Directive, args: [{ - selector: '[abpEllipsis]', + selector: '[abpFor]', },] } ]; /** @nocollapse */ - EllipsisDirective.ctorParameters = function () { return [ - { type: ChangeDetectorRef }, - { type: ElementRef } + ForDirective.ctorParameters = function () { return [ + { type: TemplateRef }, + { type: ViewContainerRef }, + { type: IterableDiffers } ]; }; - EllipsisDirective.propDecorators = { - width: [{ type: Input, args: ['abpEllipsis',] }], - title: [{ type: HostBinding, args: ['title',] }, { type: Input }], - enabled: [{ type: Input, args: ['abpEllipsisEnabled',] }], - inlineClass: [{ type: HostBinding, args: ['class.abp-ellipsis-inline',] }], - class: [{ type: HostBinding, args: ['class.abp-ellipsis',] }], - maxWidth: [{ type: HostBinding, args: ['style.max-width',] }] + ForDirective.propDecorators = { + items: [{ type: Input, args: ['abpForOf',] }], + orderBy: [{ type: Input, args: ['abpForOrderBy',] }], + orderDir: [{ type: Input, args: ['abpForOrderDir',] }], + filterBy: [{ type: Input, args: ['abpForFilterBy',] }], + filterVal: [{ type: Input, args: ['abpForFilterVal',] }], + trackBy: [{ type: Input, args: ['abpForTrackBy',] }], + compareBy: [{ type: Input, args: ['abpForCompareBy',] }], + emptyRef: [{ type: Input, args: ['abpForEmptyRef',] }] }; - return EllipsisDirective; + return ForDirective; }()); if (false) { /** @type {?} */ - EllipsisDirective.prototype.width; + ForDirective.prototype.items; /** @type {?} */ - EllipsisDirective.prototype.title; + ForDirective.prototype.orderBy; /** @type {?} */ - EllipsisDirective.prototype.enabled; + ForDirective.prototype.orderDir; + /** @type {?} */ + ForDirective.prototype.filterBy; + /** @type {?} */ + ForDirective.prototype.filterVal; + /** @type {?} */ + ForDirective.prototype.trackBy; + /** @type {?} */ + ForDirective.prototype.compareBy; + /** @type {?} */ + ForDirective.prototype.emptyRef; /** * @type {?} * @private */ - EllipsisDirective.prototype.cdRef; + ForDirective.prototype.differ; /** * @type {?} * @private */ - EllipsisDirective.prototype.elRef; + ForDirective.prototype.isShowEmptyRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.tempRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.vcRef; + /** + * @type {?} + * @private + */ + ForDirective.prototype.differs; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @return {?} + */ +function noop() { + /** @type {?} */ + var fn = (/** + * @return {?} + */ + function () { }); + return fn; +} + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +/** + * @param {?=} a + * @return {?} + */ +function uuid(a) { + return a + ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) + : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid); } +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -1956,6 +2371,7 @@ var VisibilityDirective = /** @class */ (function () { function VisibilityDirective(elRef, renderer) { this.elRef = elRef; this.renderer = renderer; + this.mutationObserverEnabled = true; this.completed$ = new Subject(); } /** @@ -1967,44 +2383,65 @@ var VisibilityDirective = /** @class */ (function () { function () { var _this = this; /** @type {?} */ - var observer = new MutationObserver((/** - * @param {?} mutations - * @return {?} - */ - function (mutations) { - mutations.forEach((/** - * @param {?} mutation + var observer; + if (this.mutationObserverEnabled) { + observer = new MutationObserver((/** + * @param {?} mutations + * @return {?} + */ + function (mutations) { + mutations.forEach((/** + * @param {?} mutation + * @return {?} + */ + function (mutation) { + if (!mutation.target) + return; + /** @type {?} */ + var htmlNodes = snq((/** + * @return {?} + */ + function () { return Array.from(mutation.target.childNodes).filter((/** + * @param {?} node + * @return {?} + */ + function (node) { return node instanceof HTMLElement; })); }), []); + if (!htmlNodes.length) { + _this.removeFromDOM(); + _this.disconnect(); + } + else { + setTimeout((/** + * @return {?} + */ + function () { + _this.disconnect(); + }), 0); + } + })); + })); + observer.observe(this.focusedElement, { + childList: true, + }); + } + else { + setTimeout((/** * @return {?} */ - function (mutation) { - if (!mutation.target) - return; + function () { /** @type {?} */ var htmlNodes = snq((/** * @return {?} */ - function () { return Array.from(mutation.target.childNodes).filter((/** + function () { return Array.from(_this.focusedElement.childNodes).filter((/** * @param {?} node * @return {?} */ function (node) { return node instanceof HTMLElement; })); }), []); - if (!htmlNodes.length) { - _this.renderer.removeChild(_this.elRef.nativeElement.parentElement, _this.elRef.nativeElement); - _this.disconnect(); - } - else { - setTimeout((/** - * @return {?} - */ - function () { - _this.disconnect(); - }), 0); - } - })); - })); - observer.observe(this.focusedElement, { - childList: true, - }); + if (!htmlNodes.length) + _this.removeFromDOM(); + }), 0); + } this.completed$.subscribe((/** * @return {?} */ @@ -2020,6 +2457,15 @@ var VisibilityDirective = /** @class */ (function () { this.completed$.next(); this.completed$.complete(); }; + /** + * @return {?} + */ + VisibilityDirective.prototype.removeFromDOM = /** + * @return {?} + */ + function () { + this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement); + }; VisibilityDirective.decorators = [ { type: Directive, args: [{ selector: '[abpVisibility]', @@ -2031,7 +2477,8 @@ var VisibilityDirective = /** @class */ (function () { { type: Renderer2 } ]; }; VisibilityDirective.propDecorators = { - focusedElement: [{ type: Input, args: ['abpVisibility',] }] + focusedElement: [{ type: Input, args: ['abpVisibility',] }], + mutationObserverEnabled: [{ type: Input }] }; return VisibilityDirective; }()); @@ -2039,6 +2486,8 @@ if (false) { /** @type {?} */ VisibilityDirective.prototype.focusedElement; /** @type {?} */ + VisibilityDirective.prototype.mutationObserverEnabled; + /** @type {?} */ VisibilityDirective.prototype.completed$; /** * @type {?} @@ -2066,6 +2515,7 @@ var eLayoutType = { account: 'account', application: 'application', empty: 'empty', + setting: 'setting', }; /** @@ -2078,9 +2528,10 @@ var eLayoutType = { * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var AuthGuard = /** @class */ (function () { - function AuthGuard(oauthService, store) { + function AuthGuard(oauthService, store, router) { this.oauthService = oauthService; this.store = store; + this.router = router; } /** * @param {?} _ @@ -2098,8 +2549,7 @@ var AuthGuard = /** @class */ (function () { if (hasValidAccessToken) { return hasValidAccessToken; } - this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } })); - return false; + return this.router.createUrlTree(['/account/login'], { state: { redirectUrl: state.url } }); }; AuthGuard.decorators = [ { type: Injectable, args: [{ @@ -2109,9 +2559,10 @@ var AuthGuard = /** @class */ (function () { /** @nocollapse */ AuthGuard.ctorParameters = function () { return [ { type: OAuthService }, - { type: Store } + { type: Store }, + { type: Router } ]; }; - /** @nocollapse */ AuthGuard.ngInjectableDef = ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(ɵɵinject(OAuthService), ɵɵinject(Store)); }, token: AuthGuard, providedIn: "root" }); + /** @nocollapse */ AuthGuard.ngInjectableDef = ɵɵdefineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(ɵɵinject(OAuthService), ɵɵinject(Store), ɵɵinject(Router)); }, token: AuthGuard, providedIn: "root" }); return AuthGuard; }()); if (false) { @@ -2125,6 +2576,11 @@ if (false) { * @private */ AuthGuard.prototype.store; + /** + * @type {?} + * @private + */ + AuthGuard.prototype.router; } /** @@ -2461,11 +2917,6 @@ var ABP; */ var Config; (function (Config) { - /** - * @record - */ - function State() { } - Config.State = State; /** * @record */ @@ -2480,6 +2931,8 @@ var Config; Environment.prototype.oAuthConfig; /** @type {?} */ Environment.prototype.apis; + /** @type {?} */ + Environment.prototype.localization; } /** * @record @@ -2653,7 +3106,10 @@ var ConfigPlugin = /** @class */ (function () { if (isInitAction && !this.initialized) { var _a = transformRoutes(this.router.config), routes = _a.routes, wrappers = _a.wrappers; routes = organizeRoutes(routes, wrappers); - state = setValue(state, 'ConfigState', __assign({}, (state.ConfigState && __assign({}, state.ConfigState)), this.options, { routes: routes })); + /** @type {?} */ + var flattedRoutes = flatRoutes(clone(routes)); + state = setValue(state, 'ConfigState', __assign({}, (state.ConfigState && __assign({}, state.ConfigState)), this.options, { routes: routes, + flattedRoutes: flattedRoutes })); this.initialized = true; } return next(state, event); @@ -2781,6 +3237,33 @@ function setUrls(routes, parentUrl) { children: setUrls(route.children, "/" + route.path), }))); })); } +/** + * @param {?} routes + * @return {?} + */ +function flatRoutes(routes) { + /** @type {?} */ + var flat = (/** + * @param {?} r + * @return {?} + */ + function (r) { + return r.reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} + */ + function (acc, val) { + /** @type {?} */ + var value = [val]; + if (val.children) { + value = __spread([val], flat(val.children)); + } + return __spread(acc, value); + }), []); + }); + return flat(routes); +} /** * @fileoverview added by tsickle @@ -3172,6 +3655,39 @@ if (false) { LocalizationPipe.prototype.store; } +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var SortPipe = /** @class */ (function () { + function SortPipe() { + } + /** + * @param {?} value + * @param {?} sortOrder + * @return {?} + */ + SortPipe.prototype.transform = /** + * @param {?} value + * @param {?} sortOrder + * @return {?} + */ + function (value, sortOrder) { + sortOrder = sortOrder.toLowerCase(); + if (sortOrder === "desc") + return value.reverse(); + else + return value; + }; + SortPipe.decorators = [ + { type: Pipe, args: [{ + name: 'abpSort', + pure: false + },] } + ]; + return SortPipe; +}()); + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -3285,12 +3801,15 @@ var CoreModule = /** @class */ (function () { DynamicLayoutComponent, AutofocusDirective, EllipsisDirective, + ForDirective, FormSubmitDirective, LocalizationPipe, + SortPipe, PermissionDirective, VisibilityDirective, InputEventDebounceDirective, ClickEventStopPropagationDirective, + AbstractNgModelComponent, ], exports: [ CommonModule, @@ -3302,13 +3821,16 @@ var CoreModule = /** @class */ (function () { DynamicLayoutComponent, AutofocusDirective, EllipsisDirective, + ForDirective, FormSubmitDirective, LocalizationPipe, + SortPipe, PermissionDirective, VisibilityDirective, InputEventDebounceDirective, LocalizationPipe, ClickEventStopPropagationDirective, + AbstractNgModelComponent, ], providers: [LocalizationPipe], entryComponents: [RouterOutletComponent, DynamicLayoutComponent], @@ -3327,5 +3849,5 @@ var CoreModule = /** @class */ (function () { * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { ApiInterceptor, ApplicationConfigurationService, AuthGuard, AutofocusDirective, CONFIG, ChangePassword, ConfigPlugin, ConfigService, ConfigState, CoreModule, DynamicLayoutComponent, ENVIRONMENT, EllipsisDirective, FormSubmitDirective, GetAppConfiguration, GetProfile, LazyLoadService, LocalizationService, NGXS_CONFIG_PLUGIN_OPTIONS, PatchRouteByName, PermissionDirective, PermissionGuard, ProfileService, ProfileState, Rest, RestOccurError, RestService, RouterOutletComponent, SessionState, SetLanguage, SetTenant, StartLoader, StopLoader, UpdateProfile, VisibilityDirective, configFactory, environmentFactory, getInitialData, localeInitializer, noop, organizeRoutes, registerLocale, setChildRoute, sortRoutes, takeUntilDestroy, uuid, ProfileState as ɵa, ProfileService as ɵb, ClickEventStopPropagationDirective as ɵba, LocaleId as ɵbb, LocaleProvider as ɵbc, NGXS_CONFIG_PLUGIN_OPTIONS as ɵbd, ConfigPlugin as ɵbe, ApiInterceptor as ɵbf, getInitialData as ɵbg, localeInitializer as ɵbh, RestService as ɵc, GetProfile as ɵd, UpdateProfile as ɵe, ChangePassword as ɵf, SessionState as ɵh, LocalizationService as ɵi, SetLanguage as ɵj, SetTenant as ɵk, ConfigState as ɵm, ApplicationConfigurationService as ɵn, PatchRouteByName as ɵo, GetAppConfiguration as ɵp, RouterOutletComponent as ɵq, DynamicLayoutComponent as ɵr, ConfigState as ɵs, AutofocusDirective as ɵt, EllipsisDirective as ɵu, FormSubmitDirective as ɵv, LocalizationPipe as ɵw, PermissionDirective as ɵx, VisibilityDirective as ɵy, InputEventDebounceDirective as ɵz }; +export { AbstractNgModelComponent, ApiInterceptor, ApplicationConfigurationService, AuthGuard, AutofocusDirective, CONFIG, ChangePassword, ConfigPlugin, ConfigService, ConfigState, CoreModule, DynamicLayoutComponent, ENVIRONMENT, EllipsisDirective, ForDirective, FormSubmitDirective, GetAppConfiguration, GetProfile, LazyLoadService, LocalizationService, NGXS_CONFIG_PLUGIN_OPTIONS, PatchRouteByName, PermissionDirective, PermissionGuard, ProfileService, ProfileState, Rest, RestOccurError, RestService, RouterOutletComponent, SessionState, SetLanguage, SetTenant, StartLoader, StopLoader, UpdateProfile, VisibilityDirective, configFactory, environmentFactory, getInitialData, localeInitializer, noop, organizeRoutes, registerLocale, setChildRoute, sortRoutes, takeUntilDestroy, uuid, ProfileState as ɵa, ProfileService as ɵb, InputEventDebounceDirective as ɵba, ClickEventStopPropagationDirective as ɵbb, AbstractNgModelComponent as ɵbc, LocaleId as ɵbd, LocaleProvider as ɵbe, NGXS_CONFIG_PLUGIN_OPTIONS as ɵbf, ConfigPlugin as ɵbg, ApiInterceptor as ɵbh, getInitialData as ɵbi, localeInitializer as ɵbj, RestService as ɵc, GetProfile as ɵd, UpdateProfile as ɵe, ChangePassword as ɵf, SessionState as ɵh, LocalizationService as ɵi, SetLanguage as ɵj, SetTenant as ɵk, ConfigState as ɵm, ApplicationConfigurationService as ɵn, PatchRouteByName as ɵo, GetAppConfiguration as ɵp, RouterOutletComponent as ɵq, DynamicLayoutComponent as ɵr, AutofocusDirective as ɵs, EllipsisDirective as ɵt, ForDirective as ɵu, FormSubmitDirective as ɵv, LocalizationPipe as ɵw, SortPipe as ɵx, PermissionDirective as ɵy, VisibilityDirective as ɵz }; //# sourceMappingURL=abp-ng.core.js.map diff --git a/npm/ng-packs/dist/core/fesm5/abp-ng.core.js.map b/npm/ng-packs/dist/core/fesm5/abp-ng.core.js.map index ca3ffb5f44..677e58d6bb 100644 --- a/npm/ng-packs/dist/core/fesm5/abp-ng.core.js.map +++ b/npm/ng-packs/dist/core/fesm5/abp-ng.core.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.core.js","sources":["ng://@abp/ng.core/lib/actions/config.actions.ts","ng://@abp/ng.core/lib/actions/loader.actions.ts","ng://@abp/ng.core/lib/actions/profile.actions.ts","ng://@abp/ng.core/lib/actions/rest.actions.ts","ng://@abp/ng.core/lib/actions/session.actions.ts","ng://@abp/ng.core/lib/services/rest.service.ts","ng://@abp/ng.core/lib/services/profile.service.ts","ng://@abp/ng.core/lib/states/profile.state.ts","ng://@abp/ng.core/lib/services/application-configuration.service.ts","ng://@abp/ng.core/lib/constants/different-locales.ts","ng://@abp/ng.core/lib/utils/initial-utils.ts","ng://@abp/ng.core/lib/services/localization.service.ts","ng://@abp/ng.core/lib/states/session.state.ts","ng://@abp/ng.core/lib/utils/route-utils.ts","ng://@abp/ng.core/lib/states/config.state.ts","ng://@abp/ng.core/lib/utils/common-utils.ts","ng://@abp/ng.core/lib/utils/generator-utils.ts","ng://@abp/ng.core/lib/utils/rxjs-utils.ts","ng://@abp/ng.core/lib/components/dynamic-layout.component.ts","ng://@abp/ng.core/lib/components/router-outlet.component.ts","ng://@abp/ng.core/lib/directives/autofocus.directive.ts","ng://@abp/ng.core/lib/directives/ellipsis.directive.ts","ng://@abp/ng.core/lib/directives/form-submit.directive.ts","ng://@abp/ng.core/lib/directives/permission.directive.ts","ng://@abp/ng.core/lib/directives/visibility.directive.ts","ng://@abp/ng.core/lib/enums/common.ts","ng://@abp/ng.core/lib/guards/auth.guard.ts","ng://@abp/ng.core/lib/guards/permission.guard.ts","ng://@abp/ng.core/lib/interceptors/api.interceptor.ts","ng://@abp/ng.core/lib/models/application-configuration.ts","ng://@abp/ng.core/lib/models/common.ts","ng://@abp/ng.core/lib/models/config.ts","ng://@abp/ng.core/lib/models/rest.ts","ng://@abp/ng.core/lib/models/session.ts","ng://@abp/ng.core/lib/models/profile.ts","ng://@abp/ng.core/lib/plugins/config/config.plugin.ts","ng://@abp/ng.core/lib/services/config.service.ts","ng://@abp/ng.core/lib/services/lazy-load.service.ts","ng://@abp/ng.core/lib/tokens/common.token.ts","ng://@abp/ng.core/lib/directives/debounce.directive.ts","ng://@abp/ng.core/lib/directives/stop-propagation.directive.ts","ng://@abp/ng.core/lib/pipes/localization.pipe.ts","ng://@abp/ng.core/lib/providers/locale.provider.ts","ng://@abp/ng.core/lib/core.module.ts"],"sourcesContent":["import { ABP } from '../models';\n\nexport class PatchRouteByName {\n static readonly type = '[Config] Patch Route By Name';\n constructor(public name: string, public newValue: Partial) {}\n}\n\nexport class GetAppConfiguration {\n static readonly type = '[Config] Get App Configuration';\n}\n","import { HttpRequest } from '@angular/common/http';\n\nexport class StartLoader {\n static readonly type = '[Loader] Start';\n constructor(public payload: HttpRequest) {}\n}\n\nexport class StopLoader {\n static readonly type = '[Loader] Stop';\n constructor(public payload: HttpRequest) {}\n}\n","import { Profile } from '../models';\n\nexport class GetProfile {\n static readonly type = '[Profile] Get';\n}\n\nexport class UpdateProfile {\n static readonly type = '[Profile] Update';\n constructor(public payload: Profile.Response) {}\n}\n\nexport class ChangePassword {\n static readonly type = '[Profile] Change Password';\n constructor(public payload: Profile.ChangePasswordRequest) {}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class RestOccurError {\n static readonly type = '[Rest] Error';\n constructor(public payload: HttpErrorResponse | any) {}\n}\n","import { ABP } from '../models';\n\nexport class SetLanguage {\n static readonly type = '[Session] Set Language';\n constructor(public payload: string) {}\n}\nexport class SetTenant {\n static readonly type = '[Session] Set Tenant';\n constructor(public payload: ABP.BasicItem) {}\n}\n","import { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { NEVER, Observable, throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport { Rest } from '../models/rest';\nimport { ConfigState } from '../states';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestService {\n constructor(private http: HttpClient, private store: Store) {}\n\n handleError(err: any): Observable {\n this.store.dispatch(new RestOccurError(err));\n console.error(err);\n return throwError(err);\n }\n\n request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {\n const { observe = Rest.Observe.Body, skipHandleError } = config;\n const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;\n const { method, ...options } = request;\n return this.http.request(method, url, { observe, ...options } as any).pipe(\n observe === Rest.Observe.Body ? take(1) : null,\n catchError(err => {\n if (skipHandleError) {\n return throwError(err);\n }\n\n return this.handleError(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService } from './rest.service';\nimport { Profile, Rest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/my-profile',\n };\n\n return this.rest.request(request);\n }\n\n update(body: Profile.Response): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/identity/my-profile',\n body,\n };\n\n return this.rest.request(request);\n }\n\n changePassword(body: Profile.ChangePasswordRequest, skipHandleError: boolean = false): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/my-profile/change-password',\n body,\n };\n\n return this.rest.request(request, { skipHandleError });\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetProfile, ChangePassword, UpdateProfile } from '../actions/profile.actions';\nimport { Profile } from '../models/profile';\nimport { ProfileService } from '../services/profile.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'ProfileState',\n defaults: {} as Profile.State,\n})\nexport class ProfileState {\n @Selector()\n static getProfile({ profile }: Profile.State): Profile.Response {\n return profile;\n }\n\n constructor(private profileService: ProfileService) {}\n\n @Action(GetProfile)\n profileGet({ patchState }: StateContext) {\n return this.profileService.get().pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(UpdateProfile)\n profileUpdate({ patchState }: StateContext, { payload }: UpdateProfile) {\n return this.profileService.update(payload).pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ChangePassword)\n changePassword(_, { payload }: ChangePassword) {\n return this.profileService.changePassword(payload, true);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApplicationConfiguration, Rest } from '../models';\nimport { RestService } from './rest.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationConfigurationService {\n constructor(private rest: RestService) {}\n\n getConfiguration(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/application-configuration',\n };\n\n return this.rest.request(request);\n }\n}\n","// Different locales from .NET\n// Key is .NET locale, value is Angular locale\n\nexport default {\n 'ar-sa': 'ar-SA',\n 'ca-ES-valencia': 'ca-ES-VALENCIA',\n 'de-de': 'de',\n 'es-ES': 'es',\n 'en-US': 'en',\n 'fil-Latn': 'en',\n 'ku-Arab': 'en',\n 'ky-Cyrl': 'en',\n 'mi-Latn': 'en',\n 'prs-Arab': 'en',\n 'qut-Latn': 'en',\n nso: 'en',\n quz: 'en',\n 'fr-FR': 'fr',\n 'gd-Latn': 'gd',\n 'ha-Latn': 'ha',\n 'ig-Latn': 'ig',\n 'it-it': 'it',\n 'mn-Cyrl': 'mn',\n 'pt-BR': 'pt',\n 'sd-Arab': 'pa-Arab',\n 'sr-Cyrl-RS': 'sr-Cyrl',\n 'sr-Latn-RS': 'sr-Latn',\n 'tg-Cyrl': 'tg',\n 'tk-Latn': 'tk',\n 'tt-Cyrl': 'tt',\n 'ug-Arab': 'ug',\n 'yo-Latn': 'yo',\n};\n","import { registerLocaleData } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport differentLocales from '../constants/different-locales';\nimport { SessionState } from '../states/session.state';\n\nexport function getInitialData(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n return store.dispatch(new GetAppConfiguration()).toPromise();\n };\n\n return fn;\n}\n\nexport function localeInitializer(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n const lang = store.selectSnapshot(SessionState.getLanguage) || 'en';\n\n return new Promise((resolve, reject) => {\n registerLocale(lang).then(() => resolve(), reject);\n });\n };\n\n return fn;\n}\n\nexport function registerLocale(locale: string) {\n return import(\n /* webpackInclude: /(af|am|ar-SA|as|az-Latn|be|bg|bn-BD|bn-IN|bs|ca|ca-ES-VALENCIA|cs|cy|da|de|de|el|en-GB|en|es|en|es-US|es-MX|et|eu|fa|fi|en|fr|fr|fr-CA|ga|gd|gl|gu|ha|he|hi|hr|hu|hy|id|ig|is|it|it|ja|ka|kk|km|kn|ko|kok|en|en|lb|lt|lv|en|mk|ml|mn|mr|ms|mt|nb|ne|nl|nl-BE|nn|en|or|pa|pa-Arab|pl|en|pt|pt-PT|en|en|ro|ru|rw|pa-Arab|si|sk|sl|sq|sr-Cyrl-BA|sr-Cyrl|sr-Latn|sv|sw|ta|te|tg|th|ti|tk|tn|tr|tt|ug|uk|ur|uz-Latn|vi|wo|xh|yo|zh-Hans|zh-Hant|zu)\\.js$/ */\n `@angular/common/locales/${differentLocales[locale] || locale}.js`\n ).then(module => {\n registerLocaleData(module.default);\n });\n}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { Actions, Store } from '@ngxs/store';\nimport { noop, Observable } from 'rxjs';\nimport { ConfigState } from '../states/config.state';\nimport { SessionState } from '../states/session.state';\nimport { registerLocale } from '../utils/initial-utils';\n\ntype ShouldReuseRoute = (future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot) => boolean;\n\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService {\n get currentLang(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n constructor(\n private store: Store,\n private router: Router,\n private actions: Actions,\n @Optional()\n @SkipSelf()\n otherInstance: LocalizationService,\n ) {\n if (otherInstance) throw new Error('LocaleService should have only one instance.');\n }\n\n private setRouteReuse(reuse: ShouldReuseRoute) {\n this.router.routeReuseStrategy.shouldReuseRoute = reuse;\n }\n\n registerLocale(locale: string) {\n const { shouldReuseRoute } = this.router.routeReuseStrategy;\n\n this.setRouteReuse(() => false);\n this.router.navigated = false;\n\n return registerLocale(locale).then(async () => {\n await this.router.navigateByUrl(this.router.url).catch(noop);\n this.setRouteReuse(shouldReuseRoute);\n });\n }\n\n get(keys: string, ...interpolateParams: string[]): Observable {\n return this.store.select(ConfigState.getCopy(keys, ...interpolateParams));\n }\n\n instant(keys: string, ...interpolateParams: string[]): string {\n return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams));\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { SetLanguage, SetTenant } from '../actions/session.actions';\nimport { ABP, Session } from '../models';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport { LocalizationService } from '../services/localization.service';\nimport { from, combineLatest } from 'rxjs';\n\n@State({\n name: 'SessionState',\n defaults: {} as Session.State,\n})\nexport class SessionState {\n @Selector()\n static getLanguage({ language }: Session.State): string {\n return language;\n }\n\n @Selector()\n static getTenant({ tenant }: Session.State): ABP.BasicItem {\n return tenant;\n }\n\n constructor(private localizationService: LocalizationService) {}\n\n @Action(SetLanguage)\n setLanguage({ patchState, dispatch }: StateContext, { payload }: SetLanguage) {\n patchState({\n language: payload,\n });\n\n return combineLatest([dispatch(new GetAppConfiguration()), from(this.localizationService.registerLocale(payload))]);\n }\n\n @Action(SetTenant)\n setTenantId({ patchState }: StateContext, { payload }: SetTenant) {\n patchState({\n tenant: payload,\n });\n }\n}\n","import { ABP } from '../models';\n\nexport function organizeRoutes(\n routes: ABP.FullRoute[],\n wrappers: ABP.FullRoute[] = [],\n parentNameArr = [] as ABP.FullRoute[],\n parentName: string = null,\n): ABP.FullRoute[] {\n const filter = route => {\n if (route.children && route.children.length) {\n route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name);\n }\n\n if (route.parentName && route.parentName !== parentName) {\n parentNameArr.push(route);\n return false;\n }\n\n return true;\n };\n\n if (parentName) {\n // recursive block\n return routes.filter(filter);\n }\n\n const filteredRoutes = routes.filter(filter);\n\n if (parentNameArr.length) {\n return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr));\n }\n\n return filteredRoutes;\n}\n\nexport function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] {\n return routes.map(route => {\n if (route.children && route.children.length) {\n route.children = setChildRoute(route.children, parentNameArr);\n }\n\n const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name);\n if (foundedChildren && foundedChildren.length) {\n route.children = [...(route.children || []), ...foundedChildren];\n }\n\n return route;\n });\n}\n\nexport function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] {\n if (!routes.length) return [];\n return routes\n .sort((a, b) => a.order - b.order)\n .map(route => {\n if (route.children && route.children.length) {\n route.children = sortRoutes(route.children);\n }\n\n return route;\n });\n}\n","import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store';\nimport { Config, ABP } from '../models';\nimport { GetAppConfiguration, PatchRouteByName } from '../actions/config.actions';\nimport { ApplicationConfigurationService } from '../services/application-configuration.service';\nimport { tap, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { SetLanguage } from '../actions';\nimport { SessionState } from './session.state';\nimport { of } from 'rxjs';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\n@State({\n name: 'ConfigState',\n defaults: {} as Config.State,\n})\nexport class ConfigState {\n @Selector()\n static getAll(state: Config.State) {\n return state;\n }\n\n @Selector()\n static getApplicationInfo(state: Config.State) {\n return state.environment.application || {};\n }\n\n static getOne(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return state[key];\n },\n );\n\n return selector;\n }\n\n static getDeep(keys: string[] | string) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return (keys as string[]).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state);\n },\n );\n\n return selector;\n }\n\n static getRoute(path?: string, name?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return findRoute(state.routes, path, name);\n },\n );\n\n return selector;\n }\n\n static getApiUrl(key?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): string {\n return state.environment.apis[key || 'default'].url;\n },\n );\n\n return selector;\n }\n\n static getSetting(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return snq(() => state.setting.values[key]);\n },\n );\n\n return selector;\n }\n\n static getGrantedPolicy(condition: string = '') {\n const keys = condition\n .replace(/\\(|\\)|\\!|\\s/g, '')\n .split(/\\|\\||&&/)\n .filter(key => key);\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): boolean {\n if (!keys.length) return true;\n\n const getPolicy = key => snq(() => state.auth.grantedPolicies[key], false);\n if (keys.length > 1) {\n keys.forEach(key => {\n const value = getPolicy(key);\n condition = condition.replace(key, value);\n });\n\n // tslint:disable-next-line: no-eval\n return eval(`!!${condition}`);\n }\n\n return getPolicy(condition);\n },\n );\n\n return selector;\n }\n\n static getCopy(key: string, ...interpolateParams: string[]) {\n if (!key) key = '';\n\n const keys = key.split('::') as string[];\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n if (!state.localization) return key;\n\n const { defaultResourceName } = state.environment.localization;\n if (keys[0] === '') {\n if (!defaultResourceName) {\n throw new Error(\n `Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }`,\n );\n }\n\n keys[0] = snq(() => defaultResourceName);\n }\n\n let copy = keys.reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state.localization.values);\n\n interpolateParams = interpolateParams.filter(params => params != null);\n if (copy && interpolateParams && interpolateParams.length) {\n interpolateParams.forEach(param => {\n copy = copy.replace(/[\\'\\\"]?\\{[\\d]+\\}[\\'\\\"]?/, param);\n });\n }\n\n return copy || key;\n },\n );\n\n return selector;\n }\n\n constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {}\n\n @Action(GetAppConfiguration)\n addData({ patchState, dispatch }: StateContext) {\n return this.appConfigurationService.getConfiguration().pipe(\n tap(configuration =>\n patchState({\n ...configuration,\n }),\n ),\n switchMap(configuration => {\n let defaultLang: string = configuration.setting.values['Abp.Localization.DefaultLanguage'];\n\n if (defaultLang.includes(';')) {\n defaultLang = defaultLang.split(';')[0];\n }\n\n return this.store.selectSnapshot(SessionState.getLanguage) ? of(null) : dispatch(new SetLanguage(defaultLang));\n }),\n );\n }\n\n @Action(PatchRouteByName)\n patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) {\n let routes: ABP.FullRoute[] = getState().routes;\n\n const index = routes.findIndex(route => route.name === name);\n\n routes = patchRouteDeep(routes, name, newValue);\n\n return patchState({\n routes,\n });\n }\n}\n\nfunction patchRouteDeep(\n routes: ABP.FullRoute[],\n name: string,\n newValue: Partial,\n parentUrl: string = null,\n): ABP.FullRoute[] {\n routes = routes.map(route => {\n if (route.name === name) {\n if (newValue.path) {\n newValue.url = `${parentUrl}/${newValue.path}`;\n }\n\n if (newValue.children && newValue.children.length) {\n newValue.children = newValue.children.map(child => ({\n ...child,\n url: `${parentUrl}/${route.path}/${child.path}`,\n }));\n }\n\n return { ...route, ...newValue };\n } else if (route.children && route.children.length) {\n route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path);\n }\n\n return route;\n });\n\n if (parentUrl) {\n // recursive block\n return routes;\n }\n\n return organizeRoutes(routes);\n}\n\nfunction findRoute(routes: ABP.FullRoute[], path?: string, name?: string) {\n let foundRoute;\n routes.forEach(route => {\n if (foundRoute) return;\n\n if (path && route.path === path) {\n foundRoute = route;\n } else if (name && route.name === name) {\n foundRoute = route;\n return;\n } else if (route.children && route.children.length) {\n foundRoute = findRoute(route.children, path, name);\n return;\n }\n });\n\n return foundRoute;\n}\n","export function noop() {\n const fn = function() {};\n return fn;\n}\n","export function uuid(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nexport const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => (\n source: Observable,\n) => {\n const originalDestroy = componentInstance[destroyMethodName];\n if (isFunction(originalDestroy) === false) {\n throw new Error(\n `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`,\n );\n }\n if (!componentInstance['__takeUntilDestroy']) {\n componentInstance['__takeUntilDestroy'] = new Subject();\n\n componentInstance[destroyMethodName] = function() {\n isFunction(originalDestroy) && originalDestroy.apply(this, arguments);\n componentInstance['__takeUntilDestroy'].next(true);\n componentInstance['__takeUntilDestroy'].complete();\n };\n }\n return source.pipe(takeUntil(componentInstance['__takeUntilDestroy']));\n};\n","import { Component, OnDestroy, Type } from '@angular/core';\nimport { NavigationEnd, Router, UrlSegment } from '@angular/router';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { eLayoutType } from '../enums';\nimport { ABP, Config } from '../models';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport snq from 'snq';\n\n@Component({\n selector: 'abp-dynamic-layout',\n template: `\n \n\n \n \n `,\n})\nexport class DynamicLayoutComponent implements OnDestroy {\n @Select(ConfigState.getOne('requirements'))\n requirements$: Observable;\n\n layout: Type;\n\n constructor(private router: Router, private store: Store) {\n this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n const { segments } = this.router.parseUrl(event.url).root.children.primary;\n const {\n requirements: { layouts },\n routes,\n } = this.store.selectSnapshot(ConfigState.getAll);\n\n const layout = findLayout(segments, routes);\n\n this.layout = layouts.filter(l => !!l).find(l => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1);\n }\n });\n }\n\n ngOnDestroy() {}\n}\n\nfunction findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType {\n let layout = eLayoutType.empty;\n\n const route = routes\n .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), [])\n .find(r => r.path === segments[0].path);\n\n if (route) {\n if (route.layout) {\n layout = route.layout;\n }\n\n if (route.children && route.children.length && segments.length > 1) {\n const child = route.children.find(c => c.path === segments[1].path);\n\n if (child && child.layout) {\n layout = child.layout;\n }\n }\n }\n\n return layout;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-router-outlet',\n template: `\n \n `,\n})\nexport class RouterOutletComponent {}\n","import { Directive, ElementRef, Input, AfterViewInit } from '@angular/core';\n\n@Directive({\n selector: '[autofocus]',\n})\nexport class AutofocusDirective implements AfterViewInit {\n @Input('autofocus')\n delay: number = 0;\n\n constructor(private elRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => this.elRef.nativeElement.focus(), this.delay);\n }\n}\n","import { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[abpEllipsis]',\n})\nexport class EllipsisDirective implements AfterContentInit {\n @Input('abpEllipsis')\n width: string;\n\n @HostBinding('title')\n @Input()\n title: string;\n\n @Input('abpEllipsisEnabled')\n enabled = true;\n\n @HostBinding('class.abp-ellipsis-inline')\n get inlineClass() {\n return this.enabled && this.width;\n }\n\n @HostBinding('class.abp-ellipsis')\n get class() {\n return this.enabled && !this.width;\n }\n\n @HostBinding('style.max-width')\n get maxWidth() {\n return this.enabled && this.width ? this.width || '170px' : undefined;\n }\n\n constructor(private cdRef: ChangeDetectorRef, private elRef: ElementRef) {}\n\n ngAfterContentInit() {\n setTimeout(() => {\n const title = this.title;\n this.title = title || (this.elRef.nativeElement as HTMLElement).innerText;\n\n if (this.title !== title) {\n this.cdRef.detectChanges();\n }\n }, 0);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Self,\n} from '@angular/core';\nimport { FormControl, FormGroup, FormGroupDirective } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { takeUntilDestroy } from '../utils';\n\ntype Controls = { [key: string]: FormControl } | FormGroup[];\n\n@Directive({\n selector: 'form[ngSubmit][formGroup]',\n})\nexport class FormSubmitDirective implements OnInit, OnDestroy {\n @Input()\n notValidateOnSubmit: string | boolean;\n\n @Output()\n ngSubmit = new EventEmitter();\n\n executedNgSubmit: boolean = false;\n\n constructor(\n @Self() private formGroupDirective: FormGroupDirective,\n private host: ElementRef,\n private cdRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.formGroupDirective.ngSubmit.pipe(takeUntilDestroy(this)).subscribe(() => {\n this.markAsDirty();\n this.executedNgSubmit = true;\n });\n\n fromEvent(this.host.nativeElement as HTMLElement, 'keyup')\n .pipe(\n debounceTime(200),\n filter((key: KeyboardEvent) => key && key.key === 'Enter'),\n takeUntilDestroy(this),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n }\n\n this.executedNgSubmit = false;\n });\n\n fromEvent(this.host.nativeElement, 'submit')\n .pipe(\n takeUntilDestroy(this),\n filter(() => !this.notValidateOnSubmit && typeof this.notValidateOnSubmit !== 'string'),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.markAsDirty();\n }\n });\n }\n\n ngOnDestroy(): void {}\n\n markAsDirty() {\n const { form } = this.formGroupDirective;\n\n setDirty(form.controls as { [key: string]: FormControl });\n form.markAsDirty();\n\n this.cdRef.detectChanges();\n }\n}\n\nfunction setDirty(controls: Controls) {\n if (Array.isArray(controls)) {\n controls.forEach(group => {\n setDirty(group.controls as { [key: string]: FormControl });\n });\n return;\n }\n\n Object.keys(controls).forEach(key => {\n controls[key].markAsDirty();\n controls[key].updateValueAndValidity();\n });\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\n\n@Directive({\n selector: '[abpPermission]',\n})\nexport class PermissionDirective implements OnInit, OnDestroy {\n @Input('abpPermission') condition: string;\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {}\n\n ngOnInit() {\n if (this.condition) {\n this.store\n .select(ConfigState.getGrantedPolicy(this.condition))\n .pipe(takeUntilDestroy(this))\n .subscribe(isGranted => {\n if (!isGranted) {\n this.renderer.removeChild(\n (this.elRef.nativeElement as HTMLElement).parentElement,\n this.elRef.nativeElement,\n );\n }\n });\n }\n }\n\n ngOnDestroy(): void {}\n}\n","import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport snq from 'snq';\n\n@Directive({\n selector: '[abpVisibility]',\n})\nexport class VisibilityDirective implements AfterViewInit {\n @Input('abpVisibility')\n focusedElement: HTMLElement;\n\n completed$ = new Subject();\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (!mutation.target) return;\n\n const htmlNodes = snq(\n () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) {\n this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement);\n this.disconnect();\n } else {\n setTimeout(() => {\n this.disconnect();\n }, 0);\n }\n });\n });\n\n observer.observe(this.focusedElement, {\n childList: true,\n });\n\n this.completed$.subscribe(() => observer.disconnect());\n }\n\n disconnect() {\n this.completed$.next();\n this.completed$.complete();\n }\n}\n","export const enum eLayoutType {\n account = 'account',\n application = 'application',\n empty = 'empty',\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { Navigate } from '@ngxs/router-plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n constructor(private oauthService: OAuthService, private store: Store) {}\n canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree {\n const hasValidAccessToken = this.oauthService.hasValidAccessToken();\n if (hasValidAccessToken) {\n return hasValidAccessToken;\n }\n\n this.store.dispatch(new Navigate(['/account/login'], null, { state: { redirectUrl: state.url } }));\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { ConfigState } from '../states';\nimport { tap } from 'rxjs/operators';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionGuard implements CanActivate {\n constructor(private store: Store) {}\n\n canActivate({ data }: ActivatedRouteSnapshot): Observable {\n const resource = data.requiredPolicy as string;\n return this.store.select(ConfigState.getGrantedPolicy(resource)).pipe(\n tap(access => {\n if (!access) {\n this.store.dispatch(new RestOccurError({ status: 403 }));\n }\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Store } from '@ngxs/store';\nimport { SessionState } from '../states';\nimport { StartLoader, StopLoader } from '../actions/loader.actions';\nimport { finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n constructor(private oAuthService: OAuthService, private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler) {\n this.store.dispatch(new StartLoader(request));\n\n const headers = {} as any;\n\n const token = this.oAuthService.getAccessToken();\n if (!request.headers.has('Authorization') && token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const lang = this.store.selectSnapshot(SessionState.getLanguage);\n if (!request.headers.has('Accept-Language') && lang) {\n headers['Accept-Language'] = lang;\n }\n\n const tenant = this.store.selectSnapshot(SessionState.getTenant);\n if (!request.headers.has('__tenant') && tenant) {\n headers['__tenant'] = tenant.id;\n }\n\n return next\n .handle(\n request.clone({\n setHeaders: headers,\n }),\n )\n .pipe(finalize(() => this.store.dispatch(new StopLoader(request))));\n }\n}\n","export namespace ApplicationConfiguration {\n export interface Response {\n localization: Localization;\n auth: Auth;\n setting: Setting;\n currentUser: CurrentUser;\n features: Features;\n }\n\n export interface Localization {\n values: LocalizationValue;\n languages: Language[];\n }\n\n export interface LocalizationValue {\n [key: string]: { [key: string]: string };\n }\n\n export interface Language {\n cultureName: string;\n uiCultureName: string;\n displayName: string;\n flagIcon: string;\n }\n\n export interface Auth {\n policies: Policy;\n grantedPolicies: Policy;\n }\n\n export interface Policy {\n [key: string]: boolean;\n }\n\n export interface Setting {\n values: { [key: string]: 'Abp.Localization.DefaultLanguage' };\n }\n\n export interface CurrentUser {\n isAuthenticated: boolean;\n id: string;\n tenantId: string;\n userName: string;\n }\n\n export interface Features {\n values: Setting;\n }\n}\n","import { Config } from './config';\nimport { eLayoutType } from '../enums';\n\nexport namespace ABP {\n export interface Root {\n environment: Partial;\n requirements: Config.Requirements;\n }\n\n export type PagedResponse = {\n totalCount: number;\n } & PagedItemsResponse;\n\n export interface PagedItemsResponse {\n items: T[];\n }\n\n export interface PageQueryParams {\n filter?: string;\n sorting?: string;\n skipCount?: number;\n maxResultCount?: number;\n }\n\n export interface Route {\n children?: Route[];\n invisible?: boolean;\n layout?: eLayoutType;\n name: string;\n order?: number;\n parentName?: string;\n path: string;\n requiredPolicy?: string;\n iconClass?: string;\n }\n\n export interface FullRoute extends Route {\n url?: string;\n wrapper?: boolean;\n }\n\n export interface BasicItem {\n id: string;\n name: string;\n }\n}\n","import { AuthConfig } from 'angular-oauth2-oidc';\nimport { Type } from '@angular/core';\n\nexport namespace Config {\n export interface State {\n [key: string]: any;\n }\n\n export interface Environment {\n application: Application;\n production: boolean;\n oAuthConfig: AuthConfig;\n apis: Apis;\n }\n\n export interface Application {\n name: string;\n logoUrl?: string;\n }\n\n export interface Apis {\n [key: string]: { [key: string]: string };\n }\n\n export interface Requirements {\n layouts: Type[];\n }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\n\nexport namespace Rest {\n export interface Config {\n skipHandleError?: boolean;\n observe?: Observe;\n }\n\n export const enum Observe {\n Body = 'body',\n Events = 'events',\n Response = 'response',\n }\n\n export const enum ResponseType {\n ArrayBuffer = 'arraybuffer',\n Blob = 'blob',\n JSON = 'json',\n Text = 'text',\n }\n\n export interface Request {\n body?: T;\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n method: string;\n params?:\n | HttpParams\n | {\n [param: string]: any;\n };\n reportProgress?: boolean;\n responseType?: ResponseType;\n url: string;\n withCredentials?: boolean;\n }\n}\n","import { ABP } from '../models';\n\nexport namespace Session {\n export interface State {\n language: string;\n tenant: ABP.BasicItem;\n }\n}\n","export namespace Profile {\n export interface State {\n profile: Response;\n }\n\n export interface Response {\n userName: string;\n email: string;\n name: string;\n surname: string;\n phoneNumber: string;\n }\n\n export interface ChangePasswordRequest {\n currentPassword: string;\n newPassword: string;\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Router, Routes } from '@angular/router';\nimport { actionMatcher, InitState, NgxsNextPluginFn, NgxsPlugin, setValue, UpdateState } from '@ngxs/store';\nimport snq from 'snq';\nimport { ABP } from '../../models';\nimport { organizeRoutes } from '../../utils/route-utils';\n\nexport const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS');\n\n@Injectable()\nexport class ConfigPlugin implements NgxsPlugin {\n private initialized: boolean = false;\n\n constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const matches = actionMatcher(event);\n const isInitAction = matches(InitState) || matches(UpdateState);\n\n // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []);\n if (isInitAction && !this.initialized) {\n let { routes, wrappers } = transformRoutes(this.router.config);\n routes = organizeRoutes(routes, wrappers);\n\n state = setValue(state, 'ConfigState', {\n ...(state.ConfigState && { ...state.ConfigState }),\n ...this.options,\n routes,\n });\n\n this.initialized = true;\n }\n\n return next(state, event);\n }\n}\n\nfunction transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any {\n const abpRoutes: ABP.FullRoute[] = routes\n .filter(route => {\n return snq(() => route.data.routes.routes.find(r => r.path === route.path), false);\n })\n .reduce((acc, val) => [...acc, ...val.data.routes.routes], []);\n\n wrappers = abpRoutes.filter(ar => ar.wrapper);\n const transformed = [] as ABP.FullRoute[];\n routes\n .filter(route => (route.data || {}).routes && (route.component || route.loadChildren))\n .forEach(route => {\n const abpPackage = abpRoutes.find(\n abp => abp.path.toLowerCase() === route.path.toLowerCase() && snq(() => route.data.routes.routes.length, false),\n );\n const { length } = transformed;\n\n if (abpPackage) {\n transformed.push(abpPackage);\n }\n\n if (transformed.length === length) {\n transformed.push({\n ...route.data.routes,\n path: route.path,\n name: snq(() => route.data.routes.name, route.path),\n children: route.data.routes.children || [],\n } as ABP.FullRoute);\n }\n });\n\n return { routes: setUrls(transformed), wrappers };\n}\n\nfunction setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] {\n if (parentUrl) {\n // this if block using for only recursive call\n\n return routes.map(route => ({\n ...route,\n url: `${parentUrl}/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `${parentUrl}/${route.path}`),\n }),\n }));\n }\n\n return routes.map(route => ({\n ...route,\n url: `/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `/${route.path}`),\n }),\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n constructor(private store: Store) {}\n\n getAll() {\n return this.store.selectSnapshot(ConfigState.getAll);\n }\n\n getOne(key: string) {\n return this.store.selectSnapshot(ConfigState.getOne(key));\n }\n\n getDeep(keys: string[] | string) {\n return this.store.selectSnapshot(ConfigState.getDeep(keys));\n }\n\n getSetting(key: string) {\n return this.store.selectSnapshot(ConfigState.getSetting(key));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { uuid } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyLoadService {\n loadedLibraries: { [url: string]: ReplaySubject } = {};\n\n load(\n url: string,\n type: 'script' | 'style',\n content: string = '',\n targetQuery: string = 'body',\n position: InsertPosition = 'afterend',\n ): Observable {\n if (!url && !content) return;\n const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid();\n\n if (this.loadedLibraries[key]) {\n return this.loadedLibraries[key].asObservable();\n }\n\n this.loadedLibraries[key] = new ReplaySubject();\n\n let library;\n if (type === 'script') {\n library = document.createElement('script');\n library.type = 'text/javascript';\n if (url) {\n (library as HTMLScriptElement).src = url;\n }\n\n (library as HTMLScriptElement).text = content;\n } else if (url) {\n library = document.createElement('link');\n library.type = 'text/css';\n (library as HTMLLinkElement).rel = 'stylesheet';\n\n if (url) {\n (library as HTMLLinkElement).href = url;\n }\n } else {\n library = document.createElement('style');\n (library as HTMLStyleElement).textContent = content;\n }\n\n library.onload = () => {\n this.loadedLibraries[key].next();\n this.loadedLibraries[key].complete();\n };\n\n document.querySelector(targetQuery).insertAdjacentElement(position, library);\n\n return this.loadedLibraries[key].asObservable();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Config } from '../models';\n\nexport function environmentFactory(environment: Config.Environment) {\n return {\n ...environment,\n };\n}\n\nexport function configFactory(config: Config.Requirements) {\n return {\n ...config,\n };\n}\n\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\n\nexport const CONFIG = new InjectionToken('CONFIG');\n","import { Directive, Output, Renderer2, ElementRef, OnInit, EventEmitter, Input } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[input.debounce]',\n})\nexport class InputEventDebounceDirective implements OnInit {\n @Input() debounce: number = 300;\n\n @Output('input.debounce') debounceEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'input')\n .pipe(\n debounceTime(this.debounce),\n takeUntilDestroy(this),\n )\n .subscribe((event: Event) => {\n this.debounceEvent.emit(event);\n });\n }\n}\n","import { Directive, ElementRef, EventEmitter, OnInit, Output, Renderer2 } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[click.stop]',\n})\nexport class ClickEventStopPropagationDirective implements OnInit {\n @Output('click.stop') stopPropEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'click')\n .pipe(takeUntilDestroy(this))\n .subscribe((event: MouseEvent) => {\n event.stopPropagation();\n this.stopPropEvent.emit(event);\n });\n }\n}\n","import { Pipe, PipeTransform, OnDestroy } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Pipe({\n name: 'abpLocalization',\n pure: false, // required to update the value\n})\nexport class LocalizationPipe implements PipeTransform, OnDestroy {\n initialValue: string = '';\n\n value: string;\n\n destroy$ = new Subject();\n\n constructor(private store: Store) {}\n\n transform(value: string = '', ...interpolateParams: string[]): string {\n if (this.initialValue !== value) {\n this.initialValue = value;\n this.destroy$.next();\n\n this.store\n .select(\n ConfigState.getCopy(\n value,\n ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []),\n ),\n )\n .pipe(\n takeUntil(this.destroy$),\n takeUntilDestroy(this),\n distinctUntilChanged(),\n )\n .subscribe(copy => (this.value = copy));\n }\n\n return this.value;\n }\n\n ngOnDestroy() {}\n}\n","import { LOCALE_ID, Provider } from '@angular/core';\nimport localesMapping from '../constants/different-locales';\nimport { LocalizationService } from '../services/localization.service';\n\nexport class LocaleId extends String {\n constructor(private localizationService: LocalizationService) {\n super();\n }\n\n toString(): string {\n const { currentLang } = this.localizationService;\n return localesMapping[currentLang] || currentLang;\n }\n\n valueOf(): string {\n return this.toString();\n }\n}\n\nexport const LocaleProvider: Provider = {\n provide: LOCALE_ID,\n useClass: LocaleId,\n deps: [LocalizationService],\n};\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxsRouterPluginModule } from '@ngxs/router-plugin';\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\nimport { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\nimport { RouterOutletComponent } from './components/router-outlet.component';\nimport { AutofocusDirective } from './directives/autofocus.directive';\nimport { InputEventDebounceDirective } from './directives/debounce.directive';\nimport { EllipsisDirective } from './directives/ellipsis.directive';\nimport { FormSubmitDirective } from './directives/form-submit.directive';\nimport { PermissionDirective } from './directives/permission.directive';\nimport { ClickEventStopPropagationDirective } from './directives/stop-propagation.directive';\nimport { VisibilityDirective } from './directives/visibility.directive';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ABP } from './models/common';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { LocaleProvider } from './providers/locale.provider';\nimport { ConfigState } from './states/config.state';\nimport { ProfileState } from './states/profile.state';\nimport { SessionState } from './states/session.state';\nimport { getInitialData, localeInitializer } from './utils/initial-utils';\nimport { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config/config.plugin';\n\n@NgModule({\n imports: [\n NgxsModule.forFeature([ProfileState, SessionState, ConfigState]),\n NgxsStoragePluginModule.forRoot({ key: 'SessionState' }),\n NgxsRouterPluginModule.forRoot(),\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n ],\n declarations: [\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n FormSubmitDirective,\n LocalizationPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n ClickEventStopPropagationDirective,\n ],\n exports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n FormSubmitDirective,\n LocalizationPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n LocalizationPipe,\n ClickEventStopPropagationDirective,\n ],\n providers: [LocalizationPipe],\n entryComponents: [RouterOutletComponent, DynamicLayoutComponent],\n})\nexport class CoreModule {\n static forRoot(options = {} as ABP.Root): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [\n LocaleProvider,\n {\n provide: NGXS_PLUGINS,\n useClass: ConfigPlugin,\n multi: true,\n },\n {\n provide: NGXS_CONFIG_PLUGIN_OPTIONS,\n useValue: options,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: localeInitializer,\n },\n ],\n };\n }\n}\n"],"names":["tslib_1.__decorate","differentLocales","noop","takeUntilDestroy","tslib_1.__extends"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.core.js","sources":["ng://@abp/ng.core/lib/abstracts/ng-model.component.ts","ng://@abp/ng.core/lib/actions/config.actions.ts","ng://@abp/ng.core/lib/actions/loader.actions.ts","ng://@abp/ng.core/lib/actions/profile.actions.ts","ng://@abp/ng.core/lib/actions/rest.actions.ts","ng://@abp/ng.core/lib/actions/session.actions.ts","ng://@abp/ng.core/lib/services/profile.service.ts","ng://@abp/ng.core/lib/states/profile.state.ts","ng://@abp/ng.core/lib/constants/different-locales.ts","ng://@abp/ng.core/lib/utils/initial-utils.ts","ng://@abp/ng.core/lib/services/localization.service.ts","ng://@abp/ng.core/lib/states/session.state.ts","ng://@abp/ng.core/lib/services/rest.service.ts","ng://@abp/ng.core/lib/services/application-configuration.service.ts","ng://@abp/ng.core/lib/utils/route-utils.ts","ng://@abp/ng.core/lib/states/config.state.ts","ng://@abp/ng.core/lib/utils/rxjs-utils.ts","ng://@abp/ng.core/lib/components/dynamic-layout.component.ts","ng://@abp/ng.core/lib/components/router-outlet.component.ts","ng://@abp/ng.core/lib/directives/autofocus.directive.ts","ng://@abp/ng.core/lib/directives/ellipsis.directive.ts","ng://@abp/ng.core/lib/directives/for.directive.ts","ng://@abp/ng.core/lib/utils/common-utils.ts","ng://@abp/ng.core/lib/utils/generator-utils.ts","ng://@abp/ng.core/lib/directives/form-submit.directive.ts","ng://@abp/ng.core/lib/directives/permission.directive.ts","ng://@abp/ng.core/lib/directives/visibility.directive.ts","ng://@abp/ng.core/lib/enums/common.ts","ng://@abp/ng.core/lib/guards/auth.guard.ts","ng://@abp/ng.core/lib/guards/permission.guard.ts","ng://@abp/ng.core/lib/interceptors/api.interceptor.ts","ng://@abp/ng.core/lib/models/application-configuration.ts","ng://@abp/ng.core/lib/models/common.ts","ng://@abp/ng.core/lib/models/config.ts","ng://@abp/ng.core/lib/models/rest.ts","ng://@abp/ng.core/lib/models/session.ts","ng://@abp/ng.core/lib/models/profile.ts","ng://@abp/ng.core/lib/plugins/config/config.plugin.ts","ng://@abp/ng.core/lib/services/config.service.ts","ng://@abp/ng.core/lib/services/lazy-load.service.ts","ng://@abp/ng.core/lib/tokens/common.token.ts","ng://@abp/ng.core/lib/directives/debounce.directive.ts","ng://@abp/ng.core/lib/directives/stop-propagation.directive.ts","ng://@abp/ng.core/lib/pipes/localization.pipe.ts","ng://@abp/ng.core/lib/pipes/sort.pipe.ts","ng://@abp/ng.core/lib/providers/locale.provider.ts","ng://@abp/ng.core/lib/core.module.ts"],"sourcesContent":["import { ControlValueAccessor } from '@angular/forms';\nimport { ChangeDetectorRef, Component, Injector, Input, Type } from '@angular/core';\n\n@Component({ template: '' })\nexport class AbstractNgModelComponent implements ControlValueAccessor {\n @Input()\n disabled: boolean;\n\n @Input()\n set value(value: T) {\n this._value = value;\n this.notifyValueChange();\n }\n\n get value(): T {\n return this._value;\n }\n\n onChange: (value: T) => {};\n onTouched: () => {};\n\n protected _value: T;\n protected cdRef: ChangeDetectorRef;\n\n constructor(public injector: Injector) {\n this.cdRef = injector.get(ChangeDetectorRef as Type);\n }\n\n notifyValueChange(): void {\n if (this.onChange) {\n this.onChange(this.value);\n }\n }\n\n writeValue(value: T): void {\n this._value = value;\n setTimeout(() => this.cdRef.detectChanges(), 0);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","import { ABP } from '../models';\n\nexport class PatchRouteByName {\n static readonly type = '[Config] Patch Route By Name';\n constructor(public name: string, public newValue: Partial) {}\n}\n\nexport class GetAppConfiguration {\n static readonly type = '[Config] Get App Configuration';\n}\n","import { HttpRequest } from '@angular/common/http';\n\nexport class StartLoader {\n static readonly type = '[Loader] Start';\n constructor(public payload: HttpRequest) {}\n}\n\nexport class StopLoader {\n static readonly type = '[Loader] Stop';\n constructor(public payload: HttpRequest) {}\n}\n","import { Profile } from '../models';\n\nexport class GetProfile {\n static readonly type = '[Profile] Get';\n}\n\nexport class UpdateProfile {\n static readonly type = '[Profile] Update';\n constructor(public payload: Profile.Response) {}\n}\n\nexport class ChangePassword {\n static readonly type = '[Profile] Change Password';\n constructor(public payload: Profile.ChangePasswordRequest) {}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class RestOccurError {\n static readonly type = '[Rest] Error';\n constructor(public payload: HttpErrorResponse | any) {}\n}\n","import { ABP } from '../models';\n\nexport class SetLanguage {\n static readonly type = '[Session] Set Language';\n constructor(public payload: string) {}\n}\nexport class SetTenant {\n static readonly type = '[Session] Set Tenant';\n constructor(public payload: ABP.BasicItem) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService } from './rest.service';\nimport { Profile, Rest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProfileService {\n constructor(private rest: RestService) {}\n\n get(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/my-profile',\n };\n\n return this.rest.request(request);\n }\n\n update(body: Profile.Response): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/identity/my-profile',\n body,\n };\n\n return this.rest.request(request);\n }\n\n changePassword(body: Profile.ChangePasswordRequest, skipHandleError: boolean = false): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/my-profile/change-password',\n body,\n };\n\n return this.rest.request(request, { skipHandleError });\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetProfile, ChangePassword, UpdateProfile } from '../actions/profile.actions';\nimport { Profile } from '../models/profile';\nimport { ProfileService } from '../services/profile.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'ProfileState',\n defaults: {} as Profile.State,\n})\nexport class ProfileState {\n @Selector()\n static getProfile({ profile }: Profile.State): Profile.Response {\n return profile;\n }\n\n constructor(private profileService: ProfileService) {}\n\n @Action(GetProfile)\n profileGet({ patchState }: StateContext) {\n return this.profileService.get().pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(UpdateProfile)\n profileUpdate({ patchState }: StateContext, { payload }: UpdateProfile) {\n return this.profileService.update(payload).pipe(\n tap(profile =>\n patchState({\n profile,\n }),\n ),\n );\n }\n\n @Action(ChangePassword)\n changePassword(_, { payload }: ChangePassword) {\n return this.profileService.changePassword(payload, true);\n }\n}\n","// Different locales from .NET\n// Key is .NET locale, value is Angular locale\n\nexport default {\n 'ar-sa': 'ar-SA',\n 'ca-ES-valencia': 'ca-ES-VALENCIA',\n 'de-de': 'de',\n 'es-ES': 'es',\n 'en-US': 'en',\n 'fil-Latn': 'en',\n 'ku-Arab': 'en',\n 'ky-Cyrl': 'en',\n 'mi-Latn': 'en',\n 'prs-Arab': 'en',\n 'qut-Latn': 'en',\n nso: 'en',\n quz: 'en',\n 'fr-FR': 'fr',\n 'gd-Latn': 'gd',\n 'ha-Latn': 'ha',\n 'ig-Latn': 'ig',\n 'it-it': 'it',\n 'mn-Cyrl': 'mn',\n 'pt-BR': 'pt',\n 'sd-Arab': 'pa-Arab',\n 'sr-Cyrl-RS': 'sr-Cyrl',\n 'sr-Latn-RS': 'sr-Latn',\n 'tg-Cyrl': 'tg',\n 'tk-Latn': 'tk',\n 'tt-Cyrl': 'tt',\n 'ug-Arab': 'ug',\n 'yo-Latn': 'yo',\n};\n","import { registerLocaleData } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport differentLocales from '../constants/different-locales';\nimport { SessionState } from '../states/session.state';\n\nexport function getInitialData(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n return store.dispatch(new GetAppConfiguration()).toPromise();\n };\n\n return fn;\n}\n\nexport function localeInitializer(injector: Injector) {\n const fn = function() {\n const store: Store = injector.get(Store);\n\n const lang = store.selectSnapshot(SessionState.getLanguage) || 'en';\n\n return new Promise((resolve, reject) => {\n registerLocale(lang).then(() => resolve(), reject);\n });\n };\n\n return fn;\n}\n\nexport function registerLocale(locale: string) {\n return import(\n /* webpackInclude: /(af|am|ar-SA|as|az-Latn|be|bg|bn-BD|bn-IN|bs|ca|ca-ES-VALENCIA|cs|cy|da|de|de|el|en-GB|en|es|en|es-US|es-MX|et|eu|fa|fi|en|fr|fr|fr-CA|ga|gd|gl|gu|ha|he|hi|hr|hu|hy|id|ig|is|it|it|ja|ka|kk|km|kn|ko|kok|en|en|lb|lt|lv|en|mk|ml|mn|mr|ms|mt|nb|ne|nl|nl-BE|nn|en|or|pa|pa-Arab|pl|en|pt|pt-PT|en|en|ro|ru|rw|pa-Arab|si|sk|sl|sq|sr-Cyrl-BA|sr-Cyrl|sr-Latn|sv|sw|ta|te|tg|th|ti|tk|tn|tr|tt|ug|uk|ur|uz-Latn|vi|wo|xh|yo|zh-Hans|zh-Hant|zu)\\.js$/ */\n `@angular/common/locales/${differentLocales[locale] || locale}.js`\n ).then(module => {\n registerLocaleData(module.default);\n });\n}\n","import { Injectable, Optional, SkipSelf, NgZone } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { Actions, Store } from '@ngxs/store';\nimport { noop, Observable } from 'rxjs';\nimport { ConfigState } from '../states/config.state';\nimport { SessionState } from '../states/session.state';\nimport { registerLocale } from '../utils/initial-utils';\n\ntype ShouldReuseRoute = (future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot) => boolean;\n\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService {\n get currentLang(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n constructor(\n private store: Store,\n private router: Router,\n private ngZone: NgZone,\n private actions: Actions,\n @Optional()\n @SkipSelf()\n otherInstance: LocalizationService,\n ) {\n if (otherInstance) throw new Error('LocaleService should have only one instance.');\n }\n\n private setRouteReuse(reuse: ShouldReuseRoute) {\n this.router.routeReuseStrategy.shouldReuseRoute = reuse;\n }\n\n registerLocale(locale: string) {\n const { shouldReuseRoute } = this.router.routeReuseStrategy;\n\n this.setRouteReuse(() => false);\n this.router.navigated = false;\n\n return registerLocale(locale).then(() => {\n this.ngZone.run(async () => {\n await this.router.navigateByUrl(this.router.url).catch(noop);\n this.setRouteReuse(shouldReuseRoute);\n });\n });\n }\n\n get(keys: string, ...interpolateParams: string[]): Observable {\n return this.store.select(ConfigState.getCopy(keys, ...interpolateParams));\n }\n\n instant(keys: string, ...interpolateParams: string[]): string {\n return this.store.selectSnapshot(ConfigState.getCopy(keys, ...interpolateParams));\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { SetLanguage, SetTenant } from '../actions/session.actions';\nimport { ABP, Session } from '../models';\nimport { GetAppConfiguration } from '../actions/config.actions';\nimport { LocalizationService } from '../services/localization.service';\nimport { from, combineLatest } from 'rxjs';\n\n@State({\n name: 'SessionState',\n defaults: {} as Session.State,\n})\nexport class SessionState {\n @Selector()\n static getLanguage({ language }: Session.State): string {\n return language;\n }\n\n @Selector()\n static getTenant({ tenant }: Session.State): ABP.BasicItem {\n return tenant;\n }\n\n constructor(private localizationService: LocalizationService) {}\n\n @Action(SetLanguage)\n setLanguage({ patchState, dispatch }: StateContext, { payload }: SetLanguage) {\n patchState({\n language: payload,\n });\n\n return combineLatest([dispatch(new GetAppConfiguration()), from(this.localizationService.registerLocale(payload))]);\n }\n\n @Action(SetTenant)\n setTenantId({ patchState }: StateContext, { payload }: SetTenant) {\n patchState({\n tenant: payload,\n });\n }\n}\n","import { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { NEVER, Observable, throwError } from 'rxjs';\nimport { catchError, take } from 'rxjs/operators';\nimport { Rest } from '../models/rest';\nimport { ConfigState } from '../states';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestService {\n constructor(private http: HttpClient, private store: Store) {}\n\n handleError(err: any): Observable {\n this.store.dispatch(new RestOccurError(err));\n console.error(err);\n return throwError(err);\n }\n\n request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {\n const { observe = Rest.Observe.Body, skipHandleError } = config;\n const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;\n const { method, ...options } = request;\n return this.http.request(method, url, { observe, ...options } as any).pipe(\n observe === Rest.Observe.Body ? take(1) : null,\n catchError(err => {\n if (skipHandleError) {\n return throwError(err);\n }\n\n return this.handleError(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApplicationConfiguration, Rest } from '../models';\nimport { RestService } from './rest.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationConfigurationService {\n constructor(private rest: RestService) {}\n\n getConfiguration(): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/application-configuration',\n };\n\n return this.rest.request(request);\n }\n}\n","import { ABP } from '../models';\n\nexport function organizeRoutes(\n routes: ABP.FullRoute[],\n wrappers: ABP.FullRoute[] = [],\n parentNameArr = [] as ABP.FullRoute[],\n parentName: string = null,\n): ABP.FullRoute[] {\n const filter = route => {\n if (route.children && route.children.length) {\n route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name);\n }\n\n if (route.parentName && route.parentName !== parentName) {\n parentNameArr.push(route);\n return false;\n }\n\n return true;\n };\n\n if (parentName) {\n // recursive block\n return routes.filter(filter);\n }\n\n const filteredRoutes = routes.filter(filter);\n\n if (parentNameArr.length) {\n return sortRoutes(setChildRoute([...filteredRoutes, ...wrappers], parentNameArr));\n }\n\n return filteredRoutes;\n}\n\nexport function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] {\n return routes.map(route => {\n if (route.children && route.children.length) {\n route.children = setChildRoute(route.children, parentNameArr);\n }\n\n const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name);\n if (foundedChildren && foundedChildren.length) {\n route.children = [...(route.children || []), ...foundedChildren];\n }\n\n return route;\n });\n}\n\nexport function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] {\n if (!routes.length) return [];\n return routes\n .sort((a, b) => a.order - b.order)\n .map(route => {\n if (route.children && route.children.length) {\n route.children = sortRoutes(route.children);\n }\n\n return route;\n });\n}\n","import { State, Selector, createSelector, Action, StateContext, Store } from '@ngxs/store';\nimport { Config, ABP } from '../models';\nimport { GetAppConfiguration, PatchRouteByName } from '../actions/config.actions';\nimport { ApplicationConfigurationService } from '../services/application-configuration.service';\nimport { tap, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { SetLanguage } from '../actions';\nimport { SessionState } from './session.state';\nimport { of } from 'rxjs';\nimport { setChildRoute, sortRoutes, organizeRoutes } from '../utils/route-utils';\n\n@State({\n name: 'ConfigState',\n defaults: {} as Config.State,\n})\nexport class ConfigState {\n @Selector()\n static getAll(state: Config.State) {\n return state;\n }\n\n @Selector()\n static getApplicationInfo(state: Config.State): Config.Application {\n return state.environment.application || ({} as Config.Application);\n }\n\n static getOne(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return state[key];\n },\n );\n\n return selector;\n }\n\n static getDeep(keys: string[] | string) {\n if (typeof keys === 'string') {\n keys = keys.split('.');\n }\n\n if (!Array.isArray(keys)) {\n throw new Error('The argument must be a dot string or an string array.');\n }\n\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return (keys as string[]).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state);\n },\n );\n\n return selector;\n }\n\n static getRoute(path?: string, name?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n const { flattedRoutes } = state;\n return (flattedRoutes as ABP.FullRoute[]).find(route => {\n if (path && route.path === path) {\n return route;\n } else if (name && route.name === name) {\n return route;\n }\n });\n },\n );\n\n return selector;\n }\n\n static getApiUrl(key?: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): string {\n return state.environment.apis[key || 'default'].url;\n },\n );\n\n return selector;\n }\n\n static getSetting(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n return snq(() => state.setting.values[key]);\n },\n );\n\n return selector;\n }\n\n static getGrantedPolicy(key: string) {\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State): boolean {\n if (!key) return true;\n return snq(() => state.auth.grantedPolicies[key], false);\n },\n );\n\n return selector;\n }\n\n static getCopy(key: string, ...interpolateParams: string[]) {\n if (!key) key = '';\n\n const keys = key.split('::') as string[];\n const selector = createSelector(\n [ConfigState],\n function(state: Config.State) {\n if (!state.localization) return key;\n\n const { defaultResourceName } = state.environment.localization;\n if (keys[0] === '') {\n if (!defaultResourceName) {\n throw new Error(\n `Please check your environment. May you forget set defaultResourceName? \n Here is the example:\n { production: false,\n localization: {\n defaultResourceName: 'MyProjectName'\n }\n }`,\n );\n }\n\n keys[0] = snq(() => defaultResourceName);\n }\n\n let copy = (keys as any).reduce((acc, val) => {\n if (acc) {\n return acc[val];\n }\n\n return undefined;\n }, state.localization.values);\n\n interpolateParams = interpolateParams.filter(params => params != null);\n if (copy && interpolateParams && interpolateParams.length) {\n interpolateParams.forEach(param => {\n copy = copy.replace(/[\\'\\\"]?\\{[\\d]+\\}[\\'\\\"]?/, param);\n });\n }\n\n return copy || key;\n },\n );\n\n return selector;\n }\n\n constructor(private appConfigurationService: ApplicationConfigurationService, private store: Store) {}\n\n @Action(GetAppConfiguration)\n addData({ patchState, dispatch }: StateContext) {\n return this.appConfigurationService.getConfiguration().pipe(\n tap(configuration =>\n patchState({\n ...configuration,\n }),\n ),\n switchMap(configuration => {\n let defaultLang: string = configuration.setting.values['Abp.Localization.DefaultLanguage'];\n\n if (defaultLang.includes(';')) {\n defaultLang = defaultLang.split(';')[0];\n }\n\n return this.store.selectSnapshot(SessionState.getLanguage) ? of(null) : dispatch(new SetLanguage(defaultLang));\n }),\n );\n }\n\n @Action(PatchRouteByName)\n patchRoute({ patchState, getState }: StateContext, { name, newValue }: PatchRouteByName) {\n let routes: ABP.FullRoute[] = getState().routes;\n\n const index = routes.findIndex(route => route.name === name);\n\n routes = patchRouteDeep(routes, name, newValue);\n\n return patchState({\n routes,\n });\n }\n}\n\nfunction patchRouteDeep(\n routes: ABP.FullRoute[],\n name: string,\n newValue: Partial,\n parentUrl: string = null,\n): ABP.FullRoute[] {\n routes = routes.map(route => {\n if (route.name === name) {\n if (newValue.path) {\n newValue.url = `${parentUrl}/${newValue.path}`;\n }\n\n if (newValue.children && newValue.children.length) {\n newValue.children = newValue.children.map(child => ({\n ...child,\n url: `${parentUrl}/${route.path}/${child.path}`,\n }));\n }\n\n return { ...route, ...newValue };\n } else if (route.children && route.children.length) {\n route.children = patchRouteDeep(route.children, name, newValue, (parentUrl || '/') + route.path);\n }\n\n return route;\n });\n\n if (parentUrl) {\n // recursive block\n return routes;\n }\n\n return organizeRoutes(routes);\n}\n","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nexport const takeUntilDestroy = (componentInstance, destroyMethodName = 'ngOnDestroy') => (\n source: Observable,\n) => {\n const originalDestroy = componentInstance[destroyMethodName];\n if (isFunction(originalDestroy) === false) {\n throw new Error(\n `${componentInstance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`,\n );\n }\n if (!componentInstance['__takeUntilDestroy']) {\n componentInstance['__takeUntilDestroy'] = new Subject();\n\n componentInstance[destroyMethodName] = function() {\n isFunction(originalDestroy) && originalDestroy.apply(this, arguments);\n componentInstance['__takeUntilDestroy'].next(true);\n componentInstance['__takeUntilDestroy'].complete();\n };\n }\n return source.pipe(takeUntil(componentInstance['__takeUntilDestroy']));\n};\n","import { Component, Input, OnDestroy, Type } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router, UrlSegment } from '@angular/router';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport snq from 'snq';\nimport { eLayoutType } from '../enums/common';\nimport { Config } from '../models/config';\nimport { ABP } from '../models/common';\nimport { ConfigState } from '../states/config.state';\nimport { takeUntilDestroy } from '../utils/rxjs-utils';\n\n@Component({\n selector: 'abp-dynamic-layout',\n template: `\n \n\n \n \n `,\n})\nexport class DynamicLayoutComponent implements OnDestroy {\n @Select(ConfigState.getOne('requirements'))\n requirements$: Observable;\n\n layout: Type;\n\n constructor(private router: Router, private route: ActivatedRoute, private store: Store) {\n const {\n requirements: { layouts },\n routes,\n } = this.store.selectSnapshot(ConfigState.getAll);\n\n if ((this.route.snapshot.data || {}).layout) {\n this.layout = layouts\n .filter(l => !!l)\n .find((l: any) => snq(() => l.type.toLowerCase().indexOf(this.route.snapshot.data.layout), -1) > -1);\n }\n\n this.router.events.pipe(takeUntilDestroy(this)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n const { segments } = this.router.parseUrl(event.url).root.children.primary;\n\n const layout = (this.route.snapshot.data || {}).layout || findLayout(segments, routes);\n\n this.layout = layouts\n .filter(l => !!l)\n .find((l: any) => snq(() => l.type.toLowerCase().indexOf(layout), -1) > -1);\n }\n });\n }\n\n ngOnDestroy() {}\n}\n\nfunction findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutType {\n let layout = eLayoutType.empty;\n\n const route = routes\n .reduce((acc, val) => (val.wrapper ? [...acc, ...val.children] : [...acc, val]), [])\n .find(r => r.path === segments[0].path);\n\n if (route) {\n if (route.layout) {\n layout = route.layout;\n }\n\n if (route.children && route.children.length && segments.length > 1) {\n const child = route.children.find(c => c.path === segments[1].path);\n\n if (child && child.layout) {\n layout = child.layout;\n }\n }\n }\n\n return layout;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-router-outlet',\n template: `\n \n `,\n})\nexport class RouterOutletComponent {}\n","import { Directive, ElementRef, Input, AfterViewInit } from '@angular/core';\n\n@Directive({\n selector: '[autofocus]',\n})\nexport class AutofocusDirective implements AfterViewInit {\n @Input('autofocus')\n delay: number = 0;\n\n constructor(private elRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => this.elRef.nativeElement.focus(), this.delay);\n }\n}\n","import { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[abpEllipsis]',\n})\nexport class EllipsisDirective implements AfterContentInit {\n @Input('abpEllipsis')\n width: string;\n\n @HostBinding('title')\n @Input()\n title: string;\n\n @Input('abpEllipsisEnabled')\n enabled = true;\n\n @HostBinding('class.abp-ellipsis-inline')\n get inlineClass() {\n return this.enabled && this.width;\n }\n\n @HostBinding('class.abp-ellipsis')\n get class() {\n return this.enabled && !this.width;\n }\n\n @HostBinding('style.max-width')\n get maxWidth() {\n return this.enabled && this.width ? this.width || '170px' : undefined;\n }\n\n constructor(private cdRef: ChangeDetectorRef, private elRef: ElementRef) {}\n\n ngAfterContentInit() {\n setTimeout(() => {\n const title = this.title;\n this.title = title || (this.elRef.nativeElement as HTMLElement).innerText;\n\n if (this.title !== title) {\n this.cdRef.detectChanges();\n }\n }, 0);\n }\n}\n","import {\n Directive,\n EmbeddedViewRef,\n Input,\n IterableChangeRecord,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n OnChanges,\n TemplateRef,\n TrackByFunction,\n ViewContainerRef,\n} from '@angular/core';\nimport compare from 'just-compare';\nimport clone from 'just-clone';\n\nexport type CompareFn = (value: T, comparison: T) => boolean;\n\nclass AbpForContext {\n constructor(public $implicit: any, public index: number, public count: number, public list: any[]) {}\n}\n\nclass RecordView {\n constructor(public record: IterableChangeRecord, public view: EmbeddedViewRef) {}\n}\n\n@Directive({\n selector: '[abpFor]',\n})\nexport class ForDirective implements OnChanges {\n @Input('abpForOf')\n items: any[];\n\n @Input('abpForOrderBy')\n orderBy: string;\n\n @Input('abpForOrderDir')\n orderDir: 'ASC' | 'DESC';\n\n @Input('abpForFilterBy')\n filterBy: string;\n\n @Input('abpForFilterVal')\n filterVal: any;\n\n @Input('abpForTrackBy')\n trackBy;\n\n @Input('abpForCompareBy')\n compareBy: CompareFn;\n\n @Input('abpForEmptyRef')\n emptyRef: TemplateRef;\n\n private differ: IterableDiffer;\n\n private isShowEmptyRef: boolean;\n\n get compareFn(): CompareFn {\n return this.compareBy || compare;\n }\n\n get trackByFn(): TrackByFunction {\n return this.trackBy || ((index: number, item: any) => (item as any).id || index);\n }\n\n constructor(\n private tempRef: TemplateRef,\n private vcRef: ViewContainerRef,\n private differs: IterableDiffers,\n ) {}\n\n private iterateOverAppliedOperations(changes: IterableChanges) {\n const rw: RecordView[] = [];\n\n changes.forEachOperation((record: IterableChangeRecord, previousIndex: number, currentIndex: number) => {\n if (record.previousIndex == null) {\n const view = this.vcRef.createEmbeddedView(\n this.tempRef,\n new AbpForContext(null, -1, -1, this.items),\n currentIndex,\n );\n\n rw.push(new RecordView(record, view));\n } else if (currentIndex == null) {\n this.vcRef.remove(previousIndex);\n } else {\n const view = this.vcRef.get(previousIndex);\n this.vcRef.move(view, currentIndex);\n\n rw.push(new RecordView(record, view as EmbeddedViewRef));\n }\n });\n\n for (let i = 0, l = rw.length; i < l; i++) {\n rw[i].view.context.$implicit = rw[i].record.item;\n }\n }\n\n private iterateOverAttachedViews(changes: IterableChanges) {\n for (let i = 0, l = this.vcRef.length; i < l; i++) {\n const viewRef = this.vcRef.get(i) as EmbeddedViewRef;\n viewRef.context.index = i;\n viewRef.context.count = l;\n viewRef.context.list = this.items;\n }\n\n changes.forEachIdentityChange((record: IterableChangeRecord) => {\n const viewRef = this.vcRef.get(record.currentIndex) as EmbeddedViewRef;\n viewRef.context.$implicit = record.item;\n });\n }\n\n private projectItems(items: any[]): void {\n if (!items.length && this.emptyRef) {\n this.vcRef.createEmbeddedView(this.emptyRef).rootNodes;\n this.isShowEmptyRef = true;\n\n return;\n }\n\n if (this.emptyRef && this.isShowEmptyRef) {\n this.vcRef.clear();\n this.isShowEmptyRef = false;\n }\n\n if (!this.differ && items) {\n this.differ = this.differs.find(items).create(this.trackByFn);\n }\n\n if (this.differ) {\n const changes = this.differ.diff(items);\n\n if (changes) {\n this.iterateOverAppliedOperations(changes);\n this.iterateOverAttachedViews(changes);\n }\n }\n }\n\n private sortItems(items: any[]) {\n if (this.orderBy) {\n items.sort((a, b) => (a[this.orderBy] > b[this.orderBy] ? 1 : a[this.orderBy] < b[this.orderBy] ? -1 : 0));\n } else {\n items.sort();\n }\n }\n\n ngOnChanges() {\n let items = clone(this.items) as any[];\n if (!Array.isArray(items)) return;\n\n const compareFn = this.compareFn;\n\n if (typeof this.filterBy !== 'undefined') {\n items = items.filter(item => compareFn(item[this.filterBy], this.filterVal));\n }\n\n switch (this.orderDir) {\n case 'ASC':\n this.sortItems(items);\n this.projectItems(items);\n break;\n\n case 'DESC':\n this.sortItems(items);\n items.reverse();\n this.projectItems(items);\n break;\n\n default:\n this.projectItems(items);\n }\n }\n}\n","export function noop() {\n const fn = function() {};\n return fn;\n}\n","export function uuid(a?: any): string {\n return a\n ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Self,\n} from '@angular/core';\nimport { FormControl, FormGroup, FormGroupDirective } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { takeUntilDestroy } from '../utils';\n\ntype Controls = { [key: string]: FormControl } | FormGroup[];\n\n@Directive({\n selector: 'form[ngSubmit][formGroup]',\n})\nexport class FormSubmitDirective implements OnInit, OnDestroy {\n @Input()\n notValidateOnSubmit: string | boolean;\n\n @Output()\n ngSubmit = new EventEmitter();\n\n executedNgSubmit: boolean = false;\n\n constructor(\n @Self() private formGroupDirective: FormGroupDirective,\n private host: ElementRef,\n private cdRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.formGroupDirective.ngSubmit.pipe(takeUntilDestroy(this)).subscribe(() => {\n this.markAsDirty();\n this.executedNgSubmit = true;\n });\n\n fromEvent(this.host.nativeElement as HTMLElement, 'keyup')\n .pipe(\n debounceTime(200),\n filter((key: KeyboardEvent) => key && key.key === 'Enter'),\n takeUntilDestroy(this),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n }\n\n this.executedNgSubmit = false;\n });\n\n fromEvent(this.host.nativeElement, 'submit')\n .pipe(\n takeUntilDestroy(this),\n filter(() => !this.notValidateOnSubmit && typeof this.notValidateOnSubmit !== 'string'),\n )\n .subscribe(() => {\n if (!this.executedNgSubmit) {\n this.markAsDirty();\n }\n });\n }\n\n ngOnDestroy(): void {}\n\n markAsDirty() {\n const { form } = this.formGroupDirective;\n\n setDirty(form.controls as { [key: string]: FormControl });\n form.markAsDirty();\n\n this.cdRef.detectChanges();\n }\n}\n\nfunction setDirty(controls: Controls) {\n if (Array.isArray(controls)) {\n controls.forEach(group => {\n setDirty(group.controls as { [key: string]: FormControl });\n });\n return;\n }\n\n Object.keys(controls).forEach(key => {\n controls[key].markAsDirty();\n controls[key].updateValueAndValidity();\n });\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Optional, Renderer2 } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\n\n@Directive({\n selector: '[abpPermission]',\n})\nexport class PermissionDirective implements OnInit, OnDestroy {\n @Input('abpPermission') condition: string;\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2, private store: Store) {}\n\n ngOnInit() {\n if (this.condition) {\n this.store\n .select(ConfigState.getGrantedPolicy(this.condition))\n .pipe(takeUntilDestroy(this))\n .subscribe(isGranted => {\n if (!isGranted) {\n this.renderer.removeChild(\n (this.elRef.nativeElement as HTMLElement).parentElement,\n this.elRef.nativeElement,\n );\n }\n });\n }\n }\n\n ngOnDestroy(): void {}\n}\n","import { Directive, Input, Optional, ElementRef, Renderer2, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport snq from 'snq';\n\n@Directive({\n selector: '[abpVisibility]',\n})\nexport class VisibilityDirective implements AfterViewInit {\n @Input('abpVisibility')\n focusedElement: HTMLElement;\n\n @Input()\n mutationObserverEnabled: boolean = true;\n\n completed$ = new Subject();\n\n constructor(@Optional() private elRef: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n let observer: MutationObserver;\n if (this.mutationObserverEnabled) {\n observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (!mutation.target) return;\n\n const htmlNodes = snq(\n () => Array.from(mutation.target.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) {\n this.removeFromDOM();\n this.disconnect();\n } else {\n setTimeout(() => {\n this.disconnect();\n }, 0);\n }\n });\n });\n\n observer.observe(this.focusedElement, {\n childList: true,\n });\n } else {\n setTimeout(() => {\n const htmlNodes = snq(\n () => Array.from(this.focusedElement.childNodes).filter(node => node instanceof HTMLElement),\n [],\n );\n\n if (!htmlNodes.length) this.removeFromDOM();\n }, 0);\n }\n\n this.completed$.subscribe(() => observer.disconnect());\n }\n\n disconnect() {\n this.completed$.next();\n this.completed$.complete();\n }\n\n removeFromDOM() {\n this.renderer.removeChild(this.elRef.nativeElement.parentElement, this.elRef.nativeElement);\n }\n}\n","export const enum eLayoutType {\n account = 'account',\n application = 'application',\n empty = 'empty',\n setting = 'setting',\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Observable } from 'rxjs';\nimport { Navigate } from '@ngxs/router-plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n constructor(private oauthService: OAuthService, private store: Store, private router: Router) {}\n\n canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree {\n const hasValidAccessToken = this.oauthService.hasValidAccessToken();\n if (hasValidAccessToken) {\n return hasValidAccessToken;\n }\n\n return this.router.createUrlTree(['/account/login'], { state: { redirectUrl: state.url } });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { ConfigState } from '../states';\nimport { tap } from 'rxjs/operators';\nimport { RestOccurError } from '../actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionGuard implements CanActivate {\n constructor(private store: Store) {}\n\n canActivate({ data }: ActivatedRouteSnapshot): Observable {\n const resource = data.requiredPolicy as string;\n return this.store.select(ConfigState.getGrantedPolicy(resource)).pipe(\n tap(access => {\n if (!access) {\n this.store.dispatch(new RestOccurError({ status: 403 }));\n }\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { Store } from '@ngxs/store';\nimport { SessionState } from '../states';\nimport { StartLoader, StopLoader } from '../actions/loader.actions';\nimport { finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n constructor(private oAuthService: OAuthService, private store: Store) {}\n\n intercept(request: HttpRequest, next: HttpHandler) {\n this.store.dispatch(new StartLoader(request));\n\n const headers = {} as any;\n\n const token = this.oAuthService.getAccessToken();\n if (!request.headers.has('Authorization') && token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const lang = this.store.selectSnapshot(SessionState.getLanguage);\n if (!request.headers.has('Accept-Language') && lang) {\n headers['Accept-Language'] = lang;\n }\n\n const tenant = this.store.selectSnapshot(SessionState.getTenant);\n if (!request.headers.has('__tenant') && tenant) {\n headers['__tenant'] = tenant.id;\n }\n\n return next\n .handle(\n request.clone({\n setHeaders: headers,\n }),\n )\n .pipe(finalize(() => this.store.dispatch(new StopLoader(request))));\n }\n}\n","export namespace ApplicationConfiguration {\n export interface Response {\n localization: Localization;\n auth: Auth;\n setting: Setting;\n currentUser: CurrentUser;\n features: Features;\n }\n\n export interface Localization {\n values: LocalizationValue;\n languages: Language[];\n }\n\n export interface LocalizationValue {\n [key: string]: { [key: string]: string };\n }\n\n export interface Language {\n cultureName: string;\n uiCultureName: string;\n displayName: string;\n flagIcon: string;\n }\n\n export interface Auth {\n policies: Policy;\n grantedPolicies: Policy;\n }\n\n export interface Policy {\n [key: string]: boolean;\n }\n\n export interface Setting {\n values: { [key: string]: 'Abp.Localization.DefaultLanguage' };\n }\n\n export interface CurrentUser {\n isAuthenticated: boolean;\n id: string;\n tenantId: string;\n userName: string;\n }\n\n export interface Features {\n values: Setting;\n }\n}\n","import { Config } from './config';\nimport { eLayoutType } from '../enums/common';\n\nexport namespace ABP {\n export interface Root {\n environment: Partial;\n requirements: Config.Requirements;\n }\n\n export type PagedResponse = {\n totalCount: number;\n } & PagedItemsResponse;\n\n export interface PagedItemsResponse {\n items: T[];\n }\n\n export interface PageQueryParams {\n filter?: string;\n sorting?: string;\n skipCount?: number;\n maxResultCount?: number;\n }\n\n export interface Route {\n children?: Route[];\n invisible?: boolean;\n layout?: eLayoutType;\n name: string;\n order?: number;\n parentName?: string;\n path: string;\n requiredPolicy?: string;\n iconClass?: string;\n }\n\n export interface FullRoute extends Route {\n url?: string;\n wrapper?: boolean;\n }\n\n export interface BasicItem {\n id: string;\n name: string;\n }\n}\n","import { AuthConfig } from 'angular-oauth2-oidc';\nimport { Type } from '@angular/core';\nimport { ApplicationConfiguration } from './application-configuration';\nimport { ABP } from './common';\n\nexport namespace Config {\n export type State = ApplicationConfiguration.Response &\n ABP.Root & { environment: Environment } & {\n routes: ABP.FullRoute[];\n flattedRoutes: ABP.FullRoute[];\n };\n\n export interface Environment {\n application: Application;\n production: boolean;\n oAuthConfig: AuthConfig;\n apis: Apis;\n localization: { defaultResourceName: string };\n }\n\n export interface Application {\n name: string;\n logoUrl?: string;\n }\n\n export interface Apis {\n [key: string]: { [key: string]: string };\n }\n\n export interface Requirements {\n layouts: Type[];\n }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\n\nexport namespace Rest {\n export interface Config {\n skipHandleError?: boolean;\n observe?: Observe;\n }\n\n export const enum Observe {\n Body = 'body',\n Events = 'events',\n Response = 'response',\n }\n\n export const enum ResponseType {\n ArrayBuffer = 'arraybuffer',\n Blob = 'blob',\n JSON = 'json',\n Text = 'text',\n }\n\n export interface Request {\n body?: T;\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n method: string;\n params?:\n | HttpParams\n | {\n [param: string]: any;\n };\n reportProgress?: boolean;\n responseType?: ResponseType;\n url: string;\n withCredentials?: boolean;\n }\n}\n","import { ABP } from '../models';\n\nexport namespace Session {\n export interface State {\n language: string;\n tenant: ABP.BasicItem;\n }\n}\n","export namespace Profile {\n export interface State {\n profile: Response;\n }\n\n export interface Response {\n userName: string;\n email: string;\n name: string;\n surname: string;\n phoneNumber: string;\n }\n\n export interface ChangePasswordRequest {\n currentPassword: string;\n newPassword: string;\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Router, Routes } from '@angular/router';\nimport { actionMatcher, InitState, NgxsNextPluginFn, NgxsPlugin, setValue, UpdateState } from '@ngxs/store';\nimport snq from 'snq';\nimport { ABP } from '../../models';\nimport { organizeRoutes } from '../../utils/route-utils';\nimport clone from 'just-clone';\n\nexport const NGXS_CONFIG_PLUGIN_OPTIONS = new InjectionToken('NGXS_CONFIG_PLUGIN_OPTIONS');\n\n@Injectable()\nexport class ConfigPlugin implements NgxsPlugin {\n private initialized: boolean = false;\n\n constructor(@Inject(NGXS_CONFIG_PLUGIN_OPTIONS) private options: ABP.Root, private router: Router) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n const matches = actionMatcher(event);\n const isInitAction = matches(InitState) || matches(UpdateState);\n\n // const layouts = snq(() => this.options.requirements.layouts.filter(layout => layout instanceof Type), []);\n if (isInitAction && !this.initialized) {\n let { routes, wrappers } = transformRoutes(this.router.config);\n routes = organizeRoutes(routes, wrappers);\n const flattedRoutes = flatRoutes(clone(routes));\n state = setValue(state, 'ConfigState', {\n ...(state.ConfigState && { ...state.ConfigState }),\n ...this.options,\n routes,\n flattedRoutes,\n });\n\n this.initialized = true;\n }\n\n return next(state, event);\n }\n}\n\nfunction transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): any {\n const abpRoutes: ABP.FullRoute[] = routes\n .filter(route => {\n return snq(() => route.data.routes.routes.find(r => r.path === route.path), false);\n })\n .reduce((acc, val) => [...acc, ...val.data.routes.routes], []);\n\n wrappers = abpRoutes.filter(ar => ar.wrapper);\n const transformed = [] as ABP.FullRoute[];\n routes\n .filter(route => (route.data || {}).routes && (route.component || route.loadChildren))\n .forEach(route => {\n const abpPackage = abpRoutes.find(\n abp => abp.path.toLowerCase() === route.path.toLowerCase() && snq(() => route.data.routes.routes.length, false),\n );\n const { length } = transformed;\n\n if (abpPackage) {\n transformed.push(abpPackage);\n }\n\n if (transformed.length === length) {\n transformed.push({\n ...route.data.routes,\n path: route.path,\n name: snq(() => route.data.routes.name, route.path),\n children: route.data.routes.children || [],\n } as ABP.FullRoute);\n }\n });\n\n return { routes: setUrls(transformed), wrappers };\n}\n\nfunction setUrls(routes: ABP.FullRoute[], parentUrl?: string): ABP.FullRoute[] {\n if (parentUrl) {\n // this if block using for only recursive call\n\n return routes.map(route => ({\n ...route,\n url: `${parentUrl}/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `${parentUrl}/${route.path}`),\n }),\n }));\n }\n\n return routes.map(route => ({\n ...route,\n url: `/${route.path}`,\n ...(route.children &&\n route.children.length && {\n children: setUrls(route.children, `/${route.path}`),\n }),\n }));\n}\n\nfunction flatRoutes(routes: ABP.FullRoute[]): ABP.FullRoute[] {\n const flat = (r: ABP.FullRoute[]) => {\n return r.reduce((acc, val) => {\n let value: ABP.FullRoute[] = [val];\n if (val.children) {\n value = [val, ...flat(val.children)];\n }\n\n return [...acc, ...value];\n }, []);\n };\n\n return flat(routes);\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n constructor(private store: Store) {}\n\n getAll() {\n return this.store.selectSnapshot(ConfigState.getAll);\n }\n\n getOne(key: string) {\n return this.store.selectSnapshot(ConfigState.getOne(key));\n }\n\n getDeep(keys: string[] | string) {\n return this.store.selectSnapshot(ConfigState.getDeep(keys));\n }\n\n getSetting(key: string) {\n return this.store.selectSnapshot(ConfigState.getSetting(key));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { uuid } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyLoadService {\n loadedLibraries: { [url: string]: ReplaySubject } = {};\n\n load(\n url: string,\n type: 'script' | 'style',\n content: string = '',\n targetQuery: string = 'body',\n position: InsertPosition = 'afterend',\n ): Observable {\n if (!url && !content) return;\n const key = url ? url.slice(url.lastIndexOf('/') + 1) : uuid();\n\n if (this.loadedLibraries[key]) {\n return this.loadedLibraries[key].asObservable();\n }\n\n this.loadedLibraries[key] = new ReplaySubject();\n\n let library;\n if (type === 'script') {\n library = document.createElement('script');\n library.type = 'text/javascript';\n if (url) {\n (library as HTMLScriptElement).src = url;\n }\n\n (library as HTMLScriptElement).text = content;\n } else if (url) {\n library = document.createElement('link');\n library.type = 'text/css';\n (library as HTMLLinkElement).rel = 'stylesheet';\n\n if (url) {\n (library as HTMLLinkElement).href = url;\n }\n } else {\n library = document.createElement('style');\n (library as HTMLStyleElement).textContent = content;\n }\n\n library.onload = () => {\n this.loadedLibraries[key].next();\n this.loadedLibraries[key].complete();\n };\n\n document.querySelector(targetQuery).insertAdjacentElement(position, library);\n\n return this.loadedLibraries[key].asObservable();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Config } from '../models';\n\nexport function environmentFactory(environment: Config.Environment) {\n return {\n ...environment,\n };\n}\n\nexport function configFactory(config: Config.Requirements) {\n return {\n ...config,\n };\n}\n\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\n\nexport const CONFIG = new InjectionToken('CONFIG');\n","import { Directive, Output, Renderer2, ElementRef, OnInit, EventEmitter, Input } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[input.debounce]',\n})\nexport class InputEventDebounceDirective implements OnInit {\n @Input() debounce: number = 300;\n\n @Output('input.debounce') debounceEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'input')\n .pipe(\n debounceTime(this.debounce),\n takeUntilDestroy(this),\n )\n .subscribe((event: Event) => {\n this.debounceEvent.emit(event);\n });\n }\n}\n","import { Directive, ElementRef, EventEmitter, OnInit, Output, Renderer2 } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroy } from '@ngx-validate/core';\n\n@Directive({\n selector: '[click.stop]',\n})\nexport class ClickEventStopPropagationDirective implements OnInit {\n @Output('click.stop') stopPropEvent = new EventEmitter();\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit(): void {\n fromEvent(this.el.nativeElement, 'click')\n .pipe(takeUntilDestroy(this))\n .subscribe((event: MouseEvent) => {\n event.stopPropagation();\n this.stopPropEvent.emit(event);\n });\n }\n}\n","import { Pipe, PipeTransform, OnDestroy } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { ConfigState } from '../states';\nimport { takeUntilDestroy } from '../utils';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Pipe({\n name: 'abpLocalization',\n pure: false, // required to update the value\n})\nexport class LocalizationPipe implements PipeTransform, OnDestroy {\n initialValue: string = '';\n\n value: string;\n\n destroy$ = new Subject();\n\n constructor(private store: Store) {}\n\n transform(value: string = '', ...interpolateParams: string[]): string {\n if (this.initialValue !== value) {\n this.initialValue = value;\n this.destroy$.next();\n\n this.store\n .select(\n ConfigState.getCopy(\n value,\n ...interpolateParams.reduce((acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), []),\n ),\n )\n .pipe(\n takeUntil(this.destroy$),\n takeUntilDestroy(this),\n distinctUntilChanged(),\n )\n .subscribe(copy => (this.value = copy));\n }\n\n return this.value;\n }\n\n ngOnDestroy() {}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'abpSort',\n pure: false\n})\nexport class SortPipe implements PipeTransform {\n transform(value: any[], sortOrder: string): any {\n sortOrder = sortOrder.toLowerCase();\n if(sortOrder === \"desc\") return value.reverse();\n else return value;\n }\n}","import { LOCALE_ID, Provider } from '@angular/core';\nimport localesMapping from '../constants/different-locales';\nimport { LocalizationService } from '../services/localization.service';\n\nexport class LocaleId extends String {\n constructor(private localizationService: LocalizationService) {\n super();\n }\n\n toString(): string {\n const { currentLang } = this.localizationService;\n return localesMapping[currentLang] || currentLang;\n }\n\n valueOf(): string {\n return this.toString();\n }\n}\n\nexport const LocaleProvider: Provider = {\n provide: LOCALE_ID,\n useClass: LocaleId,\n deps: [LocalizationService],\n};\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxsRouterPluginModule } from '@ngxs/router-plugin';\nimport { NgxsStoragePluginModule } from '@ngxs/storage-plugin';\nimport { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';\nimport { DynamicLayoutComponent } from './components/dynamic-layout.component';\nimport { RouterOutletComponent } from './components/router-outlet.component';\nimport { AutofocusDirective } from './directives/autofocus.directive';\nimport { InputEventDebounceDirective } from './directives/debounce.directive';\nimport { EllipsisDirective } from './directives/ellipsis.directive';\nimport { FormSubmitDirective } from './directives/form-submit.directive';\nimport { PermissionDirective } from './directives/permission.directive';\nimport { ClickEventStopPropagationDirective } from './directives/stop-propagation.directive';\nimport { VisibilityDirective } from './directives/visibility.directive';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ABP } from './models/common';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { SortPipe } from './pipes/sort.pipe';\nimport { LocaleProvider } from './providers/locale.provider';\nimport { ConfigState } from './states/config.state';\nimport { ProfileState } from './states/profile.state';\nimport { SessionState } from './states/session.state';\nimport { getInitialData, localeInitializer } from './utils/initial-utils';\nimport { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config/config.plugin';\nimport { ForDirective } from './directives/for.directive';\nimport { AbstractNgModelComponent } from './abstracts/ng-model.component';\n\n@NgModule({\n imports: [\n NgxsModule.forFeature([ProfileState, SessionState, ConfigState]),\n NgxsStoragePluginModule.forRoot({ key: 'SessionState' }),\n NgxsRouterPluginModule.forRoot(),\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n ],\n declarations: [\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n ForDirective,\n FormSubmitDirective,\n LocalizationPipe,\n SortPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n ClickEventStopPropagationDirective,\n AbstractNgModelComponent,\n ],\n exports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n RouterOutletComponent,\n DynamicLayoutComponent,\n AutofocusDirective,\n EllipsisDirective,\n ForDirective,\n FormSubmitDirective,\n LocalizationPipe,\n SortPipe,\n PermissionDirective,\n VisibilityDirective,\n InputEventDebounceDirective,\n LocalizationPipe,\n ClickEventStopPropagationDirective,\n AbstractNgModelComponent,\n ],\n providers: [LocalizationPipe],\n entryComponents: [RouterOutletComponent, DynamicLayoutComponent],\n})\nexport class CoreModule {\n static forRoot(options = {} as ABP.Root): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [\n LocaleProvider,\n {\n provide: NGXS_PLUGINS,\n useClass: ConfigPlugin,\n multi: true,\n },\n {\n provide: NGXS_CONFIG_PLUGIN_OPTIONS,\n useValue: options,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: getInitialData,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: localeInitializer,\n },\n ],\n };\n }\n}\n"],"names":["tslib_1.__decorate","differentLocales","noop","takeUntilDestroy","tslib_1.__extends"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/core/lib/abstracts/index.d.ts b/npm/ng-packs/dist/core/lib/abstracts/index.d.ts new file mode 100644 index 0000000000..a4e501a850 --- /dev/null +++ b/npm/ng-packs/dist/core/lib/abstracts/index.d.ts @@ -0,0 +1 @@ +export * from './ng-model.component'; diff --git a/npm/ng-packs/dist/core/lib/abstracts/ng-model.component.d.ts b/npm/ng-packs/dist/core/lib/abstracts/ng-model.component.d.ts new file mode 100644 index 0000000000..95ffc8b068 --- /dev/null +++ b/npm/ng-packs/dist/core/lib/abstracts/ng-model.component.d.ts @@ -0,0 +1,17 @@ +import { ControlValueAccessor } from '@angular/forms'; +import { ChangeDetectorRef, Injector } from '@angular/core'; +export declare class AbstractNgModelComponent implements ControlValueAccessor { + injector: Injector; + disabled: boolean; + value: T; + onChange: (value: T) => {}; + onTouched: () => {}; + protected _value: T; + protected cdRef: ChangeDetectorRef; + constructor(injector: Injector); + notifyValueChange(): void; + writeValue(value: T): void; + registerOnChange(fn: any): void; + registerOnTouched(fn: any): void; + setDisabledState(isDisabled: boolean): void; +} diff --git a/npm/ng-packs/dist/core/lib/components/dynamic-layout.component.d.ts b/npm/ng-packs/dist/core/lib/components/dynamic-layout.component.d.ts index 713ad7fbc9..07b042305f 100644 --- a/npm/ng-packs/dist/core/lib/components/dynamic-layout.component.d.ts +++ b/npm/ng-packs/dist/core/lib/components/dynamic-layout.component.d.ts @@ -1,13 +1,14 @@ import { OnDestroy, Type } from '@angular/core'; -import { Router } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; import { Store } from '@ngxs/store'; import { Observable } from 'rxjs'; -import { Config } from '../models'; +import { Config } from '../models/config'; export declare class DynamicLayoutComponent implements OnDestroy { private router; + private route; private store; requirements$: Observable; layout: Type; - constructor(router: Router, store: Store); + constructor(router: Router, route: ActivatedRoute, store: Store); ngOnDestroy(): void; } diff --git a/npm/ng-packs/dist/core/lib/directives/for.directive.d.ts b/npm/ng-packs/dist/core/lib/directives/for.directive.d.ts new file mode 100644 index 0000000000..4d8f886ce3 --- /dev/null +++ b/npm/ng-packs/dist/core/lib/directives/for.directive.d.ts @@ -0,0 +1,33 @@ +import { IterableDiffers, OnChanges, TemplateRef, TrackByFunction, ViewContainerRef } from '@angular/core'; +export declare type CompareFn = (value: T, comparison: T) => boolean; +declare class AbpForContext { + $implicit: any; + index: number; + count: number; + list: any[]; + constructor($implicit: any, index: number, count: number, list: any[]); +} +export declare class ForDirective implements OnChanges { + private tempRef; + private vcRef; + private differs; + items: any[]; + orderBy: string; + orderDir: 'ASC' | 'DESC'; + filterBy: string; + filterVal: any; + trackBy: any; + compareBy: CompareFn; + emptyRef: TemplateRef; + private differ; + private isShowEmptyRef; + readonly compareFn: CompareFn; + readonly trackByFn: TrackByFunction; + constructor(tempRef: TemplateRef, vcRef: ViewContainerRef, differs: IterableDiffers); + private iterateOverAppliedOperations; + private iterateOverAttachedViews; + private projectItems; + private sortItems; + ngOnChanges(): void; +} +export {}; diff --git a/npm/ng-packs/dist/core/lib/directives/index.d.ts b/npm/ng-packs/dist/core/lib/directives/index.d.ts index 336b6ff5ab..7edf1b5f76 100644 --- a/npm/ng-packs/dist/core/lib/directives/index.d.ts +++ b/npm/ng-packs/dist/core/lib/directives/index.d.ts @@ -1,5 +1,6 @@ export * from './autofocus.directive'; export * from './ellipsis.directive'; +export * from './for.directive'; export * from './form-submit.directive'; export * from './permission.directive'; export * from './visibility.directive'; diff --git a/npm/ng-packs/dist/core/lib/directives/visibility.directive.d.ts b/npm/ng-packs/dist/core/lib/directives/visibility.directive.d.ts index 29c45c67c9..650a650e5e 100644 --- a/npm/ng-packs/dist/core/lib/directives/visibility.directive.d.ts +++ b/npm/ng-packs/dist/core/lib/directives/visibility.directive.d.ts @@ -4,8 +4,10 @@ export declare class VisibilityDirective implements AfterViewInit { private elRef; private renderer; focusedElement: HTMLElement; + mutationObserverEnabled: boolean; completed$: Subject; constructor(elRef: ElementRef, renderer: Renderer2); ngAfterViewInit(): void; disconnect(): void; + removeFromDOM(): void; } diff --git a/npm/ng-packs/dist/core/lib/enums/common.d.ts b/npm/ng-packs/dist/core/lib/enums/common.d.ts index f0347beff5..d2ac2f6188 100644 --- a/npm/ng-packs/dist/core/lib/enums/common.d.ts +++ b/npm/ng-packs/dist/core/lib/enums/common.d.ts @@ -1,5 +1,6 @@ export declare const enum eLayoutType { account = "account", application = "application", - empty = "empty" + empty = "empty", + setting = "setting" } diff --git a/npm/ng-packs/dist/core/lib/guards/auth.guard.d.ts b/npm/ng-packs/dist/core/lib/guards/auth.guard.d.ts index 9693b10e42..e302dbd34d 100644 --- a/npm/ng-packs/dist/core/lib/guards/auth.guard.d.ts +++ b/npm/ng-packs/dist/core/lib/guards/auth.guard.d.ts @@ -1,10 +1,11 @@ -import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router'; +import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree, Router } from '@angular/router'; import { Store } from '@ngxs/store'; import { OAuthService } from 'angular-oauth2-oidc'; import { Observable } from 'rxjs'; export declare class AuthGuard implements CanActivate { private oauthService; private store; - constructor(oauthService: OAuthService, store: Store); + private router; + constructor(oauthService: OAuthService, store: Store, router: Router); canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean | UrlTree; } diff --git a/npm/ng-packs/dist/core/lib/models/common.d.ts b/npm/ng-packs/dist/core/lib/models/common.d.ts index 306e7ea5fb..7f504cdfbf 100644 --- a/npm/ng-packs/dist/core/lib/models/common.d.ts +++ b/npm/ng-packs/dist/core/lib/models/common.d.ts @@ -1,5 +1,5 @@ import { Config } from './config'; -import { eLayoutType } from '../enums'; +import { eLayoutType } from '../enums/common'; export declare namespace ABP { interface Root { environment: Partial; diff --git a/npm/ng-packs/dist/core/lib/models/config.d.ts b/npm/ng-packs/dist/core/lib/models/config.d.ts index 34616b5f75..da9c6f41df 100644 --- a/npm/ng-packs/dist/core/lib/models/config.d.ts +++ b/npm/ng-packs/dist/core/lib/models/config.d.ts @@ -1,14 +1,22 @@ import { AuthConfig } from 'angular-oauth2-oidc'; import { Type } from '@angular/core'; +import { ApplicationConfiguration } from './application-configuration'; +import { ABP } from './common'; export declare namespace Config { - interface State { - [key: string]: any; - } + type State = ApplicationConfiguration.Response & ABP.Root & { + environment: Environment; + } & { + routes: ABP.FullRoute[]; + flattedRoutes: ABP.FullRoute[]; + }; interface Environment { application: Application; production: boolean; oAuthConfig: AuthConfig; apis: Apis; + localization: { + defaultResourceName: string; + }; } interface Application { name: string; diff --git a/npm/ng-packs/dist/core/lib/pipes/sort.pipe.d.ts b/npm/ng-packs/dist/core/lib/pipes/sort.pipe.d.ts new file mode 100644 index 0000000000..f5b409f87b --- /dev/null +++ b/npm/ng-packs/dist/core/lib/pipes/sort.pipe.d.ts @@ -0,0 +1,4 @@ +import { PipeTransform } from '@angular/core'; +export declare class SortPipe implements PipeTransform { + transform(value: any[], sortOrder: string): any; +} diff --git a/npm/ng-packs/dist/core/lib/services/config.service.d.ts b/npm/ng-packs/dist/core/lib/services/config.service.d.ts index 07b485ff4c..42df9f630a 100644 --- a/npm/ng-packs/dist/core/lib/services/config.service.d.ts +++ b/npm/ng-packs/dist/core/lib/services/config.service.d.ts @@ -5,5 +5,5 @@ export declare class ConfigService { getAll(): import("../models").Config.State; getOne(key: string): any; getDeep(keys: string[] | string): any; - getSetting(key: string): any; + getSetting(key: string): "Abp.Localization.DefaultLanguage"; } diff --git a/npm/ng-packs/dist/core/lib/services/localization.service.d.ts b/npm/ng-packs/dist/core/lib/services/localization.service.d.ts index a19a18d12b..9c5435c61b 100644 --- a/npm/ng-packs/dist/core/lib/services/localization.service.d.ts +++ b/npm/ng-packs/dist/core/lib/services/localization.service.d.ts @@ -1,12 +1,14 @@ +import { NgZone } from '@angular/core'; import { Router } from '@angular/router'; import { Actions, Store } from '@ngxs/store'; import { Observable } from 'rxjs'; export declare class LocalizationService { private store; private router; + private ngZone; private actions; readonly currentLang: string; - constructor(store: Store, router: Router, actions: Actions, otherInstance: LocalizationService); + constructor(store: Store, router: Router, ngZone: NgZone, actions: Actions, otherInstance: LocalizationService); private setRouteReuse; registerLocale(locale: string): Promise; get(keys: string, ...interpolateParams: string[]): Observable; diff --git a/npm/ng-packs/dist/core/lib/states/config.state.d.ts b/npm/ng-packs/dist/core/lib/states/config.state.d.ts index b9277b58ef..89398444b3 100644 --- a/npm/ng-packs/dist/core/lib/states/config.state.d.ts +++ b/npm/ng-packs/dist/core/lib/states/config.state.d.ts @@ -1,18 +1,18 @@ import { StateContext, Store } from '@ngxs/store'; -import { Config } from '../models'; +import { Config, ABP } from '../models'; import { PatchRouteByName } from '../actions/config.actions'; import { ApplicationConfigurationService } from '../services/application-configuration.service'; export declare class ConfigState { private appConfigurationService; private store; static getAll(state: Config.State): Config.State; - static getApplicationInfo(state: Config.State): any; + static getApplicationInfo(state: Config.State): Config.Application; static getOne(key: string): (state: Config.State) => any; static getDeep(keys: string[] | string): (state: Config.State) => any; - static getRoute(path?: string, name?: string): (state: Config.State) => any; + static getRoute(path?: string, name?: string): (state: Config.State) => ABP.FullRoute; static getApiUrl(key?: string): (state: Config.State) => string; - static getSetting(key: string): (state: Config.State) => any; - static getGrantedPolicy(condition?: string): (state: Config.State) => boolean; + static getSetting(key: string): (state: Config.State) => "Abp.Localization.DefaultLanguage"; + static getGrantedPolicy(key: string): (state: Config.State) => boolean; static getCopy(key: string, ...interpolateParams: string[]): (state: Config.State) => any; constructor(appConfigurationService: ApplicationConfigurationService, store: Store); addData({ patchState, dispatch }: StateContext): import("rxjs").Observable; diff --git a/npm/ng-packs/dist/core/lib/tokens/common.token.d.ts b/npm/ng-packs/dist/core/lib/tokens/common.token.d.ts index 5102a1104a..547d4bec8a 100644 --- a/npm/ng-packs/dist/core/lib/tokens/common.token.d.ts +++ b/npm/ng-packs/dist/core/lib/tokens/common.token.d.ts @@ -5,6 +5,9 @@ export declare function environmentFactory(environment: Config.Environment): { production: boolean; oAuthConfig: import("angular-oauth2-oidc").AuthConfig; apis: Config.Apis; + localization: { + defaultResourceName: string; + }; }; export declare function configFactory(config: Config.Requirements): { layouts: import("@angular/core").Type[]; diff --git a/npm/ng-packs/dist/core/package.json b/npm/ng-packs/dist/core/package.json index 60b3134707..32d262ac3d 100644 --- a/npm/ng-packs/dist/core/package.json +++ b/npm/ng-packs/dist/core/package.json @@ -1,11 +1,12 @@ { "name": "@abp/ng.core", - "version": "0.8.3", + "version": "0.9.0", "dependencies": { "@ngxs/router-plugin": "^3.5.0", "@ngxs/storage-plugin": "^3.5.0", "@ngxs/store": "^3.5.0", "angular-oauth2-oidc": "^8.0.1", + "just-clone": "3.1.0", "just-compare": "^1.3.0", "snq": "^1.0.3", "tslib": "^1.9.0" diff --git a/npm/ng-packs/dist/core/public-api.d.ts b/npm/ng-packs/dist/core/public-api.d.ts index 604e8a694e..2dfb99ec8e 100644 --- a/npm/ng-packs/dist/core/public-api.d.ts +++ b/npm/ng-packs/dist/core/public-api.d.ts @@ -1,3 +1,4 @@ +export * from './lib/abstracts'; export * from './lib/actions'; export * from './lib/components'; export * from './lib/constants'; diff --git a/npm/ng-packs/dist/feature-management/abp-ng.feature-management.metadata.json b/npm/ng-packs/dist/feature-management/abp-ng.feature-management.metadata.json index cc2aac7afd..7510f82cae 100644 --- a/npm/ng-packs/dist/feature-management/abp-ng.feature-management.metadata.json +++ b/npm/ng-packs/dist/feature-management/abp-ng.feature-management.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"exports":[{"from":"./lib/feature-management/feature-management.component"}],"metadata":{"RootFeatureManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":2,"character":1},"arguments":[{}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"RootFeatureManagementModule"},"providers":[]}}}},"FeatureManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":9,"character":12},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":9,"character":24},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":9,"character":43},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵc"}]]}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"abp-feature-management","template":"\n \n

{{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}

\n
\n\n \n
\n \n
{{ feature.name }}
\n
\n \n
\n
\n \n
\n
\n \n \n\n \n \n \n {{ 'AbpFeatureManagement::Save' | abpLocalization }}\n \n \n\n"}]}],"members":{"providerKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"providerName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":34,"character":3}}]}],"features$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":37,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getFeatures"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":44,"character":29}]}],"openModal":[{"__symbolic":"method"}],"getFeatures":[{"__symbolic":"method"}],"buildForm":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":6,"character":1},"arguments":[{"name":"FeatureManagementState","defaults":{"features":{}}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"}]}],"getFeatures":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":18,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"updateFeatures":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":29,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵf"}]}]}]},"statics":{"getFeatures":{"__symbolic":"function","parameters":["features"],"value":{"__symbolic":"reference","name":"features"}}}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":10,"character":28},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":10,"character":56}]}],"getFeatures":[{"__symbolic":"method"}],"updateFeatures":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵe":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵg"},"member":"Provider"}]}]},"statics":{"type":"[FeatureManagement] Get Features"}},"ɵf":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":9,"character":30,"module":"./lib/actions/feature-management.actions"}]}]},"statics":{"type":"[FeatureManagement] Update Features"}}},"origins":{"RootFeatureManagementModule":"./lib/root-feature-management.module","FeatureManagementModule":"./lib/feature-management.module","ɵa":"./lib/components/feature-management/feature-management.component","ɵb":"./lib/states","ɵc":"./lib/states/feature-management.state","ɵd":"./lib/services/feature-management.service","ɵe":"./lib/actions/feature-management.actions","ɵf":"./lib/actions/feature-management.actions","ɵg":"./lib/models"},"importAs":"@abp/ng.feature-management"} \ No newline at end of file +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/feature-management/feature-management.component"}],"metadata":{"FeatureManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":9,"character":12},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":9,"character":24},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":9,"character":43},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵc"}]]}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"abp-feature-management","template":"\n \n

{{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}

\n
\n\n \n
\n \n
{{ feature.name }}
\n
\n \n
\n
\n \n
\n
\n \n \n\n \n \n \n {{ 'AbpFeatureManagement::Save' | abpLocalization }}\n \n \n\n"}]}],"members":{"providerKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"providerName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":34,"character":3}}]}],"features$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":37,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getFeatures"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":44,"character":29}]}],"openModal":[{"__symbolic":"method"}],"getFeatures":[{"__symbolic":"method"}],"buildForm":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":6,"character":1},"arguments":[{"name":"FeatureManagementState","defaults":{"features":{}}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"}]}],"getFeatures":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":18,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"updateFeatures":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":29,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵf"}]}]}]},"statics":{"getFeatures":{"__symbolic":"function","parameters":["features"],"value":{"__symbolic":"reference","name":"features"}}}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":10,"character":28},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":10,"character":56}]}],"getFeatures":[{"__symbolic":"method"}],"updateFeatures":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵe":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵg"},"member":"Provider"}]}]},"statics":{"type":"[FeatureManagement] Get Features"}},"ɵf":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":9,"character":30,"module":"./lib/actions/feature-management.actions"}]}]},"statics":{"type":"[FeatureManagement] Update Features"}}},"origins":{"FeatureManagementModule":"./lib/feature-management.module","ɵa":"./lib/components/feature-management/feature-management.component","ɵb":"./lib/states","ɵc":"./lib/states/feature-management.state","ɵd":"./lib/services/feature-management.service","ɵe":"./lib/actions/feature-management.actions","ɵf":"./lib/actions/feature-management.actions","ɵg":"./lib/models"},"importAs":"@abp/ng.feature-management"} \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js index 8525a26b60..517a026099 100644 --- a/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js +++ b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js @@ -1,8 +1,8 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@abp/ng.core'), require('@abp/ng.theme.shared'), require('@ngxs/store'), require('rxjs'), require('rxjs/operators'), require('@angular/forms')) : - typeof define === 'function' && define.amd ? define('@abp/ng.feature-management', ['exports', '@angular/core', '@abp/ng.core', '@abp/ng.theme.shared', '@ngxs/store', 'rxjs', 'rxjs/operators', '@angular/forms'], factory) : - (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng['feature-management'] = {}), global.ng.core, global.ng_core, global.ng_theme_shared, global.store, global.rxjs, global.rxjs.operators, global.ng.forms)); -}(this, function (exports, core, ng_core, ng_theme_shared, store, rxjs, operators, forms) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@abp/ng.theme.shared'), require('@angular/core'), require('@ngxs/store'), require('rxjs'), require('rxjs/operators'), require('@angular/forms')) : + typeof define === 'function' && define.amd ? define('@abp/ng.feature-management', ['exports', '@abp/ng.core', '@abp/ng.theme.shared', '@angular/core', '@ngxs/store', 'rxjs', 'rxjs/operators', '@angular/forms'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng['feature-management'] = {}), global.ng_core, global.ng_theme_shared, global.ng.core, global.store, global.rxjs, global.rxjs.operators, global.ng.forms)); +}(this, function (exports, ng_core, ng_theme_shared, core, store, rxjs, operators, forms) { 'use strict'; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. @@ -201,31 +201,6 @@ return (mod && mod.__esModule) ? mod : { default: mod }; } - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var RootFeatureManagementModule = /** @class */ (function () { - function RootFeatureManagementModule() { - } - /** - * @return {?} - */ - RootFeatureManagementModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootFeatureManagementModule, - providers: [], - }; - }; - RootFeatureManagementModule.decorators = [ - { type: core.NgModule, args: [{},] } - ]; - return RootFeatureManagementModule; - }()); - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -608,7 +583,6 @@ exports.FeatureManagementComponent = FeatureManagementComponent; exports.FeatureManagementModule = FeatureManagementModule; - exports.RootFeatureManagementModule = RootFeatureManagementModule; exports.ɵa = FeatureManagementComponent; exports.ɵb = FeatureManagementState; exports.ɵc = FeatureManagementState; diff --git a/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js.map b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js.map index 930d10b5ac..2ab31069d5 100644 --- a/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js.map +++ b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.feature-management.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.feature-management/lib/root-feature-management.module.ts","ng://@abp/ng.feature-management/lib/actions/feature-management.actions.ts","ng://@abp/ng.feature-management/lib/services/feature-management.service.ts","ng://@abp/ng.feature-management/lib/states/feature-management.state.ts","ng://@abp/ng.feature-management/lib/components/feature-management/feature-management.component.ts","ng://@abp/ng.feature-management/lib/feature-management.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootFeatureManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootFeatureManagementModule,\n providers: [],\n };\n }\n}\n","import { FeatureManagement } from '../models';\n\nexport class GetFeatures {\n static readonly type = '[FeatureManagement] Get Features';\n constructor(public payload: FeatureManagement.Provider) {}\n}\n\nexport class UpdateFeatures {\n static readonly type = '[FeatureManagement] Update Features';\n constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { FeatureManagement } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureManagementService {\n constructor(private rest: RestService, private store: Store) {}\n\n getFeatures(params: FeatureManagement.Provider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/features',\n params,\n };\n return this.rest.request(request);\n }\n\n updateFeatures({\n features,\n providerKey,\n providerName,\n }: FeatureManagement.Provider & FeatureManagement.Features): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/features',\n body: { features },\n params: { providerKey, providerName },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { tap } from 'rxjs/operators';\nimport { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';\nimport { FeatureManagement } from '../models/feature-management';\nimport { FeatureManagementService } from '../services/feature-management.service';\n\n@State({\n name: 'FeatureManagementState',\n defaults: { features: {} } as FeatureManagement.State,\n})\nexport class FeatureManagementState {\n @Selector()\n static getFeatures({ features }: FeatureManagement.State) {\n return features;\n }\n\n constructor(private featureManagementService: FeatureManagementService) {}\n\n @Action(GetFeatures)\n getFeatures({ patchState }: StateContext, { payload }: GetFeatures) {\n return this.featureManagementService.getFeatures(payload).pipe(\n tap(({ features }) =>\n patchState({\n features,\n }),\n ),\n );\n }\n\n @Action(UpdateFeatures)\n updateFeatures(_, { payload }: UpdateFeatures) {\n return this.featureManagementService.updateFeatures(payload);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { GetFeatures, UpdateFeatures } from '../../actions';\nimport { FeatureManagement } from '../../models/feature-management';\nimport { FeatureManagementState } from '../../states';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { pluck, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-feature-management',\n templateUrl: './feature-management.component.html',\n})\nexport class FeatureManagementComponent {\n @Input()\n providerKey: string;\n\n @Input()\n providerName: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (value) this.openModal();\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(FeatureManagementState.getFeatures)\n features$: Observable;\n\n modalBusy: boolean = false;\n\n form: FormGroup;\n\n constructor(private store: Store) {}\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.getFeatures();\n }\n\n getFeatures() {\n this.store\n .dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('FeatureManagementState', 'features'))\n .subscribe(features => {\n this.buildForm(features);\n });\n }\n\n buildForm(features) {\n const formGroupObj = {};\n\n for (let i = 0; i < features.length; i++) {\n formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);\n }\n\n this.form = new FormGroup(formGroupObj);\n }\n\n save() {\n this.modalBusy = true;\n\n let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);\n\n features = features.map((feature, i) => ({\n name: feature.name,\n value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],\n }));\n\n this.store\n .dispatch(\n new UpdateFeatures({\n providerKey: this.providerKey,\n providerName: this.providerName,\n features,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { FeatureManagementComponent } from './components/feature-management/feature-management.component';\nimport { NgxsModule } from '@ngxs/store';\nimport { FeatureManagementState } from './states/feature-management.state';\n\n@NgModule({\n declarations: [FeatureManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],\n exports: [FeatureManagementComponent],\n})\nexport class FeatureManagementModule {}\n"],"names":["NgModule","Injectable","RestService","Store","tap","tslib_1.__decorate","Action","Selector","State","EventEmitter","pluck","FormControl","FormGroup","Component","Input","Output","Select","Observable","CoreModule","ThemeSharedModule","NgxsModule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.feature-management.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.feature-management/lib/actions/feature-management.actions.ts","ng://@abp/ng.feature-management/lib/services/feature-management.service.ts","ng://@abp/ng.feature-management/lib/states/feature-management.state.ts","ng://@abp/ng.feature-management/lib/components/feature-management/feature-management.component.ts","ng://@abp/ng.feature-management/lib/feature-management.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { FeatureManagement } from '../models';\n\nexport class GetFeatures {\n static readonly type = '[FeatureManagement] Get Features';\n constructor(public payload: FeatureManagement.Provider) {}\n}\n\nexport class UpdateFeatures {\n static readonly type = '[FeatureManagement] Update Features';\n constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { FeatureManagement } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureManagementService {\n constructor(private rest: RestService, private store: Store) {}\n\n getFeatures(params: FeatureManagement.Provider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/features',\n params,\n };\n return this.rest.request(request);\n }\n\n updateFeatures({\n features,\n providerKey,\n providerName,\n }: FeatureManagement.Provider & FeatureManagement.Features): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/features',\n body: { features },\n params: { providerKey, providerName },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { tap } from 'rxjs/operators';\nimport { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';\nimport { FeatureManagement } from '../models/feature-management';\nimport { FeatureManagementService } from '../services/feature-management.service';\n\n@State({\n name: 'FeatureManagementState',\n defaults: { features: {} } as FeatureManagement.State,\n})\nexport class FeatureManagementState {\n @Selector()\n static getFeatures({ features }: FeatureManagement.State) {\n return features;\n }\n\n constructor(private featureManagementService: FeatureManagementService) {}\n\n @Action(GetFeatures)\n getFeatures({ patchState }: StateContext, { payload }: GetFeatures) {\n return this.featureManagementService.getFeatures(payload).pipe(\n tap(({ features }) =>\n patchState({\n features,\n }),\n ),\n );\n }\n\n @Action(UpdateFeatures)\n updateFeatures(_, { payload }: UpdateFeatures) {\n return this.featureManagementService.updateFeatures(payload);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { GetFeatures, UpdateFeatures } from '../../actions';\nimport { FeatureManagement } from '../../models/feature-management';\nimport { FeatureManagementState } from '../../states';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { pluck, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-feature-management',\n templateUrl: './feature-management.component.html',\n})\nexport class FeatureManagementComponent {\n @Input()\n providerKey: string;\n\n @Input()\n providerName: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (value) this.openModal();\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(FeatureManagementState.getFeatures)\n features$: Observable;\n\n modalBusy: boolean = false;\n\n form: FormGroup;\n\n constructor(private store: Store) {}\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.getFeatures();\n }\n\n getFeatures() {\n this.store\n .dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('FeatureManagementState', 'features'))\n .subscribe(features => {\n this.buildForm(features);\n });\n }\n\n buildForm(features) {\n const formGroupObj = {};\n\n for (let i = 0; i < features.length; i++) {\n formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);\n }\n\n this.form = new FormGroup(formGroupObj);\n }\n\n save() {\n this.modalBusy = true;\n\n let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);\n\n features = features.map((feature, i) => ({\n name: feature.name,\n value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],\n }));\n\n this.store\n .dispatch(\n new UpdateFeatures({\n providerKey: this.providerKey,\n providerName: this.providerName,\n features,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { FeatureManagementComponent } from './components/feature-management/feature-management.component';\nimport { NgxsModule } from '@ngxs/store';\nimport { FeatureManagementState } from './states/feature-management.state';\n\n@NgModule({\n declarations: [FeatureManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],\n exports: [FeatureManagementComponent],\n})\nexport class FeatureManagementModule {}\n"],"names":["Injectable","RestService","Store","tap","tslib_1.__decorate","Action","Selector","State","EventEmitter","pluck","FormControl","FormGroup","Component","Input","Output","Select","Observable","NgModule","CoreModule","ThemeSharedModule","NgxsModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js index 2f086d5102..28befa0821 100644 --- a/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js +++ b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@ngxs/store"),require("rxjs"),require("rxjs/operators"),require("@angular/forms")):"function"==typeof define&&define.amd?define("@abp/ng.feature-management",["exports","@angular/core","@abp/ng.core","@abp/ng.theme.shared","@ngxs/store","rxjs","rxjs/operators","@angular/forms"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng["feature-management"]={}),e.ng.core,e.ng_core,e.ng_theme_shared,e.store,e.rxjs,e.rxjs.operators,e.ng.forms)}(this,function(e,t,r,n,a,o,i,u){"use strict";function s(e,t,r,n){var a,o=arguments.length,i=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var u=e.length-1;u>=0;u--)(a=e[u])&&(i=(o<3?a(i):o>3?a(t,r,i):a(t,r))||i);return o>3&&i&&Object.defineProperty(t,r,i),i}function p(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var c=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[]}},e.decorators=[{type:t.NgModule,args:[{}]}],e}(),f=function(){function e(e){this.payload=e}return e.type="[FeatureManagement] Get Features",e}();var l=function(){function e(e){this.payload=e}return e.type="[FeatureManagement] Update Features",e}();var d=function(){function e(e,t){this.rest=e,this.store=t}return e.prototype.getFeatures=function(e){var t={method:"GET",url:"/api/abp/features",params:e};return this.rest.request(t)},e.prototype.updateFeatures=function(e){var t={method:"PUT",url:"/api/abp/features",body:{features:e.features},params:{providerKey:e.providerKey,providerName:e.providerName}};return this.rest.request(t)},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:r.RestService},{type:a.Store}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(r.RestService),t.ɵɵinject(a.Store))},token:e,providedIn:"root"}),e}();var m=function(){function e(e){this.featureManagementService=e}return e.getFeatures=function(e){return e.features},e.prototype.getFeatures=function(e,t){var r=e.patchState,n=t.payload;return this.featureManagementService.getFeatures(n).pipe(i.tap(function(e){var t=e.features;return r({features:t})}))},e.prototype.updateFeatures=function(e,t){var r=t.payload;return this.featureManagementService.updateFeatures(r)},s([a.Action(f),p("design:type",Function),p("design:paramtypes",[Object,f]),p("design:returntype",void 0)],e.prototype,"getFeatures",null),s([a.Action(l),p("design:type",Function),p("design:paramtypes",[Object,l]),p("design:returntype",void 0)],e.prototype,"updateFeatures",null),s([a.Selector(),p("design:type",Function),p("design:paramtypes",[Object]),p("design:returntype",void 0)],e,"getFeatures",null),e=s([a.State({name:"FeatureManagementState",defaults:{features:{}}}),p("design:paramtypes",[d])],e)}();var g=function(){function e(e){this.store=e,this.visibleChange=new t.EventEmitter,this.modalBusy=!1}return Object.defineProperty(e.prototype,"visible",{get:function(){return this._visible},set:function(e){this._visible=e,this.visibleChange.emit(e),e&&this.openModal()},enumerable:!0,configurable:!0}),e.prototype.openModal=function(){if(!this.providerKey||!this.providerName)throw new Error("Provider Key and Provider Name are required.");this.getFeatures()},e.prototype.getFeatures=function(){var e=this;this.store.dispatch(new f({providerKey:this.providerKey,providerName:this.providerName})).pipe(i.pluck("FeatureManagementState","features")).subscribe(function(t){e.buildForm(t)})},e.prototype.buildForm=function(e){for(var t={},r=0;r\n \n

{{ \'AbpTenantManagement::Permission:ManageFeatures\' | abpLocalization }}

\n
\n\n \n
\n \n
{{ feature.name }}
\n
\n \n
\n
\n \n
\n
\n \n \n\n \n \n \n {{ \'AbpFeatureManagement::Save\' | abpLocalization }}\n \n \n\n'}]}],e.ctorParameters=function(){return[{type:a.Store}]},e.propDecorators={providerKey:[{type:t.Input}],providerName:[{type:t.Input}],visible:[{type:t.Input}],visibleChange:[{type:t.Output}]},s([a.Select(m.getFeatures),p("design:type",o.Observable)],e.prototype,"features$",void 0),e}();var v=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[g],imports:[r.CoreModule,n.ThemeSharedModule,a.NgxsModule.forFeature([m])],exports:[g]}]}],e}();e.FeatureManagementComponent=g,e.FeatureManagementModule=v,e.RootFeatureManagementModule=c,e.ɵa=g,e.ɵb=m,e.ɵc=m,e.ɵd=d,e.ɵe=f,e.ɵf=l,Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@angular/core"),require("@ngxs/store"),require("rxjs"),require("rxjs/operators"),require("@angular/forms")):"function"==typeof define&&define.amd?define("@abp/ng.feature-management",["exports","@abp/ng.core","@abp/ng.theme.shared","@angular/core","@ngxs/store","rxjs","rxjs/operators","@angular/forms"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng["feature-management"]={}),e.ng_core,e.ng_theme_shared,e.ng.core,e.store,e.rxjs,e.rxjs.operators,e.ng.forms)}(this,function(e,t,r,n,a,o,i,u){"use strict";function s(e,t,r,n){var a,o=arguments.length,i=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var u=e.length-1;u>=0;u--)(a=e[u])&&(i=(o<3?a(i):o>3?a(t,r,i):a(t,r))||i);return o>3&&i&&Object.defineProperty(t,r,i),i}function p(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var c=function(){function e(e){this.payload=e}return e.type="[FeatureManagement] Get Features",e}();var f=function(){function e(e){this.payload=e}return e.type="[FeatureManagement] Update Features",e}();var l=function(){function e(e,t){this.rest=e,this.store=t}return e.prototype.getFeatures=function(e){var t={method:"GET",url:"/api/abp/features",params:e};return this.rest.request(t)},e.prototype.updateFeatures=function(e){var t={method:"PUT",url:"/api/abp/features",body:{features:e.features},params:{providerKey:e.providerKey,providerName:e.providerName}};return this.rest.request(t)},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:t.RestService},{type:a.Store}]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(t.RestService),n.ɵɵinject(a.Store))},token:e,providedIn:"root"}),e}();var d=function(){function e(e){this.featureManagementService=e}return e.getFeatures=function(e){return e.features},e.prototype.getFeatures=function(e,t){var r=e.patchState,n=t.payload;return this.featureManagementService.getFeatures(n).pipe(i.tap(function(e){var t=e.features;return r({features:t})}))},e.prototype.updateFeatures=function(e,t){var r=t.payload;return this.featureManagementService.updateFeatures(r)},s([a.Action(c),p("design:type",Function),p("design:paramtypes",[Object,c]),p("design:returntype",void 0)],e.prototype,"getFeatures",null),s([a.Action(f),p("design:type",Function),p("design:paramtypes",[Object,f]),p("design:returntype",void 0)],e.prototype,"updateFeatures",null),s([a.Selector(),p("design:type",Function),p("design:paramtypes",[Object]),p("design:returntype",void 0)],e,"getFeatures",null),e=s([a.State({name:"FeatureManagementState",defaults:{features:{}}}),p("design:paramtypes",[l])],e)}();var m=function(){function e(e){this.store=e,this.visibleChange=new n.EventEmitter,this.modalBusy=!1}return Object.defineProperty(e.prototype,"visible",{get:function(){return this._visible},set:function(e){this._visible=e,this.visibleChange.emit(e),e&&this.openModal()},enumerable:!0,configurable:!0}),e.prototype.openModal=function(){if(!this.providerKey||!this.providerName)throw new Error("Provider Key and Provider Name are required.");this.getFeatures()},e.prototype.getFeatures=function(){var e=this;this.store.dispatch(new c({providerKey:this.providerKey,providerName:this.providerName})).pipe(i.pluck("FeatureManagementState","features")).subscribe(function(t){e.buildForm(t)})},e.prototype.buildForm=function(e){for(var t={},r=0;r\n \n

{{ \'AbpTenantManagement::Permission:ManageFeatures\' | abpLocalization }}

\n
\n\n \n
\n \n
{{ feature.name }}
\n
\n \n
\n
\n \n
\n
\n \n \n\n \n \n \n {{ \'AbpFeatureManagement::Save\' | abpLocalization }}\n \n \n\n'}]}],e.ctorParameters=function(){return[{type:a.Store}]},e.propDecorators={providerKey:[{type:n.Input}],providerName:[{type:n.Input}],visible:[{type:n.Input}],visibleChange:[{type:n.Output}]},s([a.Select(d.getFeatures),p("design:type",o.Observable)],e.prototype,"features$",void 0),e}();var g=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{declarations:[m],imports:[t.CoreModule,r.ThemeSharedModule,a.NgxsModule.forFeature([d])],exports:[m]}]}],e}();e.FeatureManagementComponent=m,e.FeatureManagementModule=g,e.ɵa=m,e.ɵb=d,e.ɵc=d,e.ɵd=l,e.ɵe=c,e.ɵf=f,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=abp-ng.feature-management.umd.min.js.map \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js.map b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js.map index b7ef2d387c..aeaeeb062f 100644 --- a/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js.map +++ b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.feature-management/lib/root-feature-management.module.ts","ng://@abp/ng.feature-management/lib/actions/feature-management.actions.ts","ng://@abp/ng.feature-management/lib/services/feature-management.service.ts","ng://@abp/ng.feature-management/lib/states/feature-management.state.ts","ng://@abp/ng.feature-management/lib/components/feature-management/feature-management.component.ts","ng://@abp/ng.feature-management/lib/feature-management.module.ts"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","RootFeatureManagementModule","forRoot","ngModule","providers","NgModule","args","GetFeatures","payload","this","type","UpdateFeatures","FeatureManagementService","rest","store","prototype","getFeatures","params","request","method","url","updateFeatures","_a","body","features","providerKey","providerName","Injectable","providedIn","RestService","Store","FeatureManagementState","featureManagementService","_b","patchState","pipe","tap","_","tslib_1.__decorate","Action","Selector","State","name","defaults","FeatureManagementComponent","visibleChange","EventEmitter","modalBusy","_visible","value","emit","openModal","Error","_this","dispatch","pluck","subscribe","buildForm","formGroupObj","FormControl","form","FormGroup","save","selectSnapshot","map","feature","visible","Component","selector","template","Input","Output","Select","Observable","FeatureManagementModule","declarations","imports","CoreModule","ThemeSharedModule","NgxsModule","forFeature","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootFeatureManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootFeatureManagementModule,\n providers: [],\n };\n }\n}\n","import { FeatureManagement } from '../models';\n\nexport class GetFeatures {\n static readonly type = '[FeatureManagement] Get Features';\n constructor(public payload: FeatureManagement.Provider) {}\n}\n\nexport class UpdateFeatures {\n static readonly type = '[FeatureManagement] Update Features';\n constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { FeatureManagement } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureManagementService {\n constructor(private rest: RestService, private store: Store) {}\n\n getFeatures(params: FeatureManagement.Provider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/features',\n params,\n };\n return this.rest.request(request);\n }\n\n updateFeatures({\n features,\n providerKey,\n providerName,\n }: FeatureManagement.Provider & FeatureManagement.Features): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/features',\n body: { features },\n params: { providerKey, providerName },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { tap } from 'rxjs/operators';\nimport { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';\nimport { FeatureManagement } from '../models/feature-management';\nimport { FeatureManagementService } from '../services/feature-management.service';\n\n@State({\n name: 'FeatureManagementState',\n defaults: { features: {} } as FeatureManagement.State,\n})\nexport class FeatureManagementState {\n @Selector()\n static getFeatures({ features }: FeatureManagement.State) {\n return features;\n }\n\n constructor(private featureManagementService: FeatureManagementService) {}\n\n @Action(GetFeatures)\n getFeatures({ patchState }: StateContext, { payload }: GetFeatures) {\n return this.featureManagementService.getFeatures(payload).pipe(\n tap(({ features }) =>\n patchState({\n features,\n }),\n ),\n );\n }\n\n @Action(UpdateFeatures)\n updateFeatures(_, { payload }: UpdateFeatures) {\n return this.featureManagementService.updateFeatures(payload);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { GetFeatures, UpdateFeatures } from '../../actions';\nimport { FeatureManagement } from '../../models/feature-management';\nimport { FeatureManagementState } from '../../states';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { pluck, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-feature-management',\n templateUrl: './feature-management.component.html',\n})\nexport class FeatureManagementComponent {\n @Input()\n providerKey: string;\n\n @Input()\n providerName: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (value) this.openModal();\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(FeatureManagementState.getFeatures)\n features$: Observable;\n\n modalBusy: boolean = false;\n\n form: FormGroup;\n\n constructor(private store: Store) {}\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.getFeatures();\n }\n\n getFeatures() {\n this.store\n .dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('FeatureManagementState', 'features'))\n .subscribe(features => {\n this.buildForm(features);\n });\n }\n\n buildForm(features) {\n const formGroupObj = {};\n\n for (let i = 0; i < features.length; i++) {\n formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);\n }\n\n this.form = new FormGroup(formGroupObj);\n }\n\n save() {\n this.modalBusy = true;\n\n let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);\n\n features = features.map((feature, i) => ({\n name: feature.name,\n value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],\n }));\n\n this.store\n .dispatch(\n new UpdateFeatures({\n providerKey: this.providerKey,\n providerName: this.providerName,\n features,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { FeatureManagementComponent } from './components/feature-management/feature-management.component';\nimport { NgxsModule } from '@ngxs/store';\nimport { FeatureManagementState } from './states/feature-management.state';\n\n@NgModule({\n declarations: [FeatureManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],\n exports: [FeatureManagementComponent],\n})\nexport class FeatureManagementModule {}\n"]} \ No newline at end of file +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.feature-management/lib/actions/feature-management.actions.ts","ng://@abp/ng.feature-management/lib/services/feature-management.service.ts","ng://@abp/ng.feature-management/lib/states/feature-management.state.ts","ng://@abp/ng.feature-management/lib/components/feature-management/feature-management.component.ts","ng://@abp/ng.feature-management/lib/feature-management.module.ts"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","GetFeatures","payload","this","type","UpdateFeatures","FeatureManagementService","rest","store","prototype","getFeatures","params","request","method","url","updateFeatures","_a","body","features","providerKey","providerName","Injectable","args","providedIn","RestService","Store","FeatureManagementState","featureManagementService","_b","patchState","pipe","tap","_","tslib_1.__decorate","Action","Selector","State","name","defaults","FeatureManagementComponent","visibleChange","EventEmitter","modalBusy","_visible","value","emit","openModal","Error","_this","dispatch","pluck","subscribe","buildForm","formGroupObj","FormControl","form","FormGroup","save","selectSnapshot","map","feature","visible","Component","selector","template","Input","Output","Select","Observable","FeatureManagementModule","NgModule","declarations","imports","CoreModule","ThemeSharedModule","NgxsModule","forFeature","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { FeatureManagement } from '../models';\n\nexport class GetFeatures {\n static readonly type = '[FeatureManagement] Get Features';\n constructor(public payload: FeatureManagement.Provider) {}\n}\n\nexport class UpdateFeatures {\n static readonly type = '[FeatureManagement] Update Features';\n constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { FeatureManagement } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureManagementService {\n constructor(private rest: RestService, private store: Store) {}\n\n getFeatures(params: FeatureManagement.Provider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/features',\n params,\n };\n return this.rest.request(request);\n }\n\n updateFeatures({\n features,\n providerKey,\n providerName,\n }: FeatureManagement.Provider & FeatureManagement.Features): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/features',\n body: { features },\n params: { providerKey, providerName },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { tap } from 'rxjs/operators';\nimport { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';\nimport { FeatureManagement } from '../models/feature-management';\nimport { FeatureManagementService } from '../services/feature-management.service';\n\n@State({\n name: 'FeatureManagementState',\n defaults: { features: {} } as FeatureManagement.State,\n})\nexport class FeatureManagementState {\n @Selector()\n static getFeatures({ features }: FeatureManagement.State) {\n return features;\n }\n\n constructor(private featureManagementService: FeatureManagementService) {}\n\n @Action(GetFeatures)\n getFeatures({ patchState }: StateContext, { payload }: GetFeatures) {\n return this.featureManagementService.getFeatures(payload).pipe(\n tap(({ features }) =>\n patchState({\n features,\n }),\n ),\n );\n }\n\n @Action(UpdateFeatures)\n updateFeatures(_, { payload }: UpdateFeatures) {\n return this.featureManagementService.updateFeatures(payload);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { GetFeatures, UpdateFeatures } from '../../actions';\nimport { FeatureManagement } from '../../models/feature-management';\nimport { FeatureManagementState } from '../../states';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { pluck, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-feature-management',\n templateUrl: './feature-management.component.html',\n})\nexport class FeatureManagementComponent {\n @Input()\n providerKey: string;\n\n @Input()\n providerName: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (value) this.openModal();\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(FeatureManagementState.getFeatures)\n features$: Observable;\n\n modalBusy: boolean = false;\n\n form: FormGroup;\n\n constructor(private store: Store) {}\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.getFeatures();\n }\n\n getFeatures() {\n this.store\n .dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('FeatureManagementState', 'features'))\n .subscribe(features => {\n this.buildForm(features);\n });\n }\n\n buildForm(features) {\n const formGroupObj = {};\n\n for (let i = 0; i < features.length; i++) {\n formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);\n }\n\n this.form = new FormGroup(formGroupObj);\n }\n\n save() {\n this.modalBusy = true;\n\n let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);\n\n features = features.map((feature, i) => ({\n name: feature.name,\n value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],\n }));\n\n this.store\n .dispatch(\n new UpdateFeatures({\n providerKey: this.providerKey,\n providerName: this.providerName,\n features,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { FeatureManagementComponent } from './components/feature-management/feature-management.component';\nimport { NgxsModule } from '@ngxs/store';\nimport { FeatureManagementState } from './states/feature-management.state';\n\n@NgModule({\n declarations: [FeatureManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],\n exports: [FeatureManagementComponent],\n})\nexport class FeatureManagementModule {}\n"]} \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/abp-ng.feature-management.js b/npm/ng-packs/dist/feature-management/esm2015/abp-ng.feature-management.js index 6c3065bfed..c84f215508 100644 --- a/npm/ng-packs/dist/feature-management/esm2015/abp-ng.feature-management.js +++ b/npm/ng-packs/dist/feature-management/esm2015/abp-ng.feature-management.js @@ -5,10 +5,10 @@ /** * Generated bundle index. Do not edit. */ -export { RootFeatureManagementModule, FeatureManagementModule, FeatureManagementComponent } from './public-api'; +export { FeatureManagementModule, FeatureManagementComponent } from './public-api'; export { GetFeatures as ɵe, UpdateFeatures as ɵf } from './lib/actions/feature-management.actions'; export { FeatureManagementComponent as ɵa } from './lib/components/feature-management/feature-management.component'; export { FeatureManagementService as ɵd } from './lib/services/feature-management.service'; export { FeatureManagementState as ɵb } from './lib/states'; export { FeatureManagementState as ɵc } from './lib/states/feature-management.state'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmZlYXR1cmUtbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLmZlYXR1cmUtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsaUdBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFFbEgsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0dldEZlYXR1cmVzIGFzIMm1ZSxVcGRhdGVGZWF0dXJlcyBhcyDJtWZ9IGZyb20gJy4vbGliL2FjdGlvbnMvZmVhdHVyZS1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuZXhwb3J0IHtGZWF0dXJlTWFuYWdlbWVudENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2VtZW50L2ZlYXR1cmUtbWFuYWdlbWVudC5jb21wb25lbnQnO1xuZXhwb3J0IHtGZWF0dXJlTWFuYWdlbWVudCBhcyDJtWd9IGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQge0ZlYXR1cmVNYW5hZ2VtZW50U2VydmljZSBhcyDJtWR9IGZyb20gJy4vbGliL3NlcnZpY2VzL2ZlYXR1cmUtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7RmVhdHVyZU1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcyc7XG5leHBvcnQge0ZlYXR1cmVNYW5hZ2VtZW50U3RhdGUgYXMgybVjfSBmcm9tICcuL2xpYi9zdGF0ZXMvZmVhdHVyZS1tYW5hZ2VtZW50LnN0YXRlJzsiXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmZlYXR1cmUtbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLmZlYXR1cmUtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb0VBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFFbEgsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0dldEZlYXR1cmVzIGFzIMm1ZSxVcGRhdGVGZWF0dXJlcyBhcyDJtWZ9IGZyb20gJy4vbGliL2FjdGlvbnMvZmVhdHVyZS1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuZXhwb3J0IHtGZWF0dXJlTWFuYWdlbWVudENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2VtZW50L2ZlYXR1cmUtbWFuYWdlbWVudC5jb21wb25lbnQnO1xuZXhwb3J0IHtGZWF0dXJlTWFuYWdlbWVudCBhcyDJtWd9IGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQge0ZlYXR1cmVNYW5hZ2VtZW50U2VydmljZSBhcyDJtWR9IGZyb20gJy4vbGliL3NlcnZpY2VzL2ZlYXR1cmUtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7RmVhdHVyZU1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcyc7XG5leHBvcnQge0ZlYXR1cmVNYW5hZ2VtZW50U3RhdGUgYXMgybVjfSBmcm9tICcuL2xpYi9zdGF0ZXMvZmVhdHVyZS1tYW5hZ2VtZW50LnN0YXRlJzsiXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/lib/root-feature-management.module.js b/npm/ng-packs/dist/feature-management/esm2015/lib/root-feature-management.module.js deleted file mode 100644 index fc51fa84e5..0000000000 --- a/npm/ng-packs/dist/feature-management/esm2015/lib/root-feature-management.module.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { NgModule } from '@angular/core'; -export class RootFeatureManagementModule { - /** - * @return {?} - */ - static forRoot() { - return { - ngModule: RootFeatureManagementModule, - providers: [], - }; - } -} -RootFeatureManagementModule.decorators = [ - { type: NgModule, args: [{},] } -]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1mZWF0dXJlLW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5mZWF0dXJlLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvcm9vdC1mZWF0dXJlLW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc5RCxNQUFNLE9BQU8sMkJBQTJCOzs7O0lBQ3RDLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSwyQkFBMkI7WUFDckMsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO0lBQ0osQ0FBQzs7O1lBUEYsUUFBUSxTQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgUm9vdEZlYXR1cmVNYW5hZ2VtZW50TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBSb290RmVhdHVyZU1hbmFnZW1lbnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/public-api.js b/npm/ng-packs/dist/feature-management/esm2015/public-api.js index fcbf11e568..2ca23efea6 100644 --- a/npm/ng-packs/dist/feature-management/esm2015/public-api.js +++ b/npm/ng-packs/dist/feature-management/esm2015/public-api.js @@ -2,7 +2,6 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { RootFeatureManagementModule } from './lib/root-feature-management.module'; export { FeatureManagementModule } from './lib/feature-management.module'; export { FeatureManagementComponent } from './lib/components'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNENBQWMsc0NBQXNDLENBQUM7QUFDckQsd0NBQWMsaUNBQWlDLENBQUM7QUFDaEQsMkNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9yb290LWZlYXR1cmUtbWFuYWdlbWVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmVhdHVyZS1tYW5hZ2VtZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsd0NBQWMsaUNBQWlDLENBQUM7QUFDaEQsMkNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9mZWF0dXJlLW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/abp-ng.feature-management.js b/npm/ng-packs/dist/feature-management/esm5/abp-ng.feature-management.js index 6c3065bfed..c84f215508 100644 --- a/npm/ng-packs/dist/feature-management/esm5/abp-ng.feature-management.js +++ b/npm/ng-packs/dist/feature-management/esm5/abp-ng.feature-management.js @@ -5,10 +5,10 @@ /** * Generated bundle index. Do not edit. */ -export { RootFeatureManagementModule, FeatureManagementModule, FeatureManagementComponent } from './public-api'; +export { FeatureManagementModule, FeatureManagementComponent } from './public-api'; export { GetFeatures as ɵe, UpdateFeatures as ɵf } from './lib/actions/feature-management.actions'; export { FeatureManagementComponent as ɵa } from './lib/components/feature-management/feature-management.component'; export { FeatureManagementService as ɵd } from './lib/services/feature-management.service'; export { FeatureManagementState as ɵb } from './lib/states'; export { FeatureManagementState as ɵc } from './lib/states/feature-management.state'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmZlYXR1cmUtbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLmZlYXR1cmUtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsaUdBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFFbEgsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0dldEZlYXR1cmVzIGFzIMm1ZSxVcGRhdGVGZWF0dXJlcyBhcyDJtWZ9IGZyb20gJy4vbGliL2FjdGlvbnMvZmVhdHVyZS1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuZXhwb3J0IHtGZWF0dXJlTWFuYWdlbWVudENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2VtZW50L2ZlYXR1cmUtbWFuYWdlbWVudC5jb21wb25lbnQnO1xuZXhwb3J0IHtGZWF0dXJlTWFuYWdlbWVudCBhcyDJtWd9IGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQge0ZlYXR1cmVNYW5hZ2VtZW50U2VydmljZSBhcyDJtWR9IGZyb20gJy4vbGliL3NlcnZpY2VzL2ZlYXR1cmUtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7RmVhdHVyZU1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcyc7XG5leHBvcnQge0ZlYXR1cmVNYW5hZ2VtZW50U3RhdGUgYXMgybVjfSBmcm9tICcuL2xpYi9zdGF0ZXMvZmVhdHVyZS1tYW5hZ2VtZW50LnN0YXRlJzsiXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmZlYXR1cmUtbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLmZlYXR1cmUtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb0VBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFFbEgsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0dldEZlYXR1cmVzIGFzIMm1ZSxVcGRhdGVGZWF0dXJlcyBhcyDJtWZ9IGZyb20gJy4vbGliL2FjdGlvbnMvZmVhdHVyZS1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuZXhwb3J0IHtGZWF0dXJlTWFuYWdlbWVudENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2VtZW50L2ZlYXR1cmUtbWFuYWdlbWVudC5jb21wb25lbnQnO1xuZXhwb3J0IHtGZWF0dXJlTWFuYWdlbWVudCBhcyDJtWd9IGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQge0ZlYXR1cmVNYW5hZ2VtZW50U2VydmljZSBhcyDJtWR9IGZyb20gJy4vbGliL3NlcnZpY2VzL2ZlYXR1cmUtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7RmVhdHVyZU1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcyc7XG5leHBvcnQge0ZlYXR1cmVNYW5hZ2VtZW50U3RhdGUgYXMgybVjfSBmcm9tICcuL2xpYi9zdGF0ZXMvZmVhdHVyZS1tYW5hZ2VtZW50LnN0YXRlJzsiXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/lib/root-feature-management.module.js b/npm/ng-packs/dist/feature-management/esm5/lib/root-feature-management.module.js deleted file mode 100644 index 02f160fdaa..0000000000 --- a/npm/ng-packs/dist/feature-management/esm5/lib/root-feature-management.module.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { NgModule } from '@angular/core'; -var RootFeatureManagementModule = /** @class */ (function () { - function RootFeatureManagementModule() { - } - /** - * @return {?} - */ - RootFeatureManagementModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootFeatureManagementModule, - providers: [], - }; - }; - RootFeatureManagementModule.decorators = [ - { type: NgModule, args: [{},] } - ]; - return RootFeatureManagementModule; -}()); -export { RootFeatureManagementModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1mZWF0dXJlLW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5mZWF0dXJlLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvcm9vdC1mZWF0dXJlLW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RDtJQUFBO0lBUUEsQ0FBQzs7OztJQU5RLG1DQUFPOzs7SUFBZDtRQUNFLE9BQU87WUFDTCxRQUFRLEVBQUUsMkJBQTJCO1lBQ3JDLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztJQUNKLENBQUM7O2dCQVBGLFFBQVEsU0FBQyxFQUFFOztJQVFaLGtDQUFDO0NBQUEsQUFSRCxJQVFDO1NBUFksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIFJvb3RGZWF0dXJlTWFuYWdlbWVudE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUm9vdEZlYXR1cmVNYW5hZ2VtZW50TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXSxcbiAgICB9O1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/public-api.js b/npm/ng-packs/dist/feature-management/esm5/public-api.js index fcbf11e568..2ca23efea6 100644 --- a/npm/ng-packs/dist/feature-management/esm5/public-api.js +++ b/npm/ng-packs/dist/feature-management/esm5/public-api.js @@ -2,7 +2,6 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { RootFeatureManagementModule } from './lib/root-feature-management.module'; export { FeatureManagementModule } from './lib/feature-management.module'; export { FeatureManagementComponent } from './lib/components'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNENBQWMsc0NBQXNDLENBQUM7QUFDckQsd0NBQWMsaUNBQWlDLENBQUM7QUFDaEQsMkNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9yb290LWZlYXR1cmUtbWFuYWdlbWVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmVhdHVyZS1tYW5hZ2VtZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsd0NBQWMsaUNBQWlDLENBQUM7QUFDaEQsMkNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9mZWF0dXJlLW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js b/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js index 08f63d224b..a761573caf 100644 --- a/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js +++ b/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js @@ -1,31 +1,12 @@ -import { NgModule, Injectable, ɵɵdefineInjectable, ɵɵinject, EventEmitter, Component, Input, Output } from '@angular/core'; import { RestService, CoreModule } from '@abp/ng.core'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, EventEmitter, Component, Input, Output, NgModule } from '@angular/core'; import { __decorate, __metadata } from 'tslib'; import { Store, Action, Selector, State, Select, NgxsModule } from '@ngxs/store'; import { Observable } from 'rxjs'; import { tap, pluck } from 'rxjs/operators'; import { FormControl, FormGroup } from '@angular/forms'; -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -class RootFeatureManagementModule { - /** - * @return {?} - */ - static forRoot() { - return { - ngModule: RootFeatureManagementModule, - providers: [], - }; - } -} -RootFeatureManagementModule.decorators = [ - { type: NgModule, args: [{},] } -]; - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -380,5 +361,5 @@ FeatureManagementModule.decorators = [ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { FeatureManagementComponent, FeatureManagementModule, RootFeatureManagementModule, FeatureManagementComponent as ɵa, FeatureManagementState as ɵb, FeatureManagementState as ɵc, FeatureManagementService as ɵd, GetFeatures as ɵe, UpdateFeatures as ɵf }; +export { FeatureManagementComponent, FeatureManagementModule, FeatureManagementComponent as ɵa, FeatureManagementState as ɵb, FeatureManagementState as ɵc, FeatureManagementService as ɵd, GetFeatures as ɵe, UpdateFeatures as ɵf }; //# sourceMappingURL=abp-ng.feature-management.js.map diff --git a/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js.map b/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js.map index 95e1d29ce1..66b084481e 100644 --- a/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js.map +++ b/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.feature-management.js","sources":["ng://@abp/ng.feature-management/lib/root-feature-management.module.ts","ng://@abp/ng.feature-management/lib/actions/feature-management.actions.ts","ng://@abp/ng.feature-management/lib/services/feature-management.service.ts","ng://@abp/ng.feature-management/lib/states/feature-management.state.ts","ng://@abp/ng.feature-management/lib/components/feature-management/feature-management.component.ts","ng://@abp/ng.feature-management/lib/feature-management.module.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootFeatureManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootFeatureManagementModule,\n providers: [],\n };\n }\n}\n","import { FeatureManagement } from '../models';\n\nexport class GetFeatures {\n static readonly type = '[FeatureManagement] Get Features';\n constructor(public payload: FeatureManagement.Provider) {}\n}\n\nexport class UpdateFeatures {\n static readonly type = '[FeatureManagement] Update Features';\n constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { FeatureManagement } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureManagementService {\n constructor(private rest: RestService, private store: Store) {}\n\n getFeatures(params: FeatureManagement.Provider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/features',\n params,\n };\n return this.rest.request(request);\n }\n\n updateFeatures({\n features,\n providerKey,\n providerName,\n }: FeatureManagement.Provider & FeatureManagement.Features): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/features',\n body: { features },\n params: { providerKey, providerName },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { tap } from 'rxjs/operators';\nimport { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';\nimport { FeatureManagement } from '../models/feature-management';\nimport { FeatureManagementService } from '../services/feature-management.service';\n\n@State({\n name: 'FeatureManagementState',\n defaults: { features: {} } as FeatureManagement.State,\n})\nexport class FeatureManagementState {\n @Selector()\n static getFeatures({ features }: FeatureManagement.State) {\n return features;\n }\n\n constructor(private featureManagementService: FeatureManagementService) {}\n\n @Action(GetFeatures)\n getFeatures({ patchState }: StateContext, { payload }: GetFeatures) {\n return this.featureManagementService.getFeatures(payload).pipe(\n tap(({ features }) =>\n patchState({\n features,\n }),\n ),\n );\n }\n\n @Action(UpdateFeatures)\n updateFeatures(_, { payload }: UpdateFeatures) {\n return this.featureManagementService.updateFeatures(payload);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { GetFeatures, UpdateFeatures } from '../../actions';\nimport { FeatureManagement } from '../../models/feature-management';\nimport { FeatureManagementState } from '../../states';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { pluck, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-feature-management',\n templateUrl: './feature-management.component.html',\n})\nexport class FeatureManagementComponent {\n @Input()\n providerKey: string;\n\n @Input()\n providerName: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (value) this.openModal();\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(FeatureManagementState.getFeatures)\n features$: Observable;\n\n modalBusy: boolean = false;\n\n form: FormGroup;\n\n constructor(private store: Store) {}\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.getFeatures();\n }\n\n getFeatures() {\n this.store\n .dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('FeatureManagementState', 'features'))\n .subscribe(features => {\n this.buildForm(features);\n });\n }\n\n buildForm(features) {\n const formGroupObj = {};\n\n for (let i = 0; i < features.length; i++) {\n formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);\n }\n\n this.form = new FormGroup(formGroupObj);\n }\n\n save() {\n this.modalBusy = true;\n\n let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);\n\n features = features.map((feature, i) => ({\n name: feature.name,\n value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],\n }));\n\n this.store\n .dispatch(\n new UpdateFeatures({\n providerKey: this.providerKey,\n providerName: this.providerName,\n features,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { FeatureManagementComponent } from './components/feature-management/feature-management.component';\nimport { NgxsModule } from '@ngxs/store';\nimport { FeatureManagementState } from './states/feature-management.state';\n\n@NgModule({\n declarations: [FeatureManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],\n exports: [FeatureManagementComponent],\n})\nexport class FeatureManagementModule {}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.feature-management.js","sources":["ng://@abp/ng.feature-management/lib/actions/feature-management.actions.ts","ng://@abp/ng.feature-management/lib/services/feature-management.service.ts","ng://@abp/ng.feature-management/lib/states/feature-management.state.ts","ng://@abp/ng.feature-management/lib/components/feature-management/feature-management.component.ts","ng://@abp/ng.feature-management/lib/feature-management.module.ts"],"sourcesContent":["import { FeatureManagement } from '../models';\n\nexport class GetFeatures {\n static readonly type = '[FeatureManagement] Get Features';\n constructor(public payload: FeatureManagement.Provider) {}\n}\n\nexport class UpdateFeatures {\n static readonly type = '[FeatureManagement] Update Features';\n constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { FeatureManagement } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureManagementService {\n constructor(private rest: RestService, private store: Store) {}\n\n getFeatures(params: FeatureManagement.Provider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/features',\n params,\n };\n return this.rest.request(request);\n }\n\n updateFeatures({\n features,\n providerKey,\n providerName,\n }: FeatureManagement.Provider & FeatureManagement.Features): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/features',\n body: { features },\n params: { providerKey, providerName },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { tap } from 'rxjs/operators';\nimport { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';\nimport { FeatureManagement } from '../models/feature-management';\nimport { FeatureManagementService } from '../services/feature-management.service';\n\n@State({\n name: 'FeatureManagementState',\n defaults: { features: {} } as FeatureManagement.State,\n})\nexport class FeatureManagementState {\n @Selector()\n static getFeatures({ features }: FeatureManagement.State) {\n return features;\n }\n\n constructor(private featureManagementService: FeatureManagementService) {}\n\n @Action(GetFeatures)\n getFeatures({ patchState }: StateContext, { payload }: GetFeatures) {\n return this.featureManagementService.getFeatures(payload).pipe(\n tap(({ features }) =>\n patchState({\n features,\n }),\n ),\n );\n }\n\n @Action(UpdateFeatures)\n updateFeatures(_, { payload }: UpdateFeatures) {\n return this.featureManagementService.updateFeatures(payload);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { GetFeatures, UpdateFeatures } from '../../actions';\nimport { FeatureManagement } from '../../models/feature-management';\nimport { FeatureManagementState } from '../../states';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { pluck, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-feature-management',\n templateUrl: './feature-management.component.html',\n})\nexport class FeatureManagementComponent {\n @Input()\n providerKey: string;\n\n @Input()\n providerName: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (value) this.openModal();\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(FeatureManagementState.getFeatures)\n features$: Observable;\n\n modalBusy: boolean = false;\n\n form: FormGroup;\n\n constructor(private store: Store) {}\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.getFeatures();\n }\n\n getFeatures() {\n this.store\n .dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('FeatureManagementState', 'features'))\n .subscribe(features => {\n this.buildForm(features);\n });\n }\n\n buildForm(features) {\n const formGroupObj = {};\n\n for (let i = 0; i < features.length; i++) {\n formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);\n }\n\n this.form = new FormGroup(formGroupObj);\n }\n\n save() {\n this.modalBusy = true;\n\n let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);\n\n features = features.map((feature, i) => ({\n name: feature.name,\n value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],\n }));\n\n this.store\n .dispatch(\n new UpdateFeatures({\n providerKey: this.providerKey,\n providerName: this.providerName,\n features,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { FeatureManagementComponent } from './components/feature-management/feature-management.component';\nimport { NgxsModule } from '@ngxs/store';\nimport { FeatureManagementState } from './states/feature-management.state';\n\n@NgModule({\n declarations: [FeatureManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],\n exports: [FeatureManagementComponent],\n})\nexport class FeatureManagementModule {}\n"],"names":["tslib_1.__decorate"],"mappings":";;;;;;;;;;;;;AAEA,MAAa,WAAW;;;;IAEtB,YAAmB,OAAmC;QAAnC,YAAO,GAAP,OAAO,CAA4B;KAAI;;AAD1C,gBAAI,GAAG,kCAAkC,CAAC;;;IAA1D,iBAA0D;;IAC9C,8BAA0C;;AAGxD,MAAa,cAAc;;;;IAEzB,YAAmB,OAAgE;QAAhE,YAAO,GAAP,OAAO,CAAyD;KAAI;;AADvE,mBAAI,GAAG,qCAAqC,CAAC;;;IAA7D,oBAA6D;;IACjD,iCAAuE;;;;;;;;;;;;ACTrF,MASa,wBAAwB;;;;;IACnC,YAAoB,IAAiB,EAAU,KAAY;QAAvC,SAAI,GAAJ,IAAI,CAAa;QAAU,UAAK,GAAL,KAAK,CAAO;KAAI;;;;;IAE/D,WAAW,CAAC,MAAkC;;cACtC,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,mBAAmB;YACxB,MAAM;SACP;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAyD,OAAO,CAAC,CAAC;KAC3F;;;;;IAED,cAAc,CAAC,EACb,QAAQ,EACR,WAAW,EACX,YAAY,GAC4C;;cAClD,OAAO,GAA6C;YACxD,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,mBAAmB;YACxB,IAAI,EAAE,EAAE,QAAQ,EAAE;YAClB,MAAM,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE;SACtC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAmC,OAAO,CAAC,CAAC;KACrE;;;YA3BF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;YAPQ,WAAW;YACX,KAAK;;;;;;;;IAQA,wCAAyB;;;;;IAAE,yCAAoB;;;;;;;ICAhD,sBAAsB,SAAtB,sBAAsB;;;;IAMjC,YAAoB,wBAAkD;QAAlD,6BAAwB,GAAxB,wBAAwB,CAA0B;KAAI;;;;;IAJ1E,OAAO,WAAW,CAAC,EAAE,QAAQ,EAA2B;QACtD,OAAO,QAAQ,CAAC;KACjB;;;;;;IAKD,WAAW,CAAC,EAAE,UAAU,EAAyC,EAAE,EAAE,OAAO,EAAe;QACzF,OAAO,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAC5D,GAAG;;;;QAAC,CAAC,EAAE,QAAQ,EAAE,KACf,UAAU,CAAC;YACT,QAAQ;SACT,CAAC,EACH,CACF,CAAC;KACH;;;;;;IAGD,cAAc,CAAC,CAAC,EAAE,EAAE,OAAO,EAAkB;QAC3C,OAAO,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;KAC9D;CACF,CAAA;AAdCA;IADC,MAAM,CAAC,WAAW,CAAC;;6CAC4D,WAAW;;yDAQ1F;AAGDA;IADC,MAAM,CAAC,cAAc,CAAC;;6CACQ,cAAc;;4DAE5C;AApBDA;IADC,QAAQ,EAAE;;;;+CAGV;AAJU,sBAAsB;IAJlC,KAAK,CAA0B;QAC9B,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,qBAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAA2B;KACtD,CAAC;qCAO8C,wBAAwB;GAN3D,sBAAsB,CAuBlC;;;;;;IAjBa,0DAA0D;;;;;;;;;;;;MCH3D,0BAA0B;;;;IA+BrC,YAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAThC,kBAAa,GAAG,IAAI,YAAY,EAAW,CAAC;QAK5C,cAAS,GAAY,KAAK,CAAC;KAIS;;;;IAtBpC,IACI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;;;;;IAED,IAAI,OAAO,CAAC,KAAc;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,KAAK;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KAC7B;;;;IAcD,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC3C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;;;;IAED,WAAW;QACT,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;aAC7F,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;aACjD,SAAS;;;;QAAC,QAAQ;YACjB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SAC1B,EAAC,CAAC;KACN;;;;;IAED,SAAS,CAAC,QAAQ;;cACV,YAAY,GAAG,EAAE;QAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC7F;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;KACzC;;;;IAED,IAAI;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;YAElB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,sBAAsB,CAAC,WAAW,CAAC;QAE5E,QAAQ,GAAG,QAAQ,CAAC,GAAG;;;;;QAAC,CAAC,OAAO,EAAE,CAAC,MAAM;YACvC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACzF,CAAC,EAAC,CAAC;QAEJ,IAAI,CAAC,KAAK;aACP,QAAQ,CACP,IAAI,cAAc,CAAC;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ;SACT,CAAC,CACH;aACA,SAAS;;;QAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB,EAAC,CAAC;KACN;;;YAtFF,SAAS,SAAC;gBACT,QAAQ,EAAE,wBAAwB;gBAClC,wvCAAkD;aACnD;;;;YAXgB,KAAK;;;0BAanB,KAAK;2BAGL,KAAK;sBAKL,KAAK;4BAYL,MAAM;;AAIPA;IADC,MAAM,CAAC,sBAAsB,CAAC,WAAW,CAAC;8BAChC,UAAU;6DAA8B;;;IAxBnD,iDACoB;;IAEpB,kDACqB;;;;;IAErB,8CAAmB;;IAcnB,mDAC4C;;IAE5C,+CACmD;;IAEnD,+CAA2B;;IAE3B,0CAAgB;;;;;IAEJ,2CAAoB;;;;;;;AC5ClC,MAYa,uBAAuB;;;YALnC,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;gBAC1C,OAAO,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBACzF,OAAO,EAAE,CAAC,0BAA0B,CAAC;aACtC;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js b/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js index 5794ee405b..92b041d57b 100644 --- a/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js +++ b/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js @@ -1,37 +1,12 @@ -import { NgModule, Injectable, ɵɵdefineInjectable, ɵɵinject, EventEmitter, Component, Input, Output } from '@angular/core'; import { RestService, CoreModule } from '@abp/ng.core'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, EventEmitter, Component, Input, Output, NgModule } from '@angular/core'; import { __decorate, __metadata } from 'tslib'; import { Store, Action, Selector, State, Select, NgxsModule } from '@ngxs/store'; import { Observable } from 'rxjs'; import { tap, pluck } from 'rxjs/operators'; import { FormControl, FormGroup } from '@angular/forms'; -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -var RootFeatureManagementModule = /** @class */ (function () { - function RootFeatureManagementModule() { - } - /** - * @return {?} - */ - RootFeatureManagementModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootFeatureManagementModule, - providers: [], - }; - }; - RootFeatureManagementModule.decorators = [ - { type: NgModule, args: [{},] } - ]; - return RootFeatureManagementModule; -}()); - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -427,5 +402,5 @@ var FeatureManagementModule = /** @class */ (function () { * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { FeatureManagementComponent, FeatureManagementModule, RootFeatureManagementModule, FeatureManagementComponent as ɵa, FeatureManagementState as ɵb, FeatureManagementState as ɵc, FeatureManagementService as ɵd, GetFeatures as ɵe, UpdateFeatures as ɵf }; +export { FeatureManagementComponent, FeatureManagementModule, FeatureManagementComponent as ɵa, FeatureManagementState as ɵb, FeatureManagementState as ɵc, FeatureManagementService as ɵd, GetFeatures as ɵe, UpdateFeatures as ɵf }; //# sourceMappingURL=abp-ng.feature-management.js.map diff --git a/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js.map b/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js.map index 2d1a106f36..94ecafeb19 100644 --- a/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js.map +++ b/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.feature-management.js","sources":["ng://@abp/ng.feature-management/lib/root-feature-management.module.ts","ng://@abp/ng.feature-management/lib/actions/feature-management.actions.ts","ng://@abp/ng.feature-management/lib/services/feature-management.service.ts","ng://@abp/ng.feature-management/lib/states/feature-management.state.ts","ng://@abp/ng.feature-management/lib/components/feature-management/feature-management.component.ts","ng://@abp/ng.feature-management/lib/feature-management.module.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootFeatureManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootFeatureManagementModule,\n providers: [],\n };\n }\n}\n","import { FeatureManagement } from '../models';\n\nexport class GetFeatures {\n static readonly type = '[FeatureManagement] Get Features';\n constructor(public payload: FeatureManagement.Provider) {}\n}\n\nexport class UpdateFeatures {\n static readonly type = '[FeatureManagement] Update Features';\n constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { FeatureManagement } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureManagementService {\n constructor(private rest: RestService, private store: Store) {}\n\n getFeatures(params: FeatureManagement.Provider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/features',\n params,\n };\n return this.rest.request(request);\n }\n\n updateFeatures({\n features,\n providerKey,\n providerName,\n }: FeatureManagement.Provider & FeatureManagement.Features): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/features',\n body: { features },\n params: { providerKey, providerName },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { tap } from 'rxjs/operators';\nimport { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';\nimport { FeatureManagement } from '../models/feature-management';\nimport { FeatureManagementService } from '../services/feature-management.service';\n\n@State({\n name: 'FeatureManagementState',\n defaults: { features: {} } as FeatureManagement.State,\n})\nexport class FeatureManagementState {\n @Selector()\n static getFeatures({ features }: FeatureManagement.State) {\n return features;\n }\n\n constructor(private featureManagementService: FeatureManagementService) {}\n\n @Action(GetFeatures)\n getFeatures({ patchState }: StateContext, { payload }: GetFeatures) {\n return this.featureManagementService.getFeatures(payload).pipe(\n tap(({ features }) =>\n patchState({\n features,\n }),\n ),\n );\n }\n\n @Action(UpdateFeatures)\n updateFeatures(_, { payload }: UpdateFeatures) {\n return this.featureManagementService.updateFeatures(payload);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { GetFeatures, UpdateFeatures } from '../../actions';\nimport { FeatureManagement } from '../../models/feature-management';\nimport { FeatureManagementState } from '../../states';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { pluck, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-feature-management',\n templateUrl: './feature-management.component.html',\n})\nexport class FeatureManagementComponent {\n @Input()\n providerKey: string;\n\n @Input()\n providerName: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (value) this.openModal();\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(FeatureManagementState.getFeatures)\n features$: Observable;\n\n modalBusy: boolean = false;\n\n form: FormGroup;\n\n constructor(private store: Store) {}\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.getFeatures();\n }\n\n getFeatures() {\n this.store\n .dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('FeatureManagementState', 'features'))\n .subscribe(features => {\n this.buildForm(features);\n });\n }\n\n buildForm(features) {\n const formGroupObj = {};\n\n for (let i = 0; i < features.length; i++) {\n formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);\n }\n\n this.form = new FormGroup(formGroupObj);\n }\n\n save() {\n this.modalBusy = true;\n\n let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);\n\n features = features.map((feature, i) => ({\n name: feature.name,\n value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],\n }));\n\n this.store\n .dispatch(\n new UpdateFeatures({\n providerKey: this.providerKey,\n providerName: this.providerName,\n features,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { FeatureManagementComponent } from './components/feature-management/feature-management.component';\nimport { NgxsModule } from '@ngxs/store';\nimport { FeatureManagementState } from './states/feature-management.state';\n\n@NgModule({\n declarations: [FeatureManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],\n exports: [FeatureManagementComponent],\n})\nexport class FeatureManagementModule {}\n"],"names":["tslib_1.__decorate"],"mappings":";;;;;;;;;;;;;AAAA;IAEA;KAQC;;;;IANQ,mCAAO;;;IAAd;QACE,OAAO;YACL,QAAQ,EAAE,2BAA2B;YACrC,SAAS,EAAE,EAAE;SACd,CAAC;KACH;;gBAPF,QAAQ,SAAC,EAAE;;IAQZ,kCAAC;CARD;;;;;;ACAA;IAEE,qBAAmB,OAAmC;QAAnC,YAAO,GAAP,OAAO,CAA4B;KAAI;IAD1C,gBAAI,GAAG,kCAAkC,CAAC;IAE5D,kBAAC;CAHD,IAGC;;;IAFC,iBAA0D;;IAC9C,8BAA0C;;AAGxD;IAEE,wBAAmB,OAAgE;QAAhE,YAAO,GAAP,OAAO,CAAyD;KAAI;IADvE,mBAAI,GAAG,qCAAqC,CAAC;IAE/D,qBAAC;CAHD,IAGC;;;IAFC,oBAA6D;;IACjD,iCAAuE;;;;;;;;;;;;ACTrF;IAUE,kCAAoB,IAAiB,EAAU,KAAY;QAAvC,SAAI,GAAJ,IAAI,CAAa;QAAU,UAAK,GAAL,KAAK,CAAO;KAAI;;;;;IAE/D,8CAAW;;;;IAAX,UAAY,MAAkC;;YACtC,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,mBAAmB;YACxB,MAAM,QAAA;SACP;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAyD,OAAO,CAAC,CAAC;KAC3F;;;;;IAED,iDAAc;;;;IAAd,UAAe,EAI2C;YAHxD,sBAAQ,EACR,4BAAW,EACX,8BAAY;;YAEN,OAAO,GAA6C;YACxD,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,mBAAmB;YACxB,IAAI,EAAE,EAAE,QAAQ,UAAA,EAAE;YAClB,MAAM,EAAE,EAAE,WAAW,aAAA,EAAE,YAAY,cAAA,EAAE;SACtC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAmC,OAAO,CAAC,CAAC;KACrE;;gBA3BF,UAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;;gBAPQ,WAAW;gBACX,KAAK;;;mCAFd;CAMA,IA4BC;;;;;;IAxBa,wCAAyB;;;;;IAAE,yCAAoB;;;;;;;;ICM3D,gCAAoB,wBAAkD;QAAlD,6BAAwB,GAAxB,wBAAwB,CAA0B;KAAI;;;;;IAJnE,kCAAW;;;;IAAlB,UAAmB,EAAqC;YAAnC,sBAAQ;QAC3B,OAAO,QAAQ,CAAC;KACjB;;;;;;IAKD,4CAAW;;;;;IAAX,UAAY,EAAqD,EAAE,EAAwB;YAA7E,0BAAU;YAA6C,oBAAO;QAC1E,OAAO,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAC5D,GAAG;;;;QAAC,UAAC,EAAY;gBAAV,sBAAQ;YACb,OAAA,UAAU,CAAC;gBACT,QAAQ,UAAA;aACT,CAAC;SAAA,EACH,CACF,CAAC;KACH;;;;;;IAGD,+CAAc;;;;;IAAd,UAAe,CAAC,EAAE,EAA2B;YAAzB,oBAAO;QACzB,OAAO,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;KAC9D;IAbDA;QADC,MAAM,CAAC,WAAW,CAAC;;iDAC4D,WAAW;;6DAQ1F;IAGDA;QADC,MAAM,CAAC,cAAc,CAAC;;iDACQ,cAAc;;gEAE5C;IApBDA;QADC,QAAQ,EAAE;;;;mDAGV;IAJU,sBAAsB;QAJlC,KAAK,CAA0B;YAC9B,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,qBAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAA2B;SACtD,CAAC;yCAO8C,wBAAwB;OAN3D,sBAAsB,CAuBlC;IAAD,6BAAC;CAAA,IAAA;;;;;;IAjBa,0DAA0D;;;;;;;;;;;;;IC4BtE,oCAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAThC,kBAAa,GAAG,IAAI,YAAY,EAAW,CAAC;QAK5C,cAAS,GAAY,KAAK,CAAC;KAIS;IAtBpC,sBACI,+CAAO;;;;QADX;YAEE,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;;;;;QAED,UAAY,KAAc;YACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE/B,IAAI,KAAK;gBAAE,IAAI,CAAC,SAAS,EAAE,CAAC;SAC7B;;;OAPA;;;;IAqBD,8CAAS;;;IAAT;QACE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC3C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;;;;IAED,gDAAW;;;IAAX;QAAA,iBAOC;QANC,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;aAC7F,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;aACjD,SAAS;;;;QAAC,UAAA,QAAQ;YACjB,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SAC1B,EAAC,CAAC;KACN;;;;;IAED,8CAAS;;;;IAAT,UAAU,QAAQ;;YACV,YAAY,GAAG,EAAE;QAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC7F;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;KACzC;;;;IAED,yCAAI;;;IAAJ;QAAA,iBAsBC;QArBC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;YAElB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,sBAAsB,CAAC,WAAW,CAAC;QAE5E,QAAQ,GAAG,QAAQ,CAAC,GAAG;;;;;QAAC,UAAC,OAAO,EAAE,CAAC,IAAK,QAAC;YACvC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACzF,IAAC,EAAC,CAAC;QAEJ,IAAI,CAAC,KAAK;aACP,QAAQ,CACP,IAAI,cAAc,CAAC;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,UAAA;SACT,CAAC,CACH;aACA,SAAS;;;QAAC;YACT,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB,EAAC,CAAC;KACN;;gBAtFF,SAAS,SAAC;oBACT,QAAQ,EAAE,wBAAwB;oBAClC,wvCAAkD;iBACnD;;;;gBAXgB,KAAK;;;8BAanB,KAAK;+BAGL,KAAK;0BAKL,KAAK;gCAYL,MAAM;;IAIPA;QADC,MAAM,CAAC,sBAAsB,CAAC,WAAW,CAAC;kCAChC,UAAU;iEAA8B;IA0DrD,iCAAC;CAvFD,IAuFC;;;IAlFC,iDACoB;;IAEpB,kDACqB;;;;;IAErB,8CAAmB;;IAcnB,mDAC4C;;IAE5C,+CACmD;;IAEnD,+CAA2B;;IAE3B,0CAAgB;;;;;IAEJ,2CAAoB;;;;;;;AC5ClC;IAOA;KAKuC;;gBALtC,QAAQ,SAAC;oBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBACzF,OAAO,EAAE,CAAC,0BAA0B,CAAC;iBACtC;;IACqC,8BAAC;CALvC;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"abp-ng.feature-management.js","sources":["ng://@abp/ng.feature-management/lib/actions/feature-management.actions.ts","ng://@abp/ng.feature-management/lib/services/feature-management.service.ts","ng://@abp/ng.feature-management/lib/states/feature-management.state.ts","ng://@abp/ng.feature-management/lib/components/feature-management/feature-management.component.ts","ng://@abp/ng.feature-management/lib/feature-management.module.ts"],"sourcesContent":["import { FeatureManagement } from '../models';\n\nexport class GetFeatures {\n static readonly type = '[FeatureManagement] Get Features';\n constructor(public payload: FeatureManagement.Provider) {}\n}\n\nexport class UpdateFeatures {\n static readonly type = '[FeatureManagement] Update Features';\n constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { FeatureManagement } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureManagementService {\n constructor(private rest: RestService, private store: Store) {}\n\n getFeatures(params: FeatureManagement.Provider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/features',\n params,\n };\n return this.rest.request(request);\n }\n\n updateFeatures({\n features,\n providerKey,\n providerName,\n }: FeatureManagement.Provider & FeatureManagement.Features): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/features',\n body: { features },\n params: { providerKey, providerName },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { tap } from 'rxjs/operators';\nimport { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';\nimport { FeatureManagement } from '../models/feature-management';\nimport { FeatureManagementService } from '../services/feature-management.service';\n\n@State({\n name: 'FeatureManagementState',\n defaults: { features: {} } as FeatureManagement.State,\n})\nexport class FeatureManagementState {\n @Selector()\n static getFeatures({ features }: FeatureManagement.State) {\n return features;\n }\n\n constructor(private featureManagementService: FeatureManagementService) {}\n\n @Action(GetFeatures)\n getFeatures({ patchState }: StateContext, { payload }: GetFeatures) {\n return this.featureManagementService.getFeatures(payload).pipe(\n tap(({ features }) =>\n patchState({\n features,\n }),\n ),\n );\n }\n\n @Action(UpdateFeatures)\n updateFeatures(_, { payload }: UpdateFeatures) {\n return this.featureManagementService.updateFeatures(payload);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { GetFeatures, UpdateFeatures } from '../../actions';\nimport { FeatureManagement } from '../../models/feature-management';\nimport { FeatureManagementState } from '../../states';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { pluck, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-feature-management',\n templateUrl: './feature-management.component.html',\n})\nexport class FeatureManagementComponent {\n @Input()\n providerKey: string;\n\n @Input()\n providerName: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (value) this.openModal();\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(FeatureManagementState.getFeatures)\n features$: Observable;\n\n modalBusy: boolean = false;\n\n form: FormGroup;\n\n constructor(private store: Store) {}\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.getFeatures();\n }\n\n getFeatures() {\n this.store\n .dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('FeatureManagementState', 'features'))\n .subscribe(features => {\n this.buildForm(features);\n });\n }\n\n buildForm(features) {\n const formGroupObj = {};\n\n for (let i = 0; i < features.length; i++) {\n formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);\n }\n\n this.form = new FormGroup(formGroupObj);\n }\n\n save() {\n this.modalBusy = true;\n\n let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);\n\n features = features.map((feature, i) => ({\n name: feature.name,\n value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],\n }));\n\n this.store\n .dispatch(\n new UpdateFeatures({\n providerKey: this.providerKey,\n providerName: this.providerName,\n features,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { FeatureManagementComponent } from './components/feature-management/feature-management.component';\nimport { NgxsModule } from '@ngxs/store';\nimport { FeatureManagementState } from './states/feature-management.state';\n\n@NgModule({\n declarations: [FeatureManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],\n exports: [FeatureManagementComponent],\n})\nexport class FeatureManagementModule {}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/lib/root-feature-management.module.d.ts b/npm/ng-packs/dist/feature-management/lib/root-feature-management.module.d.ts deleted file mode 100644 index 03f4c95353..0000000000 --- a/npm/ng-packs/dist/feature-management/lib/root-feature-management.module.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { ModuleWithProviders } from '@angular/core'; -export declare class RootFeatureManagementModule { - static forRoot(): ModuleWithProviders; -} diff --git a/npm/ng-packs/dist/feature-management/package.json b/npm/ng-packs/dist/feature-management/package.json index 568d572962..e5dab8cf27 100644 --- a/npm/ng-packs/dist/feature-management/package.json +++ b/npm/ng-packs/dist/feature-management/package.json @@ -1,8 +1,8 @@ { "name": "@abp/ng.feature-management", - "version": "0.8.3", + "version": "0.9.0", "dependencies": { - "@abp/ng.theme.shared": "^0.8.3", + "@abp/ng.theme.shared": "^0.9.0", "tslib": "^1.9.0" }, "publishConfig": { diff --git a/npm/ng-packs/dist/feature-management/public-api.d.ts b/npm/ng-packs/dist/feature-management/public-api.d.ts index a13bb6c526..047ac00914 100644 --- a/npm/ng-packs/dist/feature-management/public-api.d.ts +++ b/npm/ng-packs/dist/feature-management/public-api.d.ts @@ -1,3 +1,2 @@ -export * from './lib/root-feature-management.module'; export * from './lib/feature-management.module'; export * from './lib/components'; diff --git a/npm/ng-packs/dist/identity/abp-ng.identity.metadata.json b/npm/ng-packs/dist/identity/abp-ng.identity.metadata.json index 0a7da7c721..1c72b6d9a2 100644 --- a/npm/ng-packs/dist/identity/abp-ng.identity.metadata.json +++ b/npm/ng-packs/dist/identity/abp-ng.identity.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"exports":[{"from":"./lib/models/identity"}],"metadata":{"RootIdentityModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":2,"character":1},"arguments":[{}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"RootIdentityModule"},"providers":[]}}}},"IdentityModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"RolesComponent"},{"__symbolic":"reference","name":"ɵb"}],"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":17,"character":4},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"IdentityState"}]]},{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":18,"character":4},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTabsetModule","line":20,"character":4},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":21,"character":4},{"__symbolic":"reference","module":"primeng/table","name":"TableModule","line":22,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":23,"character":4},{"__symbolic":"reference","module":"@abp/ng.permission-management","name":"PermissionManagementModule","line":24,"character":4},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":25,"character":4},{"__symbolic":"reference","module":"ngx-perfect-scrollbar","name":"PerfectScrollbarModule","line":26,"character":4}]}]}],"members":{}},"GetRoles":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ABP","line":5,"character":31},"member":"PageQueryParams"}]}]},"statics":{"type":"[Identity] Get Roles"}},"GetRoleById":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Get Role By Id"}},"DeleteRole":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Delete Role"}},"CreateRole":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵa"},"member":"RoleSaveRequest"}]}]},"statics":{"type":"[Identity] Create Role"}},"UpdateRole":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵa"},"member":"RoleItem"}]}]},"statics":{"type":"[Identity] Update Role"}},"GetUsers":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ABP","line":30,"character":31},"member":"PageQueryParams"}]}]},"statics":{"type":"[Identity] Get Users"}},"GetUserById":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Get User By Id"}},"DeleteUser":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Delete User"}},"CreateUser":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵa"},"member":"UserSaveRequest"}]}]},"statics":{"type":"[Identity] Create User"}},"UpdateUser":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":50,"character":30,"module":"./lib/actions/identity.actions"}]}]},"statics":{"type":"[Identity] Update User"}},"GetUserRoles":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Get User Roles"}},"RolesComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"abp-roles","template":"
\n
\n
\n
\n
{{ 'AbpIdentity::Roles' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n"}]}],"members":{"data$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":16,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"IdentityState"},"member":"getRoles"}]}]}],"totalCount$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":19,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"IdentityState"},"member":"getRolesTotalCount"}]}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":40,"character":3},"arguments":["modalContent",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ConfirmationService","line":43,"character":43},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":43,"character":76},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":43,"character":104}]}],"onSearch":[{"__symbolic":"method"}],"createForm":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"onAdd":[{"__symbolic":"method"}],"onEdit":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"onPageChange":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}]}},"IDENTITY_ROUTES":{"routes":[{"name":"AbpUiNavigation::Menu:Administration","path":"","order":1,"wrapper":true},{"name":"AbpIdentity::Menu:IdentityManagement","path":"identity","order":1,"parentName":"AbpUiNavigation::Menu:Administration","layout":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":15,"character":14},"member":"application"},"iconClass":"fa fa-id-card-o","children":[{"path":"roles","name":"AbpIdentity::Roles","order":2,"requiredPolicy":"AbpIdentity.Roles"},{"path":"users","name":"AbpIdentity::Users","order":1,"requiredPolicy":"AbpIdentity.Users"}]}],"settings":[]},"RoleResolver":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":9,"character":29}]}],"resolve":[{"__symbolic":"method"}]}},"IdentityService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":9,"character":28}]}],"getRoles":[{"__symbolic":"method"}],"getRoleById":[{"__symbolic":"method"}],"deleteRole":[{"__symbolic":"method"}],"createRole":[{"__symbolic":"method"}],"updateRole":[{"__symbolic":"method"}],"getUsers":[{"__symbolic":"method"}],"getUserById":[{"__symbolic":"method"}],"getUserRoles":[{"__symbolic":"method"}],"deleteUser":[{"__symbolic":"method"}],"createUser":[{"__symbolic":"method"}],"updateUser":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"IdentityState":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":18,"character":1},"arguments":[{"name":"IdentityState","defaults":{"roles":{},"selectedRole":{},"users":{},"selectedUser":{}}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"IdentityService"}]}],"getRoles":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":45,"character":3},"arguments":[{"__symbolic":"reference","name":"GetRoles"}]}]}],"getRole":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":56,"character":3},"arguments":[{"__symbolic":"reference","name":"GetRoleById"}]}]}],"deleteRole":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":67,"character":3},"arguments":[{"__symbolic":"reference","name":"DeleteRole"}]}]}],"addRole":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":72,"character":3},"arguments":[{"__symbolic":"reference","name":"CreateRole"}]}]}],"updateRole":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":77,"character":3},"arguments":[{"__symbolic":"reference","name":"UpdateRole"}]}]}],"getUsers":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":85,"character":3},"arguments":[{"__symbolic":"reference","name":"GetUsers"}]}]}],"getUser":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":96,"character":3},"arguments":[{"__symbolic":"reference","name":"GetUserById"}]}]}],"deleteUser":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":107,"character":3},"arguments":[{"__symbolic":"reference","name":"DeleteUser"}]}]}],"addUser":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":112,"character":3},"arguments":[{"__symbolic":"reference","name":"CreateUser"}]}]}],"updateUser":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":117,"character":3},"arguments":[{"__symbolic":"reference","name":"UpdateUser"}]}]}],"getUserRoles":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":125,"character":3},"arguments":[{"__symbolic":"reference","name":"GetUserRoles"}]}]}]},"statics":{"getRoles":{"__symbolic":"function","parameters":["roles"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"roles"},"member":"items"}},"getRolesTotalCount":{"__symbolic":"function","parameters":["roles"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"roles"},"member":"totalCount"}},"getUsers":{"__symbolic":"function","parameters":["users"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"users"},"member":"items"}},"getUsersTotalCount":{"__symbolic":"function","parameters":["users"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"users"},"member":"totalCount"}}}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"abp-users","template":"
\n
\n
\n
\n
{{ 'AbpIdentity::Users' | abpLocalization }}
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::UserName' | abpLocalization }}\n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}

\n
\n\n \n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n\n \n \n {{\n 'AbpIdentity::Save' | abpLocalization\n }}\n \n\n\n\n"}]}],"members":{"data$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":23,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"IdentityState"},"member":"getUsers"}]}]}],"totalCount$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":26,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"IdentityState"},"member":"getUsersTotalCount"}]}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":29,"character":3},"arguments":["modalContent",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ConfirmationService","line":60,"character":43},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":60,"character":76},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":60,"character":104}]}],"onSearch":[{"__symbolic":"method"}],"buildForm":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"onAdd":[{"__symbolic":"method"}],"onEdit":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"onPageChange":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":32,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":33,"character":12},"member":"forChild"},"arguments":[[{"path":"","redirectTo":"roles","pathMatch":"full"},{"path":"roles","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":12,"character":15},"canActivate":[{"__symbolic":"reference","module":"@abp/ng.core","name":"AuthGuard","line":13,"character":18},{"__symbolic":"reference","module":"@abp/ng.core","name":"PermissionGuard","line":13,"character":29}],"data":{"requiredPolicy":"AbpIdentity.Roles"},"children":[{"path":"","component":{"__symbolic":"reference","name":"RolesComponent"},"resolve":[{"__symbolic":"reference","name":"RoleResolver"}]}]},{"path":"users","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":19,"character":15},"canActivate":[{"__symbolic":"reference","module":"@abp/ng.core","name":"AuthGuard","line":20,"character":18},{"__symbolic":"reference","module":"@abp/ng.core","name":"PermissionGuard","line":20,"character":29}],"data":{"requiredPolicy":"AbpIdentity.Users"},"children":[{"path":"","component":{"__symbolic":"reference","name":"ɵb"},"resolve":[{"__symbolic":"reference","name":"RoleResolver"},{"__symbolic":"reference","name":"ɵd"}]}]}]]}],"exports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":34,"character":12}],"providers":[{"__symbolic":"reference","name":"RoleResolver"},{"__symbolic":"reference","name":"ɵd"}]}]}],"members":{}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":9,"character":29}]}],"resolve":[{"__symbolic":"method"}]}}},"origins":{"RootIdentityModule":"./lib/root-identity.module","IdentityModule":"./lib/identity.module","GetRoles":"./lib/actions/identity.actions","GetRoleById":"./lib/actions/identity.actions","DeleteRole":"./lib/actions/identity.actions","CreateRole":"./lib/actions/identity.actions","UpdateRole":"./lib/actions/identity.actions","GetUsers":"./lib/actions/identity.actions","GetUserById":"./lib/actions/identity.actions","DeleteUser":"./lib/actions/identity.actions","CreateUser":"./lib/actions/identity.actions","UpdateUser":"./lib/actions/identity.actions","GetUserRoles":"./lib/actions/identity.actions","RolesComponent":"./lib/components/roles/roles.component","IDENTITY_ROUTES":"./lib/constants/routes","RoleResolver":"./lib/resolvers/roles.resolver","IdentityService":"./lib/services/identity.service","IdentityState":"./lib/states/identity.state","ɵa":"./lib/models/identity","ɵb":"./lib/components/users/users.component","ɵc":"./lib/identity-routing.module","ɵd":"./lib/resolvers/users.resolver"},"importAs":"@abp/ng.identity"} \ No newline at end of file +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/models/identity"}],"metadata":{"IdentityModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"RolesComponent"},{"__symbolic":"reference","name":"ɵb"}],"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":16,"character":4},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"IdentityState"}]]},{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":17,"character":4},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTabsetModule","line":19,"character":4},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":20,"character":4},{"__symbolic":"reference","module":"primeng/table","name":"TableModule","line":21,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":22,"character":4},{"__symbolic":"reference","module":"@abp/ng.permission-management","name":"PermissionManagementModule","line":23,"character":4},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":24,"character":4}]}]}],"members":{}},"IdentityProviders":{"__symbolic":"function","parameters":[],"value":[]},"GetRoles":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ABP","line":5,"character":31},"member":"PageQueryParams"}]}]},"statics":{"type":"[Identity] Get Roles"}},"GetRoleById":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Get Role By Id"}},"DeleteRole":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Delete Role"}},"CreateRole":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵa"},"member":"RoleSaveRequest"}]}]},"statics":{"type":"[Identity] Create Role"}},"UpdateRole":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵa"},"member":"RoleItem"}]}]},"statics":{"type":"[Identity] Update Role"}},"GetUsers":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ABP","line":30,"character":31},"member":"PageQueryParams"}]}]},"statics":{"type":"[Identity] Get Users"}},"GetUserById":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Get User By Id"}},"DeleteUser":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Delete User"}},"CreateUser":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵa"},"member":"UserSaveRequest"}]}]},"statics":{"type":"[Identity] Create User"}},"UpdateUser":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":50,"character":30,"module":"./lib/actions/identity.actions"}]}]},"statics":{"type":"[Identity] Update User"}},"GetUserRoles":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Identity] Get User Roles"}},"RolesComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"abp-roles","template":"
\n
\n

{{ 'AbpIdentity::Roles' | abpLocalization }}

\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n"}]}],"members":{"data$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":16,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"IdentityState"},"member":"getRoles"}]}]}],"totalCount$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":19,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"IdentityState"},"member":"getRolesTotalCount"}]}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":42,"character":3},"arguments":["modalContent",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ConfirmationService","line":45,"character":43},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":45,"character":76},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":45,"character":104}]}],"onSearch":[{"__symbolic":"method"}],"createForm":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"onAdd":[{"__symbolic":"method"}],"onEdit":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"onPageChange":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"changeSortOrder":[{"__symbolic":"method"}]}},"IDENTITY_ROUTES":{"routes":[{"name":"AbpUiNavigation::Menu:Administration","path":"","order":1,"wrapper":true},{"name":"AbpIdentity::Menu:IdentityManagement","path":"identity","order":1,"parentName":"AbpUiNavigation::Menu:Administration","layout":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":15,"character":14},"member":"application"},"iconClass":"fa fa-id-card-o","children":[{"path":"roles","name":"AbpIdentity::Roles","order":2,"requiredPolicy":"AbpIdentity.Roles"},{"path":"users","name":"AbpIdentity::Users","order":1,"requiredPolicy":"AbpIdentity.Users"}]}]},"RoleResolver":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":9,"character":29}]}],"resolve":[{"__symbolic":"method"}]}},"IdentityService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":9,"character":28}]}],"getRoles":[{"__symbolic":"method"}],"getRoleById":[{"__symbolic":"method"}],"deleteRole":[{"__symbolic":"method"}],"createRole":[{"__symbolic":"method"}],"updateRole":[{"__symbolic":"method"}],"getUsers":[{"__symbolic":"method"}],"getUserById":[{"__symbolic":"method"}],"getUserRoles":[{"__symbolic":"method"}],"deleteUser":[{"__symbolic":"method"}],"createUser":[{"__symbolic":"method"}],"updateUser":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"IdentityState":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":18,"character":1},"arguments":[{"name":"IdentityState","defaults":{"roles":{},"selectedRole":{},"users":{},"selectedUser":{}}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"IdentityService"}]}],"getRoles":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":45,"character":3},"arguments":[{"__symbolic":"reference","name":"GetRoles"}]}]}],"getRole":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":56,"character":3},"arguments":[{"__symbolic":"reference","name":"GetRoleById"}]}]}],"deleteRole":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":67,"character":3},"arguments":[{"__symbolic":"reference","name":"DeleteRole"}]}]}],"addRole":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":72,"character":3},"arguments":[{"__symbolic":"reference","name":"CreateRole"}]}]}],"updateRole":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":77,"character":3},"arguments":[{"__symbolic":"reference","name":"UpdateRole"}]}]}],"getUsers":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":85,"character":3},"arguments":[{"__symbolic":"reference","name":"GetUsers"}]}]}],"getUser":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":96,"character":3},"arguments":[{"__symbolic":"reference","name":"GetUserById"}]}]}],"deleteUser":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":107,"character":3},"arguments":[{"__symbolic":"reference","name":"DeleteUser"}]}]}],"addUser":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":112,"character":3},"arguments":[{"__symbolic":"reference","name":"CreateUser"}]}]}],"updateUser":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":117,"character":3},"arguments":[{"__symbolic":"reference","name":"UpdateUser"}]}]}],"getUserRoles":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":125,"character":3},"arguments":[{"__symbolic":"reference","name":"GetUserRoles"}]}]}]},"statics":{"getRoles":{"__symbolic":"function","parameters":["roles"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"roles"},"member":"items"}},"getRolesTotalCount":{"__symbolic":"function","parameters":["roles"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"roles"},"member":"totalCount"}},"getUsers":{"__symbolic":"function","parameters":["users"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"users"},"member":"items"}},"getUsersTotalCount":{"__symbolic":"function","parameters":["users"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"users"},"member":"totalCount"}}}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"abp-users","template":"
\n
\n

{{ 'AbpIdentity::Users' | abpLocalization }}

\n
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n {{ 'AbpIdentity::UserName' | abpLocalization }}\n \n \n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}

\n
\n\n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n\n \n \n {{\n 'AbpIdentity::Save' | abpLocalization\n }}\n \n\n\n\n"}]}],"members":{"data$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":23,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"IdentityState"},"member":"getUsers"}]}]}],"totalCount$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":26,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"IdentityState"},"member":"getUsersTotalCount"}]}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":29,"character":3},"arguments":["modalContent",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ConfirmationService","line":62,"character":43},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":62,"character":76},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":62,"character":104}]}],"onSearch":[{"__symbolic":"method"}],"buildForm":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"onAdd":[{"__symbolic":"method"}],"onEdit":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"onPageChange":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"changeSortOrder":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":32,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":33,"character":12},"member":"forChild"},"arguments":[[{"path":"","redirectTo":"roles","pathMatch":"full"},{"path":"roles","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":12,"character":15},"canActivate":[{"__symbolic":"reference","module":"@abp/ng.core","name":"AuthGuard","line":13,"character":18},{"__symbolic":"reference","module":"@abp/ng.core","name":"PermissionGuard","line":13,"character":29}],"data":{"requiredPolicy":"AbpIdentity.Roles"},"children":[{"path":"","component":{"__symbolic":"reference","name":"RolesComponent"},"resolve":[{"__symbolic":"reference","name":"RoleResolver"}]}]},{"path":"users","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":19,"character":15},"canActivate":[{"__symbolic":"reference","module":"@abp/ng.core","name":"AuthGuard","line":20,"character":18},{"__symbolic":"reference","module":"@abp/ng.core","name":"PermissionGuard","line":20,"character":29}],"data":{"requiredPolicy":"AbpIdentity.Users"},"children":[{"path":"","component":{"__symbolic":"reference","name":"ɵb"},"resolve":[{"__symbolic":"reference","name":"RoleResolver"},{"__symbolic":"reference","name":"ɵd"}]}]}]]}],"exports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":34,"character":12}],"providers":[{"__symbolic":"reference","name":"RoleResolver"},{"__symbolic":"reference","name":"ɵd"}]}]}],"members":{}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":9,"character":29}]}],"resolve":[{"__symbolic":"method"}]}}},"origins":{"IdentityModule":"./lib/identity.module","IdentityProviders":"./lib/identity.module","GetRoles":"./lib/actions/identity.actions","GetRoleById":"./lib/actions/identity.actions","DeleteRole":"./lib/actions/identity.actions","CreateRole":"./lib/actions/identity.actions","UpdateRole":"./lib/actions/identity.actions","GetUsers":"./lib/actions/identity.actions","GetUserById":"./lib/actions/identity.actions","DeleteUser":"./lib/actions/identity.actions","CreateUser":"./lib/actions/identity.actions","UpdateUser":"./lib/actions/identity.actions","GetUserRoles":"./lib/actions/identity.actions","RolesComponent":"./lib/components/roles/roles.component","IDENTITY_ROUTES":"./lib/constants/routes","RoleResolver":"./lib/resolvers/roles.resolver","IdentityService":"./lib/services/identity.service","IdentityState":"./lib/states/identity.state","ɵa":"./lib/models/identity","ɵb":"./lib/components/users/users.component","ɵc":"./lib/identity-routing.module","ɵd":"./lib/resolvers/users.resolver"},"importAs":"@abp/ng.identity"} \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.js b/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.js index 2345708ae8..303c1dc9e6 100644 --- a/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.js +++ b/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.js @@ -1,8 +1,8 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@abp/ng.core'), require('@ngxs/store'), require('@abp/ng.theme.shared'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@angular/router'), require('snq'), require('@ng-bootstrap/ng-bootstrap'), require('@abp/ng.permission-management'), require('primeng/table'), require('@ngx-validate/core'), require('ngx-perfect-scrollbar')) : - typeof define === 'function' && define.amd ? define('@abp/ng.identity', ['exports', '@angular/core', '@abp/ng.core', '@ngxs/store', '@abp/ng.theme.shared', '@angular/forms', 'rxjs', 'rxjs/operators', '@angular/router', 'snq', '@ng-bootstrap/ng-bootstrap', '@abp/ng.permission-management', 'primeng/table', '@ngx-validate/core', 'ngx-perfect-scrollbar'], factory) : - (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.identity = {}), global.ng.core, global.ng_core, global.store, global.ng_theme_shared, global.ng.forms, global.rxjs, global.rxjs.operators, global.ng.router, global.snq, global.ngBootstrap, global.ng_permissionManagement, global.table, global.core$1, global.ngxPerfectScrollbar)); -}(this, function (exports, core, ng_core, store, ng_theme_shared, forms, rxjs, operators, router, snq, ngBootstrap, ng_permissionManagement, table, core$1, ngxPerfectScrollbar) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@angular/core'), require('@ngxs/store'), require('@abp/ng.theme.shared'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@angular/router'), require('snq'), require('@ng-bootstrap/ng-bootstrap'), require('@abp/ng.permission-management'), require('primeng/table'), require('@ngx-validate/core')) : + typeof define === 'function' && define.amd ? define('@abp/ng.identity', ['exports', '@abp/ng.core', '@angular/core', '@ngxs/store', '@abp/ng.theme.shared', '@angular/forms', 'rxjs', 'rxjs/operators', '@angular/router', 'snq', '@ng-bootstrap/ng-bootstrap', '@abp/ng.permission-management', 'primeng/table', '@ngx-validate/core'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.identity = {}), global.ng_core, global.ng.core, global.store, global.ng_theme_shared, global.ng.forms, global.rxjs, global.rxjs.operators, global.ng.router, global.snq, global.ngBootstrap, global.ng_permissionManagement, global.table, global.core$1)); +}(this, function (exports, ng_core, core, store, ng_theme_shared, forms, rxjs, operators, router, snq, ngBootstrap, ng_permissionManagement, table, core$1) { 'use strict'; snq = snq && snq.hasOwnProperty('default') ? snq['default'] : snq; @@ -203,31 +203,6 @@ return (mod && mod.__esModule) ? mod : { default: mod }; } - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var RootIdentityModule = /** @class */ (function () { - function RootIdentityModule() { - } - /** - * @return {?} - */ - RootIdentityModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootIdentityModule, - providers: [], - }; - }; - RootIdentityModule.decorators = [ - { type: core.NgModule, args: [{},] } - ]; - return RootIdentityModule; - }()); - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -1003,6 +978,7 @@ }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; } /** * @param {?} value @@ -1153,10 +1129,19 @@ function () { return (_this.loading = false); }))) .subscribe(); }; + /** + * @return {?} + */ + RolesComponent.prototype.changeSortOrder = /** + * @return {?} + */ + function () { + this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc'; + }; RolesComponent.decorators = [ { type: core.Component, args: [{ selector: 'abp-roles', - template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Roles' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n" + template: "
\n
\n

{{ 'AbpIdentity::Roles' | abpLocalization }}

\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n" }] } ]; /** @nocollapse */ @@ -1200,6 +1185,8 @@ /** @type {?} */ RolesComponent.prototype.modalBusy; /** @type {?} */ + RolesComponent.prototype.sortOrder; + /** @type {?} */ RolesComponent.prototype.modalContent; /** * @type {?} @@ -1269,6 +1256,7 @@ }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; this.trackByFn = (/** * @param {?} index * @param {?} item @@ -1481,10 +1469,19 @@ function () { return (_this.loading = false); }))) .subscribe(); }; + /** + * @return {?} + */ + UsersComponent.prototype.changeSortOrder = /** + * @return {?} + */ + function () { + this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc'; + }; UsersComponent.decorators = [ { type: core.Component, args: [{ selector: 'abp-users', - template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Users' | abpLocalization }}
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::UserName' | abpLocalization }}\n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}

\n
\n\n \n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n\n \n \n {{\n 'AbpIdentity::Save' | abpLocalization\n }}\n \n\n\n\n" + template: "
\n
\n

{{ 'AbpIdentity::Users' | abpLocalization }}

\n
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n {{ 'AbpIdentity::UserName' | abpLocalization }}\n \n \n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}

\n
\n\n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n\n \n \n {{\n 'AbpIdentity::Save' | abpLocalization\n }}\n \n\n\n\n" }] } ]; /** @nocollapse */ @@ -1534,6 +1531,8 @@ /** @type {?} */ UsersComponent.prototype.modalBusy; /** @type {?} */ + UsersComponent.prototype.sortOrder; + /** @type {?} */ UsersComponent.prototype.trackByFn; /** * @type {?} @@ -1650,12 +1649,17 @@ ngBootstrap.NgbDropdownModule, ng_permissionManagement.PermissionManagementModule, core$1.NgxValidateCoreModule, - ngxPerfectScrollbar.PerfectScrollbarModule, ], },] } ]; return IdentityModule; }()); + /** + * @return {?} + */ + function IdentityProviders() { + return []; + } /** * @fileoverview added by tsickle @@ -1683,7 +1687,6 @@ ], }, ])), - settings: [], }; /** @@ -1799,11 +1802,11 @@ exports.GetUsers = GetUsers; exports.IDENTITY_ROUTES = IDENTITY_ROUTES; exports.IdentityModule = IdentityModule; + exports.IdentityProviders = IdentityProviders; exports.IdentityService = IdentityService; exports.IdentityState = IdentityState; exports.RoleResolver = RoleResolver; exports.RolesComponent = RolesComponent; - exports.RootIdentityModule = RootIdentityModule; exports.UpdateRole = UpdateRole; exports.UpdateUser = UpdateUser; exports.ɵb = UsersComponent; diff --git a/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.js.map b/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.js.map index 19475f991f..9a358c9606 100644 --- a/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.js.map +++ b/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.identity.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.identity/lib/root-identity.module.ts","ng://@abp/ng.identity/lib/actions/identity.actions.ts","ng://@abp/ng.identity/lib/services/identity.service.ts","ng://@abp/ng.identity/lib/states/identity.state.ts","ng://@abp/ng.identity/lib/components/roles/roles.component.ts","ng://@abp/ng.identity/lib/resolvers/roles.resolver.ts","ng://@abp/ng.identity/lib/components/users/users.component.ts","ng://@abp/ng.identity/lib/resolvers/users.resolver.ts","ng://@abp/ng.identity/lib/identity-routing.module.ts","ng://@abp/ng.identity/lib/identity.module.ts","ng://@abp/ng.identity/lib/constants/routes.ts","ng://@abp/ng.identity/lib/models/identity.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootIdentityModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootIdentityModule,\n providers: [],\n };\n }\n}\n","import { Identity } from '../models/identity';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetRoles {\n static readonly type = '[Identity] Get Roles';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetRoleById {\n static readonly type = '[Identity] Get Role By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteRole {\n static readonly type = '[Identity] Delete Role';\n constructor(public payload: string) {}\n}\n\nexport class CreateRole {\n static readonly type = '[Identity] Create Role';\n constructor(public payload: Identity.RoleSaveRequest) {}\n}\n\nexport class UpdateRole {\n static readonly type = '[Identity] Update Role';\n constructor(public payload: Identity.RoleItem) {}\n}\n\nexport class GetUsers {\n static readonly type = '[Identity] Get Users';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetUserById {\n static readonly type = '[Identity] Get User By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteUser {\n static readonly type = '[Identity] Delete User';\n constructor(public payload: string) {}\n}\n\nexport class CreateUser {\n static readonly type = '[Identity] Create User';\n constructor(public payload: Identity.UserSaveRequest) {}\n}\n\nexport class UpdateUser {\n static readonly type = '[Identity] Update User';\n constructor(public payload: Identity.UserSaveRequest & { id: string }) {}\n}\n\nexport class GetUserRoles {\n static readonly type = '[Identity] Get User Roles';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { Identity } from '../models/identity';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdentityService {\n constructor(private rest: RestService) {}\n\n getRoles(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/roles',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getRoleById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteRole(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createRole(body: Identity.RoleSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/roles',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateRole(body: Identity.RoleItem): Observable {\n const url = `/api/identity/roles/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getUsers(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/users',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getUserById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n getUserRoles(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}/roles`,\n };\n\n return this.rest.request(request);\n }\n\n deleteUser(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createUser(body: Identity.UserSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/users',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateUser(body: Identity.UserItem): Observable {\n const url = `/api/identity/users/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap, pluck } from 'rxjs/operators';\nimport {\n CreateRole,\n CreateUser,\n DeleteRole,\n DeleteUser,\n GetRoleById,\n GetRoles,\n GetUserById,\n GetUsers,\n UpdateRole,\n UpdateUser,\n GetUserRoles,\n} from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityService } from '../services/identity.service';\n\n@State({\n name: 'IdentityState',\n defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,\n})\nexport class IdentityState {\n @Selector()\n static getRoles({ roles }: Identity.State): Identity.RoleItem[] {\n return roles.items;\n }\n\n @Selector()\n static getRolesTotalCount({ roles }: Identity.State): number {\n return roles.totalCount;\n }\n\n @Selector()\n static getUsers({ users }: Identity.State): Identity.UserItem[] {\n return users.items;\n }\n\n @Selector()\n static getUsersTotalCount({ users }: Identity.State): number {\n return users.totalCount;\n }\n\n constructor(private identityService: IdentityService) {}\n\n @Action(GetRoles)\n getRoles({ patchState }: StateContext, { payload }: GetRoles) {\n return this.identityService.getRoles(payload).pipe(\n tap(roles =>\n patchState({\n roles,\n }),\n ),\n );\n }\n\n @Action(GetRoleById)\n getRole({ patchState }: StateContext, { payload }: GetRoleById) {\n return this.identityService.getRoleById(payload).pipe(\n tap(selectedRole =>\n patchState({\n selectedRole,\n }),\n ),\n );\n }\n\n @Action(DeleteRole)\n deleteRole({ dispatch }: StateContext, { payload }: GetRoleById) {\n return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(CreateRole)\n addRole({ dispatch }: StateContext, { payload }: CreateRole) {\n return this.identityService.createRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(UpdateRole)\n updateRole({ getState, dispatch }: StateContext, { payload }: UpdateRole) {\n return dispatch(new GetRoleById(payload.id)).pipe(\n switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })),\n switchMap(() => dispatch(new GetRoles())),\n );\n }\n\n @Action(GetUsers)\n getUsers({ patchState }: StateContext, { payload }: GetUsers) {\n return this.identityService.getUsers(payload).pipe(\n tap(users =>\n patchState({\n users,\n }),\n ),\n );\n }\n\n @Action(GetUserById)\n getUser({ patchState }: StateContext, { payload }: GetUserById) {\n return this.identityService.getUserById(payload).pipe(\n tap(selectedUser =>\n patchState({\n selectedUser,\n }),\n ),\n );\n }\n\n @Action(DeleteUser)\n deleteUser({ dispatch }: StateContext, { payload }: GetUserById) {\n return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(CreateUser)\n addUser({ dispatch }: StateContext, { payload }: CreateUser) {\n return this.identityService.createUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(UpdateUser)\n updateUser({ getState, dispatch }: StateContext, { payload }: UpdateUser) {\n return dispatch(new GetUserById(payload.id)).pipe(\n switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })),\n switchMap(() => dispatch(new GetUsers())),\n );\n }\n\n @Action(GetUserRoles)\n getUserRoles({ patchState }: StateContext, { payload }: GetUserRoles) {\n return this.identityService.getUserRoles(payload).pipe(\n pluck('items'),\n tap(selectedUserRoles =>\n patchState({\n selectedUserRoles,\n }),\n ),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck } from 'rxjs/operators';\nimport { CreateRole, DeleteRole, GetRoleById, GetRoles, UpdateRole } from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n\n@Component({\n selector: 'abp-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent {\n @Select(IdentityState.getRoles)\n data$: Observable;\n\n @Select(IdentityState.getRolesTotalCount)\n totalCount$: Observable;\n\n form: FormGroup;\n\n selected: Identity.RoleItem;\n\n isModalVisible: boolean;\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n createForm() {\n this.form = this.fb.group({\n name: new FormControl({ value: this.selected.name || '', disabled: this.selected.isStatic }, [\n Validators.required,\n Validators.maxLength(256),\n ]),\n isDefault: [this.selected.isDefault || false],\n isPublic: [this.selected.isPublic || false],\n });\n }\n\n openModal() {\n this.createForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.RoleItem;\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetRoleById(id))\n .pipe(pluck('IdentityState', 'selectedRole'))\n .subscribe(selectedRole => {\n this.selected = selectedRole;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateRole({ ...this.form.value, id: this.selected.id })\n : new CreateRole(this.form.value),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteRole(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetRoles(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetRoles } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class RoleResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const roles = this.store.selectSnapshot(IdentityState.getRoles);\n return roles && roles.length ? null : this.store.dispatch(new GetRoles());\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, TrackByFunction, ViewChild } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport {\n CreateUser,\n DeleteUser,\n GetUserById,\n GetUserRoles,\n GetUsers,\n UpdateUser,\n} from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n@Component({\n selector: 'abp-users',\n templateUrl: './users.component.html',\n})\nexport class UsersComponent {\n @Select(IdentityState.getUsers)\n data$: Observable;\n\n @Select(IdentityState.getUsersTotalCount)\n totalCount$: Observable;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n selected: Identity.UserItem;\n\n selectedUserRoles: Identity.RoleItem[];\n\n roles: Identity.RoleItem[];\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'userName',\n };\n\n isModalVisible: boolean;\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;\n\n get roleGroups(): FormGroup[] {\n return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);\n }\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n buildForm() {\n this.roles = this.store.selectSnapshot(IdentityState.getRoles);\n this.form = this.fb.group({\n userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],\n email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],\n name: [this.selected.name || '', [Validators.maxLength(64)]],\n surname: [this.selected.surname || '', [Validators.maxLength(64)]],\n phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],\n lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n roleNames: this.fb.array(\n this.roles.map(role =>\n this.fb.group({\n [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))],\n }),\n ),\n ),\n });\n if (!this.selected.userName) {\n this.form.addControl('password', new FormControl('', [Validators.required, Validators.maxLength(32)]));\n }\n }\n\n openModal() {\n this.buildForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.UserItem;\n this.selectedUserRoles = [] as Identity.RoleItem[];\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetUserById(id))\n .pipe(\n switchMap(() => this.store.dispatch(new GetUserRoles(id))),\n pluck('IdentityState'),\n take(1),\n )\n .subscribe((state: Identity.State) => {\n this.selected = state.selectedUser;\n this.selectedUserRoles = state.selectedUserRoles;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n const { roleNames } = this.form.value;\n const mappedRoleNames = snq(\n () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),\n [],\n );\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateUser({\n ...this.form.value,\n id: this.selected.id,\n roleNames: mappedRoleNames,\n })\n : new CreateUser({\n ...this.form.value,\n roleNames: mappedRoleNames,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, userName: string) {\n this.confirmationService\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [userName],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteUser(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetUsers(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetUsers } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class UserResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const users = this.store.selectSnapshot(IdentityState.getUsers);\n return users && users.length ? null : this.store.dispatch(new GetUsers());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { RoleResolver } from './resolvers/roles.resolver';\nimport { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { UsersComponent } from './components/users/users.component';\nimport { UserResolver } from './resolvers/users.resolver';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\n {\n path: 'roles',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Roles' },\n children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],\n },\n {\n path: 'users',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Users' },\n children: [\n {\n path: '',\n component: UsersComponent,\n resolve: [RoleResolver, UserResolver],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [RoleResolver, UserResolver],\n})\nexport class IdentityRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { IdentityState } from './states/identity.state';\nimport { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UsersComponent } from './components/users/users.component';\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\nimport { TableModule } from 'primeng/table';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\n\n@NgModule({\n declarations: [RolesComponent, UsersComponent],\n imports: [\n NgxsModule.forFeature([IdentityState]),\n CoreModule,\n IdentityRoutingModule,\n NgbTabsetModule,\n ThemeSharedModule,\n TableModule,\n NgbDropdownModule,\n PermissionManagementModule,\n NgxValidateCoreModule,\n PerfectScrollbarModule,\n ],\n})\nexport class IdentityModule {}\n","import { eLayoutType, ABP } from '@abp/ng.core';\n\nexport const IDENTITY_ROUTES = {\n routes: [\n {\n name: 'AbpUiNavigation::Menu:Administration',\n path: '',\n order: 1,\n wrapper: true,\n },\n {\n name: 'AbpIdentity::Menu:IdentityManagement',\n path: 'identity',\n order: 1,\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-id-card-o',\n children: [\n { path: 'roles', name: 'AbpIdentity::Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },\n { path: 'users', name: 'AbpIdentity::Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },\n ],\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace Identity {\n export interface State {\n roles: RoleResponse;\n users: UserResponse;\n selectedRole: RoleItem;\n selectedUser: UserItem;\n selectedUserRoles: RoleItem[];\n }\n\n export type RoleResponse = ABP.PagedResponse;\n\n export interface RoleSaveRequest {\n name: string;\n isDefault: boolean;\n isPublic: boolean;\n }\n\n export interface RoleItem extends RoleSaveRequest {\n isStatic: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export type UserResponse = ABP.PagedResponse;\n\n export interface UserItem extends User {\n tenantId: string;\n emailConfirmed: boolean;\n phoneNumberConfirmed: boolean;\n isLockedOut: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export interface User {\n userName: string;\n name: string;\n surname: string;\n email: string;\n phoneNumber: string;\n twoFactorEnabled: true;\n lockoutEnabled: true;\n }\n\n export interface UserSaveRequest extends User {\n password: string;\n roleNames: string[];\n }\n}\n"],"names":["NgModule","Injectable","RestService","tap","switchMap","pluck","tslib_1.__decorate","Action","Selector","State","FormControl","Validators","finalize","Component","ConfirmationService","FormBuilder","Store","ViewChild","Select","Observable","take","DynamicLayoutComponent","AuthGuard","PermissionGuard","RouterModule","NgxsModule","CoreModule","NgbTabsetModule","ThemeSharedModule","TableModule","NgbDropdownModule","PermissionManagementModule","NgxValidateCoreModule","PerfectScrollbarModule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.identity.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.identity/lib/actions/identity.actions.ts","ng://@abp/ng.identity/lib/services/identity.service.ts","ng://@abp/ng.identity/lib/states/identity.state.ts","ng://@abp/ng.identity/lib/components/roles/roles.component.ts","ng://@abp/ng.identity/lib/resolvers/roles.resolver.ts","ng://@abp/ng.identity/lib/components/users/users.component.ts","ng://@abp/ng.identity/lib/resolvers/users.resolver.ts","ng://@abp/ng.identity/lib/identity-routing.module.ts","ng://@abp/ng.identity/lib/identity.module.ts","ng://@abp/ng.identity/lib/constants/routes.ts","ng://@abp/ng.identity/lib/models/identity.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Identity } from '../models/identity';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetRoles {\n static readonly type = '[Identity] Get Roles';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetRoleById {\n static readonly type = '[Identity] Get Role By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteRole {\n static readonly type = '[Identity] Delete Role';\n constructor(public payload: string) {}\n}\n\nexport class CreateRole {\n static readonly type = '[Identity] Create Role';\n constructor(public payload: Identity.RoleSaveRequest) {}\n}\n\nexport class UpdateRole {\n static readonly type = '[Identity] Update Role';\n constructor(public payload: Identity.RoleItem) {}\n}\n\nexport class GetUsers {\n static readonly type = '[Identity] Get Users';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetUserById {\n static readonly type = '[Identity] Get User By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteUser {\n static readonly type = '[Identity] Delete User';\n constructor(public payload: string) {}\n}\n\nexport class CreateUser {\n static readonly type = '[Identity] Create User';\n constructor(public payload: Identity.UserSaveRequest) {}\n}\n\nexport class UpdateUser {\n static readonly type = '[Identity] Update User';\n constructor(public payload: Identity.UserSaveRequest & { id: string }) {}\n}\n\nexport class GetUserRoles {\n static readonly type = '[Identity] Get User Roles';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { Identity } from '../models/identity';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdentityService {\n constructor(private rest: RestService) {}\n\n getRoles(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/roles',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getRoleById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteRole(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createRole(body: Identity.RoleSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/roles',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateRole(body: Identity.RoleItem): Observable {\n const url = `/api/identity/roles/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getUsers(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/users',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getUserById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n getUserRoles(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}/roles`,\n };\n\n return this.rest.request(request);\n }\n\n deleteUser(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createUser(body: Identity.UserSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/users',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateUser(body: Identity.UserItem): Observable {\n const url = `/api/identity/users/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap, pluck } from 'rxjs/operators';\nimport {\n CreateRole,\n CreateUser,\n DeleteRole,\n DeleteUser,\n GetRoleById,\n GetRoles,\n GetUserById,\n GetUsers,\n UpdateRole,\n UpdateUser,\n GetUserRoles,\n} from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityService } from '../services/identity.service';\n\n@State({\n name: 'IdentityState',\n defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,\n})\nexport class IdentityState {\n @Selector()\n static getRoles({ roles }: Identity.State): Identity.RoleItem[] {\n return roles.items;\n }\n\n @Selector()\n static getRolesTotalCount({ roles }: Identity.State): number {\n return roles.totalCount;\n }\n\n @Selector()\n static getUsers({ users }: Identity.State): Identity.UserItem[] {\n return users.items;\n }\n\n @Selector()\n static getUsersTotalCount({ users }: Identity.State): number {\n return users.totalCount;\n }\n\n constructor(private identityService: IdentityService) {}\n\n @Action(GetRoles)\n getRoles({ patchState }: StateContext, { payload }: GetRoles) {\n return this.identityService.getRoles(payload).pipe(\n tap(roles =>\n patchState({\n roles,\n }),\n ),\n );\n }\n\n @Action(GetRoleById)\n getRole({ patchState }: StateContext, { payload }: GetRoleById) {\n return this.identityService.getRoleById(payload).pipe(\n tap(selectedRole =>\n patchState({\n selectedRole,\n }),\n ),\n );\n }\n\n @Action(DeleteRole)\n deleteRole({ dispatch }: StateContext, { payload }: GetRoleById) {\n return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(CreateRole)\n addRole({ dispatch }: StateContext, { payload }: CreateRole) {\n return this.identityService.createRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(UpdateRole)\n updateRole({ getState, dispatch }: StateContext, { payload }: UpdateRole) {\n return dispatch(new GetRoleById(payload.id)).pipe(\n switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })),\n switchMap(() => dispatch(new GetRoles())),\n );\n }\n\n @Action(GetUsers)\n getUsers({ patchState }: StateContext, { payload }: GetUsers) {\n return this.identityService.getUsers(payload).pipe(\n tap(users =>\n patchState({\n users,\n }),\n ),\n );\n }\n\n @Action(GetUserById)\n getUser({ patchState }: StateContext, { payload }: GetUserById) {\n return this.identityService.getUserById(payload).pipe(\n tap(selectedUser =>\n patchState({\n selectedUser,\n }),\n ),\n );\n }\n\n @Action(DeleteUser)\n deleteUser({ dispatch }: StateContext, { payload }: GetUserById) {\n return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(CreateUser)\n addUser({ dispatch }: StateContext, { payload }: CreateUser) {\n return this.identityService.createUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(UpdateUser)\n updateUser({ getState, dispatch }: StateContext, { payload }: UpdateUser) {\n return dispatch(new GetUserById(payload.id)).pipe(\n switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })),\n switchMap(() => dispatch(new GetUsers())),\n );\n }\n\n @Action(GetUserRoles)\n getUserRoles({ patchState }: StateContext, { payload }: GetUserRoles) {\n return this.identityService.getUserRoles(payload).pipe(\n pluck('items'),\n tap(selectedUserRoles =>\n patchState({\n selectedUserRoles,\n }),\n ),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck } from 'rxjs/operators';\nimport { CreateRole, DeleteRole, GetRoleById, GetRoles, UpdateRole } from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n\n@Component({\n selector: 'abp-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent {\n @Select(IdentityState.getRoles)\n data$: Observable;\n\n @Select(IdentityState.getRolesTotalCount)\n totalCount$: Observable;\n\n form: FormGroup;\n\n selected: Identity.RoleItem;\n\n isModalVisible: boolean;\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n sortOrder: string = 'asc';\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n createForm() {\n this.form = this.fb.group({\n name: new FormControl({ value: this.selected.name || '', disabled: this.selected.isStatic }, [\n Validators.required,\n Validators.maxLength(256),\n ]),\n isDefault: [this.selected.isDefault || false],\n isPublic: [this.selected.isPublic || false],\n });\n }\n\n openModal() {\n this.createForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.RoleItem;\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetRoleById(id))\n .pipe(pluck('IdentityState', 'selectedRole'))\n .subscribe(selectedRole => {\n this.selected = selectedRole;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateRole({ ...this.form.value, id: this.selected.id })\n : new CreateRole(this.form.value),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteRole(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetRoles(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n\n changeSortOrder() {\n this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetRoles } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class RoleResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const roles = this.store.selectSnapshot(IdentityState.getRoles);\n return roles && roles.length ? null : this.store.dispatch(new GetRoles());\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, TrackByFunction, ViewChild } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport {\n CreateUser,\n DeleteUser,\n GetUserById,\n GetUserRoles,\n GetUsers,\n UpdateUser,\n} from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n@Component({\n selector: 'abp-users',\n templateUrl: './users.component.html',\n})\nexport class UsersComponent {\n @Select(IdentityState.getUsers)\n data$: Observable;\n\n @Select(IdentityState.getUsersTotalCount)\n totalCount$: Observable;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n selected: Identity.UserItem;\n\n selectedUserRoles: Identity.RoleItem[];\n\n roles: Identity.RoleItem[];\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'userName',\n };\n\n isModalVisible: boolean;\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n sortOrder: string = 'asc';\n\n trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;\n\n get roleGroups(): FormGroup[] {\n return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);\n }\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n buildForm() {\n this.roles = this.store.selectSnapshot(IdentityState.getRoles);\n this.form = this.fb.group({\n userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],\n email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],\n name: [this.selected.name || '', [Validators.maxLength(64)]],\n surname: [this.selected.surname || '', [Validators.maxLength(64)]],\n phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],\n lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n roleNames: this.fb.array(\n this.roles.map(role =>\n this.fb.group({\n [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))],\n }),\n ),\n ),\n });\n if (!this.selected.userName) {\n this.form.addControl('password', new FormControl('', [Validators.required, Validators.maxLength(32)]));\n }\n }\n\n openModal() {\n this.buildForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.UserItem;\n this.selectedUserRoles = [] as Identity.RoleItem[];\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetUserById(id))\n .pipe(\n switchMap(() => this.store.dispatch(new GetUserRoles(id))),\n pluck('IdentityState'),\n take(1),\n )\n .subscribe((state: Identity.State) => {\n this.selected = state.selectedUser;\n this.selectedUserRoles = state.selectedUserRoles;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n const { roleNames } = this.form.value;\n const mappedRoleNames = snq(\n () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),\n [],\n );\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateUser({\n ...this.form.value,\n id: this.selected.id,\n roleNames: mappedRoleNames,\n })\n : new CreateUser({\n ...this.form.value,\n roleNames: mappedRoleNames,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, userName: string) {\n this.confirmationService\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [userName],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteUser(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetUsers(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n\n changeSortOrder() {\n this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetUsers } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class UserResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const users = this.store.selectSnapshot(IdentityState.getUsers);\n return users && users.length ? null : this.store.dispatch(new GetUsers());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { RoleResolver } from './resolvers/roles.resolver';\nimport { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { UsersComponent } from './components/users/users.component';\nimport { UserResolver } from './resolvers/users.resolver';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\n {\n path: 'roles',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Roles' },\n children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],\n },\n {\n path: 'users',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Users' },\n children: [\n {\n path: '',\n component: UsersComponent,\n resolve: [RoleResolver, UserResolver],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [RoleResolver, UserResolver],\n})\nexport class IdentityRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule, Provider } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { IdentityState } from './states/identity.state';\nimport { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UsersComponent } from './components/users/users.component';\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\nimport { TableModule } from 'primeng/table';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [RolesComponent, UsersComponent],\n imports: [\n NgxsModule.forFeature([IdentityState]),\n CoreModule,\n IdentityRoutingModule,\n NgbTabsetModule,\n ThemeSharedModule,\n TableModule,\n NgbDropdownModule,\n PermissionManagementModule,\n NgxValidateCoreModule,\n ],\n})\nexport class IdentityModule {}\n\nexport function IdentityProviders(): Provider[] {\n return [];\n}\n","import { eLayoutType, ABP } from '@abp/ng.core';\n\nexport const IDENTITY_ROUTES = {\n routes: [\n {\n name: 'AbpUiNavigation::Menu:Administration',\n path: '',\n order: 1,\n wrapper: true,\n },\n {\n name: 'AbpIdentity::Menu:IdentityManagement',\n path: 'identity',\n order: 1,\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-id-card-o',\n children: [\n { path: 'roles', name: 'AbpIdentity::Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },\n { path: 'users', name: 'AbpIdentity::Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },\n ],\n },\n ] as ABP.FullRoute[],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace Identity {\n export interface State {\n roles: RoleResponse;\n users: UserResponse;\n selectedRole: RoleItem;\n selectedUser: UserItem;\n selectedUserRoles: RoleItem[];\n }\n\n export type RoleResponse = ABP.PagedResponse;\n\n export interface RoleSaveRequest {\n name: string;\n isDefault: boolean;\n isPublic: boolean;\n }\n\n export interface RoleItem extends RoleSaveRequest {\n isStatic: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export type UserResponse = ABP.PagedResponse;\n\n export interface UserItem extends User {\n tenantId: string;\n emailConfirmed: boolean;\n phoneNumberConfirmed: boolean;\n isLockedOut: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export interface User {\n userName: string;\n name: string;\n surname: string;\n email: string;\n phoneNumber: string;\n twoFactorEnabled: true;\n lockoutEnabled: true;\n }\n\n export interface UserSaveRequest extends User {\n password: string;\n roleNames: string[];\n }\n}\n"],"names":["Injectable","RestService","tap","switchMap","pluck","tslib_1.__decorate","Action","Selector","State","FormControl","Validators","finalize","Component","ConfirmationService","FormBuilder","Store","ViewChild","Select","Observable","take","DynamicLayoutComponent","AuthGuard","PermissionGuard","NgModule","RouterModule","NgxsModule","CoreModule","NgbTabsetModule","ThemeSharedModule","TableModule","NgbDropdownModule","PermissionManagementModule","NgxValidateCoreModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.min.js b/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.min.js index d838ed8ca1..a5b09d67fb 100644 --- a/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.min.js +++ b/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@abp/ng.core"),require("@ngxs/store"),require("@abp/ng.theme.shared"),require("@angular/forms"),require("rxjs"),require("rxjs/operators"),require("@angular/router"),require("snq"),require("@ng-bootstrap/ng-bootstrap"),require("@abp/ng.permission-management"),require("primeng/table"),require("@ngx-validate/core"),require("ngx-perfect-scrollbar")):"function"==typeof define&&define.amd?define("@abp/ng.identity",["exports","@angular/core","@abp/ng.core","@ngxs/store","@abp/ng.theme.shared","@angular/forms","rxjs","rxjs/operators","@angular/router","snq","@ng-bootstrap/ng-bootstrap","@abp/ng.permission-management","primeng/table","@ngx-validate/core","ngx-perfect-scrollbar"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng.identity={}),e.ng.core,e.ng_core,e.store,e.ng_theme_shared,e.ng.forms,e.rxjs,e.rxjs.operators,e.ng.router,e.snq,e.ngBootstrap,e.ng_permissionManagement,e.table,e.core$1,e.ngxPerfectScrollbar)}(this,function(e,t,n,o,r,i,a,s,l,p,d,c,u,b,y){"use strict";p=p&&p.hasOwnProperty("default")?p.default:p;var m=function(){return(m=Object.assign||function(e){for(var t,n=1,o=arguments.length;n=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function g(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var h=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[]}},e.decorators=[{type:t.NgModule,args:[{}]}],e}(),v=function(){function e(e){this.payload=e}return e.type="[Identity] Get Roles",e}();var I=function(){function e(e){this.payload=e}return e.type="[Identity] Get Role By Id",e}();var R=function(){function e(e){this.payload=e}return e.type="[Identity] Delete Role",e}();var w=function(){function e(e){this.payload=e}return e.type="[Identity] Create Role",e}();var A=function(){function e(e){this.payload=e}return e.type="[Identity] Update Role",e}();var U=function(){function e(e){this.payload=e}return e.type="[Identity] Get Users",e}();var S=function(){function e(e){this.payload=e}return e.type="[Identity] Get User By Id",e}();var C=function(){function e(e){this.payload=e}return e.type="[Identity] Delete User",e}();var N=function(){function e(e){this.payload=e}return e.type="[Identity] Create User",e}();var L=function(){function e(e){this.payload=e}return e.type="[Identity] Update User",e}();var x=function(){function e(e){this.payload=e}return e.type="[Identity] Get User Roles",e}();var z=function(){function e(e){this.rest=e}return e.prototype.getRoles=function(e){void 0===e&&(e={});var t={method:"GET",url:"/api/identity/roles",params:e};return this.rest.request(t)},e.prototype.getRoleById=function(e){var t={method:"GET",url:"/api/identity/roles/"+e};return this.rest.request(t)},e.prototype.deleteRole=function(e){var t={method:"DELETE",url:"/api/identity/roles/"+e};return this.rest.request(t)},e.prototype.createRole=function(e){var t={method:"POST",url:"/api/identity/roles",body:e};return this.rest.request(t)},e.prototype.updateRole=function(e){var t="/api/identity/roles/"+e.id;delete e.id;var n={method:"PUT",url:t,body:e};return this.rest.request(n)},e.prototype.getUsers=function(e){void 0===e&&(e={});var t={method:"GET",url:"/api/identity/users",params:e};return this.rest.request(t)},e.prototype.getUserById=function(e){var t={method:"GET",url:"/api/identity/users/"+e};return this.rest.request(t)},e.prototype.getUserRoles=function(e){var t={method:"GET",url:"/api/identity/users/"+e+"/roles"};return this.rest.request(t)},e.prototype.deleteUser=function(e){var t={method:"DELETE",url:"/api/identity/users/"+e};return this.rest.request(t)},e.prototype.createUser=function(e){var t={method:"POST",url:"/api/identity/users",body:e};return this.rest.request(t)},e.prototype.updateUser=function(e){var t="/api/identity/users/"+e.id;delete e.id;var n={method:"PUT",url:t,body:e};return this.rest.request(n)},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:n.RestService}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(n.RestService))},token:e,providedIn:"root"}),e}();var M=function(){function e(e){this.identityService=e}return e.getRoles=function(e){return e.roles.items},e.getRolesTotalCount=function(e){return e.roles.totalCount},e.getUsers=function(e){return e.users.items},e.getUsersTotalCount=function(e){return e.users.totalCount},e.prototype.getRoles=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getRoles(o).pipe(s.tap(function(e){return n({roles:e})}))},e.prototype.getRole=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getRoleById(o).pipe(s.tap(function(e){return n({selectedRole:e})}))},e.prototype.deleteRole=function(e,t){var n=e.dispatch,o=t.payload;return this.identityService.deleteRole(o).pipe(s.switchMap(function(){return n(new v)}))},e.prototype.addRole=function(e,t){var n=e.dispatch,o=t.payload;return this.identityService.createRole(o).pipe(s.switchMap(function(){return n(new v)}))},e.prototype.updateRole=function(e,t){var n=this,o=e.getState,r=e.dispatch,i=t.payload;return r(new I(i.id)).pipe(s.switchMap(function(){return n.identityService.updateRole(m({},o().selectedRole,i))}),s.switchMap(function(){return r(new v)}))},e.prototype.getUsers=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getUsers(o).pipe(s.tap(function(e){return n({users:e})}))},e.prototype.getUser=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getUserById(o).pipe(s.tap(function(e){return n({selectedUser:e})}))},e.prototype.deleteUser=function(e,t){var n=e.dispatch,o=t.payload;return this.identityService.deleteUser(o).pipe(s.switchMap(function(){return n(new U)}))},e.prototype.addUser=function(e,t){var n=e.dispatch,o=t.payload;return this.identityService.createUser(o).pipe(s.switchMap(function(){return n(new U)}))},e.prototype.updateUser=function(e,t){var n=this,o=e.getState,r=e.dispatch,i=t.payload;return r(new S(i.id)).pipe(s.switchMap(function(){return n.identityService.updateUser(m({},o().selectedUser,i))}),s.switchMap(function(){return r(new U)}))},e.prototype.getUserRoles=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getUserRoles(o).pipe(s.pluck("items"),s.tap(function(e){return n({selectedUserRoles:e})}))},f([o.Action(v),g("design:type",Function),g("design:paramtypes",[Object,v]),g("design:returntype",void 0)],e.prototype,"getRoles",null),f([o.Action(I),g("design:type",Function),g("design:paramtypes",[Object,I]),g("design:returntype",void 0)],e.prototype,"getRole",null),f([o.Action(R),g("design:type",Function),g("design:paramtypes",[Object,I]),g("design:returntype",void 0)],e.prototype,"deleteRole",null),f([o.Action(w),g("design:type",Function),g("design:paramtypes",[Object,w]),g("design:returntype",void 0)],e.prototype,"addRole",null),f([o.Action(A),g("design:type",Function),g("design:paramtypes",[Object,A]),g("design:returntype",void 0)],e.prototype,"updateRole",null),f([o.Action(U),g("design:type",Function),g("design:paramtypes",[Object,U]),g("design:returntype",void 0)],e.prototype,"getUsers",null),f([o.Action(S),g("design:type",Function),g("design:paramtypes",[Object,S]),g("design:returntype",void 0)],e.prototype,"getUser",null),f([o.Action(C),g("design:type",Function),g("design:paramtypes",[Object,S]),g("design:returntype",void 0)],e.prototype,"deleteUser",null),f([o.Action(N),g("design:type",Function),g("design:paramtypes",[Object,N]),g("design:returntype",void 0)],e.prototype,"addUser",null),f([o.Action(L),g("design:type",Function),g("design:paramtypes",[Object,L]),g("design:returntype",void 0)],e.prototype,"updateUser",null),f([o.Action(x),g("design:type",Function),g("design:paramtypes",[Object,x]),g("design:returntype",void 0)],e.prototype,"getUserRoles",null),f([o.Selector(),g("design:type",Function),g("design:paramtypes",[Object]),g("design:returntype",Array)],e,"getRoles",null),f([o.Selector(),g("design:type",Function),g("design:paramtypes",[Object]),g("design:returntype",Number)],e,"getRolesTotalCount",null),f([o.Selector(),g("design:type",Function),g("design:paramtypes",[Object]),g("design:returntype",Array)],e,"getUsers",null),f([o.Selector(),g("design:type",Function),g("design:paramtypes",[Object]),g("design:returntype",Number)],e,"getUsersTotalCount",null),e=f([o.State({name:"IdentityState",defaults:{roles:{},selectedRole:{},users:{},selectedUser:{}}}),g("design:paramtypes",[z])],e)}();var P=function(){function e(e,t,n){this.confirmationService=e,this.fb=t,this.store=n,this.visiblePermissions=!1,this.pageQuery={sorting:"name"},this.loading=!1,this.modalBusy=!1}return e.prototype.onSearch=function(e){this.pageQuery.filter=e,this.get()},e.prototype.createForm=function(){this.form=this.fb.group({name:new i.FormControl({value:this.selected.name||"",disabled:this.selected.isStatic},[i.Validators.required,i.Validators.maxLength(256)]),isDefault:[this.selected.isDefault||!1],isPublic:[this.selected.isPublic||!1]})},e.prototype.openModal=function(){this.createForm(),this.isModalVisible=!0},e.prototype.onAdd=function(){this.selected={},this.openModal()},e.prototype.onEdit=function(e){var t=this;this.store.dispatch(new I(e)).pipe(s.pluck("IdentityState","selectedRole")).subscribe(function(e){t.selected=e,t.openModal()})},e.prototype.save=function(){var e=this;this.form.valid&&(this.modalBusy=!0,this.store.dispatch(this.selected.id?new A(m({},this.form.value,{id:this.selected.id})):new w(this.form.value)).subscribe(function(){e.modalBusy=!1,e.isModalVisible=!1}))},e.prototype.delete=function(e,t){var n=this;this.confirmationService.warn("AbpIdentity::RoleDeletionConfirmationMessage","AbpIdentity::AreYouSure",{messageLocalizationParams:[t]}).subscribe(function(t){"confirm"===t&&n.store.dispatch(new R(e))})},e.prototype.onPageChange=function(e){this.pageQuery.skipCount=e.first,this.pageQuery.maxResultCount=e.rows,this.get()},e.prototype.get=function(){var e=this;this.loading=!0,this.store.dispatch(new v(this.pageQuery)).pipe(s.finalize(function(){return e.loading=!1})).subscribe()},e.decorators=[{type:t.Component,args:[{selector:"abp-roles",template:'
\n
\n
\n
\n
{{ \'AbpIdentity::Roles\' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ \'AbpIdentity::Actions\' | abpLocalization }}\n {{ \'AbpIdentity::RoleName\' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ \'AbpIdentity::Actions\' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? \'AbpIdentity::Edit\' : \'AbpIdentity::NewRole\') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ \'AbpIdentity::Save\' | abpLocalization }}\n \n
\n\n\n'}]}],e.ctorParameters=function(){return[{type:r.ConfirmationService},{type:i.FormBuilder},{type:o.Store}]},e.propDecorators={modalContent:[{type:t.ViewChild,args:["modalContent",{static:!1}]}]},f([o.Select(M.getRoles),g("design:type",a.Observable)],e.prototype,"data$",void 0),f([o.Select(M.getRolesTotalCount),g("design:type",a.Observable)],e.prototype,"totalCount$",void 0),e}();var k=function(){function e(e){this.store=e}return e.prototype.resolve=function(){var e=this.store.selectSnapshot(M.getRoles);return e&&e.length?null:this.store.dispatch(new v)},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:o.Store}]},e}();var D=function(){function e(e,t,n){this.confirmationService=e,this.fb=t,this.store=n,this.visiblePermissions=!1,this.pageQuery={sorting:"userName"},this.loading=!1,this.modalBusy=!1,this.trackByFn=function(e,t){return Object.keys(t)[0]||e}}return Object.defineProperty(e.prototype,"roleGroups",{get:function(){var e=this;return p(function(){return e.form.get("roleNames").controls},[])},enumerable:!0,configurable:!0}),e.prototype.onSearch=function(e){this.pageQuery.filter=e,this.get()},e.prototype.buildForm=function(){var e=this;this.roles=this.store.selectSnapshot(M.getRoles),this.form=this.fb.group({userName:[this.selected.userName||"",[i.Validators.required,i.Validators.maxLength(256)]],email:[this.selected.email||"",[i.Validators.required,i.Validators.email,i.Validators.maxLength(256)]],name:[this.selected.name||"",[i.Validators.maxLength(64)]],surname:[this.selected.surname||"",[i.Validators.maxLength(64)]],phoneNumber:[this.selected.phoneNumber||"",[i.Validators.maxLength(16)]],lockoutEnabled:[this.selected.twoFactorEnabled||!this.selected.id],twoFactorEnabled:[this.selected.twoFactorEnabled||!this.selected.id],roleNames:this.fb.array(this.roles.map(function(t){var n;return e.fb.group(((n={})[t.name]=[!!p(function(){return e.selectedUserRoles.find(function(e){return e.id===t.id})})],n))}))}),this.selected.userName||this.form.addControl("password",new i.FormControl("",[i.Validators.required,i.Validators.maxLength(32)]))},e.prototype.openModal=function(){this.buildForm(),this.isModalVisible=!0},e.prototype.onAdd=function(){this.selected={},this.selectedUserRoles=[],this.openModal()},e.prototype.onEdit=function(e){var t=this;this.store.dispatch(new S(e)).pipe(s.switchMap(function(){return t.store.dispatch(new x(e))}),s.pluck("IdentityState"),s.take(1)).subscribe(function(e){t.selected=e.selectedUser,t.selectedUserRoles=e.selectedUserRoles,t.openModal()})},e.prototype.save=function(){var e=this;if(this.form.valid){this.modalBusy=!0;var t=this.form.value.roleNames,n=p(function(){return t.filter(function(e){return!!e[Object.keys(e)[0]]}).map(function(e){return Object.keys(e)[0]})},[]);this.store.dispatch(this.selected.id?new L(m({},this.form.value,{id:this.selected.id,roleNames:n})):new N(m({},this.form.value,{roleNames:n}))).subscribe(function(){e.modalBusy=!1,e.isModalVisible=!1})}},e.prototype.delete=function(e,t){var n=this;this.confirmationService.warn("AbpIdentity::UserDeletionConfirmationMessage","AbpIdentity::AreYouSure",{messageLocalizationParams:[t]}).subscribe(function(t){"confirm"===t&&n.store.dispatch(new C(e))})},e.prototype.onPageChange=function(e){this.pageQuery.skipCount=e.first,this.pageQuery.maxResultCount=e.rows,this.get()},e.prototype.get=function(){var e=this;this.loading=!0,this.store.dispatch(new U(this.pageQuery)).pipe(s.finalize(function(){return e.loading=!1})).subscribe()},e.decorators=[{type:t.Component,args:[{selector:"abp-users",template:'
\n
\n
\n
\n
{{ \'AbpIdentity::Users\' | abpLocalization }}
\n
\n
\n \n {{ \'AbpIdentity::NewUser\' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ \'AbpIdentity::Actions\' | abpLocalization }}\n {{ \'AbpIdentity::UserName\' | abpLocalization }}\n {{ \'AbpIdentity::EmailAddress\' | abpLocalization }}\n {{ \'AbpIdentity::PhoneNumber\' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ \'AbpIdentity::Actions\' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? \'AbpIdentity::Edit\' : \'AbpIdentity::NewUser\') | abpLocalization }}

\n
\n\n \n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n\n \n \n {{\n \'AbpIdentity::Save\' | abpLocalization\n }}\n \n\n\n\n'}]}],e.ctorParameters=function(){return[{type:r.ConfirmationService},{type:i.FormBuilder},{type:o.Store}]},e.propDecorators={modalContent:[{type:t.ViewChild,args:["modalContent",{static:!1}]}]},f([o.Select(M.getUsers),g("design:type",a.Observable)],e.prototype,"data$",void 0),f([o.Select(M.getUsersTotalCount),g("design:type",a.Observable)],e.prototype,"totalCount$",void 0),e}();var j=function(){function e(e){this.store=e}return e.prototype.resolve=function(){var e=this.store.selectSnapshot(M.getUsers);return e&&e.length?null:this.store.dispatch(new U)},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:o.Store}]},e}();var q,O=[{path:"",redirectTo:"roles",pathMatch:"full"},{path:"roles",component:n.DynamicLayoutComponent,canActivate:[n.AuthGuard,n.PermissionGuard],data:{requiredPolicy:"AbpIdentity.Roles"},children:[{path:"",component:P,resolve:[k]}]},{path:"users",component:n.DynamicLayoutComponent,canActivate:[n.AuthGuard,n.PermissionGuard],data:{requiredPolicy:"AbpIdentity.Users"},children:[{path:"",component:D,resolve:[k,j]}]}],F=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[l.RouterModule.forChild(O)],exports:[l.RouterModule],providers:[k,j]}]}],e}(),T=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[P,D],imports:[o.NgxsModule.forFeature([M]),n.CoreModule,F,d.NgbTabsetModule,r.ThemeSharedModule,u.TableModule,d.NgbDropdownModule,c.PermissionManagementModule,b.NgxValidateCoreModule,y.PerfectScrollbarModule]}]}],e}();!function(e){function t(){}function n(){}function o(){}function r(){}function i(){}function a(){}e.State=t,e.RoleSaveRequest=n,e.RoleItem=o,e.UserItem=r,e.User=i,e.UserSaveRequest=a}(q||(q={})),e.CreateRole=w,e.CreateUser=N,e.DeleteRole=R,e.DeleteUser=C,e.GetRoleById=I,e.GetRoles=v,e.GetUserById=S,e.GetUserRoles=x,e.GetUsers=U,e.IDENTITY_ROUTES={routes:[{name:"AbpUiNavigation::Menu:Administration",path:"",order:1,wrapper:!0},{name:"AbpIdentity::Menu:IdentityManagement",path:"identity",order:1,parentName:"AbpUiNavigation::Menu:Administration",layout:"application",iconClass:"fa fa-id-card-o",children:[{path:"roles",name:"AbpIdentity::Roles",order:2,requiredPolicy:"AbpIdentity.Roles"},{path:"users",name:"AbpIdentity::Users",order:1,requiredPolicy:"AbpIdentity.Users"}]}],settings:[]},e.IdentityModule=T,e.IdentityService=z,e.IdentityState=M,e.RoleResolver=k,e.RolesComponent=P,e.RootIdentityModule=h,e.UpdateRole=A,e.UpdateUser=L,e.ɵb=D,e.ɵc=F,e.ɵd=j,Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@abp/ng.core"),require("@angular/core"),require("@ngxs/store"),require("@abp/ng.theme.shared"),require("@angular/forms"),require("rxjs"),require("rxjs/operators"),require("@angular/router"),require("snq"),require("@ng-bootstrap/ng-bootstrap"),require("@abp/ng.permission-management"),require("primeng/table"),require("@ngx-validate/core")):"function"==typeof define&&define.amd?define("@abp/ng.identity",["exports","@abp/ng.core","@angular/core","@ngxs/store","@abp/ng.theme.shared","@angular/forms","rxjs","rxjs/operators","@angular/router","snq","@ng-bootstrap/ng-bootstrap","@abp/ng.permission-management","primeng/table","@ngx-validate/core"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng.identity={}),e.ng_core,e.ng.core,e.store,e.ng_theme_shared,e.ng.forms,e.rxjs,e.rxjs.operators,e.ng.router,e.snq,e.ngBootstrap,e.ng_permissionManagement,e.table,e.core$1)}(this,function(e,t,n,o,r,a,i,s,l,p,d,c,u,b){"use strict";p=p&&p.hasOwnProperty("default")?p.default:p;var m=function(){return(m=Object.assign||function(e){for(var t,n=1,o=arguments.length;n=0;s--)(r=e[s])&&(i=(a<3?r(i):a>3?r(t,n,i):r(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}function g(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var f=function(){function e(e){this.payload=e}return e.type="[Identity] Get Roles",e}();var h=function(){function e(e){this.payload=e}return e.type="[Identity] Get Role By Id",e}();var v=function(){function e(e){this.payload=e}return e.type="[Identity] Delete Role",e}();var I=function(){function e(e){this.payload=e}return e.type="[Identity] Create Role",e}();var w=function(){function e(e){this.payload=e}return e.type="[Identity] Update Role",e}();var A=function(){function e(e){this.payload=e}return e.type="[Identity] Get Users",e}();var R=function(){function e(e){this.payload=e}return e.type="[Identity] Get User By Id",e}();var C=function(){function e(e){this.payload=e}return e.type="[Identity] Delete User",e}();var U=function(){function e(e){this.payload=e}return e.type="[Identity] Create User",e}();var S=function(){function e(e){this.payload=e}return e.type="[Identity] Update User",e}();var L=function(){function e(e){this.payload=e}return e.type="[Identity] Get User Roles",e}();var N=function(){function e(e){this.rest=e}return e.prototype.getRoles=function(e){void 0===e&&(e={});var t={method:"GET",url:"/api/identity/roles",params:e};return this.rest.request(t)},e.prototype.getRoleById=function(e){var t={method:"GET",url:"/api/identity/roles/"+e};return this.rest.request(t)},e.prototype.deleteRole=function(e){var t={method:"DELETE",url:"/api/identity/roles/"+e};return this.rest.request(t)},e.prototype.createRole=function(e){var t={method:"POST",url:"/api/identity/roles",body:e};return this.rest.request(t)},e.prototype.updateRole=function(e){var t="/api/identity/roles/"+e.id;delete e.id;var n={method:"PUT",url:t,body:e};return this.rest.request(n)},e.prototype.getUsers=function(e){void 0===e&&(e={});var t={method:"GET",url:"/api/identity/users",params:e};return this.rest.request(t)},e.prototype.getUserById=function(e){var t={method:"GET",url:"/api/identity/users/"+e};return this.rest.request(t)},e.prototype.getUserRoles=function(e){var t={method:"GET",url:"/api/identity/users/"+e+"/roles"};return this.rest.request(t)},e.prototype.deleteUser=function(e){var t={method:"DELETE",url:"/api/identity/users/"+e};return this.rest.request(t)},e.prototype.createUser=function(e){var t={method:"POST",url:"/api/identity/users",body:e};return this.rest.request(t)},e.prototype.updateUser=function(e){var t="/api/identity/users/"+e.id;delete e.id;var n={method:"PUT",url:t,body:e};return this.rest.request(n)},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:t.RestService}]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(t.RestService))},token:e,providedIn:"root"}),e}();var z=function(){function e(e){this.identityService=e}return e.getRoles=function(e){return e.roles.items},e.getRolesTotalCount=function(e){return e.roles.totalCount},e.getUsers=function(e){return e.users.items},e.getUsersTotalCount=function(e){return e.users.totalCount},e.prototype.getRoles=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getRoles(o).pipe(s.tap(function(e){return n({roles:e})}))},e.prototype.getRole=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getRoleById(o).pipe(s.tap(function(e){return n({selectedRole:e})}))},e.prototype.deleteRole=function(e,t){var n=e.dispatch,o=t.payload;return this.identityService.deleteRole(o).pipe(s.switchMap(function(){return n(new f)}))},e.prototype.addRole=function(e,t){var n=e.dispatch,o=t.payload;return this.identityService.createRole(o).pipe(s.switchMap(function(){return n(new f)}))},e.prototype.updateRole=function(e,t){var n=this,o=e.getState,r=e.dispatch,a=t.payload;return r(new h(a.id)).pipe(s.switchMap(function(){return n.identityService.updateRole(m({},o().selectedRole,a))}),s.switchMap(function(){return r(new f)}))},e.prototype.getUsers=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getUsers(o).pipe(s.tap(function(e){return n({users:e})}))},e.prototype.getUser=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getUserById(o).pipe(s.tap(function(e){return n({selectedUser:e})}))},e.prototype.deleteUser=function(e,t){var n=e.dispatch,o=t.payload;return this.identityService.deleteUser(o).pipe(s.switchMap(function(){return n(new A)}))},e.prototype.addUser=function(e,t){var n=e.dispatch,o=t.payload;return this.identityService.createUser(o).pipe(s.switchMap(function(){return n(new A)}))},e.prototype.updateUser=function(e,t){var n=this,o=e.getState,r=e.dispatch,a=t.payload;return r(new R(a.id)).pipe(s.switchMap(function(){return n.identityService.updateUser(m({},o().selectedUser,a))}),s.switchMap(function(){return r(new A)}))},e.prototype.getUserRoles=function(e,t){var n=e.patchState,o=t.payload;return this.identityService.getUserRoles(o).pipe(s.pluck("items"),s.tap(function(e){return n({selectedUserRoles:e})}))},y([o.Action(f),g("design:type",Function),g("design:paramtypes",[Object,f]),g("design:returntype",void 0)],e.prototype,"getRoles",null),y([o.Action(h),g("design:type",Function),g("design:paramtypes",[Object,h]),g("design:returntype",void 0)],e.prototype,"getRole",null),y([o.Action(v),g("design:type",Function),g("design:paramtypes",[Object,h]),g("design:returntype",void 0)],e.prototype,"deleteRole",null),y([o.Action(I),g("design:type",Function),g("design:paramtypes",[Object,I]),g("design:returntype",void 0)],e.prototype,"addRole",null),y([o.Action(w),g("design:type",Function),g("design:paramtypes",[Object,w]),g("design:returntype",void 0)],e.prototype,"updateRole",null),y([o.Action(A),g("design:type",Function),g("design:paramtypes",[Object,A]),g("design:returntype",void 0)],e.prototype,"getUsers",null),y([o.Action(R),g("design:type",Function),g("design:paramtypes",[Object,R]),g("design:returntype",void 0)],e.prototype,"getUser",null),y([o.Action(C),g("design:type",Function),g("design:paramtypes",[Object,R]),g("design:returntype",void 0)],e.prototype,"deleteUser",null),y([o.Action(U),g("design:type",Function),g("design:paramtypes",[Object,U]),g("design:returntype",void 0)],e.prototype,"addUser",null),y([o.Action(S),g("design:type",Function),g("design:paramtypes",[Object,S]),g("design:returntype",void 0)],e.prototype,"updateUser",null),y([o.Action(L),g("design:type",Function),g("design:paramtypes",[Object,L]),g("design:returntype",void 0)],e.prototype,"getUserRoles",null),y([o.Selector(),g("design:type",Function),g("design:paramtypes",[Object]),g("design:returntype",Array)],e,"getRoles",null),y([o.Selector(),g("design:type",Function),g("design:paramtypes",[Object]),g("design:returntype",Number)],e,"getRolesTotalCount",null),y([o.Selector(),g("design:type",Function),g("design:paramtypes",[Object]),g("design:returntype",Array)],e,"getUsers",null),y([o.Selector(),g("design:type",Function),g("design:paramtypes",[Object]),g("design:returntype",Number)],e,"getUsersTotalCount",null),e=y([o.State({name:"IdentityState",defaults:{roles:{},selectedRole:{},users:{},selectedUser:{}}}),g("design:paramtypes",[N])],e)}();var x=function(){function e(e,t,n){this.confirmationService=e,this.fb=t,this.store=n,this.visiblePermissions=!1,this.pageQuery={sorting:"name"},this.loading=!1,this.modalBusy=!1,this.sortOrder="asc"}return e.prototype.onSearch=function(e){this.pageQuery.filter=e,this.get()},e.prototype.createForm=function(){this.form=this.fb.group({name:new a.FormControl({value:this.selected.name||"",disabled:this.selected.isStatic},[a.Validators.required,a.Validators.maxLength(256)]),isDefault:[this.selected.isDefault||!1],isPublic:[this.selected.isPublic||!1]})},e.prototype.openModal=function(){this.createForm(),this.isModalVisible=!0},e.prototype.onAdd=function(){this.selected={},this.openModal()},e.prototype.onEdit=function(e){var t=this;this.store.dispatch(new h(e)).pipe(s.pluck("IdentityState","selectedRole")).subscribe(function(e){t.selected=e,t.openModal()})},e.prototype.save=function(){var e=this;this.form.valid&&(this.modalBusy=!0,this.store.dispatch(this.selected.id?new w(m({},this.form.value,{id:this.selected.id})):new I(this.form.value)).subscribe(function(){e.modalBusy=!1,e.isModalVisible=!1}))},e.prototype.delete=function(e,t){var n=this;this.confirmationService.warn("AbpIdentity::RoleDeletionConfirmationMessage","AbpIdentity::AreYouSure",{messageLocalizationParams:[t]}).subscribe(function(t){"confirm"===t&&n.store.dispatch(new v(e))})},e.prototype.onPageChange=function(e){this.pageQuery.skipCount=e.first,this.pageQuery.maxResultCount=e.rows,this.get()},e.prototype.get=function(){var e=this;this.loading=!0,this.store.dispatch(new f(this.pageQuery)).pipe(s.finalize(function(){return e.loading=!1})).subscribe()},e.prototype.changeSortOrder=function(){this.sortOrder="asc"===this.sortOrder.toLowerCase()?"desc":"asc"},e.decorators=[{type:n.Component,args:[{selector:"abp-roles",template:'
\n
\n

{{ \'AbpIdentity::Roles\' | abpLocalization }}

\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ \'AbpIdentity::Actions\' | abpLocalization }}\n \n {{ \'AbpIdentity::RoleName\' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ \'AbpIdentity::Actions\' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? \'AbpIdentity::Edit\' : \'AbpIdentity::NewRole\') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ \'AbpIdentity::Save\' | abpLocalization }}\n \n
\n\n\n'}]}],e.ctorParameters=function(){return[{type:r.ConfirmationService},{type:a.FormBuilder},{type:o.Store}]},e.propDecorators={modalContent:[{type:n.ViewChild,args:["modalContent",{static:!1}]}]},y([o.Select(z.getRoles),g("design:type",i.Observable)],e.prototype,"data$",void 0),y([o.Select(z.getRolesTotalCount),g("design:type",i.Observable)],e.prototype,"totalCount$",void 0),e}();var P=function(){function e(e){this.store=e}return e.prototype.resolve=function(){var e=this.store.selectSnapshot(z.getRoles);return e&&e.length?null:this.store.dispatch(new f)},e.decorators=[{type:n.Injectable}],e.ctorParameters=function(){return[{type:o.Store}]},e}();var k=function(){function e(e,t,n){this.confirmationService=e,this.fb=t,this.store=n,this.visiblePermissions=!1,this.pageQuery={sorting:"userName"},this.loading=!1,this.modalBusy=!1,this.sortOrder="asc",this.trackByFn=function(e,t){return Object.keys(t)[0]||e}}return Object.defineProperty(e.prototype,"roleGroups",{get:function(){var e=this;return p(function(){return e.form.get("roleNames").controls},[])},enumerable:!0,configurable:!0}),e.prototype.onSearch=function(e){this.pageQuery.filter=e,this.get()},e.prototype.buildForm=function(){var e=this;this.roles=this.store.selectSnapshot(z.getRoles),this.form=this.fb.group({userName:[this.selected.userName||"",[a.Validators.required,a.Validators.maxLength(256)]],email:[this.selected.email||"",[a.Validators.required,a.Validators.email,a.Validators.maxLength(256)]],name:[this.selected.name||"",[a.Validators.maxLength(64)]],surname:[this.selected.surname||"",[a.Validators.maxLength(64)]],phoneNumber:[this.selected.phoneNumber||"",[a.Validators.maxLength(16)]],lockoutEnabled:[this.selected.twoFactorEnabled||!this.selected.id],twoFactorEnabled:[this.selected.twoFactorEnabled||!this.selected.id],roleNames:this.fb.array(this.roles.map(function(t){var n;return e.fb.group(((n={})[t.name]=[!!p(function(){return e.selectedUserRoles.find(function(e){return e.id===t.id})})],n))}))}),this.selected.userName||this.form.addControl("password",new a.FormControl("",[a.Validators.required,a.Validators.maxLength(32)]))},e.prototype.openModal=function(){this.buildForm(),this.isModalVisible=!0},e.prototype.onAdd=function(){this.selected={},this.selectedUserRoles=[],this.openModal()},e.prototype.onEdit=function(e){var t=this;this.store.dispatch(new R(e)).pipe(s.switchMap(function(){return t.store.dispatch(new L(e))}),s.pluck("IdentityState"),s.take(1)).subscribe(function(e){t.selected=e.selectedUser,t.selectedUserRoles=e.selectedUserRoles,t.openModal()})},e.prototype.save=function(){var e=this;if(this.form.valid){this.modalBusy=!0;var t=this.form.value.roleNames,n=p(function(){return t.filter(function(e){return!!e[Object.keys(e)[0]]}).map(function(e){return Object.keys(e)[0]})},[]);this.store.dispatch(this.selected.id?new S(m({},this.form.value,{id:this.selected.id,roleNames:n})):new U(m({},this.form.value,{roleNames:n}))).subscribe(function(){e.modalBusy=!1,e.isModalVisible=!1})}},e.prototype.delete=function(e,t){var n=this;this.confirmationService.warn("AbpIdentity::UserDeletionConfirmationMessage","AbpIdentity::AreYouSure",{messageLocalizationParams:[t]}).subscribe(function(t){"confirm"===t&&n.store.dispatch(new C(e))})},e.prototype.onPageChange=function(e){this.pageQuery.skipCount=e.first,this.pageQuery.maxResultCount=e.rows,this.get()},e.prototype.get=function(){var e=this;this.loading=!0,this.store.dispatch(new A(this.pageQuery)).pipe(s.finalize(function(){return e.loading=!1})).subscribe()},e.prototype.changeSortOrder=function(){this.sortOrder="asc"===this.sortOrder.toLowerCase()?"desc":"asc"},e.decorators=[{type:n.Component,args:[{selector:"abp-users",template:'
\n
\n

{{ \'AbpIdentity::Users\' | abpLocalization }}

\n
\n
\n
\n \n {{ \'AbpIdentity::NewUser\' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ \'AbpIdentity::Actions\' | abpLocalization }}\n \n {{ \'AbpIdentity::UserName\' | abpLocalization }}\n \n \n {{ \'AbpIdentity::EmailAddress\' | abpLocalization }}\n {{ \'AbpIdentity::PhoneNumber\' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ \'AbpIdentity::Actions\' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? \'AbpIdentity::Edit\' : \'AbpIdentity::NewUser\') | abpLocalization }}

\n
\n\n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n\n \n \n {{\n \'AbpIdentity::Save\' | abpLocalization\n }}\n \n\n\n\n'}]}],e.ctorParameters=function(){return[{type:r.ConfirmationService},{type:a.FormBuilder},{type:o.Store}]},e.propDecorators={modalContent:[{type:n.ViewChild,args:["modalContent",{static:!1}]}]},y([o.Select(z.getUsers),g("design:type",i.Observable)],e.prototype,"data$",void 0),y([o.Select(z.getUsersTotalCount),g("design:type",i.Observable)],e.prototype,"totalCount$",void 0),e}();var O=function(){function e(e){this.store=e}return e.prototype.resolve=function(){var e=this.store.selectSnapshot(z.getUsers);return e&&e.length?null:this.store.dispatch(new A)},e.decorators=[{type:n.Injectable}],e.ctorParameters=function(){return[{type:o.Store}]},e}();var M=[{path:"",redirectTo:"roles",pathMatch:"full"},{path:"roles",component:t.DynamicLayoutComponent,canActivate:[t.AuthGuard,t.PermissionGuard],data:{requiredPolicy:"AbpIdentity.Roles"},children:[{path:"",component:x,resolve:[P]}]},{path:"users",component:t.DynamicLayoutComponent,canActivate:[t.AuthGuard,t.PermissionGuard],data:{requiredPolicy:"AbpIdentity.Users"},children:[{path:"",component:k,resolve:[P,O]}]}],D=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{imports:[l.RouterModule.forChild(M)],exports:[l.RouterModule],providers:[P,O]}]}],e}(),j=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{declarations:[x,k],imports:[o.NgxsModule.forFeature([z]),t.CoreModule,D,d.NgbTabsetModule,r.ThemeSharedModule,u.TableModule,d.NgbDropdownModule,c.PermissionManagementModule,b.NgxValidateCoreModule]}]}],e}();var T;!function(e){function t(){}function n(){}function o(){}function r(){}function a(){}function i(){}e.State=t,e.RoleSaveRequest=n,e.RoleItem=o,e.UserItem=r,e.User=a,e.UserSaveRequest=i}(T||(T={})),e.CreateRole=I,e.CreateUser=U,e.DeleteRole=v,e.DeleteUser=C,e.GetRoleById=h,e.GetRoles=f,e.GetUserById=R,e.GetUserRoles=L,e.GetUsers=A,e.IDENTITY_ROUTES={routes:[{name:"AbpUiNavigation::Menu:Administration",path:"",order:1,wrapper:!0},{name:"AbpIdentity::Menu:IdentityManagement",path:"identity",order:1,parentName:"AbpUiNavigation::Menu:Administration",layout:"application",iconClass:"fa fa-id-card-o",children:[{path:"roles",name:"AbpIdentity::Roles",order:2,requiredPolicy:"AbpIdentity.Roles"},{path:"users",name:"AbpIdentity::Users",order:1,requiredPolicy:"AbpIdentity.Users"}]}]},e.IdentityModule=j,e.IdentityProviders=function(){return[]},e.IdentityService=N,e.IdentityState=z,e.RoleResolver=P,e.RolesComponent=x,e.UpdateRole=w,e.UpdateUser=S,e.ɵb=k,e.ɵc=D,e.ɵd=O,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=abp-ng.identity.umd.min.js.map \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.min.js.map b/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.min.js.map index 510fe19420..d006ca1df3 100644 --- a/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.min.js.map +++ b/npm/ng-packs/dist/identity/bundles/abp-ng.identity.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.identity/lib/root-identity.module.ts","ng://@abp/ng.identity/lib/actions/identity.actions.ts","ng://@abp/ng.identity/lib/services/identity.service.ts","ng://@abp/ng.identity/lib/states/identity.state.ts","ng://@abp/ng.identity/lib/components/roles/roles.component.ts","ng://@abp/ng.identity/lib/resolvers/roles.resolver.ts","ng://@abp/ng.identity/lib/components/users/users.component.ts","ng://@abp/ng.identity/lib/resolvers/users.resolver.ts","ng://@abp/ng.identity/lib/identity-routing.module.ts","ng://@abp/ng.identity/lib/models/identity.ts","ng://@abp/ng.identity/lib/identity.module.ts","ng://@abp/ng.identity/lib/constants/routes.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","RootIdentityModule","forRoot","ngModule","providers","NgModule","args","GetRoles","payload","type","GetRoleById","DeleteRole","CreateRole","UpdateRole","GetUsers","GetUserById","DeleteUser","CreateUser","UpdateUser","GetUserRoles","IdentityService","rest","getRoles","params","request","method","url","getRoleById","id","deleteRole","createRole","body","updateRole","getUsers","getUserById","getUserRoles","deleteUser","createUser","updateUser","Injectable","providedIn","RestService","IdentityState","identityService","_a","roles","items","getRolesTotalCount","totalCount","users","getUsersTotalCount","_b","patchState","pipe","tap","getRole","selectedRole","dispatch","switchMap","addRole","_this","getState","getUser","selectedUser","addUser","pluck","selectedUserRoles","tslib_1.__decorate","Action","Selector","State","name","defaults","RolesComponent","confirmationService","fb","store","visiblePermissions","pageQuery","sorting","loading","modalBusy","onSearch","value","filter","get","createForm","form","group","FormControl","selected","disabled","isStatic","Validators","required","maxLength","isDefault","isPublic","openModal","isModalVisible","onAdd","onEdit","subscribe","save","valid","delete","warn","messageLocalizationParams","status","onPageChange","data","skipCount","first","maxResultCount","rows","finalize","Component","selector","template","ConfirmationService","FormBuilder","Store","ViewChild","static","Select","Observable","RoleResolver","resolve","selectSnapshot","UsersComponent","trackByFn","index","item","keys","snq","buildForm","userName","email","surname","phoneNumber","lockoutEnabled","twoFactorEnabled","roleNames","array","map","role","find","userRole","addControl","take","state","mappedRoleNames","UserResolver","Identity","routes","path","redirectTo","pathMatch","component","DynamicLayoutComponent","canActivate","AuthGuard","PermissionGuard","requiredPolicy","children","IdentityRoutingModule","imports","RouterModule","forChild","exports","IdentityModule","declarations","NgxsModule","forFeature","CoreModule","NgbTabsetModule","ThemeSharedModule","TableModule","NgbDropdownModule","PermissionManagementModule","NgxValidateCoreModule","PerfectScrollbarModule","RoleSaveRequest","RoleItem","UserItem","User","UserSaveRequest","order","wrapper","parentName","layout","iconClass","settings"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootIdentityModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootIdentityModule,\n providers: [],\n };\n }\n}\n","import { Identity } from '../models/identity';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetRoles {\n static readonly type = '[Identity] Get Roles';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetRoleById {\n static readonly type = '[Identity] Get Role By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteRole {\n static readonly type = '[Identity] Delete Role';\n constructor(public payload: string) {}\n}\n\nexport class CreateRole {\n static readonly type = '[Identity] Create Role';\n constructor(public payload: Identity.RoleSaveRequest) {}\n}\n\nexport class UpdateRole {\n static readonly type = '[Identity] Update Role';\n constructor(public payload: Identity.RoleItem) {}\n}\n\nexport class GetUsers {\n static readonly type = '[Identity] Get Users';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetUserById {\n static readonly type = '[Identity] Get User By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteUser {\n static readonly type = '[Identity] Delete User';\n constructor(public payload: string) {}\n}\n\nexport class CreateUser {\n static readonly type = '[Identity] Create User';\n constructor(public payload: Identity.UserSaveRequest) {}\n}\n\nexport class UpdateUser {\n static readonly type = '[Identity] Update User';\n constructor(public payload: Identity.UserSaveRequest & { id: string }) {}\n}\n\nexport class GetUserRoles {\n static readonly type = '[Identity] Get User Roles';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { Identity } from '../models/identity';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdentityService {\n constructor(private rest: RestService) {}\n\n getRoles(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/roles',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getRoleById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteRole(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createRole(body: Identity.RoleSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/roles',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateRole(body: Identity.RoleItem): Observable {\n const url = `/api/identity/roles/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getUsers(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/users',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getUserById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n getUserRoles(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}/roles`,\n };\n\n return this.rest.request(request);\n }\n\n deleteUser(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createUser(body: Identity.UserSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/users',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateUser(body: Identity.UserItem): Observable {\n const url = `/api/identity/users/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap, pluck } from 'rxjs/operators';\nimport {\n CreateRole,\n CreateUser,\n DeleteRole,\n DeleteUser,\n GetRoleById,\n GetRoles,\n GetUserById,\n GetUsers,\n UpdateRole,\n UpdateUser,\n GetUserRoles,\n} from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityService } from '../services/identity.service';\n\n@State({\n name: 'IdentityState',\n defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,\n})\nexport class IdentityState {\n @Selector()\n static getRoles({ roles }: Identity.State): Identity.RoleItem[] {\n return roles.items;\n }\n\n @Selector()\n static getRolesTotalCount({ roles }: Identity.State): number {\n return roles.totalCount;\n }\n\n @Selector()\n static getUsers({ users }: Identity.State): Identity.UserItem[] {\n return users.items;\n }\n\n @Selector()\n static getUsersTotalCount({ users }: Identity.State): number {\n return users.totalCount;\n }\n\n constructor(private identityService: IdentityService) {}\n\n @Action(GetRoles)\n getRoles({ patchState }: StateContext, { payload }: GetRoles) {\n return this.identityService.getRoles(payload).pipe(\n tap(roles =>\n patchState({\n roles,\n }),\n ),\n );\n }\n\n @Action(GetRoleById)\n getRole({ patchState }: StateContext, { payload }: GetRoleById) {\n return this.identityService.getRoleById(payload).pipe(\n tap(selectedRole =>\n patchState({\n selectedRole,\n }),\n ),\n );\n }\n\n @Action(DeleteRole)\n deleteRole({ dispatch }: StateContext, { payload }: GetRoleById) {\n return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(CreateRole)\n addRole({ dispatch }: StateContext, { payload }: CreateRole) {\n return this.identityService.createRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(UpdateRole)\n updateRole({ getState, dispatch }: StateContext, { payload }: UpdateRole) {\n return dispatch(new GetRoleById(payload.id)).pipe(\n switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })),\n switchMap(() => dispatch(new GetRoles())),\n );\n }\n\n @Action(GetUsers)\n getUsers({ patchState }: StateContext, { payload }: GetUsers) {\n return this.identityService.getUsers(payload).pipe(\n tap(users =>\n patchState({\n users,\n }),\n ),\n );\n }\n\n @Action(GetUserById)\n getUser({ patchState }: StateContext, { payload }: GetUserById) {\n return this.identityService.getUserById(payload).pipe(\n tap(selectedUser =>\n patchState({\n selectedUser,\n }),\n ),\n );\n }\n\n @Action(DeleteUser)\n deleteUser({ dispatch }: StateContext, { payload }: GetUserById) {\n return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(CreateUser)\n addUser({ dispatch }: StateContext, { payload }: CreateUser) {\n return this.identityService.createUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(UpdateUser)\n updateUser({ getState, dispatch }: StateContext, { payload }: UpdateUser) {\n return dispatch(new GetUserById(payload.id)).pipe(\n switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })),\n switchMap(() => dispatch(new GetUsers())),\n );\n }\n\n @Action(GetUserRoles)\n getUserRoles({ patchState }: StateContext, { payload }: GetUserRoles) {\n return this.identityService.getUserRoles(payload).pipe(\n pluck('items'),\n tap(selectedUserRoles =>\n patchState({\n selectedUserRoles,\n }),\n ),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck } from 'rxjs/operators';\nimport { CreateRole, DeleteRole, GetRoleById, GetRoles, UpdateRole } from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n\n@Component({\n selector: 'abp-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent {\n @Select(IdentityState.getRoles)\n data$: Observable;\n\n @Select(IdentityState.getRolesTotalCount)\n totalCount$: Observable;\n\n form: FormGroup;\n\n selected: Identity.RoleItem;\n\n isModalVisible: boolean;\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n createForm() {\n this.form = this.fb.group({\n name: new FormControl({ value: this.selected.name || '', disabled: this.selected.isStatic }, [\n Validators.required,\n Validators.maxLength(256),\n ]),\n isDefault: [this.selected.isDefault || false],\n isPublic: [this.selected.isPublic || false],\n });\n }\n\n openModal() {\n this.createForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.RoleItem;\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetRoleById(id))\n .pipe(pluck('IdentityState', 'selectedRole'))\n .subscribe(selectedRole => {\n this.selected = selectedRole;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateRole({ ...this.form.value, id: this.selected.id })\n : new CreateRole(this.form.value),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteRole(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetRoles(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetRoles } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class RoleResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const roles = this.store.selectSnapshot(IdentityState.getRoles);\n return roles && roles.length ? null : this.store.dispatch(new GetRoles());\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, TrackByFunction, ViewChild } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport {\n CreateUser,\n DeleteUser,\n GetUserById,\n GetUserRoles,\n GetUsers,\n UpdateUser,\n} from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n@Component({\n selector: 'abp-users',\n templateUrl: './users.component.html',\n})\nexport class UsersComponent {\n @Select(IdentityState.getUsers)\n data$: Observable;\n\n @Select(IdentityState.getUsersTotalCount)\n totalCount$: Observable;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n selected: Identity.UserItem;\n\n selectedUserRoles: Identity.RoleItem[];\n\n roles: Identity.RoleItem[];\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'userName',\n };\n\n isModalVisible: boolean;\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;\n\n get roleGroups(): FormGroup[] {\n return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);\n }\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n buildForm() {\n this.roles = this.store.selectSnapshot(IdentityState.getRoles);\n this.form = this.fb.group({\n userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],\n email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],\n name: [this.selected.name || '', [Validators.maxLength(64)]],\n surname: [this.selected.surname || '', [Validators.maxLength(64)]],\n phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],\n lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n roleNames: this.fb.array(\n this.roles.map(role =>\n this.fb.group({\n [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))],\n }),\n ),\n ),\n });\n if (!this.selected.userName) {\n this.form.addControl('password', new FormControl('', [Validators.required, Validators.maxLength(32)]));\n }\n }\n\n openModal() {\n this.buildForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.UserItem;\n this.selectedUserRoles = [] as Identity.RoleItem[];\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetUserById(id))\n .pipe(\n switchMap(() => this.store.dispatch(new GetUserRoles(id))),\n pluck('IdentityState'),\n take(1),\n )\n .subscribe((state: Identity.State) => {\n this.selected = state.selectedUser;\n this.selectedUserRoles = state.selectedUserRoles;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n const { roleNames } = this.form.value;\n const mappedRoleNames = snq(\n () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),\n [],\n );\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateUser({\n ...this.form.value,\n id: this.selected.id,\n roleNames: mappedRoleNames,\n })\n : new CreateUser({\n ...this.form.value,\n roleNames: mappedRoleNames,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, userName: string) {\n this.confirmationService\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [userName],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteUser(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetUsers(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetUsers } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class UserResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const users = this.store.selectSnapshot(IdentityState.getUsers);\n return users && users.length ? null : this.store.dispatch(new GetUsers());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { RoleResolver } from './resolvers/roles.resolver';\nimport { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { UsersComponent } from './components/users/users.component';\nimport { UserResolver } from './resolvers/users.resolver';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\n {\n path: 'roles',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Roles' },\n children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],\n },\n {\n path: 'users',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Users' },\n children: [\n {\n path: '',\n component: UsersComponent,\n resolve: [RoleResolver, UserResolver],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [RoleResolver, UserResolver],\n})\nexport class IdentityRoutingModule {}\n","import { ABP } from '@abp/ng.core';\n\nexport namespace Identity {\n export interface State {\n roles: RoleResponse;\n users: UserResponse;\n selectedRole: RoleItem;\n selectedUser: UserItem;\n selectedUserRoles: RoleItem[];\n }\n\n export type RoleResponse = ABP.PagedResponse;\n\n export interface RoleSaveRequest {\n name: string;\n isDefault: boolean;\n isPublic: boolean;\n }\n\n export interface RoleItem extends RoleSaveRequest {\n isStatic: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export type UserResponse = ABP.PagedResponse;\n\n export interface UserItem extends User {\n tenantId: string;\n emailConfirmed: boolean;\n phoneNumberConfirmed: boolean;\n isLockedOut: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export interface User {\n userName: string;\n name: string;\n surname: string;\n email: string;\n phoneNumber: string;\n twoFactorEnabled: true;\n lockoutEnabled: true;\n }\n\n export interface UserSaveRequest extends User {\n password: string;\n roleNames: string[];\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { IdentityState } from './states/identity.state';\nimport { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UsersComponent } from './components/users/users.component';\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\nimport { TableModule } from 'primeng/table';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\n\n@NgModule({\n declarations: [RolesComponent, UsersComponent],\n imports: [\n NgxsModule.forFeature([IdentityState]),\n CoreModule,\n IdentityRoutingModule,\n NgbTabsetModule,\n ThemeSharedModule,\n TableModule,\n NgbDropdownModule,\n PermissionManagementModule,\n NgxValidateCoreModule,\n PerfectScrollbarModule,\n ],\n})\nexport class IdentityModule {}\n","import { eLayoutType, ABP } from '@abp/ng.core';\n\nexport const IDENTITY_ROUTES = {\n routes: [\n {\n name: 'AbpUiNavigation::Menu:Administration',\n path: '',\n order: 1,\n wrapper: true,\n },\n {\n name: 'AbpIdentity::Menu:IdentityManagement',\n path: 'identity',\n order: 1,\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-id-card-o',\n children: [\n { path: 'roles', name: 'AbpIdentity::Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },\n { path: 'users', name: 'AbpIdentity::Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },\n ],\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n"]} \ No newline at end of file +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.identity/lib/actions/identity.actions.ts","ng://@abp/ng.identity/lib/services/identity.service.ts","ng://@abp/ng.identity/lib/states/identity.state.ts","ng://@abp/ng.identity/lib/components/roles/roles.component.ts","ng://@abp/ng.identity/lib/resolvers/roles.resolver.ts","ng://@abp/ng.identity/lib/components/users/users.component.ts","ng://@abp/ng.identity/lib/resolvers/users.resolver.ts","ng://@abp/ng.identity/lib/identity-routing.module.ts","ng://@abp/ng.identity/lib/identity.module.ts","ng://@abp/ng.identity/lib/constants/routes.ts","ng://@abp/ng.identity/lib/models/identity.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","GetRoles","payload","type","GetRoleById","DeleteRole","CreateRole","UpdateRole","GetUsers","GetUserById","DeleteUser","CreateUser","UpdateUser","GetUserRoles","IdentityService","rest","getRoles","params","request","method","url","getRoleById","id","deleteRole","createRole","body","updateRole","getUsers","getUserById","getUserRoles","deleteUser","createUser","updateUser","Injectable","args","providedIn","RestService","IdentityState","identityService","_a","roles","items","getRolesTotalCount","totalCount","users","getUsersTotalCount","_b","patchState","pipe","tap","getRole","selectedRole","dispatch","switchMap","addRole","_this","getState","getUser","selectedUser","addUser","pluck","selectedUserRoles","tslib_1.__decorate","Action","Selector","State","name","defaults","RolesComponent","confirmationService","fb","store","visiblePermissions","pageQuery","sorting","loading","modalBusy","sortOrder","onSearch","value","filter","get","createForm","form","group","FormControl","selected","disabled","isStatic","Validators","required","maxLength","isDefault","isPublic","openModal","isModalVisible","onAdd","onEdit","subscribe","save","valid","delete","warn","messageLocalizationParams","status","onPageChange","data","skipCount","first","maxResultCount","rows","finalize","changeSortOrder","toLowerCase","Component","selector","template","ConfirmationService","FormBuilder","Store","ViewChild","static","Select","Observable","RoleResolver","resolve","selectSnapshot","UsersComponent","trackByFn","index","item","keys","snq","buildForm","userName","email","surname","phoneNumber","lockoutEnabled","twoFactorEnabled","roleNames","array","map","role","find","userRole","addControl","take","state","mappedRoleNames","UserResolver","routes","path","redirectTo","pathMatch","component","DynamicLayoutComponent","canActivate","AuthGuard","PermissionGuard","requiredPolicy","children","IdentityRoutingModule","NgModule","imports","RouterModule","forChild","exports","providers","IdentityModule","declarations","NgxsModule","forFeature","CoreModule","NgbTabsetModule","ThemeSharedModule","TableModule","NgbDropdownModule","PermissionManagementModule","NgxValidateCoreModule","Identity","RoleSaveRequest","RoleItem","UserItem","User","UserSaveRequest","order","wrapper","parentName","layout","iconClass"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Identity } from '../models/identity';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetRoles {\n static readonly type = '[Identity] Get Roles';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetRoleById {\n static readonly type = '[Identity] Get Role By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteRole {\n static readonly type = '[Identity] Delete Role';\n constructor(public payload: string) {}\n}\n\nexport class CreateRole {\n static readonly type = '[Identity] Create Role';\n constructor(public payload: Identity.RoleSaveRequest) {}\n}\n\nexport class UpdateRole {\n static readonly type = '[Identity] Update Role';\n constructor(public payload: Identity.RoleItem) {}\n}\n\nexport class GetUsers {\n static readonly type = '[Identity] Get Users';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetUserById {\n static readonly type = '[Identity] Get User By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteUser {\n static readonly type = '[Identity] Delete User';\n constructor(public payload: string) {}\n}\n\nexport class CreateUser {\n static readonly type = '[Identity] Create User';\n constructor(public payload: Identity.UserSaveRequest) {}\n}\n\nexport class UpdateUser {\n static readonly type = '[Identity] Update User';\n constructor(public payload: Identity.UserSaveRequest & { id: string }) {}\n}\n\nexport class GetUserRoles {\n static readonly type = '[Identity] Get User Roles';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { Identity } from '../models/identity';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdentityService {\n constructor(private rest: RestService) {}\n\n getRoles(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/roles',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getRoleById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteRole(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createRole(body: Identity.RoleSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/roles',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateRole(body: Identity.RoleItem): Observable {\n const url = `/api/identity/roles/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getUsers(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/users',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getUserById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n getUserRoles(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}/roles`,\n };\n\n return this.rest.request(request);\n }\n\n deleteUser(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createUser(body: Identity.UserSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/users',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateUser(body: Identity.UserItem): Observable {\n const url = `/api/identity/users/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap, pluck } from 'rxjs/operators';\nimport {\n CreateRole,\n CreateUser,\n DeleteRole,\n DeleteUser,\n GetRoleById,\n GetRoles,\n GetUserById,\n GetUsers,\n UpdateRole,\n UpdateUser,\n GetUserRoles,\n} from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityService } from '../services/identity.service';\n\n@State({\n name: 'IdentityState',\n defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,\n})\nexport class IdentityState {\n @Selector()\n static getRoles({ roles }: Identity.State): Identity.RoleItem[] {\n return roles.items;\n }\n\n @Selector()\n static getRolesTotalCount({ roles }: Identity.State): number {\n return roles.totalCount;\n }\n\n @Selector()\n static getUsers({ users }: Identity.State): Identity.UserItem[] {\n return users.items;\n }\n\n @Selector()\n static getUsersTotalCount({ users }: Identity.State): number {\n return users.totalCount;\n }\n\n constructor(private identityService: IdentityService) {}\n\n @Action(GetRoles)\n getRoles({ patchState }: StateContext, { payload }: GetRoles) {\n return this.identityService.getRoles(payload).pipe(\n tap(roles =>\n patchState({\n roles,\n }),\n ),\n );\n }\n\n @Action(GetRoleById)\n getRole({ patchState }: StateContext, { payload }: GetRoleById) {\n return this.identityService.getRoleById(payload).pipe(\n tap(selectedRole =>\n patchState({\n selectedRole,\n }),\n ),\n );\n }\n\n @Action(DeleteRole)\n deleteRole({ dispatch }: StateContext, { payload }: GetRoleById) {\n return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(CreateRole)\n addRole({ dispatch }: StateContext, { payload }: CreateRole) {\n return this.identityService.createRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(UpdateRole)\n updateRole({ getState, dispatch }: StateContext, { payload }: UpdateRole) {\n return dispatch(new GetRoleById(payload.id)).pipe(\n switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })),\n switchMap(() => dispatch(new GetRoles())),\n );\n }\n\n @Action(GetUsers)\n getUsers({ patchState }: StateContext, { payload }: GetUsers) {\n return this.identityService.getUsers(payload).pipe(\n tap(users =>\n patchState({\n users,\n }),\n ),\n );\n }\n\n @Action(GetUserById)\n getUser({ patchState }: StateContext, { payload }: GetUserById) {\n return this.identityService.getUserById(payload).pipe(\n tap(selectedUser =>\n patchState({\n selectedUser,\n }),\n ),\n );\n }\n\n @Action(DeleteUser)\n deleteUser({ dispatch }: StateContext, { payload }: GetUserById) {\n return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(CreateUser)\n addUser({ dispatch }: StateContext, { payload }: CreateUser) {\n return this.identityService.createUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(UpdateUser)\n updateUser({ getState, dispatch }: StateContext, { payload }: UpdateUser) {\n return dispatch(new GetUserById(payload.id)).pipe(\n switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })),\n switchMap(() => dispatch(new GetUsers())),\n );\n }\n\n @Action(GetUserRoles)\n getUserRoles({ patchState }: StateContext, { payload }: GetUserRoles) {\n return this.identityService.getUserRoles(payload).pipe(\n pluck('items'),\n tap(selectedUserRoles =>\n patchState({\n selectedUserRoles,\n }),\n ),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck } from 'rxjs/operators';\nimport { CreateRole, DeleteRole, GetRoleById, GetRoles, UpdateRole } from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n\n@Component({\n selector: 'abp-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent {\n @Select(IdentityState.getRoles)\n data$: Observable;\n\n @Select(IdentityState.getRolesTotalCount)\n totalCount$: Observable;\n\n form: FormGroup;\n\n selected: Identity.RoleItem;\n\n isModalVisible: boolean;\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n sortOrder: string = 'asc';\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n createForm() {\n this.form = this.fb.group({\n name: new FormControl({ value: this.selected.name || '', disabled: this.selected.isStatic }, [\n Validators.required,\n Validators.maxLength(256),\n ]),\n isDefault: [this.selected.isDefault || false],\n isPublic: [this.selected.isPublic || false],\n });\n }\n\n openModal() {\n this.createForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.RoleItem;\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetRoleById(id))\n .pipe(pluck('IdentityState', 'selectedRole'))\n .subscribe(selectedRole => {\n this.selected = selectedRole;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateRole({ ...this.form.value, id: this.selected.id })\n : new CreateRole(this.form.value),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteRole(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetRoles(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n\n changeSortOrder() {\n this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetRoles } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class RoleResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const roles = this.store.selectSnapshot(IdentityState.getRoles);\n return roles && roles.length ? null : this.store.dispatch(new GetRoles());\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, TrackByFunction, ViewChild } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport {\n CreateUser,\n DeleteUser,\n GetUserById,\n GetUserRoles,\n GetUsers,\n UpdateUser,\n} from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n@Component({\n selector: 'abp-users',\n templateUrl: './users.component.html',\n})\nexport class UsersComponent {\n @Select(IdentityState.getUsers)\n data$: Observable;\n\n @Select(IdentityState.getUsersTotalCount)\n totalCount$: Observable;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n selected: Identity.UserItem;\n\n selectedUserRoles: Identity.RoleItem[];\n\n roles: Identity.RoleItem[];\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'userName',\n };\n\n isModalVisible: boolean;\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n sortOrder: string = 'asc';\n\n trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;\n\n get roleGroups(): FormGroup[] {\n return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);\n }\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n buildForm() {\n this.roles = this.store.selectSnapshot(IdentityState.getRoles);\n this.form = this.fb.group({\n userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],\n email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],\n name: [this.selected.name || '', [Validators.maxLength(64)]],\n surname: [this.selected.surname || '', [Validators.maxLength(64)]],\n phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],\n lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n roleNames: this.fb.array(\n this.roles.map(role =>\n this.fb.group({\n [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))],\n }),\n ),\n ),\n });\n if (!this.selected.userName) {\n this.form.addControl('password', new FormControl('', [Validators.required, Validators.maxLength(32)]));\n }\n }\n\n openModal() {\n this.buildForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.UserItem;\n this.selectedUserRoles = [] as Identity.RoleItem[];\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetUserById(id))\n .pipe(\n switchMap(() => this.store.dispatch(new GetUserRoles(id))),\n pluck('IdentityState'),\n take(1),\n )\n .subscribe((state: Identity.State) => {\n this.selected = state.selectedUser;\n this.selectedUserRoles = state.selectedUserRoles;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n const { roleNames } = this.form.value;\n const mappedRoleNames = snq(\n () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),\n [],\n );\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateUser({\n ...this.form.value,\n id: this.selected.id,\n roleNames: mappedRoleNames,\n })\n : new CreateUser({\n ...this.form.value,\n roleNames: mappedRoleNames,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, userName: string) {\n this.confirmationService\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [userName],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteUser(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetUsers(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n\n changeSortOrder() {\n this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetUsers } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class UserResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const users = this.store.selectSnapshot(IdentityState.getUsers);\n return users && users.length ? null : this.store.dispatch(new GetUsers());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { RoleResolver } from './resolvers/roles.resolver';\nimport { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { UsersComponent } from './components/users/users.component';\nimport { UserResolver } from './resolvers/users.resolver';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\n {\n path: 'roles',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Roles' },\n children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],\n },\n {\n path: 'users',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Users' },\n children: [\n {\n path: '',\n component: UsersComponent,\n resolve: [RoleResolver, UserResolver],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [RoleResolver, UserResolver],\n})\nexport class IdentityRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule, Provider } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { IdentityState } from './states/identity.state';\nimport { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UsersComponent } from './components/users/users.component';\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\nimport { TableModule } from 'primeng/table';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [RolesComponent, UsersComponent],\n imports: [\n NgxsModule.forFeature([IdentityState]),\n CoreModule,\n IdentityRoutingModule,\n NgbTabsetModule,\n ThemeSharedModule,\n TableModule,\n NgbDropdownModule,\n PermissionManagementModule,\n NgxValidateCoreModule,\n ],\n})\nexport class IdentityModule {}\n\nexport function IdentityProviders(): Provider[] {\n return [];\n}\n","import { eLayoutType, ABP } from '@abp/ng.core';\n\nexport const IDENTITY_ROUTES = {\n routes: [\n {\n name: 'AbpUiNavigation::Menu:Administration',\n path: '',\n order: 1,\n wrapper: true,\n },\n {\n name: 'AbpIdentity::Menu:IdentityManagement',\n path: 'identity',\n order: 1,\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-id-card-o',\n children: [\n { path: 'roles', name: 'AbpIdentity::Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },\n { path: 'users', name: 'AbpIdentity::Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },\n ],\n },\n ] as ABP.FullRoute[],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace Identity {\n export interface State {\n roles: RoleResponse;\n users: UserResponse;\n selectedRole: RoleItem;\n selectedUser: UserItem;\n selectedUserRoles: RoleItem[];\n }\n\n export type RoleResponse = ABP.PagedResponse;\n\n export interface RoleSaveRequest {\n name: string;\n isDefault: boolean;\n isPublic: boolean;\n }\n\n export interface RoleItem extends RoleSaveRequest {\n isStatic: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export type UserResponse = ABP.PagedResponse;\n\n export interface UserItem extends User {\n tenantId: string;\n emailConfirmed: boolean;\n phoneNumberConfirmed: boolean;\n isLockedOut: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export interface User {\n userName: string;\n name: string;\n surname: string;\n email: string;\n phoneNumber: string;\n twoFactorEnabled: true;\n lockoutEnabled: true;\n }\n\n export interface UserSaveRequest extends User {\n password: string;\n roleNames: string[];\n }\n}\n"]} \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm2015/abp-ng.identity.js b/npm/ng-packs/dist/identity/esm2015/abp-ng.identity.js index 2ccd8a6a10..30171986c1 100644 --- a/npm/ng-packs/dist/identity/esm2015/abp-ng.identity.js +++ b/npm/ng-packs/dist/identity/esm2015/abp-ng.identity.js @@ -5,8 +5,8 @@ /** * Generated bundle index. Do not edit. */ -export { RootIdentityModule, IdentityModule, GetRoles, GetRoleById, DeleteRole, CreateRole, UpdateRole, GetUsers, GetUserById, DeleteUser, CreateUser, UpdateUser, GetUserRoles, RolesComponent, IDENTITY_ROUTES, RoleResolver, IdentityService, IdentityState } from './public-api'; +export { IdentityProviders, IdentityModule, GetRoles, GetRoleById, DeleteRole, CreateRole, UpdateRole, GetUsers, GetUserById, DeleteUser, CreateUser, UpdateUser, GetUserRoles, RolesComponent, IDENTITY_ROUTES, RoleResolver, IdentityService, IdentityState } from './public-api'; export { UsersComponent as ɵb } from './lib/components/users/users.component'; export { IdentityRoutingModule as ɵc } from './lib/identity-routing.module'; export { UserResolver as ɵd } from './lib/resolvers/users.resolver'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmlkZW50aXR5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImFicC1uZy5pZGVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsc1FBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRTFFLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7VXNlcnNDb21wb25lbnQgYXMgybVifSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudCc7XG5leHBvcnQge0lkZW50aXR5Um91dGluZ01vZHVsZSBhcyDJtWN9IGZyb20gJy4vbGliL2lkZW50aXR5LXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7SWRlbnRpdHkgYXMgybVhfSBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xuZXhwb3J0IHtVc2VyUmVzb2x2ZXIgYXMgybVkfSBmcm9tICcuL2xpYi9yZXNvbHZlcnMvdXNlcnMucmVzb2x2ZXInOyJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmlkZW50aXR5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImFicC1uZy5pZGVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscVFBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRTFFLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7VXNlcnNDb21wb25lbnQgYXMgybVifSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudCc7XG5leHBvcnQge0lkZW50aXR5Um91dGluZ01vZHVsZSBhcyDJtWN9IGZyb20gJy4vbGliL2lkZW50aXR5LXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7SWRlbnRpdHkgYXMgybVhfSBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xuZXhwb3J0IHtVc2VyUmVzb2x2ZXIgYXMgybVkfSBmcm9tICcuL2xpYi9yZXNvbHZlcnMvdXNlcnMucmVzb2x2ZXInOyJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm2015/lib/components/roles/roles.component.js b/npm/ng-packs/dist/identity/esm2015/lib/components/roles/roles.component.js index 890edde843..9524f2485f 100644 --- a/npm/ng-packs/dist/identity/esm2015/lib/components/roles/roles.component.js +++ b/npm/ng-packs/dist/identity/esm2015/lib/components/roles/roles.component.js @@ -27,6 +27,7 @@ export class RolesComponent { }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; } /** * @param {?} value @@ -141,11 +142,17 @@ export class RolesComponent { () => (this.loading = false)))) .subscribe(); } + /** + * @return {?} + */ + changeSortOrder() { + this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc'; + } } RolesComponent.decorators = [ { type: Component, args: [{ selector: 'abp-roles', - template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Roles' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n" + template: "
\n
\n

{{ 'AbpIdentity::Roles' | abpLocalization }}

\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n" }] } ]; /** @nocollapse */ @@ -187,6 +194,8 @@ if (false) { /** @type {?} */ RolesComponent.prototype.modalBusy; /** @type {?} */ + RolesComponent.prototype.sortOrder; + /** @type {?} */ RolesComponent.prototype.modalContent; /** * @type {?} @@ -204,4 +213,4 @@ if (false) { */ RolesComponent.prototype.store; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3JvbGVzL3JvbGVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFNNUQsTUFBTSxPQUFPLGNBQWM7Ozs7OztJQTRCekIsWUFBb0IsbUJBQXdDLEVBQVUsRUFBZSxFQUFVLEtBQVk7UUFBdkYsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBZjNHLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUlwQyxjQUFTLEdBQXdCO1lBQy9CLE9BQU8sRUFBRSxNQUFNO1NBQ2hCLENBQUM7UUFFRixZQUFPLEdBQVksS0FBSyxDQUFDO1FBRXpCLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFLbUYsQ0FBQzs7Ozs7SUFFL0csUUFB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ZSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBUb2FzdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgcGx1Y2sgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDcmVhdGVSb2xlLCBEZWxldGVSb2xlLCBHZXRSb2xlQnlJZCwgR2V0Um9sZXMsIFVwZGF0ZVJvbGUgfSBmcm9tICcuLi8uLi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuaW1wb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvaWRlbnRpdHknO1xuaW1wb3J0IHsgSWRlbnRpdHlTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlcy9pZGVudGl0eS5zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1yb2xlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yb2xlcy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJvbGVzQ29tcG9uZW50IHtcbiAgQFNlbGVjdChJZGVudGl0eVN0YXRlLmdldFJvbGVzKVxuICBkYXRhJDogT2JzZXJ2YWJsZTxJZGVudGl0eS5Sb2xlSXRlbVtdPjtcblxuICBAU2VsZWN0KElkZW50aXR5U3RhdGUuZ2V0Um9sZXNUb3RhbENvdW50KVxuICB0b3RhbENvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBzZWxlY3RlZDogSWRlbnRpdHkuUm9sZUl0ZW07XG5cbiAgaXNNb2RhbFZpc2libGU6IGJvb2xlYW47XG5cbiAgdmlzaWJsZVBlcm1pc3Npb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdmlkZXJLZXk6IHN0cmluZztcblxuICBwYWdlUXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMgPSB7XG4gICAgc29ydGluZzogJ25hbWUnLFxuICB9O1xuXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbW9kYWxDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSwgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIG9uU2VhcmNoKHZhbHVlKSB7XG4gICAgdGhpcy5wYWdlUXVlcnkuZmlsdGVyID0gdmFsdWU7XG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm0oKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy5zZWxlY3RlZC5uYW1lIHx8ICcnLCBkaXNhYmxlZDogdGhpcy5zZWxlY3RlZC5pc1N0YXRpYyB9LCBbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NiksXG4gICAgICBdKSxcbiAgICAgIGlzRGVmYXVsdDogW3RoaXMuc2VsZWN0ZWQuaXNEZWZhdWx0IHx8IGZhbHNlXSxcbiAgICAgIGlzUHVibGljOiBbdGhpcy5zZWxlY3RlZC5pc1B1YmxpYyB8fCBmYWxzZV0sXG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBvbkFkZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0ge30gYXMgSWRlbnRpdHkuUm9sZUl0ZW07XG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgfVxuXG4gIG9uRWRpdChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBHZXRSb2xlQnlJZChpZCkpXG4gICAgICAucGlwZShwbHVjaygnSWRlbnRpdHlTdGF0ZScsICdzZWxlY3RlZFJvbGUnKSlcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0ZWRSb2xlID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkUm9sZTtcbiAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgcmV0dXJuO1xuICAgIHRoaXMubW9kYWxCdXN5ID0gdHJ1ZTtcblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5pZFxuICAgICAgICAgID8gbmV3IFVwZGF0ZVJvbGUoeyAuLi50aGlzLmZvcm0udmFsdWUsIGlkOiB0aGlzLnNlbGVjdGVkLmlkIH0pXG4gICAgICAgICAgOiBuZXcgQ3JlYXRlUm9sZSh0aGlzLmZvcm0udmFsdWUpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxuICAgICAgLndhcm4oJ0FicElkZW50aXR5OjpSb2xlRGVsZXRpb25Db25maXJtYXRpb25NZXNzYWdlJywgJ0FicElkZW50aXR5OjpBcmVZb3VTdXJlJywge1xuICAgICAgICBtZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zOiBbbmFtZV0sXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBUb2FzdGVyLlN0YXR1cykgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09PSBUb2FzdGVyLlN0YXR1cy5jb25maXJtKSB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgRGVsZXRlUm9sZShpZCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShkYXRhKSB7XG4gICAgdGhpcy5wYWdlUXVlcnkuc2tpcENvdW50ID0gZGF0YS5maXJzdDtcbiAgICB0aGlzLnBhZ2VRdWVyeS5tYXhSZXN1bHRDb3VudCA9IGRhdGEucm93cztcblxuICAgIHRoaXMuZ2V0KCk7XG4gIH1cblxuICBnZXQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFJvbGVzKHRoaXMucGFnZVF1ZXJ5KSlcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3JvbGVzL3JvbGVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFNNUQsTUFBTSxPQUFPLGNBQWM7Ozs7OztJQThCekIsWUFBb0IsbUJBQXdDLEVBQVUsRUFBZSxFQUFVLEtBQVk7UUFBdkYsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBakIzRyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFJcEMsY0FBUyxHQUF3QjtZQUMvQixPQUFPLEVBQUUsTUFBTTtTQUNoQixDQUFDO1FBRUYsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUV6QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLGNBQVMsR0FBVyxLQUFLLENB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Q0FBb0I7O0lBRXBCLG1DQUVFOztJQUVGLGlDQUF5Qjs7SUFFekIsbUNBQTJCOztJQUUzQixtQ0FBMEI7O0lBRTFCLHNDQUMrQjs7Ozs7SUFFbkIsNkNBQWdEOzs7OztJQUFFLDRCQUF1Qjs7Ozs7SUFBRSwrQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHBsdWNrIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ3JlYXRlUm9sZSwgRGVsZXRlUm9sZSwgR2V0Um9sZUJ5SWQsIEdldFJvbGVzLCBVcGRhdGVSb2xlIH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9pZGVudGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IElkZW50aXR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2lkZW50aXR5JztcbmltcG9ydCB7IElkZW50aXR5U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZXMvaWRlbnRpdHkuc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtcm9sZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcm9sZXMuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBSb2xlc0NvbXBvbmVudCB7XG4gIEBTZWxlY3QoSWRlbnRpdHlTdGF0ZS5nZXRSb2xlcylcbiAgZGF0YSQ6IE9ic2VydmFibGU8SWRlbnRpdHkuUm9sZUl0ZW1bXT47XG5cbiAgQFNlbGVjdChJZGVudGl0eVN0YXRlLmdldFJvbGVzVG90YWxDb3VudClcbiAgdG90YWxDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgc2VsZWN0ZWQ6IElkZW50aXR5LlJvbGVJdGVtO1xuXG4gIGlzTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuXG4gIHZpc2libGVQZXJtaXNzaW9uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG5cbiAgcGFnZVF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zID0ge1xuICAgIHNvcnRpbmc6ICduYW1lJyxcbiAgfTtcblxuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbW9kYWxCdXN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgc29ydE9yZGVyOiBzdHJpbmcgPSAnYXNjJztcblxuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbW9kYWxDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSwgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIG9uU2VhcmNoKHZhbHVlKSB7XG4gICAgdGhpcy5wYWdlUXVlcnkuZmlsdGVyID0gdmFsdWU7XG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm0oKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy5zZWxlY3RlZC5uYW1lIHx8ICcnLCBkaXNhYmxlZDogdGhpcy5zZWxlY3RlZC5pc1N0YXRpYyB9LCBbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NiksXG4gICAgICBdKSxcbiAgICAgIGlzRGVmYXVsdDogW3RoaXMuc2VsZWN0ZWQuaXNEZWZhdWx0IHx8IGZhbHNlXSxcbiAgICAgIGlzUHVibGljOiBbdGhpcy5zZWxlY3RlZC5pc1B1YmxpYyB8fCBmYWxzZV0sXG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBvbkFkZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0ge30gYXMgSWRlbnRpdHkuUm9sZUl0ZW07XG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgfVxuXG4gIG9uRWRpdChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBHZXRSb2xlQnlJZChpZCkpXG4gICAgICAucGlwZShwbHVjaygnSWRlbnRpdHlTdGF0ZScsICdzZWxlY3RlZFJvbGUnKSlcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0ZWRSb2xlID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkUm9sZTtcbiAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgcmV0dXJuO1xuICAgIHRoaXMubW9kYWxCdXN5ID0gdHJ1ZTtcblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5pZFxuICAgICAgICAgID8gbmV3IFVwZGF0ZVJvbGUoeyAuLi50aGlzLmZvcm0udmFsdWUsIGlkOiB0aGlzLnNlbGVjdGVkLmlkIH0pXG4gICAgICAgICAgOiBuZXcgQ3JlYXRlUm9sZSh0aGlzLmZvcm0udmFsdWUpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxuICAgICAgLndhcm4oJ0FicElkZW50aXR5OjpSb2xlRGVsZXRpb25Db25maXJtYXRpb25NZXNzYWdlJywgJ0FicElkZW50aXR5OjpBcmVZb3VTdXJlJywge1xuICAgICAgICBtZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zOiBbbmFtZV0sXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBUb2FzdGVyLlN0YXR1cykgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09PSBUb2FzdGVyLlN0YXR1cy5jb25maXJtKSB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgRGVsZXRlUm9sZShpZCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShkYXRhKSB7XG4gICAgdGhpcy5wYWdlUXVlcnkuc2tpcENvdW50ID0gZGF0YS5maXJzdDtcbiAgICB0aGlzLnBhZ2VRdWVyeS5tYXhSZXN1bHRDb3VudCA9IGRhdGEucm93cztcblxuICAgIHRoaXMuZ2V0KCk7XG4gIH1cblxuICBnZXQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFJvbGVzKHRoaXMucGFnZVF1ZXJ5KSlcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgY2hhbmdlU29ydE9yZGVyKCkge1xuICAgIHRoaXMuc29ydE9yZGVyID0gdGhpcy5zb3J0T3JkZXIudG9Mb3dlckNhc2UoKSA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJztcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm2015/lib/components/users/users.component.js b/npm/ng-packs/dist/identity/esm2015/lib/components/users/users.component.js index 2587277861..c018ff7925 100644 --- a/npm/ng-packs/dist/identity/esm2015/lib/components/users/users.component.js +++ b/npm/ng-packs/dist/identity/esm2015/lib/components/users/users.component.js @@ -28,6 +28,7 @@ export class UsersComponent { }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; this.trackByFn = (/** * @param {?} index * @param {?} item @@ -195,11 +196,17 @@ export class UsersComponent { () => (this.loading = false)))) .subscribe(); } + /** + * @return {?} + */ + changeSortOrder() { + this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc'; + } } UsersComponent.decorators = [ { type: Component, args: [{ selector: 'abp-users', - template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Users' | abpLocalization }}
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::UserName' | abpLocalization }}\n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}

\n
\n\n \n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n\n \n \n {{\n 'AbpIdentity::Save' | abpLocalization\n }}\n \n\n\n\n" + template: "
\n
\n

{{ 'AbpIdentity::Users' | abpLocalization }}

\n
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n {{ 'AbpIdentity::UserName' | abpLocalization }}\n \n \n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}

\n
\n\n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n\n \n \n {{\n 'AbpIdentity::Save' | abpLocalization\n }}\n \n\n\n\n" }] } ]; /** @nocollapse */ @@ -247,6 +254,8 @@ if (false) { /** @type {?} */ UsersComponent.prototype.modalBusy; /** @type {?} */ + UsersComponent.prototype.sortOrder; + /** @type {?} */ UsersComponent.prototype.trackByFn; /** * @type {?} @@ -264,4 +273,4 @@ if (false) { */ UsersComponent.prototype.store; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFtQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUE4QixXQUFXLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUN0QixPQUFPLEVBQ0wsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLFFBQVEsRUFDUixVQUFVLEdBQ1gsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLNUQsTUFBTSxPQUFPLGNBQWM7Ozs7OztJQXNDekIsWUFBb0IsbUJBQXdDLEVBQVUsRUFBZSxFQUFVLEtBQVk7UUFBdkYsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBcEIzRyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFJcEMsY0FBUyxHQUF3QjtZQUMvQixPQUFPLEVBQUUsVUFBVTtTQUNwQixDQUFDO1FBSUYsWUFBTyxH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Q0FBQyxrQkFBa0IsQ0FBQztzQ0FDNUIsVUFBVTttREFBUzs7O0lBSmhDLCtCQUN1Qzs7SUFFdkMscUNBQ2dDOztJQUVoQyxzQ0FDK0I7O0lBRS9CLDhCQUFnQjs7SUFFaEIsa0NBQTRCOztJQUU1QiwyQ0FBdUM7O0lBRXZDLCtCQUEyQjs7SUFFM0IsNENBQW9DOztJQUVwQyxxQ0FBb0I7O0lBRXBCLG1DQUVFOztJQUVGLHdDQUF3Qjs7SUFFeEIsaUNBQXlCOztJQUV6QixtQ0FBMkI7O0lBRTNCLG1DQUE2Rjs7Ozs7SUFNakYsNkNBQWdEOzs7OztJQUFFLDRCQUF1Qjs7Ozs7SUFBRSwrQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFRyYWNrQnlGdW5jdGlvbiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHBsdWNrLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQge1xuICBDcmVhdGVVc2VyLFxuICBEZWxldGVVc2VyLFxuICBHZXRVc2VyQnlJZCxcbiAgR2V0VXNlclJvbGVzLFxuICBHZXRVc2VycyxcbiAgVXBkYXRlVXNlcixcbn0gZnJvbSAnLi4vLi4vYWN0aW9ucy9pZGVudGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IElkZW50aXR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2lkZW50aXR5JztcbmltcG9ydCB7IElkZW50aXR5U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZXMvaWRlbnRpdHkuc3RhdGUnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXVzZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXJzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlcnNDb21wb25lbnQge1xuICBAU2VsZWN0KElkZW50aXR5U3RhdGUuZ2V0VXNlcnMpXG4gIGRhdGEkOiBPYnNlcnZhYmxlPElkZW50aXR5LlVzZXJJdGVtW10+O1xuXG4gIEBTZWxlY3QoSWRlbnRpdHlTdGF0ZS5nZXRVc2Vyc1RvdGFsQ291bnQpXG4gIHRvdGFsQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgQFZpZXdDaGlsZCgnbW9kYWxDb250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1vZGFsQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgc2VsZWN0ZWQ6IElkZW50aXR5LlVzZXJJdGVtO1xuXG4gIHNlbGVjdGVkVXNlclJvbGVzOiBJZGVudGl0eS5Sb2xlSXRlbVtdO1xuXG4gIHJvbGVzOiBJZGVudGl0eS5Sb2xlSXRlbVtdO1xuXG4gIHZpc2libGVQZXJtaXNzaW9uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG5cbiAgcGFnZVF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zID0ge1xuICAgIHNvcnRpbmc6ICd1c2VyTmFtZScsXG4gIH07XG5cbiAgaXNNb2RhbFZpc2libGU6IGJvb2xlYW47XG5cbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPEFic3RyYWN0Q29udHJvbD4gPSAoaW5kZXgsIGl0ZW0pID0+IE9iamVjdC5rZXlzKGl0ZW0pWzBdIHx8IGluZGV4O1xuXG4gIGdldCByb2xlR3JvdXBzKCk6IEZvcm1Hcm91cFtdIHtcbiAgICByZXR1cm4gc25xKCgpID0+ICh0aGlzLmZvcm0uZ2V0KCdyb2xlTmFtZXMnKSBhcyBGb3JtQXJyYXkpLmNvbnRyb2xzIGFzIEZvcm1Hcm91cFtdLCBbXSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge31cblxuICBvblNlYXJjaCh2YWx1ZSkge1xuICAgIHRoaXMucGFnZVF1ZXJ5LmZpbHRlciA9IHZhbHVlO1xuICAgIHRoaXMuZ2V0KCk7XG4gIH1cblxuICBidWlsZEZvcm0oKSB7XG4gICAgdGhpcy5yb2xlcyA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoSWRlbnRpdHlTdGF0ZS5nZXRSb2xlcyk7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB1c2VyTmFtZTogW3RoaXMuc2VsZWN0ZWQudXNlck5hbWUgfHwgJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXG4gICAgICBlbWFpbDogW3RoaXMuc2VsZWN0ZWQuZW1haWwgfHwgJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXG4gICAgICBuYW1lOiBbdGhpcy5zZWxlY3RlZC5uYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNjQpXV0sXG4gICAgICBzdXJuYW1lOiBbdGhpcy5zZWxlY3RlZC5zdXJuYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNjQpXV0sXG4gICAgICBwaG9uZU51bWJlcjogW3RoaXMuc2VsZWN0ZWQucGhvbmVOdW1iZXIgfHwgJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxNildXSxcbiAgICAgIGxvY2tvdXRFbmFibGVkOiBbdGhpcy5zZWxlY3RlZC50d29GYWN0b3JFbmFibGVkIHx8ICh0aGlzLnNlbGVjdGVkLmlkID8gZmFsc2UgOiB0cnVlKV0sXG4gICAgICB0d29GYWN0b3JFbmFibGVkOiBbdGhpcy5zZWxlY3RlZC50d29GYWN0b3JFbmFibGVkIHx8ICh0aGlzLnNlbGVjdGVkLmlkID8gZmFsc2UgOiB0cnVlKV0sXG4gICAgICByb2xlTmFtZXM6IHRoaXMuZmIuYXJyYXkoXG4gICAgICAgIHRoaXMucm9sZXMubWFwKHJvbGUgPT5cbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgIFtyb2xlLm5hbWVdOiBbISFzbnEoKCkgPT4gdGhpcy5zZWxlY3RlZFVzZXJSb2xlcy5maW5kKHVzZXJSb2xlID0+IHVzZXJSb2xlLmlkID09PSByb2xlLmlkKSldLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICB9KTtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWQudXNlck5hbWUpIHtcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdwYXNzd29yZCcsIG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMyKV0pKTtcbiAgICB9XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5idWlsZEZvcm0oKTtcbiAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQWRkKCkge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSB7fSBhcyBJZGVudGl0eS5Vc2VySXRlbTtcbiAgICB0aGlzLnNlbGVjdGVkVXNlclJvbGVzID0gW10gYXMgSWRlbnRpdHkuUm9sZUl0ZW1bXTtcbiAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICB9XG5cbiAgb25FZGl0KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFVzZXJCeUlkKGlkKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgR2V0VXNlclJvbGVzKGlkKSkpLFxuICAgICAgICBwbHVjaygnSWRlbnRpdHlTdGF0ZScpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IElkZW50aXR5LlN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzdGF0ZS5zZWxlY3RlZFVzZXI7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VyUm9sZXMgPSBzdGF0ZS5zZWxlY3RlZFVzZXJSb2xlcztcbiAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgcmV0dXJuO1xuICAgIHRoaXMubW9kYWxCdXN5ID0gdHJ1ZTtcblxuICAgIGNvbnN0IHsgcm9sZU5hbWVzIH0gPSB0aGlzLmZvcm0udmFsdWU7XG4gICAgY29uc3QgbWFwcGVkUm9sZU5hbWVzID0gc25xKFxuICAgICAgKCkgPT4gcm9sZU5hbWVzLmZpbHRlcihyb2xlID0+ICEhcm9sZVtPYmplY3Qua2V5cyhyb2xlKVswXV0pLm1hcChyb2xlID0+IE9iamVjdC5rZXlzKHJvbGUpWzBdKSxcbiAgICAgIFtdLFxuICAgICk7XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuaWRcbiAgICAgICAgICA/IG5ldyBVcGRhdGVVc2VyKHtcbiAgICAgICAgICAgICAgLi4udGhpcy5mb3JtLnZhbHVlLFxuICAgICAgICAgICAgICBpZDogdGhpcy5zZWxlY3RlZC5pZCxcbiAgICAgICAgICAgICAgcm9sZU5hbWVzOiBtYXBwZWRSb2xlTmFtZXMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogbmV3IENyZWF0ZVVzZXIoe1xuICAgICAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXG4gICAgICAgICAgICAgIHJvbGVOYW1lczogbWFwcGVkUm9sZU5hbWVzLFxuICAgICAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgfSk7XG4gIH1cblxuICBkZWxldGUoaWQ6IHN0cmluZywgdXNlck5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxuICAgICAgLndhcm4oJ0FicElkZW50aXR5OjpVc2VyRGVsZXRpb25Db25maXJtYXRpb25NZXNzYWdlJywgJ0FicElkZW50aXR5OjpBcmVZb3VTdXJlJywge1xuICAgICAgICBtZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zOiBbdXNlck5hbWVdLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogVG9hc3Rlci5TdGF0dXMpID0+IHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gVG9hc3Rlci5TdGF0dXMuY29uZmlybSkge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IERlbGV0ZVVzZXIoaWQpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2UoZGF0YSkge1xuICAgIHRoaXMucGFnZVF1ZXJ5LnNraXBDb3VudCA9IGRhdGEuZmlyc3Q7XG4gICAgdGhpcy5wYWdlUXVlcnkubWF4UmVzdWx0Q291bnQgPSBkYXRhLnJvd3M7XG5cbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgZ2V0KCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBHZXRVc2Vycyh0aGlzLnBhZ2VRdWVyeSkpXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5sb2FkaW5nID0gZmFsc2UpKSlcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFtQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUE4QixXQUFXLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUN0QixPQUFPLEVBQ0wsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLFFBQVEsRUFDUixVQUFVLEdBQ1gsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLNUQsTUFBTSxPQUFPLGNBQWM7Ozs7OztJQXdDekIsWUFBb0IsbUJBQXdDLEVBQVUsRUFBZSxFQUFVLEtBQVk7UUFBdkYsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBdEIzRyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFJcEMsY0FBUyxHQUF3QjtZQUMvQixPQUFPLEVBQUUsVUFBVTtTQUNwQixDQUFDO1FBSUYsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUV6QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLGNBQVMsR0FBVyxLQUFLLENBQUM7UUFFMUIsY0FBUzs7Ozs7UUFBcUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBQztJQU1pQixDQUFDOzs7O0lBSi9HLElBQUksVUFBVTtRQUNaLE9BQU8sR0FBRzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsbUJBQUEsQ0FBQyxtQkFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBYSxDQUFDLENBQUMsUUFBUSxFQUFlLEdBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQzs7Ozs7SUFJRCxRQUFRLENBQUMsS0FBSztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDYixDQUFDOzs7O0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUYsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0RyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxRSxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckYsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkYsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUc7Ozs7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztnQkFDWixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHOzs7b0JBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUk7Ozs7b0JBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUMsRUFBQyxDQUFDO2FBQzdGLENBQUMsRUFDSCxDQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEc7SUFDSCxDQUFDOzs7O0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDOzs7O0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsbUJBQUEsRUFBRSxFQUFxQixDQUFDO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxtQkFBQSxFQUFFLEVBQXVCLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7Ozs7O0lBRUQsTUFBTSxDQUFDLEVBQVU7UUFDZixJQUFJLENBQUMsS0FBSzthQUNQLFFBQVEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM3QixJQUFJLENBQ0gsU0FBUzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxFQUMxRCxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQ3RCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDUjthQUNBLFNBQVM7Ozs7UUFBQyxDQUFDLEtBQXFCLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztZQUNqRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7O0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2NBRWhCLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLOztjQUMvQixlQUFlLEdBQUcsR0FBRzs7O1FBQ3pCLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNOzs7O1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUc7Ozs7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsR0FDOUYsRUFBRSxDQUNIO1FBRUQsSUFBSSxDQUFDLEtBQUs7YUFDUCxRQUFRLENBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2QsQ0FBQyxDQUFDLElBQUksVUFBVSxtQkFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFDbEIsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUNwQixTQUFTLEVBQUUsZUFBZSxJQUMxQjtZQUNKLENBQUMsQ0FBQyxJQUFJLFVBQVUsbUJBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQ2xCLFNBQVMsRUFBRSxlQUFlLElBQzFCLENBQ1A7YUFDQSxTQUFTOzs7UUFBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7OztJQUVELE1BQU0sQ0FBQyxFQUFVLEVBQUUsUUFBZ0I7UUFDakMsSUFBSSxDQUFDLG1CQUFtQjthQUNyQixJQUFJLENBQUMsOENBQThDLEVBQUUseUJBQXlCLEVBQUU7WUFDL0UseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUM7U0FDdEMsQ0FBQzthQUNELFNBQVM7Ozs7UUFBQyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtZQUNwQyxJQUFJLE1BQU0sNEJBQTJCLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDekM7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7O0lBRUQsWUFBWSxDQUFDLElBQUk7UUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFMUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2IsQ0FBQzs7OztJQUVELEdBQUc7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSzthQUNQLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDdEMsSUFBSSxDQUFDLFFBQVE7OztRQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBQyxDQUFDO2FBQzVDLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7Ozs7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDM0UsQ0FBQzs7O1lBOUpGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsd21SQUFxQzthQUN0Qzs7OztZQXBCUSxtQkFBbUI7WUFFUyxXQUFXO1lBQy9CLEtBQUs7OzsyQkF5Qm5CLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztBQUw1QztJQURDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO3NDQUN4QixVQUFVOzZDQUFzQjtBQUd2QztJQURDLE1BQU0sQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUM7c0NBQzVCLFVBQVU7bURBQVM7OztJQUpoQywrQkFDdUM7O0lBRXZDLHFDQUNnQzs7SUFFaEMsc0NBQytCOztJQUUvQiw4QkFBZ0I7O0lBRWhCLGtDQUE0Qjs7SUFFNUIsMkNBQXVDOztJQUV2QywrQkFBMkI7O0lBRTNCLDRDQUFvQzs7SUFFcEMscUNBQW9COztJQUVwQixtQ0FFRTs7SUFFRix3Q0FBd0I7O0lBRXhCLGlDQUF5Qjs7SUFFekIsbUNBQTJCOztJQUUzQixtQ0FBMEI7O0lBRTFCLG1DQUE2Rjs7Ozs7SUFNakYsNkNBQWdEOzs7OztJQUFFLDRCQUF1Qjs7Ozs7SUFBRSwrQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFRyYWNrQnlGdW5jdGlvbiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHBsdWNrLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQge1xuICBDcmVhdGVVc2VyLFxuICBEZWxldGVVc2VyLFxuICBHZXRVc2VyQnlJZCxcbiAgR2V0VXNlclJvbGVzLFxuICBHZXRVc2VycyxcbiAgVXBkYXRlVXNlcixcbn0gZnJvbSAnLi4vLi4vYWN0aW9ucy9pZGVudGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IElkZW50aXR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2lkZW50aXR5JztcbmltcG9ydCB7IElkZW50aXR5U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZXMvaWRlbnRpdHkuc3RhdGUnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXVzZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXJzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlcnNDb21wb25lbnQge1xuICBAU2VsZWN0KElkZW50aXR5U3RhdGUuZ2V0VXNlcnMpXG4gIGRhdGEkOiBPYnNlcnZhYmxlPElkZW50aXR5LlVzZXJJdGVtW10+O1xuXG4gIEBTZWxlY3QoSWRlbnRpdHlTdGF0ZS5nZXRVc2Vyc1RvdGFsQ291bnQpXG4gIHRvdGFsQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgQFZpZXdDaGlsZCgnbW9kYWxDb250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1vZGFsQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgc2VsZWN0ZWQ6IElkZW50aXR5LlVzZXJJdGVtO1xuXG4gIHNlbGVjdGVkVXNlclJvbGVzOiBJZGVudGl0eS5Sb2xlSXRlbVtdO1xuXG4gIHJvbGVzOiBJZGVudGl0eS5Sb2xlSXRlbVtdO1xuXG4gIHZpc2libGVQZXJtaXNzaW9uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG5cbiAgcGFnZVF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zID0ge1xuICAgIHNvcnRpbmc6ICd1c2VyTmFtZScsXG4gIH07XG5cbiAgaXNNb2RhbFZpc2libGU6IGJvb2xlYW47XG5cbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNvcnRPcmRlcjogc3RyaW5nID0gJ2FzYyc7XG5cbiAgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248QWJzdHJhY3RDb250cm9sPiA9IChpbmRleCwgaXRlbSkgPT4gT2JqZWN0LmtleXMoaXRlbSlbMF0gfHwgaW5kZXg7XG5cbiAgZ2V0IHJvbGVHcm91cHMoKTogRm9ybUdyb3VwW10ge1xuICAgIHJldHVybiBzbnEoKCkgPT4gKHRoaXMuZm9ybS5nZXQoJ3JvbGVOYW1lcycpIGFzIEZvcm1BcnJheSkuY29udHJvbHMgYXMgRm9ybUdyb3VwW10sIFtdKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSwgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIG9uU2VhcmNoKHZhbHVlKSB7XG4gICAgdGhpcy5wYWdlUXVlcnkuZmlsdGVyID0gdmFsdWU7XG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuXG4gIGJ1aWxkRm9ybSgpIHtcbiAgICB0aGlzLnJvbGVzID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChJZGVudGl0eVN0YXRlLmdldFJvbGVzKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHVzZXJOYW1lOiBbdGhpcy5zZWxlY3RlZC51c2VyTmFtZSB8fCAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcbiAgICAgIGVtYWlsOiBbdGhpcy5zZWxlY3RlZC5lbWFpbCB8fCAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWwsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcbiAgICAgIG5hbWU6IFt0aGlzLnNlbGVjdGVkLm5hbWUgfHwgJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCg2NCldXSxcbiAgICAgIHN1cm5hbWU6IFt0aGlzLnNlbGVjdGVkLnN1cm5hbWUgfHwgJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCg2NCldXSxcbiAgICAgIHBob25lTnVtYmVyOiBbdGhpcy5zZWxlY3RlZC5waG9uZU51bWJlciB8fCAnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDE2KV1dLFxuICAgICAgbG9ja291dEVuYWJsZWQ6IFt0aGlzLnNlbGVjdGVkLnR3b0ZhY3RvckVuYWJsZWQgfHwgKHRoaXMuc2VsZWN0ZWQuaWQgPyBmYWxzZSA6IHRydWUpXSxcbiAgICAgIHR3b0ZhY3RvckVuYWJsZWQ6IFt0aGlzLnNlbGVjdGVkLnR3b0ZhY3RvckVuYWJsZWQgfHwgKHRoaXMuc2VsZWN0ZWQuaWQgPyBmYWxzZSA6IHRydWUpXSxcbiAgICAgIHJvbGVOYW1lczogdGhpcy5mYi5hcnJheShcbiAgICAgICAgdGhpcy5yb2xlcy5tYXAocm9sZSA9PlxuICAgICAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgW3JvbGUubmFtZV06IFshIXNucSgoKSA9PiB0aGlzLnNlbGVjdGVkVXNlclJvbGVzLmZpbmQodXNlclJvbGUgPT4gdXNlclJvbGUuaWQgPT09IHJvbGUuaWQpKV0sXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgIH0pO1xuICAgIGlmICghdGhpcy5zZWxlY3RlZC51c2VyTmFtZSkge1xuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ3Bhc3N3b3JkJywgbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzIpXSkpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xuICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgb25BZGQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9IGFzIElkZW50aXR5LlVzZXJJdGVtO1xuICAgIHRoaXMuc2VsZWN0ZWRVc2VyUm9sZXMgPSBbXSBhcyBJZGVudGl0eS5Sb2xlSXRlbVtdO1xuICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gIH1cblxuICBvbkVkaXQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgR2V0VXNlckJ5SWQoaWQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBHZXRVc2VyUm9sZXMoaWQpKSksXG4gICAgICAgIHBsdWNrKCdJZGVudGl0eVN0YXRlJyksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZTogSWRlbnRpdHkuU3RhdGUpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHN0YXRlLnNlbGVjdGVkVXNlcjtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJSb2xlcyA9IHN0YXRlLnNlbGVjdGVkVXNlclJvbGVzO1xuICAgICAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSByZXR1cm47XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuXG4gICAgY29uc3QgeyByb2xlTmFtZXMgfSA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICBjb25zdCBtYXBwZWRSb2xlTmFtZXMgPSBzbnEoXG4gICAgICAoKSA9PiByb2xlTmFtZXMuZmlsdGVyKHJvbGUgPT4gISFyb2xlW09iamVjdC5rZXlzKHJvbGUpWzBdXSkubWFwKHJvbGUgPT4gT2JqZWN0LmtleXMocm9sZSlbMF0pLFxuICAgICAgW10sXG4gICAgKTtcblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5pZFxuICAgICAgICAgID8gbmV3IFVwZGF0ZVVzZXIoe1xuICAgICAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXG4gICAgICAgICAgICAgIGlkOiB0aGlzLnNlbGVjdGVkLmlkLFxuICAgICAgICAgICAgICByb2xlTmFtZXM6IG1hcHBlZFJvbGVOYW1lcyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBuZXcgQ3JlYXRlVXNlcih7XG4gICAgICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICAgICAgICAgICAgcm9sZU5hbWVzOiBtYXBwZWRSb2xlTmFtZXMsXG4gICAgICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm1vZGFsQnVzeSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gZmFsc2U7XG4gICAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZShpZDogc3RyaW5nLCB1c2VyTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlXG4gICAgICAud2FybignQWJwSWRlbnRpdHk6OlVzZXJEZWxldGlvbkNvbmZpcm1hdGlvbk1lc3NhZ2UnLCAnQWJwSWRlbnRpdHk6OkFyZVlvdVN1cmUnLCB7XG4gICAgICAgIG1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXM6IFt1c2VyTmFtZV0sXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBUb2FzdGVyLlN0YXR1cykgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09PSBUb2FzdGVyLlN0YXR1cy5jb25maXJtKSB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgRGVsZXRlVXNlcihpZCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShkYXRhKSB7XG4gICAgdGhpcy5wYWdlUXVlcnkuc2tpcENvdW50ID0gZGF0YS5maXJzdDtcbiAgICB0aGlzLnBhZ2VRdWVyeS5tYXhSZXN1bHRDb3VudCA9IGRhdGEucm93cztcblxuICAgIHRoaXMuZ2V0KCk7XG4gIH1cblxuICBnZXQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFVzZXJzKHRoaXMucGFnZVF1ZXJ5KSlcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgY2hhbmdlU29ydE9yZGVyKCkge1xuICAgIHRoaXMuc29ydE9yZGVyID0gdGhpcy5zb3J0T3JkZXIudG9Mb3dlckNhc2UoKSA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJztcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm2015/lib/constants/routes.js b/npm/ng-packs/dist/identity/esm2015/lib/constants/routes.js index d4dfea58c7..bd86bc482b 100644 --- a/npm/ng-packs/dist/identity/esm2015/lib/constants/routes.js +++ b/npm/ng-packs/dist/identity/esm2015/lib/constants/routes.js @@ -24,6 +24,5 @@ export const IDENTITY_ROUTES = { ], }, ])), - settings: [], }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBTSxPQUFPLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsbUJBQUE7UUFDTjtZQUNFLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsQ0FBQztZQUNSLE9BQU8sRUFBRSxJQUFJO1NBQ2Q7UUFDRDtZQUNFLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLENBQUM7WUFDUixVQUFVLEVBQUUsc0NBQXNDO1lBQ2xELE1BQU0saUNBQXlCO1lBQy9CLFNBQVMsRUFBRSxpQkFBaUI7WUFDNUIsUUFBUSxFQUFFO2dCQUNSLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUU7Z0JBQzVGLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUU7YUFDN0Y7U0FDRjtLQUNGLEVBQW1CO0lBQ3BCLFFBQVEsRUFBRSxFQUFFO0NBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlTGF5b3V0VHlwZSwgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuZXhwb3J0IGNvbnN0IElERU5USVRZX1JPVVRFUyA9IHtcbiAgcm91dGVzOiBbXG4gICAge1xuICAgICAgbmFtZTogJ0FicFVpTmF2aWdhdGlvbjo6TWVudTpBZG1pbmlzdHJhdGlvbicsXG4gICAgICBwYXRoOiAnJyxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgd3JhcHBlcjogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdBYnBJZGVudGl0eTo6TWVudTpJZGVudGl0eU1hbmFnZW1lbnQnLFxuICAgICAgcGF0aDogJ2lkZW50aXR5JyxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgcGFyZW50TmFtZTogJ0FicFVpTmF2aWdhdGlvbjo6TWVudTpBZG1pbmlzdHJhdGlvbicsXG4gICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxuICAgICAgaWNvbkNsYXNzOiAnZmEgZmEtaWQtY2FyZC1vJyxcbiAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgIHsgcGF0aDogJ3JvbGVzJywgbmFtZTogJ0FicElkZW50aXR5OjpSb2xlcycsIG9yZGVyOiAyLCByZXF1aXJlZFBvbGljeTogJ0FicElkZW50aXR5LlJvbGVzJyB9LFxuICAgICAgICB7IHBhdGg6ICd1c2VycycsIG5hbWU6ICdBYnBJZGVudGl0eTo6VXNlcnMnLCBvcmRlcjogMSwgcmVxdWlyZWRQb2xpY3k6ICdBYnBJZGVudGl0eS5Vc2VycycgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSBhcyBBQlAuRnVsbFJvdXRlW10sXG4gIHNldHRpbmdzOiBbXSxcbn07XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBTSxPQUFPLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsbUJBQUE7UUFDTjtZQUNFLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsQ0FBQztZQUNSLE9BQU8sRUFBRSxJQUFJO1NBQ2Q7UUFDRDtZQUNFLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLENBQUM7WUFDUixVQUFVLEVBQUUsc0NBQXNDO1lBQ2xELE1BQU0saUNBQXlCO1lBQy9CLFNBQVMsRUFBRSxpQkFBaUI7WUFDNUIsUUFBUSxFQUFFO2dCQUNSLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUU7Z0JBQzVGLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUU7YUFDN0Y7U0FDRjtLQUNGLEVBQW1CO0NBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZUxheW91dFR5cGUsIEFCUCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBjb25zdCBJREVOVElUWV9ST1VURVMgPSB7XG4gIHJvdXRlczogW1xuICAgIHtcbiAgICAgIG5hbWU6ICdBYnBVaU5hdmlnYXRpb246Ok1lbnU6QWRtaW5pc3RyYXRpb24nLFxuICAgICAgcGF0aDogJycsXG4gICAgICBvcmRlcjogMSxcbiAgICAgIHdyYXBwZXI6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnQWJwSWRlbnRpdHk6Ok1lbnU6SWRlbnRpdHlNYW5hZ2VtZW50JyxcbiAgICAgIHBhdGg6ICdpZGVudGl0eScsXG4gICAgICBvcmRlcjogMSxcbiAgICAgIHBhcmVudE5hbWU6ICdBYnBVaU5hdmlnYXRpb246Ok1lbnU6QWRtaW5pc3RyYXRpb24nLFxuICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcbiAgICAgIGljb25DbGFzczogJ2ZhIGZhLWlkLWNhcmQtbycsXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICB7IHBhdGg6ICdyb2xlcycsIG5hbWU6ICdBYnBJZGVudGl0eTo6Um9sZXMnLCBvcmRlcjogMiwgcmVxdWlyZWRQb2xpY3k6ICdBYnBJZGVudGl0eS5Sb2xlcycgfSxcbiAgICAgICAgeyBwYXRoOiAndXNlcnMnLCBuYW1lOiAnQWJwSWRlbnRpdHk6OlVzZXJzJywgb3JkZXI6IDEsIHJlcXVpcmVkUG9saWN5OiAnQWJwSWRlbnRpdHkuVXNlcnMnIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0gYXMgQUJQLkZ1bGxSb3V0ZVtdLFxufTtcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm2015/lib/identity.module.js b/npm/ng-packs/dist/identity/esm2015/lib/identity.module.js index 54493dc951..b61c3de718 100644 --- a/npm/ng-packs/dist/identity/esm2015/lib/identity.module.js +++ b/npm/ng-packs/dist/identity/esm2015/lib/identity.module.js @@ -14,7 +14,6 @@ import { UsersComponent } from './components/users/users.component'; import { PermissionManagementModule } from '@abp/ng.permission-management'; import { TableModule } from 'primeng/table'; import { NgxValidateCoreModule } from '@ngx-validate/core'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; export class IdentityModule { } IdentityModule.decorators = [ @@ -30,8 +29,13 @@ IdentityModule.decorators = [ NgbDropdownModule, PermissionManagementModule, NgxValidateCoreModule, - PerfectScrollbarModule, ], },] } ]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9pZGVudGl0eS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBaUIvRCxNQUFNLE9BQU8sY0FBYzs7O1lBZjFCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO2dCQUM5QyxPQUFPLEVBQUU7b0JBQ1AsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUN0QyxVQUFVO29CQUNWLHFCQUFxQjtvQkFDckIsZUFBZTtvQkFDZixpQkFBaUI7b0JBQ2pCLFdBQVc7b0JBQ1gsaUJBQWlCO29CQUNqQiwwQkFBMEI7b0JBQzFCLHFCQUFxQjtvQkFDckIsc0JBQXNCO2lCQUN2QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFJvbGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JvbGVzL3JvbGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZGVudGl0eVJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2lkZW50aXR5LXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IElkZW50aXR5U3RhdGUgfSBmcm9tICcuL3N0YXRlcy9pZGVudGl0eS5zdGF0ZSc7XG5pbXBvcnQgeyBOZ2JUYWJzZXRNb2R1bGUsIE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBVc2Vyc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2Vycy91c2Vycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IFBlcmZlY3RTY3JvbGxiYXJNb2R1bGUgfSBmcm9tICduZ3gtcGVyZmVjdC1zY3JvbGxiYXInO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtSb2xlc0NvbXBvbmVudCwgVXNlcnNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgTmd4c01vZHVsZS5mb3JGZWF0dXJlKFtJZGVudGl0eVN0YXRlXSksXG4gICAgQ29yZU1vZHVsZSxcbiAgICBJZGVudGl0eVJvdXRpbmdNb2R1bGUsXG4gICAgTmdiVGFic2V0TW9kdWxlLFxuICAgIFRoZW1lU2hhcmVkTW9kdWxlLFxuICAgIFRhYmxlTW9kdWxlLFxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxuICAgIFBlcm1pc3Npb25NYW5hZ2VtZW50TW9kdWxlLFxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcbiAgICBQZXJmZWN0U2Nyb2xsYmFyTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJZGVudGl0eU1vZHVsZSB7fVxuIl19 \ No newline at end of file +/** + * @return {?} + */ +export function IdentityProviders() { + return []; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9pZGVudGl0eS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBZ0IzRCxNQUFNLE9BQU8sY0FBYzs7O1lBZDFCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO2dCQUM5QyxPQUFPLEVBQUU7b0JBQ1AsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUN0QyxVQUFVO29CQUNWLHFCQUFxQjtvQkFDckIsZUFBZTtvQkFDZixpQkFBaUI7b0JBQ2pCLFdBQVc7b0JBQ1gsaUJBQWlCO29CQUNqQiwwQkFBMEI7b0JBQzFCLHFCQUFxQjtpQkFDdEI7YUFDRjs7Ozs7QUFHRCxNQUFNLFVBQVUsaUJBQWlCO0lBQy9CLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgTmdNb2R1bGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hzTW9kdWxlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgUm9sZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm9sZXMvcm9sZXMuY29tcG9uZW50JztcbmltcG9ydCB7IElkZW50aXR5Um91dGluZ01vZHVsZSB9IGZyb20gJy4vaWRlbnRpdHktcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgSWRlbnRpdHlTdGF0ZSB9IGZyb20gJy4vc3RhdGVzL2lkZW50aXR5LnN0YXRlJztcbmltcG9ydCB7IE5nYlRhYnNldE1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IFVzZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uTWFuYWdlbWVudE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtSb2xlc0NvbXBvbmVudCwgVXNlcnNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgTmd4c01vZHVsZS5mb3JGZWF0dXJlKFtJZGVudGl0eVN0YXRlXSksXG4gICAgQ29yZU1vZHVsZSxcbiAgICBJZGVudGl0eVJvdXRpbmdNb2R1bGUsXG4gICAgTmdiVGFic2V0TW9kdWxlLFxuICAgIFRoZW1lU2hhcmVkTW9kdWxlLFxuICAgIFRhYmxlTW9kdWxlLFxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxuICAgIFBlcm1pc3Npb25NYW5hZ2VtZW50TW9kdWxlLFxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlNb2R1bGUge31cblxuZXhwb3J0IGZ1bmN0aW9uIElkZW50aXR5UHJvdmlkZXJzKCk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW107XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm2015/lib/root-identity.module.js b/npm/ng-packs/dist/identity/esm2015/lib/root-identity.module.js deleted file mode 100644 index 1c7d2dad4a..0000000000 --- a/npm/ng-packs/dist/identity/esm2015/lib/root-identity.module.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { NgModule } from '@angular/core'; -export class RootIdentityModule { - /** - * @return {?} - */ - static forRoot() { - return { - ngModule: RootIdentityModule, - providers: [], - }; - } -} -RootIdentityModule.decorators = [ - { type: NgModule, args: [{},] } -]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1pZGVudGl0eS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmlkZW50aXR5LyIsInNvdXJjZXMiOlsibGliL3Jvb3QtaWRlbnRpdHkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc5RCxNQUFNLE9BQU8sa0JBQWtCOzs7O0lBQzdCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO0lBQ0osQ0FBQzs7O1lBUEYsUUFBUSxTQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgUm9vdElkZW50aXR5TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBSb290SWRlbnRpdHlNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm2015/public-api.js b/npm/ng-packs/dist/identity/esm2015/public-api.js index acd44ac98e..bd87001daf 100644 --- a/npm/ng-packs/dist/identity/esm2015/public-api.js +++ b/npm/ng-packs/dist/identity/esm2015/public-api.js @@ -5,8 +5,7 @@ /* * Public API Surface of identity */ -export { RootIdentityModule } from './lib/root-identity.module'; -export { IdentityModule } from './lib/identity.module'; +export { IdentityProviders, IdentityModule } from './lib/identity.module'; export { GetRoles, GetRoleById, DeleteRole, CreateRole, UpdateRole, GetUsers, GetUserById, DeleteUser, CreateUser, UpdateUser, GetUserRoles } from './lib/actions/identity.actions'; export { RolesComponent } from './lib/components/roles/roles.component'; export { IDENTITY_ROUTES } from './lib/constants/routes'; @@ -14,4 +13,4 @@ export {} from './lib/models/identity'; export { RoleResolver } from './lib/resolvers/roles.resolver'; export { IdentityService } from './lib/services/identity.service'; export { IdentityState } from './lib/states/identity.state'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuaWRlbnRpdHkvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxtQ0FBYyw0QkFBNEIsQ0FBQztBQUMzQywrQkFBYyx1QkFBdUIsQ0FBQztBQUN0QyxtSkFBYyxnQ0FBZ0MsQ0FBQztBQUMvQywrQkFBYyx3Q0FBd0MsQ0FBQztBQUN2RCxnQ0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxlQUFjLHVCQUF1QixDQUFDO0FBQ3RDLDZCQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGdDQUFjLGlDQUFpQyxDQUFDO0FBQ2hELDhCQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBpZGVudGl0eVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jvb3QtaWRlbnRpdHkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lkZW50aXR5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yb2xlcy9yb2xlcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3JvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzb2x2ZXJzL3JvbGVzLnJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2lkZW50aXR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGVzL2lkZW50aXR5LnN0YXRlJztcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuaWRlbnRpdHkvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxrREFBYyx1QkFBdUIsQ0FBQztBQUN0QyxtSkFBYyxnQ0FBZ0MsQ0FBQztBQUMvQywrQkFBYyx3Q0FBd0MsQ0FBQztBQUN2RCxnQ0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxlQUFjLHVCQUF1QixDQUFDO0FBQ3RDLDZCQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGdDQUFjLGlDQUFpQyxDQUFDO0FBQ2hELDhCQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBpZGVudGl0eVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2lkZW50aXR5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yb2xlcy9yb2xlcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3JvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzb2x2ZXJzL3JvbGVzLnJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2lkZW50aXR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGVzL2lkZW50aXR5LnN0YXRlJztcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm5/abp-ng.identity.js b/npm/ng-packs/dist/identity/esm5/abp-ng.identity.js index 2ccd8a6a10..30171986c1 100644 --- a/npm/ng-packs/dist/identity/esm5/abp-ng.identity.js +++ b/npm/ng-packs/dist/identity/esm5/abp-ng.identity.js @@ -5,8 +5,8 @@ /** * Generated bundle index. Do not edit. */ -export { RootIdentityModule, IdentityModule, GetRoles, GetRoleById, DeleteRole, CreateRole, UpdateRole, GetUsers, GetUserById, DeleteUser, CreateUser, UpdateUser, GetUserRoles, RolesComponent, IDENTITY_ROUTES, RoleResolver, IdentityService, IdentityState } from './public-api'; +export { IdentityProviders, IdentityModule, GetRoles, GetRoleById, DeleteRole, CreateRole, UpdateRole, GetUsers, GetUserById, DeleteUser, CreateUser, UpdateUser, GetUserRoles, RolesComponent, IDENTITY_ROUTES, RoleResolver, IdentityService, IdentityState } from './public-api'; export { UsersComponent as ɵb } from './lib/components/users/users.component'; export { IdentityRoutingModule as ɵc } from './lib/identity-routing.module'; export { UserResolver as ɵd } from './lib/resolvers/users.resolver'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmlkZW50aXR5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImFicC1uZy5pZGVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsc1FBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRTFFLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7VXNlcnNDb21wb25lbnQgYXMgybVifSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudCc7XG5leHBvcnQge0lkZW50aXR5Um91dGluZ01vZHVsZSBhcyDJtWN9IGZyb20gJy4vbGliL2lkZW50aXR5LXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7SWRlbnRpdHkgYXMgybVhfSBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xuZXhwb3J0IHtVc2VyUmVzb2x2ZXIgYXMgybVkfSBmcm9tICcuL2xpYi9yZXNvbHZlcnMvdXNlcnMucmVzb2x2ZXInOyJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmlkZW50aXR5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImFicC1uZy5pZGVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscVFBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRTFFLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7VXNlcnNDb21wb25lbnQgYXMgybVifSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudCc7XG5leHBvcnQge0lkZW50aXR5Um91dGluZ01vZHVsZSBhcyDJtWN9IGZyb20gJy4vbGliL2lkZW50aXR5LXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7SWRlbnRpdHkgYXMgybVhfSBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xuZXhwb3J0IHtVc2VyUmVzb2x2ZXIgYXMgybVkfSBmcm9tICcuL2xpYi9yZXNvbHZlcnMvdXNlcnMucmVzb2x2ZXInOyJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm5/lib/components/roles/roles.component.js b/npm/ng-packs/dist/identity/esm5/lib/components/roles/roles.component.js index b2ca28f3aa..57c2d0bae0 100644 --- a/npm/ng-packs/dist/identity/esm5/lib/components/roles/roles.component.js +++ b/npm/ng-packs/dist/identity/esm5/lib/components/roles/roles.component.js @@ -22,6 +22,7 @@ var RolesComponent = /** @class */ (function () { }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; } /** * @param {?} value @@ -172,10 +173,19 @@ var RolesComponent = /** @class */ (function () { function () { return (_this.loading = false); }))) .subscribe(); }; + /** + * @return {?} + */ + RolesComponent.prototype.changeSortOrder = /** + * @return {?} + */ + function () { + this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc'; + }; RolesComponent.decorators = [ { type: Component, args: [{ selector: 'abp-roles', - template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Roles' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n" + template: "
\n
\n

{{ 'AbpIdentity::Roles' | abpLocalization }}

\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n" }] } ]; /** @nocollapse */ @@ -220,6 +230,8 @@ if (false) { /** @type {?} */ RolesComponent.prototype.modalBusy; /** @type {?} */ + RolesComponent.prototype.sortOrder; + /** @type {?} */ RolesComponent.prototype.modalContent; /** * @type {?} @@ -237,4 +249,4 @@ if (false) { */ RolesComponent.prototype.store; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3JvbGVzL3JvbGVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQ7SUFnQ0Usd0JBQW9CLG1CQUF3QyxFQUFVLEVBQWUsRUFBVSxLQUFZO1FBQXZGLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQWYzRyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFJcEMsY0FBUyxHQUF3QjtZQUMvQixPQUFPLEVBQUUsTUFBTTtTQUNoQixDQUFDO1FBRUYsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUV6QixjQUFTLEdBQVksS0FBSyxDQUFDO0lBS21GLENBQUM7Ozs7O0lBRS9HLGlDQUFROzs7O0lBQVIsVUFBUyxLQUFL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O0lBRXpCLG1DQUEyQjs7SUFFM0Isc0NBQytCOzs7OztJQUVuQiw2Q0FBZ0Q7Ozs7O0lBQUUsNEJBQXVCOzs7OztJQUFFLCtCQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBUb2FzdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgcGx1Y2sgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDcmVhdGVSb2xlLCBEZWxldGVSb2xlLCBHZXRSb2xlQnlJZCwgR2V0Um9sZXMsIFVwZGF0ZVJvbGUgfSBmcm9tICcuLi8uLi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuaW1wb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvaWRlbnRpdHknO1xuaW1wb3J0IHsgSWRlbnRpdHlTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlcy9pZGVudGl0eS5zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1yb2xlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yb2xlcy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJvbGVzQ29tcG9uZW50IHtcbiAgQFNlbGVjdChJZGVudGl0eVN0YXRlLmdldFJvbGVzKVxuICBkYXRhJDogT2JzZXJ2YWJsZTxJZGVudGl0eS5Sb2xlSXRlbVtdPjtcblxuICBAU2VsZWN0KElkZW50aXR5U3RhdGUuZ2V0Um9sZXNUb3RhbENvdW50KVxuICB0b3RhbENvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBzZWxlY3RlZDogSWRlbnRpdHkuUm9sZUl0ZW07XG5cbiAgaXNNb2RhbFZpc2libGU6IGJvb2xlYW47XG5cbiAgdmlzaWJsZVBlcm1pc3Npb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdmlkZXJLZXk6IHN0cmluZztcblxuICBwYWdlUXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMgPSB7XG4gICAgc29ydGluZzogJ25hbWUnLFxuICB9O1xuXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbW9kYWxDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSwgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIG9uU2VhcmNoKHZhbHVlKSB7XG4gICAgdGhpcy5wYWdlUXVlcnkuZmlsdGVyID0gdmFsdWU7XG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm0oKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy5zZWxlY3RlZC5uYW1lIHx8ICcnLCBkaXNhYmxlZDogdGhpcy5zZWxlY3RlZC5pc1N0YXRpYyB9LCBbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NiksXG4gICAgICBdKSxcbiAgICAgIGlzRGVmYXVsdDogW3RoaXMuc2VsZWN0ZWQuaXNEZWZhdWx0IHx8IGZhbHNlXSxcbiAgICAgIGlzUHVibGljOiBbdGhpcy5zZWxlY3RlZC5pc1B1YmxpYyB8fCBmYWxzZV0sXG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBvbkFkZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0ge30gYXMgSWRlbnRpdHkuUm9sZUl0ZW07XG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgfVxuXG4gIG9uRWRpdChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBHZXRSb2xlQnlJZChpZCkpXG4gICAgICAucGlwZShwbHVjaygnSWRlbnRpdHlTdGF0ZScsICdzZWxlY3RlZFJvbGUnKSlcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0ZWRSb2xlID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkUm9sZTtcbiAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgcmV0dXJuO1xuICAgIHRoaXMubW9kYWxCdXN5ID0gdHJ1ZTtcblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5pZFxuICAgICAgICAgID8gbmV3IFVwZGF0ZVJvbGUoeyAuLi50aGlzLmZvcm0udmFsdWUsIGlkOiB0aGlzLnNlbGVjdGVkLmlkIH0pXG4gICAgICAgICAgOiBuZXcgQ3JlYXRlUm9sZSh0aGlzLmZvcm0udmFsdWUpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxuICAgICAgLndhcm4oJ0FicElkZW50aXR5OjpSb2xlRGVsZXRpb25Db25maXJtYXRpb25NZXNzYWdlJywgJ0FicElkZW50aXR5OjpBcmVZb3VTdXJlJywge1xuICAgICAgICBtZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zOiBbbmFtZV0sXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBUb2FzdGVyLlN0YXR1cykgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09PSBUb2FzdGVyLlN0YXR1cy5jb25maXJtKSB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgRGVsZXRlUm9sZShpZCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShkYXRhKSB7XG4gICAgdGhpcy5wYWdlUXVlcnkuc2tpcENvdW50ID0gZGF0YS5maXJzdDtcbiAgICB0aGlzLnBhZ2VRdWVyeS5tYXhSZXN1bHRDb3VudCA9IGRhdGEucm93cztcblxuICAgIHRoaXMuZ2V0KCk7XG4gIH1cblxuICBnZXQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFJvbGVzKHRoaXMucGFnZVF1ZXJ5KSlcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3JvbGVzL3JvbGVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQ7SUFrQ0Usd0JBQW9CLG1CQUF3QyxFQUFVLEVBQWUsRUFBVSxLQUFZO1FBQXZGLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQWpCM0csdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBSXBDLGNBQVMsR0FBd0I7WUFDL0IsT0FBTyxFQUFFLE1BQU07U0FDaEIsQ0FBQztRQUVGLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFekIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixjQUFTLEdBQVcsS0FBSyxDQUFDO0lBS29GLENBQUM7Ozs7O0lB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QVM7SUE2R2xDLHFCQUFDO0NBQUEsQUF0SEQsSUFzSEM7U0FsSFksY0FBYzs7O0lBQ3pCLCtCQUN1Qzs7SUFFdkMscUNBQ2dDOztJQUVoQyw4QkFBZ0I7O0lBRWhCLGtDQUE0Qjs7SUFFNUIsd0NBQXdCOztJQUV4Qiw0Q0FBb0M7O0lBRXBDLHFDQUFvQjs7SUFFcEIsbUNBRUU7O0lBRUYsaUNBQXlCOztJQUV6QixtQ0FBMkI7O0lBRTNCLG1DQUEwQjs7SUFFMUIsc0NBQytCOzs7OztJQUVuQiw2Q0FBZ0Q7Ozs7O0lBQUUsNEJBQXVCOzs7OztJQUFFLCtCQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBUb2FzdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgcGx1Y2sgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDcmVhdGVSb2xlLCBEZWxldGVSb2xlLCBHZXRSb2xlQnlJZCwgR2V0Um9sZXMsIFVwZGF0ZVJvbGUgfSBmcm9tICcuLi8uLi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuaW1wb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvaWRlbnRpdHknO1xuaW1wb3J0IHsgSWRlbnRpdHlTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlcy9pZGVudGl0eS5zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1yb2xlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yb2xlcy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJvbGVzQ29tcG9uZW50IHtcbiAgQFNlbGVjdChJZGVudGl0eVN0YXRlLmdldFJvbGVzKVxuICBkYXRhJDogT2JzZXJ2YWJsZTxJZGVudGl0eS5Sb2xlSXRlbVtdPjtcblxuICBAU2VsZWN0KElkZW50aXR5U3RhdGUuZ2V0Um9sZXNUb3RhbENvdW50KVxuICB0b3RhbENvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBzZWxlY3RlZDogSWRlbnRpdHkuUm9sZUl0ZW07XG5cbiAgaXNNb2RhbFZpc2libGU6IGJvb2xlYW47XG5cbiAgdmlzaWJsZVBlcm1pc3Npb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdmlkZXJLZXk6IHN0cmluZztcblxuICBwYWdlUXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMgPSB7XG4gICAgc29ydGluZzogJ25hbWUnLFxuICB9O1xuXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzb3J0T3JkZXI6IHN0cmluZyA9ICdhc2MnO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtb2RhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLCBwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgb25TZWFyY2godmFsdWUpIHtcbiAgICB0aGlzLnBhZ2VRdWVyeS5maWx0ZXIgPSB2YWx1ZTtcbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgY3JlYXRlRm9ybSgpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnNlbGVjdGVkLm5hbWUgfHwgJycsIGRpc2FibGVkOiB0aGlzLnNlbGVjdGVkLmlzU3RhdGljIH0sIFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KSxcbiAgICAgIF0pLFxuICAgICAgaXNEZWZhdWx0OiBbdGhpcy5zZWxlY3RlZC5pc0RlZmF1bHQgfHwgZmFsc2VdLFxuICAgICAgaXNQdWJsaWM6IFt0aGlzLnNlbGVjdGVkLmlzUHVibGljIHx8IGZhbHNlXSxcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQWRkKCkge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSB7fSBhcyBJZGVudGl0eS5Sb2xlSXRlbTtcbiAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICB9XG5cbiAgb25FZGl0KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFJvbGVCeUlkKGlkKSlcbiAgICAgIC5waXBlKHBsdWNrKCdJZGVudGl0eVN0YXRlJywgJ3NlbGVjdGVkUm9sZScpKVxuICAgICAgLnN1YnNjcmliZShzZWxlY3RlZFJvbGUgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWRSb2xlO1xuICAgICAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSByZXR1cm47XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLnNlbGVjdGVkLmlkXG4gICAgICAgICAgPyBuZXcgVXBkYXRlUm9sZSh7IC4uLnRoaXMuZm9ybS52YWx1ZSwgaWQ6IHRoaXMuc2VsZWN0ZWQuaWQgfSlcbiAgICAgICAgICA6IG5ldyBDcmVhdGVSb2xlKHRoaXMuZm9ybS52YWx1ZSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgfSk7XG4gIH1cblxuICBkZWxldGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlXG4gICAgICAud2FybignQWJwSWRlbnRpdHk6OlJvbGVEZWxldGlvbkNvbmZpcm1hdGlvbk1lc3NhZ2UnLCAnQWJwSWRlbnRpdHk6OkFyZVlvdVN1cmUnLCB7XG4gICAgICAgIG1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXM6IFtuYW1lXSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IFRvYXN0ZXIuU3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm0pIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBEZWxldGVSb2xlKGlkKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKGRhdGEpIHtcbiAgICB0aGlzLnBhZ2VRdWVyeS5za2lwQ291bnQgPSBkYXRhLmZpcnN0O1xuICAgIHRoaXMucGFnZVF1ZXJ5Lm1heFJlc3VsdENvdW50ID0gZGF0YS5yb3dzO1xuXG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuXG4gIGdldCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgR2V0Um9sZXModGhpcy5wYWdlUXVlcnkpKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSkpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjaGFuZ2VTb3J0T3JkZXIoKSB7XG4gICAgdGhpcy5zb3J0T3JkZXIgPSB0aGlzLnNvcnRPcmRlci50b0xvd2VyQ2FzZSgpID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm5/lib/components/users/users.component.js b/npm/ng-packs/dist/identity/esm5/lib/components/users/users.component.js index 273bf12567..41ff3f0408 100644 --- a/npm/ng-packs/dist/identity/esm5/lib/components/users/users.component.js +++ b/npm/ng-packs/dist/identity/esm5/lib/components/users/users.component.js @@ -23,6 +23,7 @@ var UsersComponent = /** @class */ (function () { }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; this.trackByFn = (/** * @param {?} index * @param {?} item @@ -235,10 +236,19 @@ var UsersComponent = /** @class */ (function () { function () { return (_this.loading = false); }))) .subscribe(); }; + /** + * @return {?} + */ + UsersComponent.prototype.changeSortOrder = /** + * @return {?} + */ + function () { + this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc'; + }; UsersComponent.decorators = [ { type: Component, args: [{ selector: 'abp-users', - template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Users' | abpLocalization }}
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::UserName' | abpLocalization }}\n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}

\n
\n\n \n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n\n \n \n {{\n 'AbpIdentity::Save' | abpLocalization\n }}\n \n\n\n\n" + template: "
\n
\n

{{ 'AbpIdentity::Users' | abpLocalization }}

\n
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n {{ 'AbpIdentity::UserName' | abpLocalization }}\n \n \n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}

\n
\n\n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n\n \n \n {{\n 'AbpIdentity::Save' | abpLocalization\n }}\n \n
\n\n\n" }] } ]; /** @nocollapse */ @@ -289,6 +299,8 @@ if (false) { /** @type {?} */ UsersComponent.prototype.modalBusy; /** @type {?} */ + UsersComponent.prototype.sortOrder; + /** @type {?} */ UsersComponent.prototype.trackByFn; /** * @type {?} @@ -306,4 +318,4 @@ if (false) { */ UsersComponent.prototype.store; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFtQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUE4QixXQUFXLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUN0QixPQUFPLEVBQ0wsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLFFBQVEsRUFDUixVQUFVLEdBQ1gsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQ7SUEwQ0Usd0JBQW9CLG1CQUF3QyxFQUFVLEVBQWUsRUFBVSxLQUFZO1FBQXZGLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQXBCM0csdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBSXBDLGNBQVMsR0FBd0I7WUFDL0IsT0FBTyxFQUFFLFVBQVU7U0FDcEIsQ0FBQztRQUlGLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFekIs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QUs7OzsrQkF5Qm5CLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztJQUw1QztRQURDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDOzBDQUN4QixVQUFVO2lEQUFzQjtJQUd2QztRQURDLE1BQU0sQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUM7MENBQzVCLFVBQVU7dURBQVM7SUFnSmxDLHFCQUFDO0NBQUEsQUF6SkQsSUF5SkM7U0FySlksY0FBYzs7O0lBQ3pCLCtCQUN1Qzs7SUFFdkMscUNBQ2dDOztJQUVoQyxzQ0FDK0I7O0lBRS9CLDhCQUFnQjs7SUFFaEIsa0NBQTRCOztJQUU1QiwyQ0FBdUM7O0lBRXZDLCtCQUEyQjs7SUFFM0IsNENBQW9DOztJQUVwQyxxQ0FBb0I7O0lBRXBCLG1DQUVFOztJQUVGLHdDQUF3Qjs7SUFFeEIsaUNBQXlCOztJQUV6QixtQ0FBMkI7O0lBRTNCLG1DQUE2Rjs7Ozs7SUFNakYsNkNBQWdEOzs7OztJQUFFLDRCQUF1Qjs7Ozs7SUFBRSwrQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFRyYWNrQnlGdW5jdGlvbiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHBsdWNrLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQge1xuICBDcmVhdGVVc2VyLFxuICBEZWxldGVVc2VyLFxuICBHZXRVc2VyQnlJZCxcbiAgR2V0VXNlclJvbGVzLFxuICBHZXRVc2VycyxcbiAgVXBkYXRlVXNlcixcbn0gZnJvbSAnLi4vLi4vYWN0aW9ucy9pZGVudGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IElkZW50aXR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2lkZW50aXR5JztcbmltcG9ydCB7IElkZW50aXR5U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZXMvaWRlbnRpdHkuc3RhdGUnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXVzZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXJzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlcnNDb21wb25lbnQge1xuICBAU2VsZWN0KElkZW50aXR5U3RhdGUuZ2V0VXNlcnMpXG4gIGRhdGEkOiBPYnNlcnZhYmxlPElkZW50aXR5LlVzZXJJdGVtW10+O1xuXG4gIEBTZWxlY3QoSWRlbnRpdHlTdGF0ZS5nZXRVc2Vyc1RvdGFsQ291bnQpXG4gIHRvdGFsQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgQFZpZXdDaGlsZCgnbW9kYWxDb250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1vZGFsQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgc2VsZWN0ZWQ6IElkZW50aXR5LlVzZXJJdGVtO1xuXG4gIHNlbGVjdGVkVXNlclJvbGVzOiBJZGVudGl0eS5Sb2xlSXRlbVtdO1xuXG4gIHJvbGVzOiBJZGVudGl0eS5Sb2xlSXRlbVtdO1xuXG4gIHZpc2libGVQZXJtaXNzaW9uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG5cbiAgcGFnZVF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zID0ge1xuICAgIHNvcnRpbmc6ICd1c2VyTmFtZScsXG4gIH07XG5cbiAgaXNNb2RhbFZpc2libGU6IGJvb2xlYW47XG5cbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPEFic3RyYWN0Q29udHJvbD4gPSAoaW5kZXgsIGl0ZW0pID0+IE9iamVjdC5rZXlzKGl0ZW0pWzBdIHx8IGluZGV4O1xuXG4gIGdldCByb2xlR3JvdXBzKCk6IEZvcm1Hcm91cFtdIHtcbiAgICByZXR1cm4gc25xKCgpID0+ICh0aGlzLmZvcm0uZ2V0KCdyb2xlTmFtZXMnKSBhcyBGb3JtQXJyYXkpLmNvbnRyb2xzIGFzIEZvcm1Hcm91cFtdLCBbXSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge31cblxuICBvblNlYXJjaCh2YWx1ZSkge1xuICAgIHRoaXMucGFnZVF1ZXJ5LmZpbHRlciA9IHZhbHVlO1xuICAgIHRoaXMuZ2V0KCk7XG4gIH1cblxuICBidWlsZEZvcm0oKSB7XG4gICAgdGhpcy5yb2xlcyA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoSWRlbnRpdHlTdGF0ZS5nZXRSb2xlcyk7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB1c2VyTmFtZTogW3RoaXMuc2VsZWN0ZWQudXNlck5hbWUgfHwgJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXG4gICAgICBlbWFpbDogW3RoaXMuc2VsZWN0ZWQuZW1haWwgfHwgJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXG4gICAgICBuYW1lOiBbdGhpcy5zZWxlY3RlZC5uYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNjQpXV0sXG4gICAgICBzdXJuYW1lOiBbdGhpcy5zZWxlY3RlZC5zdXJuYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNjQpXV0sXG4gICAgICBwaG9uZU51bWJlcjogW3RoaXMuc2VsZWN0ZWQucGhvbmVOdW1iZXIgfHwgJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxNildXSxcbiAgICAgIGxvY2tvdXRFbmFibGVkOiBbdGhpcy5zZWxlY3RlZC50d29GYWN0b3JFbmFibGVkIHx8ICh0aGlzLnNlbGVjdGVkLmlkID8gZmFsc2UgOiB0cnVlKV0sXG4gICAgICB0d29GYWN0b3JFbmFibGVkOiBbdGhpcy5zZWxlY3RlZC50d29GYWN0b3JFbmFibGVkIHx8ICh0aGlzLnNlbGVjdGVkLmlkID8gZmFsc2UgOiB0cnVlKV0sXG4gICAgICByb2xlTmFtZXM6IHRoaXMuZmIuYXJyYXkoXG4gICAgICAgIHRoaXMucm9sZXMubWFwKHJvbGUgPT5cbiAgICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgIFtyb2xlLm5hbWVdOiBbISFzbnEoKCkgPT4gdGhpcy5zZWxlY3RlZFVzZXJSb2xlcy5maW5kKHVzZXJSb2xlID0+IHVzZXJSb2xlLmlkID09PSByb2xlLmlkKSldLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICB9KTtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWQudXNlck5hbWUpIHtcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdwYXNzd29yZCcsIG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMyKV0pKTtcbiAgICB9XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5idWlsZEZvcm0oKTtcbiAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQWRkKCkge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSB7fSBhcyBJZGVudGl0eS5Vc2VySXRlbTtcbiAgICB0aGlzLnNlbGVjdGVkVXNlclJvbGVzID0gW10gYXMgSWRlbnRpdHkuUm9sZUl0ZW1bXTtcbiAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICB9XG5cbiAgb25FZGl0KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFVzZXJCeUlkKGlkKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgR2V0VXNlclJvbGVzKGlkKSkpLFxuICAgICAgICBwbHVjaygnSWRlbnRpdHlTdGF0ZScpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IElkZW50aXR5LlN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzdGF0ZS5zZWxlY3RlZFVzZXI7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VyUm9sZXMgPSBzdGF0ZS5zZWxlY3RlZFVzZXJSb2xlcztcbiAgICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgcmV0dXJuO1xuICAgIHRoaXMubW9kYWxCdXN5ID0gdHJ1ZTtcblxuICAgIGNvbnN0IHsgcm9sZU5hbWVzIH0gPSB0aGlzLmZvcm0udmFsdWU7XG4gICAgY29uc3QgbWFwcGVkUm9sZU5hbWVzID0gc25xKFxuICAgICAgKCkgPT4gcm9sZU5hbWVzLmZpbHRlcihyb2xlID0+ICEhcm9sZVtPYmplY3Qua2V5cyhyb2xlKVswXV0pLm1hcChyb2xlID0+IE9iamVjdC5rZXlzKHJvbGUpWzBdKSxcbiAgICAgIFtdLFxuICAgICk7XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuaWRcbiAgICAgICAgICA/IG5ldyBVcGRhdGVVc2VyKHtcbiAgICAgICAgICAgICAgLi4udGhpcy5mb3JtLnZhbHVlLFxuICAgICAgICAgICAgICBpZDogdGhpcy5zZWxlY3RlZC5pZCxcbiAgICAgICAgICAgICAgcm9sZU5hbWVzOiBtYXBwZWRSb2xlTmFtZXMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogbmV3IENyZWF0ZVVzZXIoe1xuICAgICAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXG4gICAgICAgICAgICAgIHJvbGVOYW1lczogbWFwcGVkUm9sZU5hbWVzLFxuICAgICAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgfSk7XG4gIH1cblxuICBkZWxldGUoaWQ6IHN0cmluZywgdXNlck5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxuICAgICAgLndhcm4oJ0FicElkZW50aXR5OjpVc2VyRGVsZXRpb25Db25maXJtYXRpb25NZXNzYWdlJywgJ0FicElkZW50aXR5OjpBcmVZb3VTdXJlJywge1xuICAgICAgICBtZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zOiBbdXNlck5hbWVdLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogVG9hc3Rlci5TdGF0dXMpID0+IHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gVG9hc3Rlci5TdGF0dXMuY29uZmlybSkge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IERlbGV0ZVVzZXIoaWQpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2UoZGF0YSkge1xuICAgIHRoaXMucGFnZVF1ZXJ5LnNraXBDb3VudCA9IGRhdGEuZmlyc3Q7XG4gICAgdGhpcy5wYWdlUXVlcnkubWF4UmVzdWx0Q291bnQgPSBkYXRhLnJvd3M7XG5cbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgZ2V0KCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBHZXRVc2Vycyh0aGlzLnBhZ2VRdWVyeSkpXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5sb2FkaW5nID0gZmFsc2UpKSlcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFtQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUE4QixXQUFXLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUN0QixPQUFPLEVBQ0wsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLFFBQVEsRUFDUixVQUFVLEdBQ1gsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQ7SUE0Q0Usd0JBQW9CLG1CQUF3QyxFQUFVLEVBQWUsRUFBVSxLQUFZO1FBQXZGLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQXRCM0csdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBSXBDLGNBQVMsR0FBd0I7WUFDL0IsT0FBTyxFQUFFLFVBQVU7U0FDcEIsQ0FBQztRQUlGLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFekIs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QUFFLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMzRSxDQUFDOztnQkE5SkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQix3bVJBQXFDO2lCQUN0Qzs7OztnQkFwQlEsbUJBQW1CO2dCQUVTLFdBQVc7Z0JBQy9CLEtBQUs7OzsrQkF5Qm5CLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztJQUw1QztRQURDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDOzBDQUN4QixVQUFVO2lEQUFzQjtJQUd2QztRQURDLE1BQU0sQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUM7MENBQzVCLFVBQVU7dURBQVM7SUFzSmxDLHFCQUFDO0NBQUEsQUEvSkQsSUErSkM7U0EzSlksY0FBYzs7O0lBQ3pCLCtCQUN1Qzs7SUFFdkMscUNBQ2dDOztJQUVoQyxzQ0FDK0I7O0lBRS9CLDhCQUFnQjs7SUFFaEIsa0NBQTRCOztJQUU1QiwyQ0FBdUM7O0lBRXZDLCtCQUEyQjs7SUFFM0IsNENBQW9DOztJQUVwQyxxQ0FBb0I7O0lBRXBCLG1DQUVFOztJQUVGLHdDQUF3Qjs7SUFFeEIsaUNBQXlCOztJQUV6QixtQ0FBMkI7O0lBRTNCLG1DQUEwQjs7SUFFMUIsbUNBQTZGOzs7OztJQU1qRiw2Q0FBZ0Q7Ozs7O0lBQUUsNEJBQXVCOzs7OztJQUFFLCtCQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBUb2FzdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVHJhY2tCeUZ1bmN0aW9uLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgcGx1Y2ssIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcbmltcG9ydCB7XG4gIENyZWF0ZVVzZXIsXG4gIERlbGV0ZVVzZXIsXG4gIEdldFVzZXJCeUlkLFxuICBHZXRVc2VyUm9sZXMsXG4gIEdldFVzZXJzLFxuICBVcGRhdGVVc2VyLFxufSBmcm9tICcuLi8uLi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuaW1wb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvaWRlbnRpdHknO1xuaW1wb3J0IHsgSWRlbnRpdHlTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlcy9pZGVudGl0eS5zdGF0ZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtdXNlcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlcnMuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBVc2Vyc0NvbXBvbmVudCB7XG4gIEBTZWxlY3QoSWRlbnRpdHlTdGF0ZS5nZXRVc2VycylcbiAgZGF0YSQ6IE9ic2VydmFibGU8SWRlbnRpdHkuVXNlckl0ZW1bXT47XG5cbiAgQFNlbGVjdChJZGVudGl0eVN0YXRlLmdldFVzZXJzVG90YWxDb3VudClcbiAgdG90YWxDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbW9kYWxDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBzZWxlY3RlZDogSWRlbnRpdHkuVXNlckl0ZW07XG5cbiAgc2VsZWN0ZWRVc2VyUm9sZXM6IElkZW50aXR5LlJvbGVJdGVtW107XG5cbiAgcm9sZXM6IElkZW50aXR5LlJvbGVJdGVtW107XG5cbiAgdmlzaWJsZVBlcm1pc3Npb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdmlkZXJLZXk6IHN0cmluZztcblxuICBwYWdlUXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMgPSB7XG4gICAgc29ydGluZzogJ3VzZXJOYW1lJyxcbiAgfTtcblxuICBpc01vZGFsVmlzaWJsZTogYm9vbGVhbjtcblxuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbW9kYWxCdXN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgc29ydE9yZGVyOiBzdHJpbmcgPSAnYXNjJztcblxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxBYnN0cmFjdENvbnRyb2w+ID0gKGluZGV4LCBpdGVtKSA9PiBPYmplY3Qua2V5cyhpdGVtKVswXSB8fCBpbmRleDtcblxuICBnZXQgcm9sZUdyb3VwcygpOiBGb3JtR3JvdXBbXSB7XG4gICAgcmV0dXJuIHNucSgoKSA9PiAodGhpcy5mb3JtLmdldCgncm9sZU5hbWVzJykgYXMgRm9ybUFycmF5KS5jb250cm9scyBhcyBGb3JtR3JvdXBbXSwgW10pO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLCBwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgb25TZWFyY2godmFsdWUpIHtcbiAgICB0aGlzLnBhZ2VRdWVyeS5maWx0ZXIgPSB2YWx1ZTtcbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgYnVpbGRGb3JtKCkge1xuICAgIHRoaXMucm9sZXMgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KElkZW50aXR5U3RhdGUuZ2V0Um9sZXMpO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgdXNlck5hbWU6IFt0aGlzLnNlbGVjdGVkLnVzZXJOYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV1dLFxuICAgICAgZW1haWw6IFt0aGlzLnNlbGVjdGVkLmVtYWlsIHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV1dLFxuICAgICAgbmFtZTogW3RoaXMuc2VsZWN0ZWQubmFtZSB8fCAnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDY0KV1dLFxuICAgICAgc3VybmFtZTogW3RoaXMuc2VsZWN0ZWQuc3VybmFtZSB8fCAnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDY0KV1dLFxuICAgICAgcGhvbmVOdW1iZXI6IFt0aGlzLnNlbGVjdGVkLnBob25lTnVtYmVyIHx8ICcnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTYpXV0sXG4gICAgICBsb2Nrb3V0RW5hYmxlZDogW3RoaXMuc2VsZWN0ZWQudHdvRmFjdG9yRW5hYmxlZCB8fCAodGhpcy5zZWxlY3RlZC5pZCA/IGZhbHNlIDogdHJ1ZSldLFxuICAgICAgdHdvRmFjdG9yRW5hYmxlZDogW3RoaXMuc2VsZWN0ZWQudHdvRmFjdG9yRW5hYmxlZCB8fCAodGhpcy5zZWxlY3RlZC5pZCA/IGZhbHNlIDogdHJ1ZSldLFxuICAgICAgcm9sZU5hbWVzOiB0aGlzLmZiLmFycmF5KFxuICAgICAgICB0aGlzLnJvbGVzLm1hcChyb2xlID0+XG4gICAgICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBbcm9sZS5uYW1lXTogWyEhc25xKCgpID0+IHRoaXMuc2VsZWN0ZWRVc2VyUm9sZXMuZmluZCh1c2VyUm9sZSA9PiB1c2VyUm9sZS5pZCA9PT0gcm9sZS5pZCkpXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgfSk7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkLnVzZXJOYW1lKSB7XG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgncGFzc3dvcmQnLCBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgzMildKSk7XG4gICAgfVxuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIHRoaXMuYnVpbGRGb3JtKCk7XG4gICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBvbkFkZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0ge30gYXMgSWRlbnRpdHkuVXNlckl0ZW07XG4gICAgdGhpcy5zZWxlY3RlZFVzZXJSb2xlcyA9IFtdIGFzIElkZW50aXR5LlJvbGVJdGVtW107XG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgfVxuXG4gIG9uRWRpdChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBHZXRVc2VyQnlJZChpZCkpXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IEdldFVzZXJSb2xlcyhpZCkpKSxcbiAgICAgICAgcGx1Y2soJ0lkZW50aXR5U3RhdGUnKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBJZGVudGl0eS5TdGF0ZSkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc3RhdGUuc2VsZWN0ZWRVc2VyO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlclJvbGVzID0gc3RhdGUuc2VsZWN0ZWRVc2VyUm9sZXM7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgaWYgKCF0aGlzLmZvcm0udmFsaWQpIHJldHVybjtcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XG5cbiAgICBjb25zdCB7IHJvbGVOYW1lcyB9ID0gdGhpcy5mb3JtLnZhbHVlO1xuICAgIGNvbnN0IG1hcHBlZFJvbGVOYW1lcyA9IHNucShcbiAgICAgICgpID0+IHJvbGVOYW1lcy5maWx0ZXIocm9sZSA9PiAhIXJvbGVbT2JqZWN0LmtleXMocm9sZSlbMF1dKS5tYXAocm9sZSA9PiBPYmplY3Qua2V5cyhyb2xlKVswXSksXG4gICAgICBbXSxcbiAgICApO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLnNlbGVjdGVkLmlkXG4gICAgICAgICAgPyBuZXcgVXBkYXRlVXNlcih7XG4gICAgICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICAgICAgICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWQuaWQsXG4gICAgICAgICAgICAgIHJvbGVOYW1lczogbWFwcGVkUm9sZU5hbWVzLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IG5ldyBDcmVhdGVVc2VyKHtcbiAgICAgICAgICAgICAgLi4udGhpcy5mb3JtLnZhbHVlLFxuICAgICAgICAgICAgICByb2xlTmFtZXM6IG1hcHBlZFJvbGVOYW1lcyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcsIHVzZXJOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2VcbiAgICAgIC53YXJuKCdBYnBJZGVudGl0eTo6VXNlckRlbGV0aW9uQ29uZmlybWF0aW9uTWVzc2FnZScsICdBYnBJZGVudGl0eTo6QXJlWW91U3VyZScsIHtcbiAgICAgICAgbWVzc2FnZUxvY2FsaXphdGlvblBhcmFtczogW3VzZXJOYW1lXSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IFRvYXN0ZXIuU3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm0pIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBEZWxldGVVc2VyKGlkKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKGRhdGEpIHtcbiAgICB0aGlzLnBhZ2VRdWVyeS5za2lwQ291bnQgPSBkYXRhLmZpcnN0O1xuICAgIHRoaXMucGFnZVF1ZXJ5Lm1heFJlc3VsdENvdW50ID0gZGF0YS5yb3dzO1xuXG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuXG4gIGdldCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgR2V0VXNlcnModGhpcy5wYWdlUXVlcnkpKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSkpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjaGFuZ2VTb3J0T3JkZXIoKSB7XG4gICAgdGhpcy5zb3J0T3JkZXIgPSB0aGlzLnNvcnRPcmRlci50b0xvd2VyQ2FzZSgpID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm5/lib/constants/routes.js b/npm/ng-packs/dist/identity/esm5/lib/constants/routes.js index 9303465e8e..0b59e7ff1d 100644 --- a/npm/ng-packs/dist/identity/esm5/lib/constants/routes.js +++ b/npm/ng-packs/dist/identity/esm5/lib/constants/routes.js @@ -24,6 +24,5 @@ export var IDENTITY_ROUTES = { ], }, ])), - settings: [], }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBTSxLQUFPLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsbUJBQUE7UUFDTjtZQUNFLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsQ0FBQztZQUNSLE9BQU8sRUFBRSxJQUFJO1NBQ2Q7UUFDRDtZQUNFLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLENBQUM7WUFDUixVQUFVLEVBQUUsc0NBQXNDO1lBQ2xELE1BQU0saUNBQXlCO1lBQy9CLFNBQVMsRUFBRSxpQkFBaUI7WUFDNUIsUUFBUSxFQUFFO2dCQUNSLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUU7Z0JBQzVGLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUU7YUFDN0Y7U0FDRjtLQUNGLEVBQW1CO0lBQ3BCLFFBQVEsRUFBRSxFQUFFO0NBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlTGF5b3V0VHlwZSwgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuZXhwb3J0IGNvbnN0IElERU5USVRZX1JPVVRFUyA9IHtcbiAgcm91dGVzOiBbXG4gICAge1xuICAgICAgbmFtZTogJ0FicFVpTmF2aWdhdGlvbjo6TWVudTpBZG1pbmlzdHJhdGlvbicsXG4gICAgICBwYXRoOiAnJyxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgd3JhcHBlcjogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdBYnBJZGVudGl0eTo6TWVudTpJZGVudGl0eU1hbmFnZW1lbnQnLFxuICAgICAgcGF0aDogJ2lkZW50aXR5JyxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgcGFyZW50TmFtZTogJ0FicFVpTmF2aWdhdGlvbjo6TWVudTpBZG1pbmlzdHJhdGlvbicsXG4gICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxuICAgICAgaWNvbkNsYXNzOiAnZmEgZmEtaWQtY2FyZC1vJyxcbiAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgIHsgcGF0aDogJ3JvbGVzJywgbmFtZTogJ0FicElkZW50aXR5OjpSb2xlcycsIG9yZGVyOiAyLCByZXF1aXJlZFBvbGljeTogJ0FicElkZW50aXR5LlJvbGVzJyB9LFxuICAgICAgICB7IHBhdGg6ICd1c2VycycsIG5hbWU6ICdBYnBJZGVudGl0eTo6VXNlcnMnLCBvcmRlcjogMSwgcmVxdWlyZWRQb2xpY3k6ICdBYnBJZGVudGl0eS5Vc2VycycgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSBhcyBBQlAuRnVsbFJvdXRlW10sXG4gIHNldHRpbmdzOiBbXSxcbn07XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBTSxLQUFPLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsbUJBQUE7UUFDTjtZQUNFLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsQ0FBQztZQUNSLE9BQU8sRUFBRSxJQUFJO1NBQ2Q7UUFDRDtZQUNFLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLENBQUM7WUFDUixVQUFVLEVBQUUsc0NBQXNDO1lBQ2xELE1BQU0saUNBQXlCO1lBQy9CLFNBQVMsRUFBRSxpQkFBaUI7WUFDNUIsUUFBUSxFQUFFO2dCQUNSLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUU7Z0JBQzVGLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUU7YUFDN0Y7U0FDRjtLQUNGLEVBQW1CO0NBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZUxheW91dFR5cGUsIEFCUCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBjb25zdCBJREVOVElUWV9ST1VURVMgPSB7XG4gIHJvdXRlczogW1xuICAgIHtcbiAgICAgIG5hbWU6ICdBYnBVaU5hdmlnYXRpb246Ok1lbnU6QWRtaW5pc3RyYXRpb24nLFxuICAgICAgcGF0aDogJycsXG4gICAgICBvcmRlcjogMSxcbiAgICAgIHdyYXBwZXI6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnQWJwSWRlbnRpdHk6Ok1lbnU6SWRlbnRpdHlNYW5hZ2VtZW50JyxcbiAgICAgIHBhdGg6ICdpZGVudGl0eScsXG4gICAgICBvcmRlcjogMSxcbiAgICAgIHBhcmVudE5hbWU6ICdBYnBVaU5hdmlnYXRpb246Ok1lbnU6QWRtaW5pc3RyYXRpb24nLFxuICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcbiAgICAgIGljb25DbGFzczogJ2ZhIGZhLWlkLWNhcmQtbycsXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICB7IHBhdGg6ICdyb2xlcycsIG5hbWU6ICdBYnBJZGVudGl0eTo6Um9sZXMnLCBvcmRlcjogMiwgcmVxdWlyZWRQb2xpY3k6ICdBYnBJZGVudGl0eS5Sb2xlcycgfSxcbiAgICAgICAgeyBwYXRoOiAndXNlcnMnLCBuYW1lOiAnQWJwSWRlbnRpdHk6OlVzZXJzJywgb3JkZXI6IDEsIHJlcXVpcmVkUG9saWN5OiAnQWJwSWRlbnRpdHkuVXNlcnMnIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0gYXMgQUJQLkZ1bGxSb3V0ZVtdLFxufTtcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm5/lib/identity.module.js b/npm/ng-packs/dist/identity/esm5/lib/identity.module.js index 186f760334..69695612cf 100644 --- a/npm/ng-packs/dist/identity/esm5/lib/identity.module.js +++ b/npm/ng-packs/dist/identity/esm5/lib/identity.module.js @@ -14,7 +14,6 @@ import { UsersComponent } from './components/users/users.component'; import { PermissionManagementModule } from '@abp/ng.permission-management'; import { TableModule } from 'primeng/table'; import { NgxValidateCoreModule } from '@ngx-validate/core'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; var IdentityModule = /** @class */ (function () { function IdentityModule() { } @@ -31,11 +30,16 @@ var IdentityModule = /** @class */ (function () { NgbDropdownModule, PermissionManagementModule, NgxValidateCoreModule, - PerfectScrollbarModule, ], },] } ]; return IdentityModule; }()); export { IdentityModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9pZGVudGl0eS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9EO0lBQUE7SUFlNkIsQ0FBQzs7Z0JBZjdCLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO29CQUM5QyxPQUFPLEVBQUU7d0JBQ1AsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUN0QyxVQUFVO3dCQUNWLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQiwwQkFBMEI7d0JBQzFCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3FCQUN2QjtpQkFDRjs7SUFDNEIscUJBQUM7Q0FBQSxBQWY5QixJQWU4QjtTQUFqQixjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFJvbGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JvbGVzL3JvbGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZGVudGl0eVJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2lkZW50aXR5LXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IElkZW50aXR5U3RhdGUgfSBmcm9tICcuL3N0YXRlcy9pZGVudGl0eS5zdGF0ZSc7XG5pbXBvcnQgeyBOZ2JUYWJzZXRNb2R1bGUsIE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBVc2Vyc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2Vycy91c2Vycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnBlcm1pc3Npb24tbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IFBlcmZlY3RTY3JvbGxiYXJNb2R1bGUgfSBmcm9tICduZ3gtcGVyZmVjdC1zY3JvbGxiYXInO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtSb2xlc0NvbXBvbmVudCwgVXNlcnNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgTmd4c01vZHVsZS5mb3JGZWF0dXJlKFtJZGVudGl0eVN0YXRlXSksXG4gICAgQ29yZU1vZHVsZSxcbiAgICBJZGVudGl0eVJvdXRpbmdNb2R1bGUsXG4gICAgTmdiVGFic2V0TW9kdWxlLFxuICAgIFRoZW1lU2hhcmVkTW9kdWxlLFxuICAgIFRhYmxlTW9kdWxlLFxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxuICAgIFBlcm1pc3Npb25NYW5hZ2VtZW50TW9kdWxlLFxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcbiAgICBQZXJmZWN0U2Nyb2xsYmFyTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJZGVudGl0eU1vZHVsZSB7fVxuIl19 \ No newline at end of file +/** + * @return {?} + */ +export function IdentityProviders() { + return []; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5pZGVudGl0eS8iLCJzb3VyY2VzIjpbImxpYi9pZGVudGl0eS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTNEO0lBQUE7SUFjNkIsQ0FBQzs7Z0JBZDdCLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO29CQUM5QyxPQUFPLEVBQUU7d0JBQ1AsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUN0QyxVQUFVO3dCQUNWLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQiwwQkFBMEI7d0JBQzFCLHFCQUFxQjtxQkFDdEI7aUJBQ0Y7O0lBQzRCLHFCQUFDO0NBQUEsQUFkOUIsSUFjOEI7U0FBakIsY0FBYzs7OztBQUUzQixNQUFNLFVBQVUsaUJBQWlCO0lBQy9CLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgTmdNb2R1bGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hzTW9kdWxlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgUm9sZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm9sZXMvcm9sZXMuY29tcG9uZW50JztcbmltcG9ydCB7IElkZW50aXR5Um91dGluZ01vZHVsZSB9IGZyb20gJy4vaWRlbnRpdHktcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgSWRlbnRpdHlTdGF0ZSB9IGZyb20gJy4vc3RhdGVzL2lkZW50aXR5LnN0YXRlJztcbmltcG9ydCB7IE5nYlRhYnNldE1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IFVzZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VzZXJzL3VzZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uTWFuYWdlbWVudE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtSb2xlc0NvbXBvbmVudCwgVXNlcnNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgTmd4c01vZHVsZS5mb3JGZWF0dXJlKFtJZGVudGl0eVN0YXRlXSksXG4gICAgQ29yZU1vZHVsZSxcbiAgICBJZGVudGl0eVJvdXRpbmdNb2R1bGUsXG4gICAgTmdiVGFic2V0TW9kdWxlLFxuICAgIFRoZW1lU2hhcmVkTW9kdWxlLFxuICAgIFRhYmxlTW9kdWxlLFxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxuICAgIFBlcm1pc3Npb25NYW5hZ2VtZW50TW9kdWxlLFxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlNb2R1bGUge31cblxuZXhwb3J0IGZ1bmN0aW9uIElkZW50aXR5UHJvdmlkZXJzKCk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW107XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm5/lib/root-identity.module.js b/npm/ng-packs/dist/identity/esm5/lib/root-identity.module.js deleted file mode 100644 index 294c5c6ca4..0000000000 --- a/npm/ng-packs/dist/identity/esm5/lib/root-identity.module.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { NgModule } from '@angular/core'; -var RootIdentityModule = /** @class */ (function () { - function RootIdentityModule() { - } - /** - * @return {?} - */ - RootIdentityModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootIdentityModule, - providers: [], - }; - }; - RootIdentityModule.decorators = [ - { type: NgModule, args: [{},] } - ]; - return RootIdentityModule; -}()); -export { RootIdentityModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1pZGVudGl0eS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmlkZW50aXR5LyIsInNvdXJjZXMiOlsibGliL3Jvb3QtaWRlbnRpdHkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RDtJQUFBO0lBUUEsQ0FBQzs7OztJQU5RLDBCQUFPOzs7SUFBZDtRQUNFLE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztJQUNKLENBQUM7O2dCQVBGLFFBQVEsU0FBQyxFQUFFOztJQVFaLHlCQUFDO0NBQUEsQUFSRCxJQVFDO1NBUFksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIFJvb3RJZGVudGl0eU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUm9vdElkZW50aXR5TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXSxcbiAgICB9O1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/esm5/public-api.js b/npm/ng-packs/dist/identity/esm5/public-api.js index acd44ac98e..bd87001daf 100644 --- a/npm/ng-packs/dist/identity/esm5/public-api.js +++ b/npm/ng-packs/dist/identity/esm5/public-api.js @@ -5,8 +5,7 @@ /* * Public API Surface of identity */ -export { RootIdentityModule } from './lib/root-identity.module'; -export { IdentityModule } from './lib/identity.module'; +export { IdentityProviders, IdentityModule } from './lib/identity.module'; export { GetRoles, GetRoleById, DeleteRole, CreateRole, UpdateRole, GetUsers, GetUserById, DeleteUser, CreateUser, UpdateUser, GetUserRoles } from './lib/actions/identity.actions'; export { RolesComponent } from './lib/components/roles/roles.component'; export { IDENTITY_ROUTES } from './lib/constants/routes'; @@ -14,4 +13,4 @@ export {} from './lib/models/identity'; export { RoleResolver } from './lib/resolvers/roles.resolver'; export { IdentityService } from './lib/services/identity.service'; export { IdentityState } from './lib/states/identity.state'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuaWRlbnRpdHkvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxtQ0FBYyw0QkFBNEIsQ0FBQztBQUMzQywrQkFBYyx1QkFBdUIsQ0FBQztBQUN0QyxtSkFBYyxnQ0FBZ0MsQ0FBQztBQUMvQywrQkFBYyx3Q0FBd0MsQ0FBQztBQUN2RCxnQ0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxlQUFjLHVCQUF1QixDQUFDO0FBQ3RDLDZCQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGdDQUFjLGlDQUFpQyxDQUFDO0FBQ2hELDhCQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBpZGVudGl0eVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jvb3QtaWRlbnRpdHkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lkZW50aXR5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yb2xlcy9yb2xlcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3JvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzb2x2ZXJzL3JvbGVzLnJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2lkZW50aXR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGVzL2lkZW50aXR5LnN0YXRlJztcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuaWRlbnRpdHkvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxrREFBYyx1QkFBdUIsQ0FBQztBQUN0QyxtSkFBYyxnQ0FBZ0MsQ0FBQztBQUMvQywrQkFBYyx3Q0FBd0MsQ0FBQztBQUN2RCxnQ0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxlQUFjLHVCQUF1QixDQUFDO0FBQ3RDLDZCQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGdDQUFjLGlDQUFpQyxDQUFDO0FBQ2hELDhCQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBpZGVudGl0eVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2lkZW50aXR5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zL2lkZW50aXR5LmFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yb2xlcy9yb2xlcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL3JvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzb2x2ZXJzL3JvbGVzLnJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2lkZW50aXR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGVzL2lkZW50aXR5LnN0YXRlJztcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/fesm2015/abp-ng.identity.js b/npm/ng-packs/dist/identity/fesm2015/abp-ng.identity.js index ae9c547f08..34cf1697a4 100644 --- a/npm/ng-packs/dist/identity/fesm2015/abp-ng.identity.js +++ b/npm/ng-packs/dist/identity/fesm2015/abp-ng.identity.js @@ -1,5 +1,5 @@ -import { NgModule, Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild } from '@angular/core'; import { RestService, DynamicLayoutComponent, AuthGuard, PermissionGuard, CoreModule } from '@abp/ng.core'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild, NgModule } from '@angular/core'; import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; import { __decorate, __metadata } from 'tslib'; import { ConfirmationService, ThemeSharedModule } from '@abp/ng.theme.shared'; @@ -12,26 +12,6 @@ import { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; import { PermissionManagementModule } from '@abp/ng.permission-management'; import { TableModule } from 'primeng/table'; import { NgxValidateCoreModule } from '@ngx-validate/core'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -class RootIdentityModule { - /** - * @return {?} - */ - static forRoot() { - return { - ngModule: RootIdentityModule, - providers: [], - }; - } -} -RootIdentityModule.decorators = [ - { type: NgModule, args: [{},] } -]; /** * @fileoverview added by tsickle @@ -684,6 +664,7 @@ class RolesComponent { }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; } /** * @param {?} value @@ -798,11 +779,17 @@ class RolesComponent { () => (this.loading = false)))) .subscribe(); } + /** + * @return {?} + */ + changeSortOrder() { + this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc'; + } } RolesComponent.decorators = [ { type: Component, args: [{ selector: 'abp-roles', - template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Roles' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n" + template: "
\n
\n

{{ 'AbpIdentity::Roles' | abpLocalization }}

\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n" }] } ]; /** @nocollapse */ @@ -844,6 +831,8 @@ if (false) { /** @type {?} */ RolesComponent.prototype.modalBusy; /** @type {?} */ + RolesComponent.prototype.sortOrder; + /** @type {?} */ RolesComponent.prototype.modalContent; /** * @type {?} @@ -917,6 +906,7 @@ class UsersComponent { }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; this.trackByFn = (/** * @param {?} index * @param {?} item @@ -1084,11 +1074,17 @@ class UsersComponent { () => (this.loading = false)))) .subscribe(); } + /** + * @return {?} + */ + changeSortOrder() { + this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc'; + } } UsersComponent.decorators = [ { type: Component, args: [{ selector: 'abp-users', - template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Users' | abpLocalization }}
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::UserName' | abpLocalization }}\n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}

\n
\n\n \n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n
\n\n \n \n {{\n 'AbpIdentity::Save' | abpLocalization\n }}\n \n
\n\n\n" + template: "
\n
\n

{{ 'AbpIdentity::Users' | abpLocalization }}

\n
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n {{ 'AbpIdentity::UserName' | abpLocalization }}\n \n \n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}

\n
\n\n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n\n \n \n {{\n 'AbpIdentity::Save' | abpLocalization\n }}\n \n
\n\n\n" }] } ]; /** @nocollapse */ @@ -1136,6 +1132,8 @@ if (false) { /** @type {?} */ UsersComponent.prototype.modalBusy; /** @type {?} */ + UsersComponent.prototype.sortOrder; + /** @type {?} */ UsersComponent.prototype.trackByFn; /** * @type {?} @@ -1247,10 +1245,15 @@ IdentityModule.decorators = [ NgbDropdownModule, PermissionManagementModule, NgxValidateCoreModule, - PerfectScrollbarModule, ], },] } ]; +/** + * @return {?} + */ +function IdentityProviders() { + return []; +} /** * @fileoverview added by tsickle @@ -1278,7 +1281,6 @@ const IDENTITY_ROUTES = { ], }, ])), - settings: [], }; /** @@ -1393,5 +1395,5 @@ var Identity; * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { CreateRole, CreateUser, DeleteRole, DeleteUser, GetRoleById, GetRoles, GetUserById, GetUserRoles, GetUsers, IDENTITY_ROUTES, IdentityModule, IdentityService, IdentityState, RoleResolver, RolesComponent, RootIdentityModule, UpdateRole, UpdateUser, UsersComponent as ɵb, IdentityRoutingModule as ɵc, UserResolver as ɵd }; +export { CreateRole, CreateUser, DeleteRole, DeleteUser, GetRoleById, GetRoles, GetUserById, GetUserRoles, GetUsers, IDENTITY_ROUTES, IdentityModule, IdentityProviders, IdentityService, IdentityState, RoleResolver, RolesComponent, UpdateRole, UpdateUser, UsersComponent as ɵb, IdentityRoutingModule as ɵc, UserResolver as ɵd }; //# sourceMappingURL=abp-ng.identity.js.map diff --git a/npm/ng-packs/dist/identity/fesm2015/abp-ng.identity.js.map b/npm/ng-packs/dist/identity/fesm2015/abp-ng.identity.js.map index c5795fcb71..4deb316945 100644 --- a/npm/ng-packs/dist/identity/fesm2015/abp-ng.identity.js.map +++ b/npm/ng-packs/dist/identity/fesm2015/abp-ng.identity.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.identity.js","sources":["ng://@abp/ng.identity/lib/root-identity.module.ts","ng://@abp/ng.identity/lib/actions/identity.actions.ts","ng://@abp/ng.identity/lib/services/identity.service.ts","ng://@abp/ng.identity/lib/states/identity.state.ts","ng://@abp/ng.identity/lib/components/roles/roles.component.ts","ng://@abp/ng.identity/lib/resolvers/roles.resolver.ts","ng://@abp/ng.identity/lib/components/users/users.component.ts","ng://@abp/ng.identity/lib/resolvers/users.resolver.ts","ng://@abp/ng.identity/lib/identity-routing.module.ts","ng://@abp/ng.identity/lib/identity.module.ts","ng://@abp/ng.identity/lib/constants/routes.ts","ng://@abp/ng.identity/lib/models/identity.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootIdentityModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootIdentityModule,\n providers: [],\n };\n }\n}\n","import { Identity } from '../models/identity';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetRoles {\n static readonly type = '[Identity] Get Roles';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetRoleById {\n static readonly type = '[Identity] Get Role By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteRole {\n static readonly type = '[Identity] Delete Role';\n constructor(public payload: string) {}\n}\n\nexport class CreateRole {\n static readonly type = '[Identity] Create Role';\n constructor(public payload: Identity.RoleSaveRequest) {}\n}\n\nexport class UpdateRole {\n static readonly type = '[Identity] Update Role';\n constructor(public payload: Identity.RoleItem) {}\n}\n\nexport class GetUsers {\n static readonly type = '[Identity] Get Users';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetUserById {\n static readonly type = '[Identity] Get User By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteUser {\n static readonly type = '[Identity] Delete User';\n constructor(public payload: string) {}\n}\n\nexport class CreateUser {\n static readonly type = '[Identity] Create User';\n constructor(public payload: Identity.UserSaveRequest) {}\n}\n\nexport class UpdateUser {\n static readonly type = '[Identity] Update User';\n constructor(public payload: Identity.UserSaveRequest & { id: string }) {}\n}\n\nexport class GetUserRoles {\n static readonly type = '[Identity] Get User Roles';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { Identity } from '../models/identity';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdentityService {\n constructor(private rest: RestService) {}\n\n getRoles(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/roles',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getRoleById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteRole(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createRole(body: Identity.RoleSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/roles',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateRole(body: Identity.RoleItem): Observable {\n const url = `/api/identity/roles/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getUsers(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/users',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getUserById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n getUserRoles(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}/roles`,\n };\n\n return this.rest.request(request);\n }\n\n deleteUser(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createUser(body: Identity.UserSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/users',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateUser(body: Identity.UserItem): Observable {\n const url = `/api/identity/users/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap, pluck } from 'rxjs/operators';\nimport {\n CreateRole,\n CreateUser,\n DeleteRole,\n DeleteUser,\n GetRoleById,\n GetRoles,\n GetUserById,\n GetUsers,\n UpdateRole,\n UpdateUser,\n GetUserRoles,\n} from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityService } from '../services/identity.service';\n\n@State({\n name: 'IdentityState',\n defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,\n})\nexport class IdentityState {\n @Selector()\n static getRoles({ roles }: Identity.State): Identity.RoleItem[] {\n return roles.items;\n }\n\n @Selector()\n static getRolesTotalCount({ roles }: Identity.State): number {\n return roles.totalCount;\n }\n\n @Selector()\n static getUsers({ users }: Identity.State): Identity.UserItem[] {\n return users.items;\n }\n\n @Selector()\n static getUsersTotalCount({ users }: Identity.State): number {\n return users.totalCount;\n }\n\n constructor(private identityService: IdentityService) {}\n\n @Action(GetRoles)\n getRoles({ patchState }: StateContext, { payload }: GetRoles) {\n return this.identityService.getRoles(payload).pipe(\n tap(roles =>\n patchState({\n roles,\n }),\n ),\n );\n }\n\n @Action(GetRoleById)\n getRole({ patchState }: StateContext, { payload }: GetRoleById) {\n return this.identityService.getRoleById(payload).pipe(\n tap(selectedRole =>\n patchState({\n selectedRole,\n }),\n ),\n );\n }\n\n @Action(DeleteRole)\n deleteRole({ dispatch }: StateContext, { payload }: GetRoleById) {\n return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(CreateRole)\n addRole({ dispatch }: StateContext, { payload }: CreateRole) {\n return this.identityService.createRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(UpdateRole)\n updateRole({ getState, dispatch }: StateContext, { payload }: UpdateRole) {\n return dispatch(new GetRoleById(payload.id)).pipe(\n switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })),\n switchMap(() => dispatch(new GetRoles())),\n );\n }\n\n @Action(GetUsers)\n getUsers({ patchState }: StateContext, { payload }: GetUsers) {\n return this.identityService.getUsers(payload).pipe(\n tap(users =>\n patchState({\n users,\n }),\n ),\n );\n }\n\n @Action(GetUserById)\n getUser({ patchState }: StateContext, { payload }: GetUserById) {\n return this.identityService.getUserById(payload).pipe(\n tap(selectedUser =>\n patchState({\n selectedUser,\n }),\n ),\n );\n }\n\n @Action(DeleteUser)\n deleteUser({ dispatch }: StateContext, { payload }: GetUserById) {\n return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(CreateUser)\n addUser({ dispatch }: StateContext, { payload }: CreateUser) {\n return this.identityService.createUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(UpdateUser)\n updateUser({ getState, dispatch }: StateContext, { payload }: UpdateUser) {\n return dispatch(new GetUserById(payload.id)).pipe(\n switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })),\n switchMap(() => dispatch(new GetUsers())),\n );\n }\n\n @Action(GetUserRoles)\n getUserRoles({ patchState }: StateContext, { payload }: GetUserRoles) {\n return this.identityService.getUserRoles(payload).pipe(\n pluck('items'),\n tap(selectedUserRoles =>\n patchState({\n selectedUserRoles,\n }),\n ),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck } from 'rxjs/operators';\nimport { CreateRole, DeleteRole, GetRoleById, GetRoles, UpdateRole } from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n\n@Component({\n selector: 'abp-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent {\n @Select(IdentityState.getRoles)\n data$: Observable;\n\n @Select(IdentityState.getRolesTotalCount)\n totalCount$: Observable;\n\n form: FormGroup;\n\n selected: Identity.RoleItem;\n\n isModalVisible: boolean;\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n createForm() {\n this.form = this.fb.group({\n name: new FormControl({ value: this.selected.name || '', disabled: this.selected.isStatic }, [\n Validators.required,\n Validators.maxLength(256),\n ]),\n isDefault: [this.selected.isDefault || false],\n isPublic: [this.selected.isPublic || false],\n });\n }\n\n openModal() {\n this.createForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.RoleItem;\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetRoleById(id))\n .pipe(pluck('IdentityState', 'selectedRole'))\n .subscribe(selectedRole => {\n this.selected = selectedRole;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateRole({ ...this.form.value, id: this.selected.id })\n : new CreateRole(this.form.value),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteRole(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetRoles(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetRoles } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class RoleResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const roles = this.store.selectSnapshot(IdentityState.getRoles);\n return roles && roles.length ? null : this.store.dispatch(new GetRoles());\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, TrackByFunction, ViewChild } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport {\n CreateUser,\n DeleteUser,\n GetUserById,\n GetUserRoles,\n GetUsers,\n UpdateUser,\n} from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n@Component({\n selector: 'abp-users',\n templateUrl: './users.component.html',\n})\nexport class UsersComponent {\n @Select(IdentityState.getUsers)\n data$: Observable;\n\n @Select(IdentityState.getUsersTotalCount)\n totalCount$: Observable;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n selected: Identity.UserItem;\n\n selectedUserRoles: Identity.RoleItem[];\n\n roles: Identity.RoleItem[];\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'userName',\n };\n\n isModalVisible: boolean;\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;\n\n get roleGroups(): FormGroup[] {\n return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);\n }\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n buildForm() {\n this.roles = this.store.selectSnapshot(IdentityState.getRoles);\n this.form = this.fb.group({\n userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],\n email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],\n name: [this.selected.name || '', [Validators.maxLength(64)]],\n surname: [this.selected.surname || '', [Validators.maxLength(64)]],\n phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],\n lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n roleNames: this.fb.array(\n this.roles.map(role =>\n this.fb.group({\n [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))],\n }),\n ),\n ),\n });\n if (!this.selected.userName) {\n this.form.addControl('password', new FormControl('', [Validators.required, Validators.maxLength(32)]));\n }\n }\n\n openModal() {\n this.buildForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.UserItem;\n this.selectedUserRoles = [] as Identity.RoleItem[];\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetUserById(id))\n .pipe(\n switchMap(() => this.store.dispatch(new GetUserRoles(id))),\n pluck('IdentityState'),\n take(1),\n )\n .subscribe((state: Identity.State) => {\n this.selected = state.selectedUser;\n this.selectedUserRoles = state.selectedUserRoles;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n const { roleNames } = this.form.value;\n const mappedRoleNames = snq(\n () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),\n [],\n );\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateUser({\n ...this.form.value,\n id: this.selected.id,\n roleNames: mappedRoleNames,\n })\n : new CreateUser({\n ...this.form.value,\n roleNames: mappedRoleNames,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, userName: string) {\n this.confirmationService\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [userName],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteUser(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetUsers(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetUsers } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class UserResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const users = this.store.selectSnapshot(IdentityState.getUsers);\n return users && users.length ? null : this.store.dispatch(new GetUsers());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { RoleResolver } from './resolvers/roles.resolver';\nimport { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { UsersComponent } from './components/users/users.component';\nimport { UserResolver } from './resolvers/users.resolver';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\n {\n path: 'roles',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Roles' },\n children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],\n },\n {\n path: 'users',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Users' },\n children: [\n {\n path: '',\n component: UsersComponent,\n resolve: [RoleResolver, UserResolver],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [RoleResolver, UserResolver],\n})\nexport class IdentityRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { IdentityState } from './states/identity.state';\nimport { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UsersComponent } from './components/users/users.component';\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\nimport { TableModule } from 'primeng/table';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\n\n@NgModule({\n declarations: [RolesComponent, UsersComponent],\n imports: [\n NgxsModule.forFeature([IdentityState]),\n CoreModule,\n IdentityRoutingModule,\n NgbTabsetModule,\n ThemeSharedModule,\n TableModule,\n NgbDropdownModule,\n PermissionManagementModule,\n NgxValidateCoreModule,\n PerfectScrollbarModule,\n ],\n})\nexport class IdentityModule {}\n","import { eLayoutType, ABP } from '@abp/ng.core';\n\nexport const IDENTITY_ROUTES = {\n routes: [\n {\n name: 'AbpUiNavigation::Menu:Administration',\n path: '',\n order: 1,\n wrapper: true,\n },\n {\n name: 'AbpIdentity::Menu:IdentityManagement',\n path: 'identity',\n order: 1,\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-id-card-o',\n children: [\n { path: 'roles', name: 'AbpIdentity::Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },\n { path: 'users', name: 'AbpIdentity::Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },\n ],\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace Identity {\n export interface State {\n roles: RoleResponse;\n users: UserResponse;\n selectedRole: RoleItem;\n selectedUser: UserItem;\n selectedUserRoles: RoleItem[];\n }\n\n export type RoleResponse = ABP.PagedResponse;\n\n export interface RoleSaveRequest {\n name: string;\n isDefault: boolean;\n isPublic: boolean;\n }\n\n export interface RoleItem extends RoleSaveRequest {\n isStatic: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export type UserResponse = ABP.PagedResponse;\n\n export interface UserItem extends User {\n tenantId: string;\n emailConfirmed: boolean;\n phoneNumberConfirmed: boolean;\n isLockedOut: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export interface User {\n userName: string;\n name: string;\n surname: string;\n email: string;\n phoneNumber: string;\n twoFactorEnabled: true;\n lockoutEnabled: true;\n }\n\n export interface UserSaveRequest extends User {\n password: string;\n roleNames: string[];\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.identity.js","sources":["ng://@abp/ng.identity/lib/actions/identity.actions.ts","ng://@abp/ng.identity/lib/services/identity.service.ts","ng://@abp/ng.identity/lib/states/identity.state.ts","ng://@abp/ng.identity/lib/components/roles/roles.component.ts","ng://@abp/ng.identity/lib/resolvers/roles.resolver.ts","ng://@abp/ng.identity/lib/components/users/users.component.ts","ng://@abp/ng.identity/lib/resolvers/users.resolver.ts","ng://@abp/ng.identity/lib/identity-routing.module.ts","ng://@abp/ng.identity/lib/identity.module.ts","ng://@abp/ng.identity/lib/constants/routes.ts","ng://@abp/ng.identity/lib/models/identity.ts"],"sourcesContent":["import { Identity } from '../models/identity';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetRoles {\n static readonly type = '[Identity] Get Roles';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetRoleById {\n static readonly type = '[Identity] Get Role By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteRole {\n static readonly type = '[Identity] Delete Role';\n constructor(public payload: string) {}\n}\n\nexport class CreateRole {\n static readonly type = '[Identity] Create Role';\n constructor(public payload: Identity.RoleSaveRequest) {}\n}\n\nexport class UpdateRole {\n static readonly type = '[Identity] Update Role';\n constructor(public payload: Identity.RoleItem) {}\n}\n\nexport class GetUsers {\n static readonly type = '[Identity] Get Users';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetUserById {\n static readonly type = '[Identity] Get User By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteUser {\n static readonly type = '[Identity] Delete User';\n constructor(public payload: string) {}\n}\n\nexport class CreateUser {\n static readonly type = '[Identity] Create User';\n constructor(public payload: Identity.UserSaveRequest) {}\n}\n\nexport class UpdateUser {\n static readonly type = '[Identity] Update User';\n constructor(public payload: Identity.UserSaveRequest & { id: string }) {}\n}\n\nexport class GetUserRoles {\n static readonly type = '[Identity] Get User Roles';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { Identity } from '../models/identity';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdentityService {\n constructor(private rest: RestService) {}\n\n getRoles(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/roles',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getRoleById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteRole(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createRole(body: Identity.RoleSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/roles',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateRole(body: Identity.RoleItem): Observable {\n const url = `/api/identity/roles/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getUsers(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/users',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getUserById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n getUserRoles(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}/roles`,\n };\n\n return this.rest.request(request);\n }\n\n deleteUser(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createUser(body: Identity.UserSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/users',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateUser(body: Identity.UserItem): Observable {\n const url = `/api/identity/users/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap, pluck } from 'rxjs/operators';\nimport {\n CreateRole,\n CreateUser,\n DeleteRole,\n DeleteUser,\n GetRoleById,\n GetRoles,\n GetUserById,\n GetUsers,\n UpdateRole,\n UpdateUser,\n GetUserRoles,\n} from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityService } from '../services/identity.service';\n\n@State({\n name: 'IdentityState',\n defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,\n})\nexport class IdentityState {\n @Selector()\n static getRoles({ roles }: Identity.State): Identity.RoleItem[] {\n return roles.items;\n }\n\n @Selector()\n static getRolesTotalCount({ roles }: Identity.State): number {\n return roles.totalCount;\n }\n\n @Selector()\n static getUsers({ users }: Identity.State): Identity.UserItem[] {\n return users.items;\n }\n\n @Selector()\n static getUsersTotalCount({ users }: Identity.State): number {\n return users.totalCount;\n }\n\n constructor(private identityService: IdentityService) {}\n\n @Action(GetRoles)\n getRoles({ patchState }: StateContext, { payload }: GetRoles) {\n return this.identityService.getRoles(payload).pipe(\n tap(roles =>\n patchState({\n roles,\n }),\n ),\n );\n }\n\n @Action(GetRoleById)\n getRole({ patchState }: StateContext, { payload }: GetRoleById) {\n return this.identityService.getRoleById(payload).pipe(\n tap(selectedRole =>\n patchState({\n selectedRole,\n }),\n ),\n );\n }\n\n @Action(DeleteRole)\n deleteRole({ dispatch }: StateContext, { payload }: GetRoleById) {\n return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(CreateRole)\n addRole({ dispatch }: StateContext, { payload }: CreateRole) {\n return this.identityService.createRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(UpdateRole)\n updateRole({ getState, dispatch }: StateContext, { payload }: UpdateRole) {\n return dispatch(new GetRoleById(payload.id)).pipe(\n switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })),\n switchMap(() => dispatch(new GetRoles())),\n );\n }\n\n @Action(GetUsers)\n getUsers({ patchState }: StateContext, { payload }: GetUsers) {\n return this.identityService.getUsers(payload).pipe(\n tap(users =>\n patchState({\n users,\n }),\n ),\n );\n }\n\n @Action(GetUserById)\n getUser({ patchState }: StateContext, { payload }: GetUserById) {\n return this.identityService.getUserById(payload).pipe(\n tap(selectedUser =>\n patchState({\n selectedUser,\n }),\n ),\n );\n }\n\n @Action(DeleteUser)\n deleteUser({ dispatch }: StateContext, { payload }: GetUserById) {\n return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(CreateUser)\n addUser({ dispatch }: StateContext, { payload }: CreateUser) {\n return this.identityService.createUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(UpdateUser)\n updateUser({ getState, dispatch }: StateContext, { payload }: UpdateUser) {\n return dispatch(new GetUserById(payload.id)).pipe(\n switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })),\n switchMap(() => dispatch(new GetUsers())),\n );\n }\n\n @Action(GetUserRoles)\n getUserRoles({ patchState }: StateContext, { payload }: GetUserRoles) {\n return this.identityService.getUserRoles(payload).pipe(\n pluck('items'),\n tap(selectedUserRoles =>\n patchState({\n selectedUserRoles,\n }),\n ),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck } from 'rxjs/operators';\nimport { CreateRole, DeleteRole, GetRoleById, GetRoles, UpdateRole } from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n\n@Component({\n selector: 'abp-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent {\n @Select(IdentityState.getRoles)\n data$: Observable;\n\n @Select(IdentityState.getRolesTotalCount)\n totalCount$: Observable;\n\n form: FormGroup;\n\n selected: Identity.RoleItem;\n\n isModalVisible: boolean;\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n sortOrder: string = 'asc';\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n createForm() {\n this.form = this.fb.group({\n name: new FormControl({ value: this.selected.name || '', disabled: this.selected.isStatic }, [\n Validators.required,\n Validators.maxLength(256),\n ]),\n isDefault: [this.selected.isDefault || false],\n isPublic: [this.selected.isPublic || false],\n });\n }\n\n openModal() {\n this.createForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.RoleItem;\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetRoleById(id))\n .pipe(pluck('IdentityState', 'selectedRole'))\n .subscribe(selectedRole => {\n this.selected = selectedRole;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateRole({ ...this.form.value, id: this.selected.id })\n : new CreateRole(this.form.value),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteRole(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetRoles(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n\n changeSortOrder() {\n this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetRoles } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class RoleResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const roles = this.store.selectSnapshot(IdentityState.getRoles);\n return roles && roles.length ? null : this.store.dispatch(new GetRoles());\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, TrackByFunction, ViewChild } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport {\n CreateUser,\n DeleteUser,\n GetUserById,\n GetUserRoles,\n GetUsers,\n UpdateUser,\n} from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n@Component({\n selector: 'abp-users',\n templateUrl: './users.component.html',\n})\nexport class UsersComponent {\n @Select(IdentityState.getUsers)\n data$: Observable;\n\n @Select(IdentityState.getUsersTotalCount)\n totalCount$: Observable;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n selected: Identity.UserItem;\n\n selectedUserRoles: Identity.RoleItem[];\n\n roles: Identity.RoleItem[];\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'userName',\n };\n\n isModalVisible: boolean;\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n sortOrder: string = 'asc';\n\n trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;\n\n get roleGroups(): FormGroup[] {\n return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);\n }\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n buildForm() {\n this.roles = this.store.selectSnapshot(IdentityState.getRoles);\n this.form = this.fb.group({\n userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],\n email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],\n name: [this.selected.name || '', [Validators.maxLength(64)]],\n surname: [this.selected.surname || '', [Validators.maxLength(64)]],\n phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],\n lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n roleNames: this.fb.array(\n this.roles.map(role =>\n this.fb.group({\n [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))],\n }),\n ),\n ),\n });\n if (!this.selected.userName) {\n this.form.addControl('password', new FormControl('', [Validators.required, Validators.maxLength(32)]));\n }\n }\n\n openModal() {\n this.buildForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.UserItem;\n this.selectedUserRoles = [] as Identity.RoleItem[];\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetUserById(id))\n .pipe(\n switchMap(() => this.store.dispatch(new GetUserRoles(id))),\n pluck('IdentityState'),\n take(1),\n )\n .subscribe((state: Identity.State) => {\n this.selected = state.selectedUser;\n this.selectedUserRoles = state.selectedUserRoles;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n const { roleNames } = this.form.value;\n const mappedRoleNames = snq(\n () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),\n [],\n );\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateUser({\n ...this.form.value,\n id: this.selected.id,\n roleNames: mappedRoleNames,\n })\n : new CreateUser({\n ...this.form.value,\n roleNames: mappedRoleNames,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, userName: string) {\n this.confirmationService\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [userName],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteUser(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetUsers(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n\n changeSortOrder() {\n this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetUsers } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class UserResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const users = this.store.selectSnapshot(IdentityState.getUsers);\n return users && users.length ? null : this.store.dispatch(new GetUsers());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { RoleResolver } from './resolvers/roles.resolver';\nimport { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { UsersComponent } from './components/users/users.component';\nimport { UserResolver } from './resolvers/users.resolver';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\n {\n path: 'roles',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Roles' },\n children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],\n },\n {\n path: 'users',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Users' },\n children: [\n {\n path: '',\n component: UsersComponent,\n resolve: [RoleResolver, UserResolver],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [RoleResolver, UserResolver],\n})\nexport class IdentityRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule, Provider } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { IdentityState } from './states/identity.state';\nimport { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UsersComponent } from './components/users/users.component';\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\nimport { TableModule } from 'primeng/table';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [RolesComponent, UsersComponent],\n imports: [\n NgxsModule.forFeature([IdentityState]),\n CoreModule,\n IdentityRoutingModule,\n NgbTabsetModule,\n ThemeSharedModule,\n TableModule,\n NgbDropdownModule,\n PermissionManagementModule,\n NgxValidateCoreModule,\n ],\n})\nexport class IdentityModule {}\n\nexport function IdentityProviders(): Provider[] {\n return [];\n}\n","import { eLayoutType, ABP } from '@abp/ng.core';\n\nexport const IDENTITY_ROUTES = {\n routes: [\n {\n name: 'AbpUiNavigation::Menu:Administration',\n path: '',\n order: 1,\n wrapper: true,\n },\n {\n name: 'AbpIdentity::Menu:IdentityManagement',\n path: 'identity',\n order: 1,\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-id-card-o',\n children: [\n { path: 'roles', name: 'AbpIdentity::Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },\n { path: 'users', name: 'AbpIdentity::Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },\n ],\n },\n ] as ABP.FullRoute[],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace Identity {\n export interface State {\n roles: RoleResponse;\n users: UserResponse;\n selectedRole: RoleItem;\n selectedUser: UserItem;\n selectedUserRoles: RoleItem[];\n }\n\n export type RoleResponse = ABP.PagedResponse;\n\n export interface RoleSaveRequest {\n name: string;\n isDefault: boolean;\n isPublic: boolean;\n }\n\n export interface RoleItem extends RoleSaveRequest {\n isStatic: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export type UserResponse = ABP.PagedResponse;\n\n export interface UserItem extends User {\n tenantId: string;\n emailConfirmed: boolean;\n phoneNumberConfirmed: boolean;\n isLockedOut: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export interface User {\n userName: string;\n name: string;\n surname: string;\n email: string;\n phoneNumber: string;\n twoFactorEnabled: true;\n lockoutEnabled: true;\n }\n\n export interface UserSaveRequest extends User {\n password: string;\n roleNames: string[];\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":";;;;;;;;;;;;;;;;;;;AAGA,MAAa,QAAQ;;;;IAEnB,YAAmB,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;KAAI;;AADpC,aAAI,GAAG,sBAAsB,CAAC;;;IAA9C,cAA8C;;IAClC,2BAAoC;;AAGlD,MAAa,WAAW;;;;IAEtB,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;;AADtB,gBAAI,GAAG,2BAA2B,CAAC;;;IAAnD,iBAAmD;;IACvC,8BAAsB;;AAGpC,MAAa,UAAU;;;;IAErB,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;;AADtB,eAAI,GAAG,wBAAwB,CAAC;;;IAAhD,gBAAgD;;IACpC,6BAAsB;;AAGpC,MAAa,UAAU;;;;IAErB,YAAmB,OAAiC;QAAjC,YAAO,GAAP,OAAO,CAA0B;KAAI;;AADxC,eAAI,GAAG,wBAAwB,CAAC;;;IAAhD,gBAAgD;;IACpC,6BAAwC;;AAGtD,MAAa,UAAU;;;;IAErB,YAAmB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;KAAI;;AADjC,eAAI,GAAG,wBAAwB,CAAC;;;IAAhD,gBAAgD;;IACpC,6BAAiC;;AAG/C,MAAa,QAAQ;;;;IAEnB,YAAmB,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;KAAI;;AADpC,aAAI,GAAG,sBAAsB,CAAC;;;IAA9C,cAA8C;;IAClC,2BAAoC;;AAGlD,MAAa,WAAW;;;;IAEtB,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;;AADtB,gBAAI,GAAG,2BAA2B,CAAC;;;IAAnD,iBAAmD;;IACvC,8BAAsB;;AAGpC,MAAa,UAAU;;;;IAErB,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;;AADtB,eAAI,GAAG,wBAAwB,CAAC;;;IAAhD,gBAAgD;;IACpC,6BAAsB;;AAGpC,MAAa,UAAU;;;;IAErB,YAAmB,OAAiC;QAAjC,YAAO,GAAP,OAAO,CAA0B;KAAI;;AADxC,eAAI,GAAG,wBAAwB,CAAC;;;IAAhD,gBAAgD;;IACpC,6BAAwC;;AAGtD,MAAa,UAAU;;;;IAErB,YAAmB,OAAkD;QAAlD,YAAO,GAAP,OAAO,CAA2C;KAAI;;AADzD,eAAI,GAAG,wBAAwB,CAAC;;;IAAhD,gBAAgD;;IACpC,6BAAyD;;AAGvE,MAAa,YAAY;;;;IAEvB,YAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;;AADtB,iBAAI,GAAG,2BAA2B,CAAC;;;IAAnD,kBAAmD;;IACvC,+BAAsB;;;;;;;ACvDpC,MAQa,eAAe;;;;IAC1B,YAAoB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;KAAI;;;;;IAEzC,QAAQ,CAAC,MAAM,sBAAG,EAAE,EAAuB;;cACnC,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,qBAAqB;YAC1B,MAAM;SACP;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B,OAAO,CAAC,CAAC;KAChE;;;;;IAED,WAAW,CAAC,EAAU;;cACd,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,uBAAuB,EAAE,EAAE;SACjC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0B,OAAO,CAAC,CAAC;KAC5D;;;;;IAED,UAAU,CAAC,EAAU;;cACb,OAAO,GAAuB;YAClC,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,uBAAuB,EAAE,EAAE;SACjC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0B,OAAO,CAAC,CAAC;KAC5D;;;;;IAED,UAAU,CAAC,IAA8B;;cACjC,OAAO,GAA2C;YACtD,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,qBAAqB;YAC1B,IAAI;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8C,OAAO,CAAC,CAAC;KAChF;;;;;IAED,UAAU,CAAC,IAAuB;;cAC1B,GAAG,GAAG,uBAAuB,IAAI,CAAC,EAAE,EAAE;QAC5C,OAAO,IAAI,CAAC,EAAE,CAAC;;cAET,OAAO,GAAoC;YAC/C,MAAM,EAAE,KAAK;YACb,GAAG;YACH,IAAI;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAuC,OAAO,CAAC,CAAC;KACzE;;;;;IAED,QAAQ,CAAC,MAAM,sBAAG,EAAE,EAAuB;;cACnC,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,qBAAqB;YAC1B,MAAM;SACP;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B,OAAO,CAAC,CAAC;KAChE;;;;;IAED,WAAW,CAAC,EAAU;;cACd,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,uBAAuB,EAAE,EAAE;SACjC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0B,OAAO,CAAC,CAAC;KAC5D;;;;;IAED,YAAY,CAAC,EAAU;;cACf,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,uBAAuB,EAAE,QAAQ;SACvC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B,OAAO,CAAC,CAAC;KAChE;;;;;IAED,UAAU,CAAC,EAAU;;cACb,OAAO,GAAuB;YAClC,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,uBAAuB,EAAE,EAAE;SACjC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAa,OAAO,CAAC,CAAC;KAC/C;;;;;IAED,UAAU,CAAC,IAA8B;;cACjC,OAAO,GAA2C;YACtD,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,qBAAqB;YAC1B,IAAI;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8C,OAAO,CAAC,CAAC;KAChF;;;;;IAED,UAAU,CAAC,IAAuB;;cAC1B,GAAG,GAAG,uBAAuB,IAAI,CAAC,EAAE,EAAE;QAC5C,OAAO,IAAI,CAAC,EAAE,CAAC;;cAET,OAAO,GAAoC;YAC/C,MAAM,EAAE,KAAK;YACb,GAAG;YACH,IAAI;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAuC,OAAO,CAAC,CAAC;KACzE;;;YAnHF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;YALQ,WAAW;;;;;;;;IAON,+BAAyB;;;;;;;ICa1B,aAAa,SAAb,aAAa;;;;IAqBxB,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;KAAI;;;;;IAnBxD,OAAO,QAAQ,CAAC,EAAE,KAAK,EAAkB;QACvC,OAAO,KAAK,CAAC,KAAK,CAAC;KACpB;;;;;IAGD,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAkB;QACjD,OAAO,KAAK,CAAC,UAAU,CAAC;KACzB;;;;;IAGD,OAAO,QAAQ,CAAC,EAAE,KAAK,EAAkB;QACvC,OAAO,KAAK,CAAC,KAAK,CAAC;KACpB;;;;;IAGD,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAkB;QACjD,OAAO,KAAK,CAAC,UAAU,CAAC;KACzB;;;;;;IAKD,QAAQ,CAAC,EAAE,UAAU,EAAgC,EAAE,EAAE,OAAO,EAAY;QAC1E,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAChD,GAAG;;;;QAAC,KAAK,IACP,UAAU,CAAC;YACT,KAAK;SACN,CAAC,EACH,CACF,CAAC;KACH;;;;;;IAGD,OAAO,CAAC,EAAE,UAAU,EAAgC,EAAE,EAAE,OAAO,EAAe;QAC5E,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CACnD,GAAG;;;;QAAC,YAAY,IACd,UAAU,CAAC;YACT,YAAY;SACb,CAAC,EACH,CACF,CAAC;KACH;;;;;;IAGD,UAAU,CAAC,EAAE,QAAQ,EAAgC,EAAE,EAAE,OAAO,EAAe;QAC7E,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC;KACjG;;;;;;IAGD,OAAO,CAAC,EAAE,QAAQ,EAAgC,EAAE,EAAE,OAAO,EAAc;QACzE,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC;KACjG;;;;;;IAGD,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAgC,EAAE,EAAE,OAAO,EAAc;QACtF,OAAO,QAAQ,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/C,SAAS;;;QAAC,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,mBAAM,QAAQ,EAAE,CAAC,YAAY,EAAK,OAAO,EAAG,EAAC,EAC5F,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAC,CAC1C,CAAC;KACH;;;;;;IAGD,QAAQ,CAAC,EAAE,UAAU,EAAgC,EAAE,EAAE,OAAO,EAAY;QAC1E,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAChD,GAAG;;;;QAAC,KAAK,IACP,UAAU,CAAC;YACT,KAAK;SACN,CAAC,EACH,CACF,CAAC;KACH;;;;;;IAGD,OAAO,CAAC,EAAE,UAAU,EAAgC,EAAE,EAAE,OAAO,EAAe;QAC5E,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CACnD,GAAG;;;;QAAC,YAAY,IACd,UAAU,CAAC;YACT,YAAY;SACb,CAAC,EACH,CACF,CAAC;KACH;;;;;;IAGD,UAAU,CAAC,EAAE,QAAQ,EAAgC,EAAE,EAAE,OAAO,EAAe;QAC7E,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC;KACjG;;;;;;IAGD,OAAO,CAAC,EAAE,QAAQ,EAAgC,EAAE,EAAE,OAAO,EAAc;QACzE,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC;KACjG;;;;;;IAGD,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAgC,EAAE,EAAE,OAAO,EAAc;QACtF,OAAO,QAAQ,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/C,SAAS;;;QAAC,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,mBAAM,QAAQ,EAAE,CAAC,YAAY,EAAK,OAAO,EAAG,EAAC,EAC5F,SAAS;;;QAAC,MAAM,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAC,CAC1C,CAAC;KACH;;;;;;IAGD,YAAY,CAAC,EAAE,UAAU,EAAgC,EAAE,EAAE,OAAO,EAAgB;QAClF,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CACpD,KAAK,CAAC,OAAO,CAAC,EACd,GAAG;;;;QAAC,iBAAiB,IACnB,UAAU,CAAC;YACT,iBAAiB;SAClB,CAAC,EACH,CACF,CAAC;KACH;CACF,CAAA;AA1FCA;IADC,MAAM,CAAC,QAAQ,CAAC;;6CACmD,QAAQ;;6CAQ3E;AAGDA;IADC,MAAM,CAAC,WAAW,CAAC;;6CAC+C,WAAW;;4CAQ7E;AAGDA;IADC,MAAM,CAAC,UAAU,CAAC;;6CACiD,WAAW;;+CAE9E;AAGDA;IADC,MAAM,CAAC,UAAU,CAAC;;6CAC8C,UAAU;;4CAE1E;AAGDA;IADC,MAAM,CAAC,UAAU,CAAC;;6CAC2D,UAAU;;+CAKvF;AAGDA;IADC,MAAM,CAAC,QAAQ,CAAC;;6CACmD,QAAQ;;6CAQ3E;AAGDA;IADC,MAAM,CAAC,WAAW,CAAC;;6CAC+C,WAAW;;4CAQ7E;AAGDA;IADC,MAAM,CAAC,UAAU,CAAC;;6CACiD,WAAW;;+CAE9E;AAGDA;IADC,MAAM,CAAC,UAAU,CAAC;;6CAC8C,UAAU;;4CAE1E;AAGDA;IADC,MAAM,CAAC,UAAU,CAAC;;6CAC2D,UAAU;;+CAKvF;AAGDA;IADC,MAAM,CAAC,YAAY,CAAC;;6CACmD,YAAY;;iDASnF;AA/GDA;IADC,QAAQ,EAAE;;;;mCAGV;AAGDA;IADC,QAAQ,EAAE;;;;6CAGV;AAGDA;IADC,QAAQ,EAAE;;;;mCAGV;AAGDA;IADC,QAAQ,EAAE;;;;6CAGV;AAnBU,aAAa;IAJzB,KAAK,CAAiB;QACrB,IAAI,EAAE,eAAe;QACrB,QAAQ,qBAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAkB;KACzF,CAAC;qCAsBqC,eAAe;GArBzC,aAAa,CAkHzB;;;;;;IA7Fa,wCAAwC;;;;;;;MC5BzC,cAAc;;;;;;IA8BzB,YAAoB,mBAAwC,EAAU,EAAe,EAAU,KAAY;QAAvF,wBAAmB,GAAnB,mBAAmB,CAAqB;QAAU,OAAE,GAAF,EAAE,CAAa;QAAU,UAAK,GAAL,KAAK,CAAO;QAjB3G,uBAAkB,GAAY,KAAK,CAAC;QAIpC,cAAS,GAAwB;YAC/B,OAAO,EAAE,MAAM;SAChB,CAAC;QAEF,YAAO,GAAY,KAAK,CAAC;QAEzB,cAAS,GAAY,KAAK,CAAC;QAE3B,cAAS,GAAW,KAAK,CAAC;KAKqF;;;;;IAE/G,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;KACZ;;;;IAED,UAAU;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,IAAI,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;gBAC3F,UAAU,CAAC,QAAQ;gBACnB,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;aAC1B,CAAC;YACF,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC;YAC7C,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC;SAC5C,CAAC,CAAC;KACJ;;;;IAED,SAAS;QACP,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;;;;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,sBAAG,EAAE,EAAqB,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;;;;IAED,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;aAC7B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;aAC5C,SAAS;;;;QAAC,YAAY;YACrB,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB,EAAC,CAAC;KACN;;;;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,KAAK;aACP,QAAQ,CACP,IAAI,CAAC,QAAQ,CAAC,EAAE;cACZ,IAAI,UAAU,mBAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAG;cAC5D,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CACpC;aACA,SAAS;;;QAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B,EAAC,CAAC;KACN;;;;;;IAED,MAAM,CAAC,EAAU,EAAE,IAAY;QAC7B,IAAI,CAAC,mBAAmB;aACrB,IAAI,CAAC,8CAA8C,EAAE,yBAAyB,EAAE;YAC/E,yBAAyB,EAAE,CAAC,IAAI,CAAC;SAClC,CAAC;aACD,SAAS;;;;QAAC,CAAC,MAAsB;YAChC,IAAI,MAAM,8BAA6B;gBACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;aACzC;SACF,EAAC,CAAC;KACN;;;;;IAED,YAAY,CAAC,IAAI;QACf,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;QAE1C,IAAI,CAAC,GAAG,EAAE,CAAC;KACZ;;;;IAED,GAAG;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtC,IAAI,CAAC,QAAQ;;;QAAC,OAAO,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAC,CAAC;aAC5C,SAAS,EAAE,CAAC;KAChB;;;;IAED,eAAe;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;KAC1E;;;YArHF,SAAS,SAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,2qKAAqC;aACtC;;;;YAbQ,mBAAmB;YAEnB,WAAW;YACH,KAAK;;;2BAsCnB,SAAS,SAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;AAzB5CA;IADC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;8BACxB,UAAU;6CAAsB;AAGvCA;IADC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC;8BAC5B,UAAU;mDAAS;;;IAJhC,+BACuC;;IAEvC,qCACgC;;IAEhC,8BAAgB;;IAEhB,kCAA4B;;IAE5B,wCAAwB;;IAExB,4CAAoC;;IAEpC,qCAAoB;;IAEpB,mCAEE;;IAEF,iCAAyB;;IAEzB,mCAA2B;;IAE3B,mCAA0B;;IAE1B,sCAC+B;;;;;IAEnB,6CAAgD;;;;;IAAE,4BAAuB;;;;;IAAE,+BAAoB;;;;;;;AC7C7G,MAQa,YAAY;;;;IACvB,YAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;KAAI;;;;IAEpC,OAAO;;cACC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC/D,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;KAC3E;;;YAPF,UAAU;;;;YALF,KAAK;;;;;;;IAOA,6BAAoB;;;;;;;MCarB,cAAc;;;;;;IAwCzB,YAAoB,mBAAwC,EAAU,EAAe,EAAU,KAAY;QAAvF,wBAAmB,GAAnB,mBAAmB,CAAqB;QAAU,OAAE,GAAF,EAAE,CAAa;QAAU,UAAK,GAAL,KAAK,CAAO;QAtB3G,uBAAkB,GAAY,KAAK,CAAC;QAIpC,cAAS,GAAwB;YAC/B,OAAO,EAAE,UAAU;SACpB,CAAC;QAIF,YAAO,GAAY,KAAK,CAAC;QAEzB,cAAS,GAAY,KAAK,CAAC;QAE3B,cAAS,GAAW,KAAK,CAAC;QAE1B,cAAS;;;;;QAAqC,CAAC,KAAK,EAAE,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAC;KAMkB;;;;IAJ/G,IAAI,UAAU;QACZ,OAAO,GAAG;;;QAAC,yBAAM,oBAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAe,QAAQ,EAAe,GAAE,EAAE,CAAC,CAAC;KACzF;;;;;IAID,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;KACZ;;;;IAED,SAAS;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1F,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACtG,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,cAAc,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;YACrF,gBAAgB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;YACvF,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CACtB,IAAI,CAAC,KAAK,CAAC,GAAG;;;;YAAC,IAAI,IACjB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBACZ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG;;;oBAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI;;;;oBAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAC,EAAC,CAAC;aAC7F,CAAC,EACH,CACF;SACF,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACxG;KACF;;;;IAED,SAAS;QACP,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;;;;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,sBAAG,EAAE,EAAqB,CAAC;QACxC,IAAI,CAAC,iBAAiB,sBAAG,EAAE,EAAuB,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;;;;IAED,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;aAC7B,IAAI,CACH,SAAS;;;QAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,EAAC,EAC1D,KAAK,CAAC,eAAe,CAAC,EACtB,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS;;;;QAAC,CAAC,KAAqB;YAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC;YACnC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;YACjD,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB,EAAC,CAAC;KACN;;;;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;cAEhB,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;;cAC/B,eAAe,GAAG,GAAG;;;QACzB,MAAM,SAAS,CAAC,MAAM;;;;QAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAG;;;;QAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,GAC9F,EAAE,CACH;QAED,IAAI,CAAC,KAAK;aACP,QAAQ,CACP,IAAI,CAAC,QAAQ,CAAC,EAAE;cACZ,IAAI,UAAU,mBACT,IAAI,CAAC,IAAI,CAAC,KAAK,IAClB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EACpB,SAAS,EAAE,eAAe,IAC1B;cACF,IAAI,UAAU,mBACT,IAAI,CAAC,IAAI,CAAC,KAAK,IAClB,SAAS,EAAE,eAAe,IAC1B,CACP;aACA,SAAS;;;QAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B,EAAC,CAAC;KACN;;;;;;IAED,MAAM,CAAC,EAAU,EAAE,QAAgB;QACjC,IAAI,CAAC,mBAAmB;aACrB,IAAI,CAAC,8CAA8C,EAAE,yBAAyB,EAAE;YAC/E,yBAAyB,EAAE,CAAC,QAAQ,CAAC;SACtC,CAAC;aACD,SAAS;;;;QAAC,CAAC,MAAsB;YAChC,IAAI,MAAM,8BAA6B;gBACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;aACzC;SACF,EAAC,CAAC;KACN;;;;;IAED,YAAY,CAAC,IAAI;QACf,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;QAE1C,IAAI,CAAC,GAAG,EAAE,CAAC;KACZ;;;;IAED,GAAG;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtC,IAAI,CAAC,QAAQ;;;QAAC,OAAO,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAC,CAAC;aAC5C,SAAS,EAAE,CAAC;KAChB;;;;IAED,eAAe;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;KAC1E;;;YA9JF,SAAS,SAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,wmRAAqC;aACtC;;;;YApBQ,mBAAmB;YAES,WAAW;YAC/B,KAAK;;;2BAyBnB,SAAS,SAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;AAL5CA;IADC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;8BACxB,UAAU;6CAAsB;AAGvCA;IADC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC;8BAC5B,UAAU;mDAAS;;;IAJhC,+BACuC;;IAEvC,qCACgC;;IAEhC,sCAC+B;;IAE/B,8BAAgB;;IAEhB,kCAA4B;;IAE5B,2CAAuC;;IAEvC,+BAA2B;;IAE3B,4CAAoC;;IAEpC,qCAAoB;;IAEpB,mCAEE;;IAEF,wCAAwB;;IAExB,iCAAyB;;IAEzB,mCAA2B;;IAE3B,mCAA0B;;IAE1B,mCAA6F;;;;;IAMjF,6CAAgD;;;;;IAAE,4BAAuB;;;;;IAAE,+BAAoB;;;;;;;AC9D7G,MAQa,YAAY;;;;IACvB,YAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;KAAI;;;;IAEpC,OAAO;;cACC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC/D,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;KAC3E;;;YAPF,UAAU;;;;YALF,KAAK;;;;;;;IAOA,6BAAoB;;;;;;;ACTlC,WAcU,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAOvC,EAAE,cAAc,EAAE,mBAAmB,EAAE;;MAb3C,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;IACpD;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QACzC,IAAI,IAAyC;QAC7C,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;KAC7E;IACD;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QACzC,IAAI,IAAyC;QAC7C,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,EAAE;gBACR,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;aACtC;SACF;KACF;CACF;AAOD,MAAa,qBAAqB;;;YALjC,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;aACxC;;;;;;;ACpCD,MA2Ba,cAAc;;;YAd1B,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;gBAC9C,OAAO,EAAE;oBACP,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC;oBACtC,UAAU;oBACV,qBAAqB;oBACrB,eAAe;oBACf,iBAAiB;oBACjB,WAAW;oBACX,iBAAiB;oBACjB,0BAA0B;oBAC1B,qBAAqB;iBACtB;aACF;;;;;AAGD,SAAgB,iBAAiB;IAC/B,OAAO,EAAE,CAAC;CACX;;;;;;;AC7BD,MAAa,eAAe,GAAG;IAC7B,MAAM,qBAAE;QACN;YACE,IAAI,EAAE,sCAAsC;YAC5C,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI;SACd;QACD;YACE,IAAI,EAAE,sCAAsC;YAC5C,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,sCAAsC;YAClD,MAAM;YACN,SAAS,EAAE,iBAAiB;YAC5B,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,mBAAmB,EAAE;gBAC5F,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,mBAAmB,EAAE;aAC7F;SACF;KACF,EAAmB;CACrB;;;;;;ACrBD,IAAiB,QAAQ,CAgDxB;AAhDD,WAAiB,QAAQ;;;;IACvB,oBAMC;;;;QALC,sBAAoB;;QACpB,sBAAoB;;QACpB,6BAAuB;;QACvB,6BAAuB;;QACvB,kCAA8B;;;;;IAKhC,8BAIC;;;;QAHC,+BAAa;;QACb,oCAAmB;;QACnB,mCAAkB;;;;;IAGpB,uBAIC;;;;QAHC,4BAAkB;;QAClB,oCAAyB;;QACzB,sBAAW;;;;;IAKb,uBAOC;;;;QANC,4BAAiB;;QACjB,kCAAwB;;QACxB,wCAA8B;;QAC9B,+BAAqB;;QACrB,oCAAyB;;QACzB,sBAAW;;;;;IAGb,mBAQC;;;;QAPC,wBAAiB;;QACjB,oBAAa;;QACb,uBAAgB;;QAChB,qBAAc;;QACd,2BAAoB;;QACpB,gCAAuB;;QACvB,8BAAqB;;;;;IAGvB,8BAGC;;;;QAFC,mCAAiB;;QACjB,oCAAoB;;CAEvB,EAhDgB,QAAQ,KAAR,QAAQ,QAgDxB;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/fesm5/abp-ng.identity.js b/npm/ng-packs/dist/identity/fesm5/abp-ng.identity.js index 1e1814a7b0..c6928af4b7 100644 --- a/npm/ng-packs/dist/identity/fesm5/abp-ng.identity.js +++ b/npm/ng-packs/dist/identity/fesm5/abp-ng.identity.js @@ -1,5 +1,5 @@ -import { NgModule, Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild } from '@angular/core'; import { RestService, DynamicLayoutComponent, AuthGuard, PermissionGuard, CoreModule } from '@abp/ng.core'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild, NgModule } from '@angular/core'; import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; import { __assign, __decorate, __metadata } from 'tslib'; import { ConfirmationService, ThemeSharedModule } from '@abp/ng.theme.shared'; @@ -12,32 +12,6 @@ import { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; import { PermissionManagementModule } from '@abp/ng.permission-management'; import { TableModule } from 'primeng/table'; import { NgxValidateCoreModule } from '@ngx-validate/core'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -var RootIdentityModule = /** @class */ (function () { - function RootIdentityModule() { - } - /** - * @return {?} - */ - RootIdentityModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootIdentityModule, - providers: [], - }; - }; - RootIdentityModule.decorators = [ - { type: NgModule, args: [{},] } - ]; - return RootIdentityModule; -}()); /** * @fileoverview added by tsickle @@ -814,6 +788,7 @@ var RolesComponent = /** @class */ (function () { }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; } /** * @param {?} value @@ -964,10 +939,19 @@ var RolesComponent = /** @class */ (function () { function () { return (_this.loading = false); }))) .subscribe(); }; + /** + * @return {?} + */ + RolesComponent.prototype.changeSortOrder = /** + * @return {?} + */ + function () { + this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc'; + }; RolesComponent.decorators = [ { type: Component, args: [{ selector: 'abp-roles', - template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Roles' | abpLocalization }}
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n" + template: "
\n
\n

{{ 'AbpIdentity::Roles' | abpLocalization }}

\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n {{ 'AbpIdentity::RoleName' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}

\n
\n\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n" }] } ]; /** @nocollapse */ @@ -1011,6 +995,8 @@ if (false) { /** @type {?} */ RolesComponent.prototype.modalBusy; /** @type {?} */ + RolesComponent.prototype.sortOrder; + /** @type {?} */ RolesComponent.prototype.modalContent; /** * @type {?} @@ -1080,6 +1066,7 @@ var UsersComponent = /** @class */ (function () { }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; this.trackByFn = (/** * @param {?} index * @param {?} item @@ -1292,10 +1279,19 @@ var UsersComponent = /** @class */ (function () { function () { return (_this.loading = false); }))) .subscribe(); }; + /** + * @return {?} + */ + UsersComponent.prototype.changeSortOrder = /** + * @return {?} + */ + function () { + this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc'; + }; UsersComponent.decorators = [ { type: Component, args: [{ selector: 'abp-users', - template: "
\n
\n
\n
\n
{{ 'AbpIdentity::Users' | abpLocalization }}
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n {{ 'AbpIdentity::UserName' | abpLocalization }}\n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}

\n
\n\n \n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n
\n\n \n \n {{\n 'AbpIdentity::Save' | abpLocalization\n }}\n \n
\n\n\n" + template: "
\n
\n

{{ 'AbpIdentity::Users' | abpLocalization }}

\n
\n
\n
\n \n {{ 'AbpIdentity::NewUser' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n {{ 'AbpIdentity::UserName' | abpLocalization }}\n \n \n {{ 'AbpIdentity::EmailAddress' | abpLocalization }}\n {{ 'AbpIdentity::PhoneNumber' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpIdentity::Actions' | abpLocalization }}\n \n
\n \n \n \n
\n
\n \n {{ data.userName }}\n {{ data.email }}\n {{ data.phoneNumber }}\n \n
\n \n
\n
\n\n\n \n

{{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}

\n
\n\n \n
\n \n \n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n\n \n \n {{\n 'AbpIdentity::Save' | abpLocalization\n }}\n \n
\n\n\n" }] } ]; /** @nocollapse */ @@ -1345,6 +1341,8 @@ if (false) { /** @type {?} */ UsersComponent.prototype.modalBusy; /** @type {?} */ + UsersComponent.prototype.sortOrder; + /** @type {?} */ UsersComponent.prototype.trackByFn; /** * @type {?} @@ -1461,12 +1459,17 @@ var IdentityModule = /** @class */ (function () { NgbDropdownModule, PermissionManagementModule, NgxValidateCoreModule, - PerfectScrollbarModule, ], },] } ]; return IdentityModule; }()); +/** + * @return {?} + */ +function IdentityProviders() { + return []; +} /** * @fileoverview added by tsickle @@ -1494,7 +1497,6 @@ var IDENTITY_ROUTES = { ], }, ])), - settings: [], }; /** @@ -1609,5 +1611,5 @@ var Identity; * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { CreateRole, CreateUser, DeleteRole, DeleteUser, GetRoleById, GetRoles, GetUserById, GetUserRoles, GetUsers, IDENTITY_ROUTES, IdentityModule, IdentityService, IdentityState, RoleResolver, RolesComponent, RootIdentityModule, UpdateRole, UpdateUser, UsersComponent as ɵb, IdentityRoutingModule as ɵc, UserResolver as ɵd }; +export { CreateRole, CreateUser, DeleteRole, DeleteUser, GetRoleById, GetRoles, GetUserById, GetUserRoles, GetUsers, IDENTITY_ROUTES, IdentityModule, IdentityProviders, IdentityService, IdentityState, RoleResolver, RolesComponent, UpdateRole, UpdateUser, UsersComponent as ɵb, IdentityRoutingModule as ɵc, UserResolver as ɵd }; //# sourceMappingURL=abp-ng.identity.js.map diff --git a/npm/ng-packs/dist/identity/fesm5/abp-ng.identity.js.map b/npm/ng-packs/dist/identity/fesm5/abp-ng.identity.js.map index 3dfa266a36..2691f23a35 100644 --- a/npm/ng-packs/dist/identity/fesm5/abp-ng.identity.js.map +++ b/npm/ng-packs/dist/identity/fesm5/abp-ng.identity.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.identity.js","sources":["ng://@abp/ng.identity/lib/root-identity.module.ts","ng://@abp/ng.identity/lib/actions/identity.actions.ts","ng://@abp/ng.identity/lib/services/identity.service.ts","ng://@abp/ng.identity/lib/states/identity.state.ts","ng://@abp/ng.identity/lib/components/roles/roles.component.ts","ng://@abp/ng.identity/lib/resolvers/roles.resolver.ts","ng://@abp/ng.identity/lib/components/users/users.component.ts","ng://@abp/ng.identity/lib/resolvers/users.resolver.ts","ng://@abp/ng.identity/lib/identity-routing.module.ts","ng://@abp/ng.identity/lib/identity.module.ts","ng://@abp/ng.identity/lib/constants/routes.ts","ng://@abp/ng.identity/lib/models/identity.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootIdentityModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootIdentityModule,\n providers: [],\n };\n }\n}\n","import { Identity } from '../models/identity';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetRoles {\n static readonly type = '[Identity] Get Roles';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetRoleById {\n static readonly type = '[Identity] Get Role By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteRole {\n static readonly type = '[Identity] Delete Role';\n constructor(public payload: string) {}\n}\n\nexport class CreateRole {\n static readonly type = '[Identity] Create Role';\n constructor(public payload: Identity.RoleSaveRequest) {}\n}\n\nexport class UpdateRole {\n static readonly type = '[Identity] Update Role';\n constructor(public payload: Identity.RoleItem) {}\n}\n\nexport class GetUsers {\n static readonly type = '[Identity] Get Users';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetUserById {\n static readonly type = '[Identity] Get User By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteUser {\n static readonly type = '[Identity] Delete User';\n constructor(public payload: string) {}\n}\n\nexport class CreateUser {\n static readonly type = '[Identity] Create User';\n constructor(public payload: Identity.UserSaveRequest) {}\n}\n\nexport class UpdateUser {\n static readonly type = '[Identity] Update User';\n constructor(public payload: Identity.UserSaveRequest & { id: string }) {}\n}\n\nexport class GetUserRoles {\n static readonly type = '[Identity] Get User Roles';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { Identity } from '../models/identity';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdentityService {\n constructor(private rest: RestService) {}\n\n getRoles(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/roles',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getRoleById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteRole(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createRole(body: Identity.RoleSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/roles',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateRole(body: Identity.RoleItem): Observable {\n const url = `/api/identity/roles/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getUsers(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/users',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getUserById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n getUserRoles(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}/roles`,\n };\n\n return this.rest.request(request);\n }\n\n deleteUser(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createUser(body: Identity.UserSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/users',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateUser(body: Identity.UserItem): Observable {\n const url = `/api/identity/users/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap, pluck } from 'rxjs/operators';\nimport {\n CreateRole,\n CreateUser,\n DeleteRole,\n DeleteUser,\n GetRoleById,\n GetRoles,\n GetUserById,\n GetUsers,\n UpdateRole,\n UpdateUser,\n GetUserRoles,\n} from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityService } from '../services/identity.service';\n\n@State({\n name: 'IdentityState',\n defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,\n})\nexport class IdentityState {\n @Selector()\n static getRoles({ roles }: Identity.State): Identity.RoleItem[] {\n return roles.items;\n }\n\n @Selector()\n static getRolesTotalCount({ roles }: Identity.State): number {\n return roles.totalCount;\n }\n\n @Selector()\n static getUsers({ users }: Identity.State): Identity.UserItem[] {\n return users.items;\n }\n\n @Selector()\n static getUsersTotalCount({ users }: Identity.State): number {\n return users.totalCount;\n }\n\n constructor(private identityService: IdentityService) {}\n\n @Action(GetRoles)\n getRoles({ patchState }: StateContext, { payload }: GetRoles) {\n return this.identityService.getRoles(payload).pipe(\n tap(roles =>\n patchState({\n roles,\n }),\n ),\n );\n }\n\n @Action(GetRoleById)\n getRole({ patchState }: StateContext, { payload }: GetRoleById) {\n return this.identityService.getRoleById(payload).pipe(\n tap(selectedRole =>\n patchState({\n selectedRole,\n }),\n ),\n );\n }\n\n @Action(DeleteRole)\n deleteRole({ dispatch }: StateContext, { payload }: GetRoleById) {\n return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(CreateRole)\n addRole({ dispatch }: StateContext, { payload }: CreateRole) {\n return this.identityService.createRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(UpdateRole)\n updateRole({ getState, dispatch }: StateContext, { payload }: UpdateRole) {\n return dispatch(new GetRoleById(payload.id)).pipe(\n switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })),\n switchMap(() => dispatch(new GetRoles())),\n );\n }\n\n @Action(GetUsers)\n getUsers({ patchState }: StateContext, { payload }: GetUsers) {\n return this.identityService.getUsers(payload).pipe(\n tap(users =>\n patchState({\n users,\n }),\n ),\n );\n }\n\n @Action(GetUserById)\n getUser({ patchState }: StateContext, { payload }: GetUserById) {\n return this.identityService.getUserById(payload).pipe(\n tap(selectedUser =>\n patchState({\n selectedUser,\n }),\n ),\n );\n }\n\n @Action(DeleteUser)\n deleteUser({ dispatch }: StateContext, { payload }: GetUserById) {\n return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(CreateUser)\n addUser({ dispatch }: StateContext, { payload }: CreateUser) {\n return this.identityService.createUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(UpdateUser)\n updateUser({ getState, dispatch }: StateContext, { payload }: UpdateUser) {\n return dispatch(new GetUserById(payload.id)).pipe(\n switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })),\n switchMap(() => dispatch(new GetUsers())),\n );\n }\n\n @Action(GetUserRoles)\n getUserRoles({ patchState }: StateContext, { payload }: GetUserRoles) {\n return this.identityService.getUserRoles(payload).pipe(\n pluck('items'),\n tap(selectedUserRoles =>\n patchState({\n selectedUserRoles,\n }),\n ),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck } from 'rxjs/operators';\nimport { CreateRole, DeleteRole, GetRoleById, GetRoles, UpdateRole } from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n\n@Component({\n selector: 'abp-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent {\n @Select(IdentityState.getRoles)\n data$: Observable;\n\n @Select(IdentityState.getRolesTotalCount)\n totalCount$: Observable;\n\n form: FormGroup;\n\n selected: Identity.RoleItem;\n\n isModalVisible: boolean;\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n createForm() {\n this.form = this.fb.group({\n name: new FormControl({ value: this.selected.name || '', disabled: this.selected.isStatic }, [\n Validators.required,\n Validators.maxLength(256),\n ]),\n isDefault: [this.selected.isDefault || false],\n isPublic: [this.selected.isPublic || false],\n });\n }\n\n openModal() {\n this.createForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.RoleItem;\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetRoleById(id))\n .pipe(pluck('IdentityState', 'selectedRole'))\n .subscribe(selectedRole => {\n this.selected = selectedRole;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateRole({ ...this.form.value, id: this.selected.id })\n : new CreateRole(this.form.value),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteRole(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetRoles(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetRoles } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class RoleResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const roles = this.store.selectSnapshot(IdentityState.getRoles);\n return roles && roles.length ? null : this.store.dispatch(new GetRoles());\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, TrackByFunction, ViewChild } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport {\n CreateUser,\n DeleteUser,\n GetUserById,\n GetUserRoles,\n GetUsers,\n UpdateUser,\n} from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n@Component({\n selector: 'abp-users',\n templateUrl: './users.component.html',\n})\nexport class UsersComponent {\n @Select(IdentityState.getUsers)\n data$: Observable;\n\n @Select(IdentityState.getUsersTotalCount)\n totalCount$: Observable;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n selected: Identity.UserItem;\n\n selectedUserRoles: Identity.RoleItem[];\n\n roles: Identity.RoleItem[];\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'userName',\n };\n\n isModalVisible: boolean;\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;\n\n get roleGroups(): FormGroup[] {\n return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);\n }\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n buildForm() {\n this.roles = this.store.selectSnapshot(IdentityState.getRoles);\n this.form = this.fb.group({\n userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],\n email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],\n name: [this.selected.name || '', [Validators.maxLength(64)]],\n surname: [this.selected.surname || '', [Validators.maxLength(64)]],\n phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],\n lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n roleNames: this.fb.array(\n this.roles.map(role =>\n this.fb.group({\n [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))],\n }),\n ),\n ),\n });\n if (!this.selected.userName) {\n this.form.addControl('password', new FormControl('', [Validators.required, Validators.maxLength(32)]));\n }\n }\n\n openModal() {\n this.buildForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.UserItem;\n this.selectedUserRoles = [] as Identity.RoleItem[];\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetUserById(id))\n .pipe(\n switchMap(() => this.store.dispatch(new GetUserRoles(id))),\n pluck('IdentityState'),\n take(1),\n )\n .subscribe((state: Identity.State) => {\n this.selected = state.selectedUser;\n this.selectedUserRoles = state.selectedUserRoles;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n const { roleNames } = this.form.value;\n const mappedRoleNames = snq(\n () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),\n [],\n );\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateUser({\n ...this.form.value,\n id: this.selected.id,\n roleNames: mappedRoleNames,\n })\n : new CreateUser({\n ...this.form.value,\n roleNames: mappedRoleNames,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, userName: string) {\n this.confirmationService\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [userName],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteUser(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetUsers(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetUsers } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class UserResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const users = this.store.selectSnapshot(IdentityState.getUsers);\n return users && users.length ? null : this.store.dispatch(new GetUsers());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { RoleResolver } from './resolvers/roles.resolver';\nimport { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { UsersComponent } from './components/users/users.component';\nimport { UserResolver } from './resolvers/users.resolver';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\n {\n path: 'roles',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Roles' },\n children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],\n },\n {\n path: 'users',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Users' },\n children: [\n {\n path: '',\n component: UsersComponent,\n resolve: [RoleResolver, UserResolver],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [RoleResolver, UserResolver],\n})\nexport class IdentityRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { IdentityState } from './states/identity.state';\nimport { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UsersComponent } from './components/users/users.component';\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\nimport { TableModule } from 'primeng/table';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\n\n@NgModule({\n declarations: [RolesComponent, UsersComponent],\n imports: [\n NgxsModule.forFeature([IdentityState]),\n CoreModule,\n IdentityRoutingModule,\n NgbTabsetModule,\n ThemeSharedModule,\n TableModule,\n NgbDropdownModule,\n PermissionManagementModule,\n NgxValidateCoreModule,\n PerfectScrollbarModule,\n ],\n})\nexport class IdentityModule {}\n","import { eLayoutType, ABP } from '@abp/ng.core';\n\nexport const IDENTITY_ROUTES = {\n routes: [\n {\n name: 'AbpUiNavigation::Menu:Administration',\n path: '',\n order: 1,\n wrapper: true,\n },\n {\n name: 'AbpIdentity::Menu:IdentityManagement',\n path: 'identity',\n order: 1,\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-id-card-o',\n children: [\n { path: 'roles', name: 'AbpIdentity::Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },\n { path: 'users', name: 'AbpIdentity::Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },\n ],\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace Identity {\n export interface State {\n roles: RoleResponse;\n users: UserResponse;\n selectedRole: RoleItem;\n selectedUser: UserItem;\n selectedUserRoles: RoleItem[];\n }\n\n export type RoleResponse = ABP.PagedResponse;\n\n export interface RoleSaveRequest {\n name: string;\n isDefault: boolean;\n isPublic: boolean;\n }\n\n export interface RoleItem extends RoleSaveRequest {\n isStatic: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export type UserResponse = ABP.PagedResponse;\n\n export interface UserItem extends User {\n tenantId: string;\n emailConfirmed: boolean;\n phoneNumberConfirmed: boolean;\n isLockedOut: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export interface User {\n userName: string;\n name: string;\n surname: string;\n email: string;\n phoneNumber: string;\n twoFactorEnabled: true;\n lockoutEnabled: true;\n }\n\n export interface UserSaveRequest extends User {\n password: string;\n roleNames: string[];\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.identity.js","sources":["ng://@abp/ng.identity/lib/actions/identity.actions.ts","ng://@abp/ng.identity/lib/services/identity.service.ts","ng://@abp/ng.identity/lib/states/identity.state.ts","ng://@abp/ng.identity/lib/components/roles/roles.component.ts","ng://@abp/ng.identity/lib/resolvers/roles.resolver.ts","ng://@abp/ng.identity/lib/components/users/users.component.ts","ng://@abp/ng.identity/lib/resolvers/users.resolver.ts","ng://@abp/ng.identity/lib/identity-routing.module.ts","ng://@abp/ng.identity/lib/identity.module.ts","ng://@abp/ng.identity/lib/constants/routes.ts","ng://@abp/ng.identity/lib/models/identity.ts"],"sourcesContent":["import { Identity } from '../models/identity';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetRoles {\n static readonly type = '[Identity] Get Roles';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetRoleById {\n static readonly type = '[Identity] Get Role By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteRole {\n static readonly type = '[Identity] Delete Role';\n constructor(public payload: string) {}\n}\n\nexport class CreateRole {\n static readonly type = '[Identity] Create Role';\n constructor(public payload: Identity.RoleSaveRequest) {}\n}\n\nexport class UpdateRole {\n static readonly type = '[Identity] Update Role';\n constructor(public payload: Identity.RoleItem) {}\n}\n\nexport class GetUsers {\n static readonly type = '[Identity] Get Users';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetUserById {\n static readonly type = '[Identity] Get User By Id';\n constructor(public payload: string) {}\n}\n\nexport class DeleteUser {\n static readonly type = '[Identity] Delete User';\n constructor(public payload: string) {}\n}\n\nexport class CreateUser {\n static readonly type = '[Identity] Create User';\n constructor(public payload: Identity.UserSaveRequest) {}\n}\n\nexport class UpdateUser {\n static readonly type = '[Identity] Update User';\n constructor(public payload: Identity.UserSaveRequest & { id: string }) {}\n}\n\nexport class GetUserRoles {\n static readonly type = '[Identity] Get User Roles';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { Identity } from '../models/identity';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdentityService {\n constructor(private rest: RestService) {}\n\n getRoles(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/roles',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getRoleById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteRole(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/roles/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createRole(body: Identity.RoleSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/roles',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateRole(body: Identity.RoleItem): Observable {\n const url = `/api/identity/roles/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getUsers(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/identity/users',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getUserById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n getUserRoles(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/identity/users/${id}/roles`,\n };\n\n return this.rest.request(request);\n }\n\n deleteUser(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/identity/users/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createUser(body: Identity.UserSaveRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: '/api/identity/users',\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateUser(body: Identity.UserItem): Observable {\n const url = `/api/identity/users/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap, pluck } from 'rxjs/operators';\nimport {\n CreateRole,\n CreateUser,\n DeleteRole,\n DeleteUser,\n GetRoleById,\n GetRoles,\n GetUserById,\n GetUsers,\n UpdateRole,\n UpdateUser,\n GetUserRoles,\n} from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityService } from '../services/identity.service';\n\n@State({\n name: 'IdentityState',\n defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,\n})\nexport class IdentityState {\n @Selector()\n static getRoles({ roles }: Identity.State): Identity.RoleItem[] {\n return roles.items;\n }\n\n @Selector()\n static getRolesTotalCount({ roles }: Identity.State): number {\n return roles.totalCount;\n }\n\n @Selector()\n static getUsers({ users }: Identity.State): Identity.UserItem[] {\n return users.items;\n }\n\n @Selector()\n static getUsersTotalCount({ users }: Identity.State): number {\n return users.totalCount;\n }\n\n constructor(private identityService: IdentityService) {}\n\n @Action(GetRoles)\n getRoles({ patchState }: StateContext, { payload }: GetRoles) {\n return this.identityService.getRoles(payload).pipe(\n tap(roles =>\n patchState({\n roles,\n }),\n ),\n );\n }\n\n @Action(GetRoleById)\n getRole({ patchState }: StateContext, { payload }: GetRoleById) {\n return this.identityService.getRoleById(payload).pipe(\n tap(selectedRole =>\n patchState({\n selectedRole,\n }),\n ),\n );\n }\n\n @Action(DeleteRole)\n deleteRole({ dispatch }: StateContext, { payload }: GetRoleById) {\n return this.identityService.deleteRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(CreateRole)\n addRole({ dispatch }: StateContext, { payload }: CreateRole) {\n return this.identityService.createRole(payload).pipe(switchMap(() => dispatch(new GetRoles())));\n }\n\n @Action(UpdateRole)\n updateRole({ getState, dispatch }: StateContext, { payload }: UpdateRole) {\n return dispatch(new GetRoleById(payload.id)).pipe(\n switchMap(() => this.identityService.updateRole({ ...getState().selectedRole, ...payload })),\n switchMap(() => dispatch(new GetRoles())),\n );\n }\n\n @Action(GetUsers)\n getUsers({ patchState }: StateContext, { payload }: GetUsers) {\n return this.identityService.getUsers(payload).pipe(\n tap(users =>\n patchState({\n users,\n }),\n ),\n );\n }\n\n @Action(GetUserById)\n getUser({ patchState }: StateContext, { payload }: GetUserById) {\n return this.identityService.getUserById(payload).pipe(\n tap(selectedUser =>\n patchState({\n selectedUser,\n }),\n ),\n );\n }\n\n @Action(DeleteUser)\n deleteUser({ dispatch }: StateContext, { payload }: GetUserById) {\n return this.identityService.deleteUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(CreateUser)\n addUser({ dispatch }: StateContext, { payload }: CreateUser) {\n return this.identityService.createUser(payload).pipe(switchMap(() => dispatch(new GetUsers())));\n }\n\n @Action(UpdateUser)\n updateUser({ getState, dispatch }: StateContext, { payload }: UpdateUser) {\n return dispatch(new GetUserById(payload.id)).pipe(\n switchMap(() => this.identityService.updateUser({ ...getState().selectedUser, ...payload })),\n switchMap(() => dispatch(new GetUsers())),\n );\n }\n\n @Action(GetUserRoles)\n getUserRoles({ patchState }: StateContext, { payload }: GetUserRoles) {\n return this.identityService.getUserRoles(payload).pipe(\n pluck('items'),\n tap(selectedUserRoles =>\n patchState({\n selectedUserRoles,\n }),\n ),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck } from 'rxjs/operators';\nimport { CreateRole, DeleteRole, GetRoleById, GetRoles, UpdateRole } from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n\n@Component({\n selector: 'abp-roles',\n templateUrl: './roles.component.html',\n})\nexport class RolesComponent {\n @Select(IdentityState.getRoles)\n data$: Observable;\n\n @Select(IdentityState.getRolesTotalCount)\n totalCount$: Observable;\n\n form: FormGroup;\n\n selected: Identity.RoleItem;\n\n isModalVisible: boolean;\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n sortOrder: string = 'asc';\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n createForm() {\n this.form = this.fb.group({\n name: new FormControl({ value: this.selected.name || '', disabled: this.selected.isStatic }, [\n Validators.required,\n Validators.maxLength(256),\n ]),\n isDefault: [this.selected.isDefault || false],\n isPublic: [this.selected.isPublic || false],\n });\n }\n\n openModal() {\n this.createForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.RoleItem;\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetRoleById(id))\n .pipe(pluck('IdentityState', 'selectedRole'))\n .subscribe(selectedRole => {\n this.selected = selectedRole;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateRole({ ...this.form.value, id: this.selected.id })\n : new CreateRole(this.form.value),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteRole(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetRoles(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n\n changeSortOrder() {\n this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetRoles } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class RoleResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const roles = this.store.selectSnapshot(IdentityState.getRoles);\n return roles && roles.length ? null : this.store.dispatch(new GetRoles());\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, TrackByFunction, ViewChild } from '@angular/core';\nimport { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport snq from 'snq';\nimport {\n CreateUser,\n DeleteUser,\n GetUserById,\n GetUserRoles,\n GetUsers,\n UpdateUser,\n} from '../../actions/identity.actions';\nimport { Identity } from '../../models/identity';\nimport { IdentityState } from '../../states/identity.state';\n@Component({\n selector: 'abp-users',\n templateUrl: './users.component.html',\n})\nexport class UsersComponent {\n @Select(IdentityState.getUsers)\n data$: Observable;\n\n @Select(IdentityState.getUsersTotalCount)\n totalCount$: Observable;\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n selected: Identity.UserItem;\n\n selectedUserRoles: Identity.RoleItem[];\n\n roles: Identity.RoleItem[];\n\n visiblePermissions: boolean = false;\n\n providerKey: string;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'userName',\n };\n\n isModalVisible: boolean;\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n sortOrder: string = 'asc';\n\n trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;\n\n get roleGroups(): FormGroup[] {\n return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);\n }\n\n constructor(private confirmationService: ConfirmationService, private fb: FormBuilder, private store: Store) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n buildForm() {\n this.roles = this.store.selectSnapshot(IdentityState.getRoles);\n this.form = this.fb.group({\n userName: [this.selected.userName || '', [Validators.required, Validators.maxLength(256)]],\n email: [this.selected.email || '', [Validators.required, Validators.email, Validators.maxLength(256)]],\n name: [this.selected.name || '', [Validators.maxLength(64)]],\n surname: [this.selected.surname || '', [Validators.maxLength(64)]],\n phoneNumber: [this.selected.phoneNumber || '', [Validators.maxLength(16)]],\n lockoutEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n twoFactorEnabled: [this.selected.twoFactorEnabled || (this.selected.id ? false : true)],\n roleNames: this.fb.array(\n this.roles.map(role =>\n this.fb.group({\n [role.name]: [!!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))],\n }),\n ),\n ),\n });\n if (!this.selected.userName) {\n this.form.addControl('password', new FormControl('', [Validators.required, Validators.maxLength(32)]));\n }\n }\n\n openModal() {\n this.buildForm();\n this.isModalVisible = true;\n }\n\n onAdd() {\n this.selected = {} as Identity.UserItem;\n this.selectedUserRoles = [] as Identity.RoleItem[];\n this.openModal();\n }\n\n onEdit(id: string) {\n this.store\n .dispatch(new GetUserById(id))\n .pipe(\n switchMap(() => this.store.dispatch(new GetUserRoles(id))),\n pluck('IdentityState'),\n take(1),\n )\n .subscribe((state: Identity.State) => {\n this.selected = state.selectedUser;\n this.selectedUserRoles = state.selectedUserRoles;\n this.openModal();\n });\n }\n\n save() {\n if (!this.form.valid) return;\n this.modalBusy = true;\n\n const { roleNames } = this.form.value;\n const mappedRoleNames = snq(\n () => roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),\n [],\n );\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateUser({\n ...this.form.value,\n id: this.selected.id,\n roleNames: mappedRoleNames,\n })\n : new CreateUser({\n ...this.form.value,\n roleNames: mappedRoleNames,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, userName: string) {\n this.confirmationService\n .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {\n messageLocalizationParams: [userName],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteUser(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetUsers(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n\n changeSortOrder() {\n this.sortOrder = this.sortOrder.toLowerCase() === 'asc' ? 'desc' : 'asc';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetUsers } from '../actions/identity.actions';\nimport { Identity } from '../models/identity';\nimport { IdentityState } from '../states/identity.state';\n\n@Injectable()\nexport class UserResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const users = this.store.selectSnapshot(IdentityState.getUsers);\n return users && users.length ? null : this.store.dispatch(new GetUsers());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { RoleResolver } from './resolvers/roles.resolver';\nimport { DynamicLayoutComponent, AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { UsersComponent } from './components/users/users.component';\nimport { UserResolver } from './resolvers/users.resolver';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'roles', pathMatch: 'full' },\n {\n path: 'roles',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Roles' },\n children: [{ path: '', component: RolesComponent, resolve: [RoleResolver] }],\n },\n {\n path: 'users',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpIdentity.Users' },\n children: [\n {\n path: '',\n component: UsersComponent,\n resolve: [RoleResolver, UserResolver],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [RoleResolver, UserResolver],\n})\nexport class IdentityRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { NgModule, Provider } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { RolesComponent } from './components/roles/roles.component';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { IdentityState } from './states/identity.state';\nimport { NgbTabsetModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { UsersComponent } from './components/users/users.component';\nimport { PermissionManagementModule } from '@abp/ng.permission-management';\nimport { TableModule } from 'primeng/table';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [RolesComponent, UsersComponent],\n imports: [\n NgxsModule.forFeature([IdentityState]),\n CoreModule,\n IdentityRoutingModule,\n NgbTabsetModule,\n ThemeSharedModule,\n TableModule,\n NgbDropdownModule,\n PermissionManagementModule,\n NgxValidateCoreModule,\n ],\n})\nexport class IdentityModule {}\n\nexport function IdentityProviders(): Provider[] {\n return [];\n}\n","import { eLayoutType, ABP } from '@abp/ng.core';\n\nexport const IDENTITY_ROUTES = {\n routes: [\n {\n name: 'AbpUiNavigation::Menu:Administration',\n path: '',\n order: 1,\n wrapper: true,\n },\n {\n name: 'AbpIdentity::Menu:IdentityManagement',\n path: 'identity',\n order: 1,\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-id-card-o',\n children: [\n { path: 'roles', name: 'AbpIdentity::Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' },\n { path: 'users', name: 'AbpIdentity::Users', order: 1, requiredPolicy: 'AbpIdentity.Users' },\n ],\n },\n ] as ABP.FullRoute[],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace Identity {\n export interface State {\n roles: RoleResponse;\n users: UserResponse;\n selectedRole: RoleItem;\n selectedUser: UserItem;\n selectedUserRoles: RoleItem[];\n }\n\n export type RoleResponse = ABP.PagedResponse;\n\n export interface RoleSaveRequest {\n name: string;\n isDefault: boolean;\n isPublic: boolean;\n }\n\n export interface RoleItem extends RoleSaveRequest {\n isStatic: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export type UserResponse = ABP.PagedResponse;\n\n export interface UserItem extends User {\n tenantId: string;\n emailConfirmed: boolean;\n phoneNumberConfirmed: boolean;\n isLockedOut: boolean;\n concurrencyStamp: string;\n id: string;\n }\n\n export interface User {\n userName: string;\n name: string;\n surname: string;\n email: string;\n phoneNumber: string;\n twoFactorEnabled: true;\n lockoutEnabled: true;\n }\n\n export interface UserSaveRequest extends User {\n password: string;\n roleNames: string[];\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":";;;;;;;;;;;;;;;;;;;AAGA;IAEE,kBAAmB,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;KAAI;IADpC,aAAI,GAAG,sBAAsB,CAAC;IAEhD,eAAC;CAHD,IAGC;;;IAFC,cAA8C;;IAClC,2BAAoC;;AAGlD;IAEE,qBAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;IADtB,gBAAI,GAAG,2BAA2B,CAAC;IAErD,kBAAC;CAHD,IAGC;;;IAFC,iBAAmD;;IACvC,8BAAsB;;AAGpC;IAEE,oBAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;IADtB,eAAI,GAAG,wBAAwB,CAAC;IAElD,iBAAC;CAHD,IAGC;;;IAFC,gBAAgD;;IACpC,6BAAsB;;AAGpC;IAEE,oBAAmB,OAAiC;QAAjC,YAAO,GAAP,OAAO,CAA0B;KAAI;IADxC,eAAI,GAAG,wBAAwB,CAAC;IAElD,iBAAC;CAHD,IAGC;;;IAFC,gBAAgD;;IACpC,6BAAwC;;AAGtD;IAEE,oBAAmB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;KAAI;IADjC,eAAI,GAAG,wBAAwB,CAAC;IAElD,iBAAC;CAHD,IAGC;;;IAFC,gBAAgD;;IACpC,6BAAiC;;AAG/C;IAEE,kBAAmB,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;KAAI;IADpC,aAAI,GAAG,sBAAsB,CAAC;IAEhD,eAAC;CAHD,IAGC;;;IAFC,cAA8C;;IAClC,2BAAoC;;AAGlD;IAEE,qBAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;IADtB,gBAAI,GAAG,2BAA2B,CAAC;IAErD,kBAAC;CAHD,IAGC;;;IAFC,iBAAmD;;IACvC,8BAAsB;;AAGpC;IAEE,oBAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;IADtB,eAAI,GAAG,wBAAwB,CAAC;IAElD,iBAAC;CAHD,IAGC;;;IAFC,gBAAgD;;IACpC,6BAAsB;;AAGpC;IAEE,oBAAmB,OAAiC;QAAjC,YAAO,GAAP,OAAO,CAA0B;KAAI;IADxC,eAAI,GAAG,wBAAwB,CAAC;IAElD,iBAAC;CAHD,IAGC;;;IAFC,gBAAgD;;IACpC,6BAAwC;;AAGtD;IAEE,oBAAmB,OAAkD;QAAlD,YAAO,GAAP,OAAO,CAA2C;KAAI;IADzD,eAAI,GAAG,wBAAwB,CAAC;IAElD,iBAAC;CAHD,IAGC;;;IAFC,gBAAgD;;IACpC,6BAAyD;;AAGvE;IAEE,sBAAmB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;KAAI;IADtB,iBAAI,GAAG,2BAA2B,CAAC;IAErD,mBAAC;CAHD,IAGC;;;IAFC,kBAAmD;;IACvC,+BAAsB;;;;;;;ACvDpC;IASE,yBAAoB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;KAAI;;;;;IAEzC,kCAAQ;;;;IAAR,UAAS,MAAkC;QAAlC,uBAAA,EAAA,4BAAS,EAAE,EAAuB;;YACnC,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,qBAAqB;YAC1B,MAAM,QAAA;SACP;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B,OAAO,CAAC,CAAC;KAChE;;;;;IAED,qCAAW;;;;IAAX,UAAY,EAAU;;YACd,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,yBAAuB,EAAI;SACjC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0B,OAAO,CAAC,CAAC;KAC5D;;;;;IAED,oCAAU;;;;IAAV,UAAW,EAAU;;YACb,OAAO,GAAuB;YAClC,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,yBAAuB,EAAI;SACjC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0B,OAAO,CAAC,CAAC;KAC5D;;;;;IAED,oCAAU;;;;IAAV,UAAW,IAA8B;;YACjC,OAAO,GAA2C;YACtD,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,qBAAqB;YAC1B,IAAI,MAAA;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8C,OAAO,CAAC,CAAC;KAChF;;;;;IAED,oCAAU;;;;IAAV,UAAW,IAAuB;;YAC1B,GAAG,GAAG,yBAAuB,IAAI,CAAC,EAAI;QAC5C,OAAO,IAAI,CAAC,EAAE,CAAC;;YAET,OAAO,GAAoC;YAC/C,MAAM,EAAE,KAAK;YACb,GAAG,KAAA;YACH,IAAI,MAAA;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAuC,OAAO,CAAC,CAAC;KACzE;;;;;IAED,kCAAQ;;;;IAAR,UAAS,MAAkC;QAAlC,uBAAA,EAAA,4BAAS,EAAE,EAAuB;;YACnC,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,qBAAqB;YAC1B,MAAM,QAAA;SACP;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B,OAAO,CAAC,CAAC;KAChE;;;;;IAED,qCAAW;;;;IAAX,UAAY,EAAU;;YACd,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,yBAAuB,EAAI;SACjC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0B,OAAO,CAAC,CAAC;KAC5D;;;;;IAED,sCAAY;;;;IAAZ,UAAa,EAAU;;YACf,OAAO,GAAuB;YAClC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,yBAAuB,EAAE,WAAQ;SACvC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B,OAAO,CAAC,CAAC;KAChE;;;;;IAED,oCAAU;;;;IAAV,UAAW,EAAU;;YACb,OAAO,GAAuB;YAClC,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,yBAAuB,EAAI;SACjC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAa,OAAO,CAAC,CAAC;KAC/C;;;;;IAED,oCAAU;;;;IAAV,UAAW,IAA8B;;YACjC,OAAO,GAA2C;YACtD,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,qBAAqB;YAC1B,IAAI,MAAA;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8C,OAAO,CAAC,CAAC;KAChF;;;;;IAED,oCAAU;;;;IAAV,UAAW,IAAuB;;YAC1B,GAAG,GAAG,yBAAuB,IAAI,CAAC,EAAI;QAC5C,OAAO,IAAI,CAAC,EAAE,CAAC;;YAET,OAAO,GAAoC;YAC/C,MAAM,EAAE,KAAK;YACb,GAAG,KAAA;YACH,IAAI,MAAA;SACL;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAuC,OAAO,CAAC,CAAC;KACzE;;gBAnHF,UAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;;gBALQ,WAAW;;;0BAFpB;CAKA,IAoHC;;;;;;IAhHa,+BAAyB;;;;;;;;ICkCrC,uBAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;KAAI;;;;;IAnBjD,sBAAQ;;;;IAAf,UAAgB,EAAyB;YAAvB,gBAAK;QACrB,OAAO,KAAK,CAAC,KAAK,CAAC;KACpB;;;;;IAGM,gCAAkB;;;;IAAzB,UAA0B,EAAyB;YAAvB,gBAAK;QAC/B,OAAO,KAAK,CAAC,UAAU,CAAC;KACzB;;;;;IAGM,sBAAQ;;;;IAAf,UAAgB,EAAyB;YAAvB,gBAAK;QACrB,OAAO,KAAK,CAAC,KAAK,CAAC;KACpB;;;;;IAGM,gCAAkB;;;;IAAzB,UAA0B,EAAyB;YAAvB,gBAAK;QAC/B,OAAO,KAAK,CAAC,UAAU,CAAC;KACzB;;;;;;IAKD,gCAAQ;;;;;IAAR,UAAS,EAA4C,EAAE,EAAqB;YAAjE,0BAAU;YAAoC,oBAAO;QAC9D,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAChD,GAAG;;;;QAAC,UAAA,KAAK;YACP,OAAA,UAAU,CAAC;gBACT,KAAK,OAAA;aACN,CAAC;SAAA,EACH,CACF,CAAC;KACH;;;;;;IAGD,+BAAO;;;;;IAAP,UAAQ,EAA4C,EAAE,EAAwB;YAApE,0BAAU;YAAoC,oBAAO;QAC7D,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CACnD,GAAG;;;;QAAC,UAAA,YAAY;YACd,OAAA,UAAU,CAAC;gBACT,YAAY,cAAA;aACb,CAAC;SAAA,EACH,CACF,CAAC;KACH;;;;;;IAGD,kCAAU;;;;;IAAV,UAAW,EAA0C,EAAE,EAAwB;YAAlE,sBAAQ;YAAoC,oBAAO;QAC9D,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,cAAM,OAAA,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,GAAA,EAAC,CAAC,CAAC;KACjG;;;;;;IAGD,+BAAO;;;;;IAAP,UAAQ,EAA0C,EAAE,EAAuB;YAAjE,sBAAQ;YAAoC,oBAAO;QAC3D,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,cAAM,OAAA,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,GAAA,EAAC,CAAC,CAAC;KACjG;;;;;;IAGD,kCAAU;;;;;IAAV,UAAW,EAAoD,EAAE,EAAuB;QADxF,iBAMC;YALY,sBAAQ,EAAE,sBAAQ;YAAoC,oBAAO;QACxE,OAAO,QAAQ,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/C,SAAS;;;QAAC,cAAM,OAAA,KAAI,CAAC,eAAe,CAAC,UAAU,cAAM,QAAQ,EAAE,CAAC,YAAY,EAAK,OAAO,EAAG,GAAA,EAAC,EAC5F,SAAS;;;QAAC,cAAM,OAAA,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,GAAA,EAAC,CAC1C,CAAC;KACH;;;;;;IAGD,gCAAQ;;;;;IAAR,UAAS,EAA4C,EAAE,EAAqB;YAAjE,0BAAU;YAAoC,oBAAO;QAC9D,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAChD,GAAG;;;;QAAC,UAAA,KAAK;YACP,OAAA,UAAU,CAAC;gBACT,KAAK,OAAA;aACN,CAAC;SAAA,EACH,CACF,CAAC;KACH;;;;;;IAGD,+BAAO;;;;;IAAP,UAAQ,EAA4C,EAAE,EAAwB;YAApE,0BAAU;YAAoC,oBAAO;QAC7D,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CACnD,GAAG;;;;QAAC,UAAA,YAAY;YACd,OAAA,UAAU,CAAC;gBACT,YAAY,cAAA;aACb,CAAC;SAAA,EACH,CACF,CAAC;KACH;;;;;;IAGD,kCAAU;;;;;IAAV,UAAW,EAA0C,EAAE,EAAwB;YAAlE,sBAAQ;YAAoC,oBAAO;QAC9D,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,cAAM,OAAA,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,GAAA,EAAC,CAAC,CAAC;KACjG;;;;;;IAGD,+BAAO;;;;;IAAP,UAAQ,EAA0C,EAAE,EAAuB;YAAjE,sBAAQ;YAAoC,oBAAO;QAC3D,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;;;QAAC,cAAM,OAAA,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,GAAA,EAAC,CAAC,CAAC;KACjG;;;;;;IAGD,kCAAU;;;;;IAAV,UAAW,EAAoD,EAAE,EAAuB;QADxF,iBAMC;YALY,sBAAQ,EAAE,sBAAQ;YAAoC,oBAAO;QACxE,OAAO,QAAQ,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/C,SAAS;;;QAAC,cAAM,OAAA,KAAI,CAAC,eAAe,CAAC,UAAU,cAAM,QAAQ,EAAE,CAAC,YAAY,EAAK,OAAO,EAAG,GAAA,EAAC,EAC5F,SAAS;;;QAAC,cAAM,OAAA,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,GAAA,EAAC,CAC1C,CAAC;KACH;;;;;;IAGD,oCAAY;;;;;IAAZ,UAAa,EAA4C,EAAE,EAAyB;YAArE,0BAAU;YAAoC,oBAAO;QAClE,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CACpD,KAAK,CAAC,OAAO,CAAC,EACd,GAAG;;;;QAAC,UAAA,iBAAiB;YACnB,OAAA,UAAU,CAAC;gBACT,iBAAiB,mBAAA;aAClB,CAAC;SAAA,EACH,CACF,CAAC;KACH;IAzFDA;QADC,MAAM,CAAC,QAAQ,CAAC;;iDACmD,QAAQ;;iDAQ3E;IAGDA;QADC,MAAM,CAAC,WAAW,CAAC;;iDAC+C,WAAW;;gDAQ7E;IAGDA;QADC,MAAM,CAAC,UAAU,CAAC;;iDACiD,WAAW;;mDAE9E;IAGDA;QADC,MAAM,CAAC,UAAU,CAAC;;iDAC8C,UAAU;;gDAE1E;IAGDA;QADC,MAAM,CAAC,UAAU,CAAC;;iDAC2D,UAAU;;mDAKvF;IAGDA;QADC,MAAM,CAAC,QAAQ,CAAC;;iDACmD,QAAQ;;iDAQ3E;IAGDA;QADC,MAAM,CAAC,WAAW,CAAC;;iDAC+C,WAAW;;gDAQ7E;IAGDA;QADC,MAAM,CAAC,UAAU,CAAC;;iDACiD,WAAW;;mDAE9E;IAGDA;QADC,MAAM,CAAC,UAAU,CAAC;;iDAC8C,UAAU;;gDAE1E;IAGDA;QADC,MAAM,CAAC,UAAU,CAAC;;iDAC2D,UAAU;;mDAKvF;IAGDA;QADC,MAAM,CAAC,YAAY,CAAC;;iDACmD,YAAY;;qDASnF;IA/GDA;QADC,QAAQ,EAAE;;;;uCAGV;IAGDA;QADC,QAAQ,EAAE;;;;iDAGV;IAGDA;QADC,QAAQ,EAAE;;;;uCAGV;IAGDA;QADC,QAAQ,EAAE;;;;iDAGV;IAnBU,aAAa;QAJzB,KAAK,CAAiB;YACrB,IAAI,EAAE,eAAe;YACrB,QAAQ,qBAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAkB;SACzF,CAAC;yCAsBqC,eAAe;OArBzC,aAAa,CAkHzB;IAAD,oBAAC;CAAA,IAAA;;;;;;IA7Fa,wCAAwC;;;;;;;;ICEpD,wBAAoB,mBAAwC,EAAU,EAAe,EAAU,KAAY;QAAvF,wBAAmB,GAAnB,mBAAmB,CAAqB;QAAU,OAAE,GAAF,EAAE,CAAa;QAAU,UAAK,GAAL,KAAK,CAAO;QAjB3G,uBAAkB,GAAY,KAAK,CAAC;QAIpC,cAAS,GAAwB;YAC/B,OAAO,EAAE,MAAM;SAChB,CAAC;QAEF,YAAO,GAAY,KAAK,CAAC;QAEzB,cAAS,GAAY,KAAK,CAAC;QAE3B,cAAS,GAAW,KAAK,CAAC;KAKqF;;;;;IAE/G,iCAAQ;;;;IAAR,UAAS,KAAK;QACZ,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;KACZ;;;;IAED,mCAAU;;;IAAV;QACE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,IAAI,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;gBAC3F,UAAU,CAAC,QAAQ;gBACnB,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;aAC1B,CAAC;YACF,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC;YAC7C,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC;SAC5C,CAAC,CAAC;KACJ;;;;IAED,kCAAS;;;IAAT;QACE,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;;;;IAED,8BAAK;;;IAAL;QACE,IAAI,CAAC,QAAQ,sBAAG,EAAE,EAAqB,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;;;;IAED,+BAAM;;;;IAAN,UAAO,EAAU;QAAjB,iBAQC;QAPC,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;aAC7B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;aAC5C,SAAS;;;;QAAC,UAAA,YAAY;YACrB,KAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;YAC7B,KAAI,CAAC,SAAS,EAAE,CAAC;SAClB,EAAC,CAAC;KACN;;;;IAED,6BAAI;;;IAAJ;QAAA,iBAcC;QAbC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,KAAK;aACP,QAAQ,CACP,IAAI,CAAC,QAAQ,CAAC,EAAE;cACZ,IAAI,UAAU,cAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAG;cAC5D,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CACpC;aACA,SAAS;;;QAAC;YACT,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B,EAAC,CAAC;KACN;;;;;;IAED,+BAAM;;;;;IAAN,UAAO,EAAU,EAAE,IAAY;QAA/B,iBAUC;QATC,IAAI,CAAC,mBAAmB;aACrB,IAAI,CAAC,8CAA8C,EAAE,yBAAyB,EAAE;YAC/E,yBAAyB,EAAE,CAAC,IAAI,CAAC;SAClC,CAAC;aACD,SAAS;;;;QAAC,UAAC,MAAsB;YAChC,IAAI,MAAM,8BAA6B;gBACrC,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;aACzC;SACF,EAAC,CAAC;KACN;;;;;IAED,qCAAY;;;;IAAZ,UAAa,IAAI;QACf,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;QAE1C,IAAI,CAAC,GAAG,EAAE,CAAC;KACZ;;;;IAED,4BAAG;;;IAAH;QAAA,iBAMC;QALC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtC,IAAI,CAAC,QAAQ;;;QAAC,cAAM,QAAC,KAAI,CAAC,OAAO,GAAG,KAAK,IAAC,EAAC,CAAC;aAC5C,SAAS,EAAE,CAAC;KAChB;;;;IAED,wCAAe;;;IAAf;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;KAC1E;;gBArHF,SAAS,SAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,2qKAAqC;iBACtC;;;;gBAbQ,mBAAmB;gBAEnB,WAAW;gBACH,KAAK;;;+BAsCnB,SAAS,SAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;IAzB5CA;QADC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;kCACxB,UAAU;iDAAsB;IAGvCA;QADC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC;kCAC5B,UAAU;uDAAS;IA6GlC,qBAAC;CAtHD,IAsHC;;;IAjHC,+BACuC;;IAEvC,qCACgC;;IAEhC,8BAAgB;;IAEhB,kCAA4B;;IAE5B,wCAAwB;;IAExB,4CAAoC;;IAEpC,qCAAoB;;IAEpB,mCAEE;;IAEF,iCAAyB;;IAEzB,mCAA2B;;IAE3B,mCAA0B;;IAE1B,sCAC+B;;;;;IAEnB,6CAAgD;;;;;IAAE,4BAAuB;;;;;IAAE,+BAAoB;;;;;;;AC7C7G;IASE,sBAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;KAAI;;;;IAEpC,8BAAO;;;IAAP;;YACQ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC/D,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;KAC3E;;gBAPF,UAAU;;;;gBALF,KAAK;;IAad,mBAAC;CARD,IAQC;;;;;;IANa,6BAAoB;;;;;;;;ICqDhC,wBAAoB,mBAAwC,EAAU,EAAe,EAAU,KAAY;QAAvF,wBAAmB,GAAnB,mBAAmB,CAAqB;QAAU,OAAE,GAAF,EAAE,CAAa;QAAU,UAAK,GAAL,KAAK,CAAO;QAtB3G,uBAAkB,GAAY,KAAK,CAAC;QAIpC,cAAS,GAAwB;YAC/B,OAAO,EAAE,UAAU;SACpB,CAAC;QAIF,YAAO,GAAY,KAAK,CAAC;QAEzB,cAAS,GAAY,KAAK,CAAC;QAE3B,cAAS,GAAW,KAAK,CAAC;QAE1B,cAAS;;;;;QAAqC,UAAC,KAAK,EAAE,IAAI,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAA,EAAC;KAMkB;IAJ/G,sBAAI,sCAAU;;;;QAAd;YAAA,iBAEC;YADC,OAAO,GAAG;;;YAAC,wCAAM,oBAAC,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAe,QAAQ,KAAe,GAAE,EAAE,CAAC,CAAC;SACzF;;;OAAA;;;;;IAID,iCAAQ;;;;IAAR,UAAS,KAAK;QACZ,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;KACZ;;;;IAED,kCAAS;;;IAAT;QAAA,iBAqBC;QApBC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1F,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACtG,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,cAAc,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;YACrF,gBAAgB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;YACvF,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CACtB,IAAI,CAAC,KAAK,CAAC,GAAG;;;;YAAC,UAAA,IAAI;;gBACjB,OAAA,KAAI,CAAC,EAAE,CAAC,KAAK;oBACX,GAAC,IAAI,CAAC,IAAI,IAAG,CAAC,CAAC,CAAC,GAAG;;;wBAAC,cAAM,OAAA,KAAI,CAAC,iBAAiB,CAAC,IAAI;;;;wBAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAA,EAAC,GAAA,EAAC,CAAC;wBAC5F;aAAA,EACH,CACF;SACF,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACxG;KACF;;;;IAED,kCAAS;;;IAAT;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;;;;IAED,8BAAK;;;IAAL;QACE,IAAI,CAAC,QAAQ,sBAAG,EAAE,EAAqB,CAAC;QACxC,IAAI,CAAC,iBAAiB,sBAAG,EAAE,EAAuB,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;;;;IAED,+BAAM;;;;IAAN,UAAO,EAAU;QAAjB,iBAaC;QAZC,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;aAC7B,IAAI,CACH,SAAS;;;QAAC,cAAM,OAAA,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,GAAA,EAAC,EAC1D,KAAK,CAAC,eAAe,CAAC,EACtB,IAAI,CAAC,CAAC,CAAC,CACR;aACA,SAAS;;;;QAAC,UAAC,KAAqB;YAC/B,KAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC;YACnC,KAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;YACjD,KAAI,CAAC,SAAS,EAAE,CAAC;SAClB,EAAC,CAAC;KACN;;;;IAED,6BAAI;;;IAAJ;QAAA,iBA2BC;QA1BC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEd,IAAA,qCAAS;;YACX,eAAe,GAAG,GAAG;;;QACzB,cAAM,OAAA,SAAS,CAAC,MAAM;;;;QAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAA,EAAC,CAAC,GAAG;;;;QAAC,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAA,EAAC,GAAA,GAC9F,EAAE,CACH;QAED,IAAI,CAAC,KAAK;aACP,QAAQ,CACP,IAAI,CAAC,QAAQ,CAAC,EAAE;cACZ,IAAI,UAAU,cACT,IAAI,CAAC,IAAI,CAAC,KAAK,IAClB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EACpB,SAAS,EAAE,eAAe,IAC1B;cACF,IAAI,UAAU,cACT,IAAI,CAAC,IAAI,CAAC,KAAK,IAClB,SAAS,EAAE,eAAe,IAC1B,CACP;aACA,SAAS;;;QAAC;YACT,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B,EAAC,CAAC;KACN;;;;;;IAED,+BAAM;;;;;IAAN,UAAO,EAAU,EAAE,QAAgB;QAAnC,iBAUC;QATC,IAAI,CAAC,mBAAmB;aACrB,IAAI,CAAC,8CAA8C,EAAE,yBAAyB,EAAE;YAC/E,yBAAyB,EAAE,CAAC,QAAQ,CAAC;SACtC,CAAC;aACD,SAAS;;;;QAAC,UAAC,MAAsB;YAChC,IAAI,MAAM,8BAA6B;gBACrC,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;aACzC;SACF,EAAC,CAAC;KACN;;;;;IAED,qCAAY;;;;IAAZ,UAAa,IAAI;QACf,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;QAE1C,IAAI,CAAC,GAAG,EAAE,CAAC;KACZ;;;;IAED,4BAAG;;;IAAH;QAAA,iBAMC;QALC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtC,IAAI,CAAC,QAAQ;;;QAAC,cAAM,QAAC,KAAI,CAAC,OAAO,GAAG,KAAK,IAAC,EAAC,CAAC;aAC5C,SAAS,EAAE,CAAC;KAChB;;;;IAED,wCAAe;;;IAAf;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;KAC1E;;gBA9JF,SAAS,SAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,wmRAAqC;iBACtC;;;;gBApBQ,mBAAmB;gBAES,WAAW;gBAC/B,KAAK;;;+BAyBnB,SAAS,SAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;IAL5CA;QADC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;kCACxB,UAAU;iDAAsB;IAGvCA;QADC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC;kCAC5B,UAAU;uDAAS;IAsJlC,qBAAC;CA/JD,IA+JC;;;IA1JC,+BACuC;;IAEvC,qCACgC;;IAEhC,sCAC+B;;IAE/B,8BAAgB;;IAEhB,kCAA4B;;IAE5B,2CAAuC;;IAEvC,+BAA2B;;IAE3B,4CAAoC;;IAEpC,qCAAoB;;IAEpB,mCAEE;;IAEF,wCAAwB;;IAExB,iCAAyB;;IAEzB,mCAA2B;;IAE3B,mCAA0B;;IAE1B,mCAA6F;;;;;IAMjF,6CAAgD;;;;;IAAE,4BAAuB;;;;;IAAE,+BAAoB;;;;;;;AC9D7G;IASE,sBAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;KAAI;;;;IAEpC,8BAAO;;;IAAP;;YACQ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC/D,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;KAC3E;;gBAPF,UAAU;;;;gBALF,KAAK;;IAad,mBAAC;CARD,IAQC;;;;;;IANa,6BAAoB;;;;;;;ACTlC,SAcU,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAOvC,EAAE,cAAc,EAAE,mBAAmB,EAAE;;IAb3C,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;IACpD;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QACzC,IAAI,IAAyC;QAC7C,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;KAC7E;IACD;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QACzC,IAAI,IAAyC;QAC7C,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,EAAE;gBACR,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;aACtC;SACF;KACF;CACF;AAED;IAAA;KAKqC;;gBALpC,QAAQ,SAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;iBACxC;;IACmC,4BAAC;CALrC;;;;;;AChCA;IAaA;KAc8B;;gBAd7B,QAAQ,SAAC;oBACR,YAAY,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;oBAC9C,OAAO,EAAE;wBACP,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC;wBACtC,UAAU;wBACV,qBAAqB;wBACrB,eAAe;wBACf,iBAAiB;wBACjB,WAAW;wBACX,iBAAiB;wBACjB,0BAA0B;wBAC1B,qBAAqB;qBACtB;iBACF;;IAC4B,qBAAC;CAd9B,IAc8B;;;;AAE9B,SAAgB,iBAAiB;IAC/B,OAAO,EAAE,CAAC;CACX;;;;;;;AC7BD,IAAa,eAAe,GAAG;IAC7B,MAAM,qBAAE;QACN;YACE,IAAI,EAAE,sCAAsC;YAC5C,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI;SACd;QACD;YACE,IAAI,EAAE,sCAAsC;YAC5C,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,sCAAsC;YAClD,MAAM;YACN,SAAS,EAAE,iBAAiB;YAC5B,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,mBAAmB,EAAE;gBAC5F,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,mBAAmB,EAAE;aAC7F;SACF;KACF,EAAmB;CACrB;;;;;;ACrBD,IAAiB,QAAQ,CAgDxB;AAhDD,WAAiB,QAAQ;;;;IACvB,oBAMC;;;;QALC,sBAAoB;;QACpB,sBAAoB;;QACpB,6BAAuB;;QACvB,6BAAuB;;QACvB,kCAA8B;;;;;IAKhC,8BAIC;;;;QAHC,+BAAa;;QACb,oCAAmB;;QACnB,mCAAkB;;;;;IAGpB,uBAIC;;;;QAHC,4BAAkB;;QAClB,oCAAyB;;QACzB,sBAAW;;;;;IAKb,uBAOC;;;;QANC,4BAAiB;;QACjB,kCAAwB;;QACxB,wCAA8B;;QAC9B,+BAAqB;;QACrB,oCAAyB;;QACzB,sBAAW;;;;;IAGb,mBAQC;;;;QAPC,wBAAiB;;QACjB,oBAAa;;QACb,uBAAgB;;QAChB,qBAAc;;QACd,2BAAoB;;QACpB,gCAAuB;;QACvB,8BAAqB;;;;;IAGvB,8BAGC;;;;QAFC,mCAAiB;;QACjB,oCAAoB;;CAEvB,EAhDgB,QAAQ,KAAR,QAAQ,QAgDxB;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/npm/ng-packs/dist/identity/lib/components/roles/roles.component.d.ts b/npm/ng-packs/dist/identity/lib/components/roles/roles.component.d.ts index 9f27f62856..7090070f56 100644 --- a/npm/ng-packs/dist/identity/lib/components/roles/roles.component.d.ts +++ b/npm/ng-packs/dist/identity/lib/components/roles/roles.component.d.ts @@ -19,6 +19,7 @@ export declare class RolesComponent { pageQuery: ABP.PageQueryParams; loading: boolean; modalBusy: boolean; + sortOrder: string; modalContent: TemplateRef; constructor(confirmationService: ConfirmationService, fb: FormBuilder, store: Store); onSearch(value: any): void; @@ -30,4 +31,5 @@ export declare class RolesComponent { delete(id: string, name: string): void; onPageChange(data: any): void; get(): void; + changeSortOrder(): void; } diff --git a/npm/ng-packs/dist/identity/lib/components/users/users.component.d.ts b/npm/ng-packs/dist/identity/lib/components/users/users.component.d.ts index 36010fa626..ff9de09979 100644 --- a/npm/ng-packs/dist/identity/lib/components/users/users.component.d.ts +++ b/npm/ng-packs/dist/identity/lib/components/users/users.component.d.ts @@ -22,6 +22,7 @@ export declare class UsersComponent { isModalVisible: boolean; loading: boolean; modalBusy: boolean; + sortOrder: string; trackByFn: TrackByFunction; readonly roleGroups: FormGroup[]; constructor(confirmationService: ConfirmationService, fb: FormBuilder, store: Store); @@ -34,4 +35,5 @@ export declare class UsersComponent { delete(id: string, userName: string): void; onPageChange(data: any): void; get(): void; + changeSortOrder(): void; } diff --git a/npm/ng-packs/dist/identity/lib/constants/routes.d.ts b/npm/ng-packs/dist/identity/lib/constants/routes.d.ts index 9d60f8f0d5..c195c3bbf8 100644 --- a/npm/ng-packs/dist/identity/lib/constants/routes.d.ts +++ b/npm/ng-packs/dist/identity/lib/constants/routes.d.ts @@ -1,5 +1,4 @@ import { ABP } from '@abp/ng.core'; export declare const IDENTITY_ROUTES: { routes: ABP.FullRoute[]; - settings: any[]; }; diff --git a/npm/ng-packs/dist/identity/lib/identity.module.d.ts b/npm/ng-packs/dist/identity/lib/identity.module.d.ts index 2f607750cd..e54523e1bb 100644 --- a/npm/ng-packs/dist/identity/lib/identity.module.d.ts +++ b/npm/ng-packs/dist/identity/lib/identity.module.d.ts @@ -1,2 +1,4 @@ +import { Provider } from '@angular/core'; export declare class IdentityModule { } +export declare function IdentityProviders(): Provider[]; diff --git a/npm/ng-packs/dist/identity/lib/root-identity.module.d.ts b/npm/ng-packs/dist/identity/lib/root-identity.module.d.ts deleted file mode 100644 index 4729506ce6..0000000000 --- a/npm/ng-packs/dist/identity/lib/root-identity.module.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { ModuleWithProviders } from '@angular/core'; -export declare class RootIdentityModule { - static forRoot(): ModuleWithProviders; -} diff --git a/npm/ng-packs/dist/identity/package.json b/npm/ng-packs/dist/identity/package.json index 0ec7d31981..8d932ddbda 100644 --- a/npm/ng-packs/dist/identity/package.json +++ b/npm/ng-packs/dist/identity/package.json @@ -1,8 +1,8 @@ { "name": "@abp/ng.identity", - "version": "0.8.3", + "version": "0.9.0", "dependencies": { - "@abp/ng.permission-management": "^0.8.3", + "@abp/ng.permission-management": "^0.9.0", "tslib": "^1.9.0" }, "publishConfig": { diff --git a/npm/ng-packs/dist/identity/public-api.d.ts b/npm/ng-packs/dist/identity/public-api.d.ts index 1d8e510195..f6ead168bc 100644 --- a/npm/ng-packs/dist/identity/public-api.d.ts +++ b/npm/ng-packs/dist/identity/public-api.d.ts @@ -1,4 +1,3 @@ -export * from './lib/root-identity.module'; export * from './lib/identity.module'; export * from './lib/actions/identity.actions'; export * from './lib/components/roles/roles.component'; diff --git a/npm/ng-packs/dist/permission-management/abp-ng.permission-management.metadata.json b/npm/ng-packs/dist/permission-management/abp-ng.permission-management.metadata.json index 67781c7e2e..33e98f54b5 100644 --- a/npm/ng-packs/dist/permission-management/abp-ng.permission-management.metadata.json +++ b/npm/ng-packs/dist/permission-management/abp-ng.permission-management.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"exports":[{"from":"./lib/permission-management.state"}],"metadata":{"RootPermissionManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":2,"character":1},"arguments":[{}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"RootPermissionManagementModule"},"providers":[]}}}},"PermissionManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":10,"character":12},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":10,"character":24},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":10,"character":43},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵb"}]]},{"__symbolic":"reference","module":"ngx-perfect-scrollbar","name":"PerfectScrollbarModule","line":10,"character":95}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"abp-permission-management","template":"\n \n \n

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n
    \n \n
  • \n {{ group?.displayName }}\n
  • \n
    \n
\n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n \n
\n
\n \n
\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n
\n"}]}],"members":{"providerName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"providerKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":49,"character":3}}]}],"groups$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":52,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getPermissionGroups"}]}]}],"entityName$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":55,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getEntitiyDisplayName"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":88,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":88,"character":54}]}],"ngOnInit":[{"__symbolic":"method"}],"getChecked":[{"__symbolic":"method"}],"isGrantedByRole":[{"__symbolic":"method"}],"onClickCheckbox":[{"__symbolic":"method"}],"setTabCheckboxState":[{"__symbolic":"method"}],"setGrantCheckboxState":[{"__symbolic":"method"}],"onClickSelectThisTab":[{"__symbolic":"method"}],"onClickSelectAll":[{"__symbolic":"method"}],"onChangeGroup":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"initModal":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":6,"character":1},"arguments":[{"name":"PermissionManagementState","defaults":{"permissionRes":{}}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"permissionManagementGet":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":23,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}]}],"permissionManagementUpdate":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":34,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}]},"statics":{"getPermissionGroups":{"__symbolic":"function","parameters":["permissionRes"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"permissionRes"},"member":"groups"},"right":[]}},"getEntitiyDisplayName":{"__symbolic":"function","parameters":["permissionRes"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"permissionRes"},"member":"entityDisplayName"}}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":9,"character":28}]}],"getPermissions":[{"__symbolic":"method"}],"updatePermissions":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵf"},"member":"GrantedProvider"}]}]},"statics":{"type":"[PermissionManagement] Get Permissions"}},"ɵe":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":9,"character":30,"module":"./lib/actions/permission-management.actions"}]}]},"statics":{"type":"[PermissionManagement] Update Permissions"}}},"origins":{"RootPermissionManagementModule":"./lib/root-permission-management.module","PermissionManagementModule":"./lib/permission-management.module","ɵa":"./lib/components/permission-management.component","ɵb":"./lib/states/permission-management.state","ɵc":"./lib/services/permission-management.service","ɵd":"./lib/actions/permission-management.actions","ɵe":"./lib/actions/permission-management.actions","ɵf":"./lib/models/permission-management"},"importAs":"@abp/ng.permission-management"} \ No newline at end of file +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/permission-management.state"}],"metadata":{"PermissionManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":9,"character":12},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":9,"character":24},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":9,"character":43},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵb"}]]}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"abp-permission-management","template":"\n \n \n

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n
    \n
  • \n {{ group?.displayName }}\n
  • \n
\n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n
\n
\n \n
\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n
\n"}]}],"members":{"providerName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"providerKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":49,"character":3}}]}],"groups$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":52,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getPermissionGroups"}]}]}],"entityName$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":55,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getEntitiyDisplayName"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":88,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":88,"character":54}]}],"ngOnInit":[{"__symbolic":"method"}],"getChecked":[{"__symbolic":"method"}],"isGrantedByRole":[{"__symbolic":"method"}],"onClickCheckbox":[{"__symbolic":"method"}],"setTabCheckboxState":[{"__symbolic":"method"}],"setGrantCheckboxState":[{"__symbolic":"method"}],"onClickSelectThisTab":[{"__symbolic":"method"}],"onClickSelectAll":[{"__symbolic":"method"}],"onChangeGroup":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"initModal":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":6,"character":1},"arguments":[{"name":"PermissionManagementState","defaults":{"permissionRes":{}}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"permissionManagementGet":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":23,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}]}],"permissionManagementUpdate":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":34,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}]},"statics":{"getPermissionGroups":{"__symbolic":"function","parameters":["permissionRes"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"permissionRes"},"member":"groups"},"right":[]}},"getEntitiyDisplayName":{"__symbolic":"function","parameters":["permissionRes"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"permissionRes"},"member":"entityDisplayName"}}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":9,"character":28}]}],"getPermissions":[{"__symbolic":"method"}],"updatePermissions":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵf"},"member":"GrantedProvider"}]}]},"statics":{"type":"[PermissionManagement] Get Permissions"}},"ɵe":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":9,"character":30,"module":"./lib/actions/permission-management.actions"}]}]},"statics":{"type":"[PermissionManagement] Update Permissions"}}},"origins":{"PermissionManagementModule":"./lib/permission-management.module","ɵa":"./lib/components/permission-management.component","ɵb":"./lib/states/permission-management.state","ɵc":"./lib/services/permission-management.service","ɵd":"./lib/actions/permission-management.actions","ɵe":"./lib/actions/permission-management.actions","ɵf":"./lib/models/permission-management"},"importAs":"@abp/ng.permission-management"} \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.js b/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.js index d3d04be1cb..598f3ff1ed 100644 --- a/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.js +++ b/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.js @@ -1,8 +1,8 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@abp/ng.core'), require('@abp/ng.theme.shared'), require('@ngxs/store'), require('rxjs'), require('rxjs/operators'), require('ngx-perfect-scrollbar')) : - typeof define === 'function' && define.amd ? define('@abp/ng.permission-management', ['exports', '@angular/core', '@abp/ng.core', '@abp/ng.theme.shared', '@ngxs/store', 'rxjs', 'rxjs/operators', 'ngx-perfect-scrollbar'], factory) : - (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng['permission-management'] = {}), global.ng.core, global.ng_core, global.ng_theme_shared, global.store, global.rxjs, global.rxjs.operators, global.ngxPerfectScrollbar)); -}(this, function (exports, core, ng_core, ng_theme_shared, store, rxjs, operators, ngxPerfectScrollbar) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@abp/ng.theme.shared'), require('@angular/core'), require('@ngxs/store'), require('rxjs'), require('rxjs/operators')) : + typeof define === 'function' && define.amd ? define('@abp/ng.permission-management', ['exports', '@abp/ng.core', '@abp/ng.theme.shared', '@angular/core', '@ngxs/store', 'rxjs', 'rxjs/operators'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng['permission-management'] = {}), global.ng_core, global.ng_theme_shared, global.ng.core, global.store, global.rxjs, global.rxjs.operators)); +}(this, function (exports, ng_core, ng_theme_shared, core, store, rxjs, operators) { 'use strict'; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. @@ -201,31 +201,6 @@ return (mod && mod.__esModule) ? mod : { default: mod }; } - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var RootPermissionManagementModule = /** @class */ (function () { - function RootPermissionManagementModule() { - } - /** - * @return {?} - */ - RootPermissionManagementModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootPermissionManagementModule, - providers: [], - }; - }; - RootPermissionManagementModule.decorators = [ - { type: core.NgModule, args: [{},] } - ]; - return RootPermissionManagementModule; - }()); - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -818,7 +793,7 @@ PermissionManagementComponent.decorators = [ { type: core.Component, args: [{ selector: 'abp-permission-management', - template: "\n \n \n

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n
    \n \n
  • \n {{ group?.displayName }}\n
  • \n
    \n
\n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n \n
\n
\n \n
\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n
\n" + template: "\n \n \n

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n
    \n
  • \n {{ group?.displayName }}\n
  • \n
\n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n
\n
\n \n
\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n
\n" }] } ]; /** @nocollapse */ @@ -923,7 +898,7 @@ PermissionManagementModule.decorators = [ { type: core.NgModule, args: [{ declarations: [PermissionManagementComponent], - imports: [ng_core.CoreModule, ng_theme_shared.ThemeSharedModule, store.NgxsModule.forFeature([PermissionManagementState]), ngxPerfectScrollbar.PerfectScrollbarModule], + imports: [ng_core.CoreModule, ng_theme_shared.ThemeSharedModule, store.NgxsModule.forFeature([PermissionManagementState])], exports: [PermissionManagementComponent], },] } ]; @@ -1032,7 +1007,6 @@ exports.PermissionManagementModule = PermissionManagementModule; exports.PermissionManagementService = PermissionManagementService; exports.PermissionManagementState = PermissionManagementState; - exports.RootPermissionManagementModule = RootPermissionManagementModule; exports.UpdatePermissions = UpdatePermissions; exports.ɵa = PermissionManagementComponent; exports.ɵb = PermissionManagementState; diff --git a/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.js.map b/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.js.map index b221849c1f..bda6d59fa8 100644 --- a/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.js.map +++ b/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.permission-management.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.permission-management/lib/root-permission-management.module.ts","ng://@abp/ng.permission-management/lib/actions/permission-management.actions.ts","ng://@abp/ng.permission-management/lib/services/permission-management.service.ts","ng://@abp/ng.permission-management/lib/states/permission-management.state.ts","ng://@abp/ng.permission-management/lib/components/permission-management.component.ts","ng://@abp/ng.permission-management/lib/permission-management.module.ts","ng://@abp/ng.permission-management/lib/models/permission-management.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootPermissionManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootPermissionManagementModule,\n providers: [],\n };\n }\n}\n","import { PermissionManagement } from '../models/permission-management';\n\nexport class GetPermissions {\n static readonly type = '[PermissionManagement] Get Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider) {}\n}\n\nexport class UpdatePermissions {\n static readonly type = '[PermissionManagement] Update Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Observable } from 'rxjs';\nimport { PermissionManagement } from '../models/permission-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionManagementService {\n constructor(private rest: RestService) {}\n\n getPermissions(params: PermissionManagement.GrantedProvider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/permissions',\n params,\n };\n\n return this.rest.request(request);\n }\n\n updatePermissions({\n permissions,\n providerKey,\n providerName,\n }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/permissions',\n body: { permissions },\n params: { providerKey, providerName },\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementService } from '../services/permission-management.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'PermissionManagementState',\n defaults: { permissionRes: {} } as PermissionManagement.State,\n})\nexport class PermissionManagementState {\n @Selector()\n static getPermissionGroups({ permissionRes }: PermissionManagement.State) {\n return permissionRes.groups || [];\n }\n\n @Selector()\n static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string {\n return permissionRes.entityDisplayName;\n }\n\n constructor(private permissionManagementService: PermissionManagementService) {}\n\n @Action(GetPermissions)\n permissionManagementGet({ patchState }: StateContext, { payload }: GetPermissions) {\n return this.permissionManagementService.getPermissions(payload).pipe(\n tap(permissionResponse =>\n patchState({\n permissionRes: permissionResponse,\n }),\n ),\n );\n }\n\n @Action(UpdatePermissions)\n permissionManagementUpdate(_, { payload }: UpdatePermissions) {\n return this.permissionManagementService.updatePermissions(payload);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TrackByFunction,\n} from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { map, pluck, take } from 'rxjs/operators';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementState } from '../states/permission-management.state';\n\ntype PermissionWithMargin = PermissionManagement.Permission & { margin: number };\n\n@Component({\n selector: 'abp-permission-management',\n templateUrl: './permission-management.component.html',\n})\nexport class PermissionManagementComponent implements OnInit, OnChanges {\n @Input()\n providerName: string;\n\n @Input()\n providerKey: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n if (!this.selectedGroup) return;\n\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (!value) {\n this.selectedGroup = null;\n }\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(PermissionManagementState.getPermissionGroups)\n groups$: Observable;\n\n @Select(PermissionManagementState.getEntitiyDisplayName)\n entityName$: Observable;\n\n selectedGroup: PermissionManagement.Group;\n\n permissions: PermissionManagement.Permission[] = [];\n\n selectThisTab: boolean = false;\n\n selectAllTab: boolean = false;\n\n modalBusy: boolean = false;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n get selectedGroupPermissions$(): Observable {\n return this.groups$.pipe(\n map(groups =>\n this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [],\n ),\n map(permissions =>\n permissions.map(\n permission =>\n (({\n ...permission,\n margin: findMargin(permissions, permission),\n isGranted: this.permissions.find(per => per.name === permission.name).isGranted,\n } as any) as PermissionWithMargin),\n ),\n ),\n );\n }\n\n constructor(private store: Store, private renderer: Renderer2) {}\n\n ngOnInit(): void {}\n\n getChecked(name: string) {\n return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;\n }\n\n isGrantedByRole(grantedProviders: PermissionManagement.GrantedProvider[]): boolean {\n if (grantedProviders.length) {\n return grantedProviders.findIndex(p => p.providerName === 'Role') > -1;\n }\n return false;\n }\n\n onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {\n if (clickedPermission.isGranted && this.isGrantedByRole(clickedPermission.grantedProviders)) return;\n\n setTimeout(() => {\n this.permissions = this.permissions.map(per => {\n if (clickedPermission.name === per.name) {\n return { ...per, isGranted: !per.isGranted };\n } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {\n return { ...per, isGranted: false };\n } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {\n return { ...per, isGranted: true };\n }\n\n return per;\n });\n\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n }\n\n setTabCheckboxState() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n const selectedPermissions = permissions.filter(per => per.isGranted);\n const element = document.querySelector('#select-all-in-this-tabs') as any;\n\n if (selectedPermissions.length === permissions.length) {\n element.indeterminate = false;\n this.selectThisTab = true;\n } else if (selectedPermissions.length === 0) {\n element.indeterminate = false;\n this.selectThisTab = false;\n } else {\n element.indeterminate = true;\n }\n });\n }\n\n setGrantCheckboxState() {\n const selectedAllPermissions = this.permissions.filter(per => per.isGranted);\n const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any;\n\n if (selectedAllPermissions.length === this.permissions.length) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = true;\n } else if (selectedAllPermissions.length === 0) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = false;\n } else {\n checkboxElement.indeterminate = true;\n }\n }\n\n onClickSelectThisTab() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n permissions.forEach(permission => {\n if (permission.isGranted && this.isGrantedByRole(permission.grantedProviders)) return;\n\n const index = this.permissions.findIndex(per => per.name === permission.name);\n\n this.permissions = [\n ...this.permissions.slice(0, index),\n { ...this.permissions[index], isGranted: !this.selectThisTab },\n ...this.permissions.slice(index + 1),\n ];\n });\n });\n\n this.setGrantCheckboxState();\n }\n\n onClickSelectAll() {\n this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab }));\n\n this.selectThisTab = !this.selectAllTab;\n }\n\n onChangeGroup(group: PermissionManagement.Group) {\n this.selectedGroup = group;\n this.setTabCheckboxState();\n }\n\n submit() {\n this.modalBusy = true;\n const unchangedPermissions = getPermissions(\n this.store.selectSnapshot(PermissionManagementState.getPermissionGroups),\n );\n\n const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions\n .filter(per =>\n unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true,\n )\n .map(({ name, isGranted }) => ({ name, isGranted }));\n\n if (changedPermissions.length) {\n this.store\n .dispatch(\n new UpdatePermissions({\n providerKey: this.providerKey,\n providerName: this.providerName,\n permissions: changedPermissions,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n } else {\n this.modalBusy = false;\n this.visible = false;\n }\n }\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.store\n .dispatch(new GetPermissions({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('PermissionManagementState', 'permissionRes'))\n .subscribe((permissionRes: PermissionManagement.Response) => {\n this.selectedGroup = permissionRes.groups[0];\n this.permissions = getPermissions(permissionRes.groups);\n\n this.visible = true;\n });\n }\n\n initModal() {\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n\nfunction findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) {\n const parentPermission = permissions.find(per => per.name === permission.parentName);\n\n if (parentPermission && parentPermission.parentName) {\n let margin = 20;\n return (margin += findMargin(permissions, parentPermission));\n }\n\n return parentPermission ? 20 : 0;\n}\n\nfunction getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] {\n return groups.reduce((acc, val) => [...acc, ...val.permissions], []);\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { PermissionManagementComponent } from './components/permission-management.component';\nimport { PermissionManagementState } from './states/permission-management.state';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\n\n@NgModule({\n declarations: [PermissionManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule],\n exports: [PermissionManagementComponent],\n})\nexport class PermissionManagementModule {}\n","export namespace PermissionManagement {\n export interface State {\n permissionRes: Response;\n }\n\n export interface Response {\n entityDisplayName: string;\n groups: Group[];\n }\n\n export interface Group {\n name: string;\n displayName: string;\n permissions: Permission[];\n }\n\n export interface MinimumPermission {\n name: string;\n isGranted: boolean;\n }\n\n export interface Permission extends MinimumPermission {\n displayName: string;\n parentName: string;\n allowedProviders: string[];\n grantedProviders: GrantedProvider[];\n }\n\n export interface GrantedProvider {\n providerName: string;\n providerKey: string;\n }\n\n export interface UpdateRequest {\n permissions: MinimumPermission[];\n }\n}\n"],"names":["NgModule","Injectable","RestService","tap","tslib_1.__decorate","Action","Selector","State","EventEmitter","map","take","pluck","Component","Store","Renderer2","Input","Output","Select","Observable","CoreModule","ThemeSharedModule","NgxsModule","PerfectScrollbarModule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.permission-management.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.permission-management/lib/actions/permission-management.actions.ts","ng://@abp/ng.permission-management/lib/services/permission-management.service.ts","ng://@abp/ng.permission-management/lib/states/permission-management.state.ts","ng://@abp/ng.permission-management/lib/components/permission-management.component.ts","ng://@abp/ng.permission-management/lib/permission-management.module.ts","ng://@abp/ng.permission-management/lib/models/permission-management.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { PermissionManagement } from '../models/permission-management';\n\nexport class GetPermissions {\n static readonly type = '[PermissionManagement] Get Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider) {}\n}\n\nexport class UpdatePermissions {\n static readonly type = '[PermissionManagement] Update Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Observable } from 'rxjs';\nimport { PermissionManagement } from '../models/permission-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionManagementService {\n constructor(private rest: RestService) {}\n\n getPermissions(params: PermissionManagement.GrantedProvider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/permissions',\n params,\n };\n\n return this.rest.request(request);\n }\n\n updatePermissions({\n permissions,\n providerKey,\n providerName,\n }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/permissions',\n body: { permissions },\n params: { providerKey, providerName },\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementService } from '../services/permission-management.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'PermissionManagementState',\n defaults: { permissionRes: {} } as PermissionManagement.State,\n})\nexport class PermissionManagementState {\n @Selector()\n static getPermissionGroups({ permissionRes }: PermissionManagement.State) {\n return permissionRes.groups || [];\n }\n\n @Selector()\n static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string {\n return permissionRes.entityDisplayName;\n }\n\n constructor(private permissionManagementService: PermissionManagementService) {}\n\n @Action(GetPermissions)\n permissionManagementGet({ patchState }: StateContext, { payload }: GetPermissions) {\n return this.permissionManagementService.getPermissions(payload).pipe(\n tap(permissionResponse =>\n patchState({\n permissionRes: permissionResponse,\n }),\n ),\n );\n }\n\n @Action(UpdatePermissions)\n permissionManagementUpdate(_, { payload }: UpdatePermissions) {\n return this.permissionManagementService.updatePermissions(payload);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TrackByFunction,\n} from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { map, pluck, take } from 'rxjs/operators';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementState } from '../states/permission-management.state';\n\ntype PermissionWithMargin = PermissionManagement.Permission & { margin: number };\n\n@Component({\n selector: 'abp-permission-management',\n templateUrl: './permission-management.component.html',\n})\nexport class PermissionManagementComponent implements OnInit, OnChanges {\n @Input()\n providerName: string;\n\n @Input()\n providerKey: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n if (!this.selectedGroup) return;\n\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (!value) {\n this.selectedGroup = null;\n }\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(PermissionManagementState.getPermissionGroups)\n groups$: Observable;\n\n @Select(PermissionManagementState.getEntitiyDisplayName)\n entityName$: Observable;\n\n selectedGroup: PermissionManagement.Group;\n\n permissions: PermissionManagement.Permission[] = [];\n\n selectThisTab: boolean = false;\n\n selectAllTab: boolean = false;\n\n modalBusy: boolean = false;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n get selectedGroupPermissions$(): Observable {\n return this.groups$.pipe(\n map(groups =>\n this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [],\n ),\n map(permissions =>\n permissions.map(\n permission =>\n (({\n ...permission,\n margin: findMargin(permissions, permission),\n isGranted: this.permissions.find(per => per.name === permission.name).isGranted,\n } as any) as PermissionWithMargin),\n ),\n ),\n );\n }\n\n constructor(private store: Store, private renderer: Renderer2) {}\n\n ngOnInit(): void {}\n\n getChecked(name: string) {\n return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;\n }\n\n isGrantedByRole(grantedProviders: PermissionManagement.GrantedProvider[]): boolean {\n if (grantedProviders.length) {\n return grantedProviders.findIndex(p => p.providerName === 'Role') > -1;\n }\n return false;\n }\n\n onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {\n if (clickedPermission.isGranted && this.isGrantedByRole(clickedPermission.grantedProviders)) return;\n\n setTimeout(() => {\n this.permissions = this.permissions.map(per => {\n if (clickedPermission.name === per.name) {\n return { ...per, isGranted: !per.isGranted };\n } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {\n return { ...per, isGranted: false };\n } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {\n return { ...per, isGranted: true };\n }\n\n return per;\n });\n\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n }\n\n setTabCheckboxState() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n const selectedPermissions = permissions.filter(per => per.isGranted);\n const element = document.querySelector('#select-all-in-this-tabs') as any;\n\n if (selectedPermissions.length === permissions.length) {\n element.indeterminate = false;\n this.selectThisTab = true;\n } else if (selectedPermissions.length === 0) {\n element.indeterminate = false;\n this.selectThisTab = false;\n } else {\n element.indeterminate = true;\n }\n });\n }\n\n setGrantCheckboxState() {\n const selectedAllPermissions = this.permissions.filter(per => per.isGranted);\n const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any;\n\n if (selectedAllPermissions.length === this.permissions.length) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = true;\n } else if (selectedAllPermissions.length === 0) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = false;\n } else {\n checkboxElement.indeterminate = true;\n }\n }\n\n onClickSelectThisTab() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n permissions.forEach(permission => {\n if (permission.isGranted && this.isGrantedByRole(permission.grantedProviders)) return;\n\n const index = this.permissions.findIndex(per => per.name === permission.name);\n\n this.permissions = [\n ...this.permissions.slice(0, index),\n { ...this.permissions[index], isGranted: !this.selectThisTab },\n ...this.permissions.slice(index + 1),\n ];\n });\n });\n\n this.setGrantCheckboxState();\n }\n\n onClickSelectAll() {\n this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab }));\n\n this.selectThisTab = !this.selectAllTab;\n }\n\n onChangeGroup(group: PermissionManagement.Group) {\n this.selectedGroup = group;\n this.setTabCheckboxState();\n }\n\n submit() {\n this.modalBusy = true;\n const unchangedPermissions = getPermissions(\n this.store.selectSnapshot(PermissionManagementState.getPermissionGroups),\n );\n\n const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions\n .filter(per =>\n unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true,\n )\n .map(({ name, isGranted }) => ({ name, isGranted }));\n\n if (changedPermissions.length) {\n this.store\n .dispatch(\n new UpdatePermissions({\n providerKey: this.providerKey,\n providerName: this.providerName,\n permissions: changedPermissions,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n } else {\n this.modalBusy = false;\n this.visible = false;\n }\n }\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.store\n .dispatch(new GetPermissions({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('PermissionManagementState', 'permissionRes'))\n .subscribe((permissionRes: PermissionManagement.Response) => {\n this.selectedGroup = permissionRes.groups[0];\n this.permissions = getPermissions(permissionRes.groups);\n\n this.visible = true;\n });\n }\n\n initModal() {\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n\nfunction findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) {\n const parentPermission = permissions.find(per => per.name === permission.parentName);\n\n if (parentPermission && parentPermission.parentName) {\n let margin = 20;\n return (margin += findMargin(permissions, parentPermission));\n }\n\n return parentPermission ? 20 : 0;\n}\n\nfunction getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] {\n return groups.reduce((acc, val) => [...acc, ...val.permissions], []);\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { PermissionManagementComponent } from './components/permission-management.component';\nimport { PermissionManagementState } from './states/permission-management.state';\n\n@NgModule({\n declarations: [PermissionManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState])],\n exports: [PermissionManagementComponent],\n})\nexport class PermissionManagementModule {}\n","export namespace PermissionManagement {\n export interface State {\n permissionRes: Response;\n }\n\n export interface Response {\n entityDisplayName: string;\n groups: Group[];\n }\n\n export interface Group {\n name: string;\n displayName: string;\n permissions: Permission[];\n }\n\n export interface MinimumPermission {\n name: string;\n isGranted: boolean;\n }\n\n export interface Permission extends MinimumPermission {\n displayName: string;\n parentName: string;\n allowedProviders: string[];\n grantedProviders: GrantedProvider[];\n }\n\n export interface GrantedProvider {\n providerName: string;\n providerKey: string;\n }\n\n export interface UpdateRequest {\n permissions: MinimumPermission[];\n }\n}\n"],"names":["Injectable","RestService","tap","tslib_1.__decorate","Action","Selector","State","EventEmitter","map","take","pluck","Component","Store","Renderer2","Input","Output","Select","Observable","NgModule","CoreModule","ThemeSharedModule","NgxsModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js b/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js index 82f307aaaf..d28cdea033 100644 --- a/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js +++ b/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js @@ -1,2 +1,2 @@ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core"),require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@ngxs/store"),require("rxjs"),require("rxjs/operators"),require("ngx-perfect-scrollbar")):"function"==typeof define&&define.amd?define("@abp/ng.permission-management",["exports","@angular/core","@abp/ng.core","@abp/ng.theme.shared","@ngxs/store","rxjs","rxjs/operators","ngx-perfect-scrollbar"],n):n(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng["permission-management"]={}),e.ng.core,e.ng_core,e.ng_theme_shared,e.store,e.rxjs,e.rxjs.operators,e.ngxPerfectScrollbar)}(this,function(e,n,t,i,r,s,o,a){"use strict";var c=function(){return(c=Object.assign||function(e){for(var n,t=1,i=arguments.length;t=0;a--)(r=e[a])&&(o=(s<3?r(o):s>3?r(n,t,o):r(n,t))||o);return s>3&&o&&Object.defineProperty(n,t,o),o}function p(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)}function u(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var i,r,s=t.call(e),o=[];try{for(;(void 0===n||n-- >0)&&!(i=s.next()).done;)o.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(t=s.return)&&t.call(s)}finally{if(r)throw r.error}}return o}function m(){for(var e=[],n=0;n-1},e.prototype.onClickCheckbox=function(e,n){var t=this;e.isGranted&&this.isGrantedByRole(e.grantedProviders)||setTimeout(function(){t.permissions=t.permissions.map(function(n){return e.name===n.name?c({},n,{isGranted:!n.isGranted}):e.name===n.parentName&&e.isGranted?c({},n,{isGranted:!1}):e.parentName!==n.name||e.isGranted?n:c({},n,{isGranted:!0})}),t.setTabCheckboxState(),t.setGrantCheckboxState()},0)},e.prototype.setTabCheckboxState=function(){var e=this;this.selectedGroupPermissions$.pipe(o.take(1)).subscribe(function(n){var t=n.filter(function(e){return e.isGranted}),i=document.querySelector("#select-all-in-this-tabs");t.length===n.length?(i.indeterminate=!1,e.selectThisTab=!0):0===t.length?(i.indeterminate=!1,e.selectThisTab=!1):i.indeterminate=!0})},e.prototype.setGrantCheckboxState=function(){var e=this.permissions.filter(function(e){return e.isGranted}),n=document.querySelector("#select-all-in-all-tabs");e.length===this.permissions.length?(n.indeterminate=!1,this.selectAllTab=!0):0===e.length?(n.indeterminate=!1,this.selectAllTab=!1):n.indeterminate=!0},e.prototype.onClickSelectThisTab=function(){var e=this;this.selectedGroupPermissions$.pipe(o.take(1)).subscribe(function(n){n.forEach(function(n){if(!n.isGranted||!e.isGrantedByRole(n.grantedProviders)){var t=e.permissions.findIndex(function(e){return e.name===n.name});e.permissions=m(e.permissions.slice(0,t),[c({},e.permissions[t],{isGranted:!e.selectThisTab})],e.permissions.slice(t+1))}})}),this.setGrantCheckboxState()},e.prototype.onClickSelectAll=function(){var e=this;this.permissions=this.permissions.map(function(n){return c({},n,{isGranted:!e.selectAllTab})}),this.selectThisTab=!this.selectAllTab},e.prototype.onChangeGroup=function(e){this.selectedGroup=e,this.setTabCheckboxState()},e.prototype.submit=function(){var e=this;this.modalBusy=!0;var n=G(this.store.selectSnapshot(g.getPermissionGroups)),t=this.permissions.filter(function(e){return n.find(function(n){return n.name===e.name}).isGranted!==e.isGranted}).map(function(e){return{name:e.name,isGranted:e.isGranted}});t.length?this.store.dispatch(new f({providerKey:this.providerKey,providerName:this.providerName,permissions:t})).subscribe(function(){e.modalBusy=!1,e.visible=!1}):(this.modalBusy=!1,this.visible=!1)},e.prototype.openModal=function(){var e=this;if(!this.providerKey||!this.providerName)throw new Error("Provider Key and Provider Name are required.");this.store.dispatch(new b({providerKey:this.providerKey,providerName:this.providerName})).pipe(o.pluck("PermissionManagementState","permissionRes")).subscribe(function(n){e.selectedGroup=n.groups[0],e.permissions=G(n.groups),e.visible=!0})},e.prototype.initModal=function(){this.setTabCheckboxState(),this.setGrantCheckboxState()},e.prototype.ngOnChanges=function(e){var n=e.visible;n&&(n.currentValue?this.openModal():!1===n.currentValue&&this.visible&&(this.visible=!1))},e.decorators=[{type:n.Component,args:[{selector:"abp-permission-management",template:'\n \n \n

{{ \'AbpPermissionManagement::Permissions\' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n \n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n \n
\n
\n \n
\n \n \n {{ \'AbpIdentity::Save\' | abpLocalization }}\n \n
\n
\n'}]}],e.ctorParameters=function(){return[{type:r.Store},{type:n.Renderer2}]},e.propDecorators={providerName:[{type:n.Input}],providerKey:[{type:n.Input}],visible:[{type:n.Input}],visibleChange:[{type:n.Output}]},l([r.Select(g.getPermissionGroups),p("design:type",s.Observable)],e.prototype,"groups$",void 0),l([r.Select(g.getEntitiyDisplayName),p("design:type",s.Observable)],e.prototype,"entityName$",void 0),e}();function v(e,n){var t=e.find(function(e){return e.name===n.parentName});return t&&t.parentName?20+v(e,t):t?20:0}function G(e){return e.reduce(function(e,n){return m(e,n.permissions)},[])}var P,k=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{declarations:[y],imports:[t.CoreModule,i.ThemeSharedModule,r.NgxsModule.forFeature([g]),a.PerfectScrollbarModule],exports:[y]}]}],e}();!function(e){function n(){}function t(){}function i(){}function r(){}function s(){}function o(){}function a(){}e.State=n,e.Response=t,e.Group=i,e.MinimumPermission=r,e.Permission=s,e.GrantedProvider=o,e.UpdateRequest=a}(P||(P={})),e.GetPermissions=b,e.PermissionManagementComponent=y,e.PermissionManagementModule=k,e.PermissionManagementService=h,e.PermissionManagementState=g,e.RootPermissionManagementModule=d,e.UpdatePermissions=f,e.ɵa=y,e.ɵb=g,e.ɵc=h,e.ɵd=b,e.ɵe=f,Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@angular/core"),require("@ngxs/store"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@abp/ng.permission-management",["exports","@abp/ng.core","@abp/ng.theme.shared","@angular/core","@ngxs/store","rxjs","rxjs/operators"],n):n(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng["permission-management"]={}),e.ng_core,e.ng_theme_shared,e.ng.core,e.store,e.rxjs,e.rxjs.operators)}(this,function(e,n,t,i,r,s,o){"use strict";var a=function(){return(a=Object.assign||function(e){for(var n,t=1,i=arguments.length;t=0;a--)(r=e[a])&&(o=(s<3?r(o):s>3?r(n,t,o):r(n,t))||o);return s>3&&o&&Object.defineProperty(n,t,o),o}function c(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)}function l(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var i,r,s=t.call(e),o=[];try{for(;(void 0===n||n-- >0)&&!(i=s.next()).done;)o.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(t=s.return)&&t.call(s)}finally{if(r)throw r.error}}return o}function u(){for(var e=[],n=0;n-1},e.prototype.onClickCheckbox=function(e,n){var t=this;e.isGranted&&this.isGrantedByRole(e.grantedProviders)||setTimeout(function(){t.permissions=t.permissions.map(function(n){return e.name===n.name?a({},n,{isGranted:!n.isGranted}):e.name===n.parentName&&e.isGranted?a({},n,{isGranted:!1}):e.parentName!==n.name||e.isGranted?n:a({},n,{isGranted:!0})}),t.setTabCheckboxState(),t.setGrantCheckboxState()},0)},e.prototype.setTabCheckboxState=function(){var e=this;this.selectedGroupPermissions$.pipe(o.take(1)).subscribe(function(n){var t=n.filter(function(e){return e.isGranted}),i=document.querySelector("#select-all-in-this-tabs");t.length===n.length?(i.indeterminate=!1,e.selectThisTab=!0):0===t.length?(i.indeterminate=!1,e.selectThisTab=!1):i.indeterminate=!0})},e.prototype.setGrantCheckboxState=function(){var e=this.permissions.filter(function(e){return e.isGranted}),n=document.querySelector("#select-all-in-all-tabs");e.length===this.permissions.length?(n.indeterminate=!1,this.selectAllTab=!0):0===e.length?(n.indeterminate=!1,this.selectAllTab=!1):n.indeterminate=!0},e.prototype.onClickSelectThisTab=function(){var e=this;this.selectedGroupPermissions$.pipe(o.take(1)).subscribe(function(n){n.forEach(function(n){if(!n.isGranted||!e.isGrantedByRole(n.grantedProviders)){var t=e.permissions.findIndex(function(e){return e.name===n.name});e.permissions=u(e.permissions.slice(0,t),[a({},e.permissions[t],{isGranted:!e.selectThisTab})],e.permissions.slice(t+1))}})}),this.setGrantCheckboxState()},e.prototype.onClickSelectAll=function(){var e=this;this.permissions=this.permissions.map(function(n){return a({},n,{isGranted:!e.selectAllTab})}),this.selectThisTab=!this.selectAllTab},e.prototype.onChangeGroup=function(e){this.selectedGroup=e,this.setTabCheckboxState()},e.prototype.submit=function(){var e=this;this.modalBusy=!0;var n=g(this.store.selectSnapshot(f.getPermissionGroups)),t=this.permissions.filter(function(e){return n.find(function(n){return n.name===e.name}).isGranted!==e.isGranted}).map(function(e){return{name:e.name,isGranted:e.isGranted}});t.length?this.store.dispatch(new d({providerKey:this.providerKey,providerName:this.providerName,permissions:t})).subscribe(function(){e.modalBusy=!1,e.visible=!1}):(this.modalBusy=!1,this.visible=!1)},e.prototype.openModal=function(){var e=this;if(!this.providerKey||!this.providerName)throw new Error("Provider Key and Provider Name are required.");this.store.dispatch(new m({providerKey:this.providerKey,providerName:this.providerName})).pipe(o.pluck("PermissionManagementState","permissionRes")).subscribe(function(n){e.selectedGroup=n.groups[0],e.permissions=g(n.groups),e.visible=!0})},e.prototype.initModal=function(){this.setTabCheckboxState(),this.setGrantCheckboxState()},e.prototype.ngOnChanges=function(e){var n=e.visible;n&&(n.currentValue?this.openModal():!1===n.currentValue&&this.visible&&(this.visible=!1))},e.decorators=[{type:i.Component,args:[{selector:"abp-permission-management",template:'\n \n \n

{{ \'AbpPermissionManagement::Permissions\' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n \n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n
\n
\n \n
\n \n \n {{ \'AbpIdentity::Save\' | abpLocalization }}\n \n
\n
\n'}]}],e.ctorParameters=function(){return[{type:r.Store},{type:i.Renderer2}]},e.propDecorators={providerName:[{type:i.Input}],providerKey:[{type:i.Input}],visible:[{type:i.Input}],visibleChange:[{type:i.Output}]},p([r.Select(f.getPermissionGroups),c("design:type",s.Observable)],e.prototype,"groups$",void 0),p([r.Select(f.getEntitiyDisplayName),c("design:type",s.Observable)],e.prototype,"entityName$",void 0),e}();function y(e,n){var t=e.find(function(e){return e.name===n.parentName});return t&&t.parentName?20+y(e,t):t?20:0}function g(e){return e.reduce(function(e,n){return u(e,n.permissions)},[])}var v,G=function(){function e(){}return e.decorators=[{type:i.NgModule,args:[{declarations:[h],imports:[n.CoreModule,t.ThemeSharedModule,r.NgxsModule.forFeature([f])],exports:[h]}]}],e}();!function(e){function n(){}function t(){}function i(){}function r(){}function s(){}function o(){}function a(){}e.State=n,e.Response=t,e.Group=i,e.MinimumPermission=r,e.Permission=s,e.GrantedProvider=o,e.UpdateRequest=a}(v||(v={})),e.GetPermissions=m,e.PermissionManagementComponent=h,e.PermissionManagementModule=G,e.PermissionManagementService=b,e.PermissionManagementState=f,e.UpdatePermissions=d,e.ɵa=h,e.ɵb=f,e.ɵc=b,e.ɵd=m,e.ɵe=d,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=abp-ng.permission-management.umd.min.js.map \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js.map b/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js.map index 6d0a556bba..7f392f42f5 100644 --- a/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js.map +++ b/npm/ng-packs/dist/permission-management/bundles/abp-ng.permission-management.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.permission-management/lib/root-permission-management.module.ts","ng://@abp/ng.permission-management/lib/actions/permission-management.actions.ts","ng://@abp/ng.permission-management/lib/services/permission-management.service.ts","ng://@abp/ng.permission-management/lib/states/permission-management.state.ts","ng://@abp/ng.permission-management/lib/components/permission-management.component.ts","ng://@abp/ng.permission-management/lib/permission-management.module.ts","ng://@abp/ng.permission-management/lib/models/permission-management.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","__spread","concat","RootPermissionManagementModule","forRoot","ngModule","providers","NgModule","args","GetPermissions","payload","type","UpdatePermissions","PermissionManagementService","rest","getPermissions","params","request","method","url","updatePermissions","_a","body","permissions","providerKey","providerName","Injectable","providedIn","RestService","PermissionManagementState","permissionManagementService","getPermissionGroups","permissionRes","groups","getEntitiyDisplayName","entityDisplayName","permissionManagementGet","_b","patchState","pipe","tap","permissionResponse","permissionManagementUpdate","_","tslib_1.__decorate","Action","Selector","State","name","defaults","PermissionManagementComponent","store","renderer","visibleChange","EventEmitter","selectThisTab","selectAllTab","modalBusy","trackByFn","item","_visible","selectedGroup","emit","_this","groups$","map","find","group","permission","margin","findMargin","isGranted","per","ngOnInit","getChecked","isGrantedByRole","grantedProviders","findIndex","onClickCheckbox","clickedPermission","setTimeout","parentName","setTabCheckboxState","setGrantCheckboxState","selectedGroupPermissions$","take","subscribe","selectedPermissions","filter","element","document","querySelector","indeterminate","selectedAllPermissions","checkboxElement","onClickSelectThisTab","forEach","index","slice","onClickSelectAll","onChangeGroup","submit","unchangedPermissions","selectSnapshot","changedPermissions","unchanged","dispatch","visible","openModal","Error","pluck","initModal","ngOnChanges","currentValue","Component","selector","template","Store","Renderer2","Input","Output","Select","Observable","parentPermission","reduce","acc","val","PermissionManagement","PermissionManagementModule","declarations","imports","CoreModule","ThemeSharedModule","NgxsModule","forFeature","PerfectScrollbarModule","exports","Response","Group","MinimumPermission","Permission","GrantedProvider","UpdateRequest"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootPermissionManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootPermissionManagementModule,\n providers: [],\n };\n }\n}\n","import { PermissionManagement } from '../models/permission-management';\n\nexport class GetPermissions {\n static readonly type = '[PermissionManagement] Get Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider) {}\n}\n\nexport class UpdatePermissions {\n static readonly type = '[PermissionManagement] Update Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Observable } from 'rxjs';\nimport { PermissionManagement } from '../models/permission-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionManagementService {\n constructor(private rest: RestService) {}\n\n getPermissions(params: PermissionManagement.GrantedProvider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/permissions',\n params,\n };\n\n return this.rest.request(request);\n }\n\n updatePermissions({\n permissions,\n providerKey,\n providerName,\n }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/permissions',\n body: { permissions },\n params: { providerKey, providerName },\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementService } from '../services/permission-management.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'PermissionManagementState',\n defaults: { permissionRes: {} } as PermissionManagement.State,\n})\nexport class PermissionManagementState {\n @Selector()\n static getPermissionGroups({ permissionRes }: PermissionManagement.State) {\n return permissionRes.groups || [];\n }\n\n @Selector()\n static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string {\n return permissionRes.entityDisplayName;\n }\n\n constructor(private permissionManagementService: PermissionManagementService) {}\n\n @Action(GetPermissions)\n permissionManagementGet({ patchState }: StateContext, { payload }: GetPermissions) {\n return this.permissionManagementService.getPermissions(payload).pipe(\n tap(permissionResponse =>\n patchState({\n permissionRes: permissionResponse,\n }),\n ),\n );\n }\n\n @Action(UpdatePermissions)\n permissionManagementUpdate(_, { payload }: UpdatePermissions) {\n return this.permissionManagementService.updatePermissions(payload);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TrackByFunction,\n} from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { map, pluck, take } from 'rxjs/operators';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementState } from '../states/permission-management.state';\n\ntype PermissionWithMargin = PermissionManagement.Permission & { margin: number };\n\n@Component({\n selector: 'abp-permission-management',\n templateUrl: './permission-management.component.html',\n})\nexport class PermissionManagementComponent implements OnInit, OnChanges {\n @Input()\n providerName: string;\n\n @Input()\n providerKey: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n if (!this.selectedGroup) return;\n\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (!value) {\n this.selectedGroup = null;\n }\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(PermissionManagementState.getPermissionGroups)\n groups$: Observable;\n\n @Select(PermissionManagementState.getEntitiyDisplayName)\n entityName$: Observable;\n\n selectedGroup: PermissionManagement.Group;\n\n permissions: PermissionManagement.Permission[] = [];\n\n selectThisTab: boolean = false;\n\n selectAllTab: boolean = false;\n\n modalBusy: boolean = false;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n get selectedGroupPermissions$(): Observable {\n return this.groups$.pipe(\n map(groups =>\n this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [],\n ),\n map(permissions =>\n permissions.map(\n permission =>\n (({\n ...permission,\n margin: findMargin(permissions, permission),\n isGranted: this.permissions.find(per => per.name === permission.name).isGranted,\n } as any) as PermissionWithMargin),\n ),\n ),\n );\n }\n\n constructor(private store: Store, private renderer: Renderer2) {}\n\n ngOnInit(): void {}\n\n getChecked(name: string) {\n return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;\n }\n\n isGrantedByRole(grantedProviders: PermissionManagement.GrantedProvider[]): boolean {\n if (grantedProviders.length) {\n return grantedProviders.findIndex(p => p.providerName === 'Role') > -1;\n }\n return false;\n }\n\n onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {\n if (clickedPermission.isGranted && this.isGrantedByRole(clickedPermission.grantedProviders)) return;\n\n setTimeout(() => {\n this.permissions = this.permissions.map(per => {\n if (clickedPermission.name === per.name) {\n return { ...per, isGranted: !per.isGranted };\n } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {\n return { ...per, isGranted: false };\n } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {\n return { ...per, isGranted: true };\n }\n\n return per;\n });\n\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n }\n\n setTabCheckboxState() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n const selectedPermissions = permissions.filter(per => per.isGranted);\n const element = document.querySelector('#select-all-in-this-tabs') as any;\n\n if (selectedPermissions.length === permissions.length) {\n element.indeterminate = false;\n this.selectThisTab = true;\n } else if (selectedPermissions.length === 0) {\n element.indeterminate = false;\n this.selectThisTab = false;\n } else {\n element.indeterminate = true;\n }\n });\n }\n\n setGrantCheckboxState() {\n const selectedAllPermissions = this.permissions.filter(per => per.isGranted);\n const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any;\n\n if (selectedAllPermissions.length === this.permissions.length) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = true;\n } else if (selectedAllPermissions.length === 0) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = false;\n } else {\n checkboxElement.indeterminate = true;\n }\n }\n\n onClickSelectThisTab() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n permissions.forEach(permission => {\n if (permission.isGranted && this.isGrantedByRole(permission.grantedProviders)) return;\n\n const index = this.permissions.findIndex(per => per.name === permission.name);\n\n this.permissions = [\n ...this.permissions.slice(0, index),\n { ...this.permissions[index], isGranted: !this.selectThisTab },\n ...this.permissions.slice(index + 1),\n ];\n });\n });\n\n this.setGrantCheckboxState();\n }\n\n onClickSelectAll() {\n this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab }));\n\n this.selectThisTab = !this.selectAllTab;\n }\n\n onChangeGroup(group: PermissionManagement.Group) {\n this.selectedGroup = group;\n this.setTabCheckboxState();\n }\n\n submit() {\n this.modalBusy = true;\n const unchangedPermissions = getPermissions(\n this.store.selectSnapshot(PermissionManagementState.getPermissionGroups),\n );\n\n const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions\n .filter(per =>\n unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true,\n )\n .map(({ name, isGranted }) => ({ name, isGranted }));\n\n if (changedPermissions.length) {\n this.store\n .dispatch(\n new UpdatePermissions({\n providerKey: this.providerKey,\n providerName: this.providerName,\n permissions: changedPermissions,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n } else {\n this.modalBusy = false;\n this.visible = false;\n }\n }\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.store\n .dispatch(new GetPermissions({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('PermissionManagementState', 'permissionRes'))\n .subscribe((permissionRes: PermissionManagement.Response) => {\n this.selectedGroup = permissionRes.groups[0];\n this.permissions = getPermissions(permissionRes.groups);\n\n this.visible = true;\n });\n }\n\n initModal() {\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n\nfunction findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) {\n const parentPermission = permissions.find(per => per.name === permission.parentName);\n\n if (parentPermission && parentPermission.parentName) {\n let margin = 20;\n return (margin += findMargin(permissions, parentPermission));\n }\n\n return parentPermission ? 20 : 0;\n}\n\nfunction getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] {\n return groups.reduce((acc, val) => [...acc, ...val.permissions], []);\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { PermissionManagementComponent } from './components/permission-management.component';\nimport { PermissionManagementState } from './states/permission-management.state';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\n\n@NgModule({\n declarations: [PermissionManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule],\n exports: [PermissionManagementComponent],\n})\nexport class PermissionManagementModule {}\n","export namespace PermissionManagement {\n export interface State {\n permissionRes: Response;\n }\n\n export interface Response {\n entityDisplayName: string;\n groups: Group[];\n }\n\n export interface Group {\n name: string;\n displayName: string;\n permissions: Permission[];\n }\n\n export interface MinimumPermission {\n name: string;\n isGranted: boolean;\n }\n\n export interface Permission extends MinimumPermission {\n displayName: string;\n parentName: string;\n allowedProviders: string[];\n grantedProviders: GrantedProvider[];\n }\n\n export interface GrantedProvider {\n providerName: string;\n providerKey: string;\n }\n\n export interface UpdateRequest {\n permissions: MinimumPermission[];\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.permission-management/lib/actions/permission-management.actions.ts","ng://@abp/ng.permission-management/lib/services/permission-management.service.ts","ng://@abp/ng.permission-management/lib/states/permission-management.state.ts","ng://@abp/ng.permission-management/lib/components/permission-management.component.ts","ng://@abp/ng.permission-management/lib/permission-management.module.ts","ng://@abp/ng.permission-management/lib/models/permission-management.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","__spread","concat","GetPermissions","payload","type","UpdatePermissions","PermissionManagementService","rest","getPermissions","params","request","method","url","updatePermissions","_a","body","permissions","providerKey","providerName","Injectable","args","providedIn","RestService","PermissionManagementState","permissionManagementService","getPermissionGroups","permissionRes","groups","getEntitiyDisplayName","entityDisplayName","permissionManagementGet","_b","patchState","pipe","tap","permissionResponse","permissionManagementUpdate","_","tslib_1.__decorate","Action","Selector","State","name","defaults","PermissionManagementComponent","store","renderer","visibleChange","EventEmitter","selectThisTab","selectAllTab","modalBusy","trackByFn","item","_visible","selectedGroup","emit","_this","groups$","map","find","group","permission","margin","findMargin","isGranted","per","ngOnInit","getChecked","isGrantedByRole","grantedProviders","findIndex","onClickCheckbox","clickedPermission","setTimeout","parentName","setTabCheckboxState","setGrantCheckboxState","selectedGroupPermissions$","take","subscribe","selectedPermissions","filter","element","document","querySelector","indeterminate","selectedAllPermissions","checkboxElement","onClickSelectThisTab","forEach","index","slice","onClickSelectAll","onChangeGroup","submit","unchangedPermissions","selectSnapshot","changedPermissions","unchanged","dispatch","visible","openModal","Error","pluck","initModal","ngOnChanges","currentValue","Component","selector","template","Store","Renderer2","Input","Output","Select","Observable","parentPermission","reduce","acc","val","PermissionManagement","PermissionManagementModule","NgModule","declarations","imports","CoreModule","ThemeSharedModule","NgxsModule","forFeature","exports","Response","Group","MinimumPermission","Permission","GrantedProvider","UpdateRequest"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { PermissionManagement } from '../models/permission-management';\n\nexport class GetPermissions {\n static readonly type = '[PermissionManagement] Get Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider) {}\n}\n\nexport class UpdatePermissions {\n static readonly type = '[PermissionManagement] Update Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Observable } from 'rxjs';\nimport { PermissionManagement } from '../models/permission-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionManagementService {\n constructor(private rest: RestService) {}\n\n getPermissions(params: PermissionManagement.GrantedProvider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/permissions',\n params,\n };\n\n return this.rest.request(request);\n }\n\n updatePermissions({\n permissions,\n providerKey,\n providerName,\n }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/permissions',\n body: { permissions },\n params: { providerKey, providerName },\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementService } from '../services/permission-management.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'PermissionManagementState',\n defaults: { permissionRes: {} } as PermissionManagement.State,\n})\nexport class PermissionManagementState {\n @Selector()\n static getPermissionGroups({ permissionRes }: PermissionManagement.State) {\n return permissionRes.groups || [];\n }\n\n @Selector()\n static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string {\n return permissionRes.entityDisplayName;\n }\n\n constructor(private permissionManagementService: PermissionManagementService) {}\n\n @Action(GetPermissions)\n permissionManagementGet({ patchState }: StateContext, { payload }: GetPermissions) {\n return this.permissionManagementService.getPermissions(payload).pipe(\n tap(permissionResponse =>\n patchState({\n permissionRes: permissionResponse,\n }),\n ),\n );\n }\n\n @Action(UpdatePermissions)\n permissionManagementUpdate(_, { payload }: UpdatePermissions) {\n return this.permissionManagementService.updatePermissions(payload);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TrackByFunction,\n} from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { map, pluck, take } from 'rxjs/operators';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementState } from '../states/permission-management.state';\n\ntype PermissionWithMargin = PermissionManagement.Permission & { margin: number };\n\n@Component({\n selector: 'abp-permission-management',\n templateUrl: './permission-management.component.html',\n})\nexport class PermissionManagementComponent implements OnInit, OnChanges {\n @Input()\n providerName: string;\n\n @Input()\n providerKey: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n if (!this.selectedGroup) return;\n\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (!value) {\n this.selectedGroup = null;\n }\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(PermissionManagementState.getPermissionGroups)\n groups$: Observable;\n\n @Select(PermissionManagementState.getEntitiyDisplayName)\n entityName$: Observable;\n\n selectedGroup: PermissionManagement.Group;\n\n permissions: PermissionManagement.Permission[] = [];\n\n selectThisTab: boolean = false;\n\n selectAllTab: boolean = false;\n\n modalBusy: boolean = false;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n get selectedGroupPermissions$(): Observable {\n return this.groups$.pipe(\n map(groups =>\n this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [],\n ),\n map(permissions =>\n permissions.map(\n permission =>\n (({\n ...permission,\n margin: findMargin(permissions, permission),\n isGranted: this.permissions.find(per => per.name === permission.name).isGranted,\n } as any) as PermissionWithMargin),\n ),\n ),\n );\n }\n\n constructor(private store: Store, private renderer: Renderer2) {}\n\n ngOnInit(): void {}\n\n getChecked(name: string) {\n return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;\n }\n\n isGrantedByRole(grantedProviders: PermissionManagement.GrantedProvider[]): boolean {\n if (grantedProviders.length) {\n return grantedProviders.findIndex(p => p.providerName === 'Role') > -1;\n }\n return false;\n }\n\n onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {\n if (clickedPermission.isGranted && this.isGrantedByRole(clickedPermission.grantedProviders)) return;\n\n setTimeout(() => {\n this.permissions = this.permissions.map(per => {\n if (clickedPermission.name === per.name) {\n return { ...per, isGranted: !per.isGranted };\n } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {\n return { ...per, isGranted: false };\n } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {\n return { ...per, isGranted: true };\n }\n\n return per;\n });\n\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n }\n\n setTabCheckboxState() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n const selectedPermissions = permissions.filter(per => per.isGranted);\n const element = document.querySelector('#select-all-in-this-tabs') as any;\n\n if (selectedPermissions.length === permissions.length) {\n element.indeterminate = false;\n this.selectThisTab = true;\n } else if (selectedPermissions.length === 0) {\n element.indeterminate = false;\n this.selectThisTab = false;\n } else {\n element.indeterminate = true;\n }\n });\n }\n\n setGrantCheckboxState() {\n const selectedAllPermissions = this.permissions.filter(per => per.isGranted);\n const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any;\n\n if (selectedAllPermissions.length === this.permissions.length) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = true;\n } else if (selectedAllPermissions.length === 0) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = false;\n } else {\n checkboxElement.indeterminate = true;\n }\n }\n\n onClickSelectThisTab() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n permissions.forEach(permission => {\n if (permission.isGranted && this.isGrantedByRole(permission.grantedProviders)) return;\n\n const index = this.permissions.findIndex(per => per.name === permission.name);\n\n this.permissions = [\n ...this.permissions.slice(0, index),\n { ...this.permissions[index], isGranted: !this.selectThisTab },\n ...this.permissions.slice(index + 1),\n ];\n });\n });\n\n this.setGrantCheckboxState();\n }\n\n onClickSelectAll() {\n this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab }));\n\n this.selectThisTab = !this.selectAllTab;\n }\n\n onChangeGroup(group: PermissionManagement.Group) {\n this.selectedGroup = group;\n this.setTabCheckboxState();\n }\n\n submit() {\n this.modalBusy = true;\n const unchangedPermissions = getPermissions(\n this.store.selectSnapshot(PermissionManagementState.getPermissionGroups),\n );\n\n const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions\n .filter(per =>\n unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true,\n )\n .map(({ name, isGranted }) => ({ name, isGranted }));\n\n if (changedPermissions.length) {\n this.store\n .dispatch(\n new UpdatePermissions({\n providerKey: this.providerKey,\n providerName: this.providerName,\n permissions: changedPermissions,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n } else {\n this.modalBusy = false;\n this.visible = false;\n }\n }\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.store\n .dispatch(new GetPermissions({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('PermissionManagementState', 'permissionRes'))\n .subscribe((permissionRes: PermissionManagement.Response) => {\n this.selectedGroup = permissionRes.groups[0];\n this.permissions = getPermissions(permissionRes.groups);\n\n this.visible = true;\n });\n }\n\n initModal() {\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n\nfunction findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) {\n const parentPermission = permissions.find(per => per.name === permission.parentName);\n\n if (parentPermission && parentPermission.parentName) {\n let margin = 20;\n return (margin += findMargin(permissions, parentPermission));\n }\n\n return parentPermission ? 20 : 0;\n}\n\nfunction getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] {\n return groups.reduce((acc, val) => [...acc, ...val.permissions], []);\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { PermissionManagementComponent } from './components/permission-management.component';\nimport { PermissionManagementState } from './states/permission-management.state';\n\n@NgModule({\n declarations: [PermissionManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState])],\n exports: [PermissionManagementComponent],\n})\nexport class PermissionManagementModule {}\n","export namespace PermissionManagement {\n export interface State {\n permissionRes: Response;\n }\n\n export interface Response {\n entityDisplayName: string;\n groups: Group[];\n }\n\n export interface Group {\n name: string;\n displayName: string;\n permissions: Permission[];\n }\n\n export interface MinimumPermission {\n name: string;\n isGranted: boolean;\n }\n\n export interface Permission extends MinimumPermission {\n displayName: string;\n parentName: string;\n allowedProviders: string[];\n grantedProviders: GrantedProvider[];\n }\n\n export interface GrantedProvider {\n providerName: string;\n providerKey: string;\n }\n\n export interface UpdateRequest {\n permissions: MinimumPermission[];\n }\n}\n"]} \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/esm2015/abp-ng.permission-management.js b/npm/ng-packs/dist/permission-management/esm2015/abp-ng.permission-management.js index 3743c8495f..a8be4b0a6d 100644 --- a/npm/ng-packs/dist/permission-management/esm2015/abp-ng.permission-management.js +++ b/npm/ng-packs/dist/permission-management/esm2015/abp-ng.permission-management.js @@ -5,9 +5,9 @@ /** * Generated bundle index. Do not edit. */ -export { RootPermissionManagementModule, PermissionManagementModule, GetPermissions, UpdatePermissions, PermissionManagementComponent, PermissionManagementService, PermissionManagementState } from './public-api'; +export { PermissionManagementModule, GetPermissions, UpdatePermissions, PermissionManagementComponent, PermissionManagementService, PermissionManagementState } from './public-api'; export { GetPermissions as ɵd, UpdatePermissions as ɵe } from './lib/actions/permission-management.actions'; export { PermissionManagementComponent as ɵa } from './lib/components/permission-management.component'; export { PermissionManagementService as ɵc } from './lib/services/permission-management.service'; export { PermissionManagementState as ɵb } from './lib/states/permission-management.state'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnBlcm1pc3Npb24tbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLnBlcm1pc3Npb24tbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscU1BQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pHLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUVyRyxPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDL0YsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0dldFBlcm1pc3Npb25zIGFzIMm1ZCxVcGRhdGVQZXJtaXNzaW9ucyBhcyDJtWV9IGZyb20gJy4vbGliL2FjdGlvbnMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuZXhwb3J0IHtQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG5leHBvcnQge1Blcm1pc3Npb25NYW5hZ2VtZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvbW9kZWxzL3Blcm1pc3Npb24tbWFuYWdlbWVudCc7XG5leHBvcnQge1Blcm1pc3Npb25NYW5hZ2VtZW50U2VydmljZSBhcyDJtWN9IGZyb20gJy4vbGliL3NlcnZpY2VzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7UGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuc3RhdGUnOyJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnBlcm1pc3Npb24tbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLnBlcm1pc3Npb24tbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscUtBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pHLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUVyRyxPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDL0YsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0dldFBlcm1pc3Npb25zIGFzIMm1ZCxVcGRhdGVQZXJtaXNzaW9ucyBhcyDJtWV9IGZyb20gJy4vbGliL2FjdGlvbnMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuZXhwb3J0IHtQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG5leHBvcnQge1Blcm1pc3Npb25NYW5hZ2VtZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvbW9kZWxzL3Blcm1pc3Npb24tbWFuYWdlbWVudCc7XG5leHBvcnQge1Blcm1pc3Npb25NYW5hZ2VtZW50U2VydmljZSBhcyDJtWN9IGZyb20gJy4vbGliL3NlcnZpY2VzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7UGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuc3RhdGUnOyJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/esm2015/lib/components/permission-management.component.js b/npm/ng-packs/dist/permission-management/esm2015/lib/components/permission-management.component.js index 4e2c0fdbf2..fa54b73d4b 100644 --- a/npm/ng-packs/dist/permission-management/esm2015/lib/components/permission-management.component.js +++ b/npm/ng-packs/dist/permission-management/esm2015/lib/components/permission-management.component.js @@ -327,7 +327,7 @@ export class PermissionManagementComponent { PermissionManagementComponent.decorators = [ { type: Component, args: [{ selector: 'abp-permission-management', - template: "\n \n \n

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n
    \n \n
  • \n {{ group?.displayName }}\n
  • \n
    \n
\n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n \n
\n
\n \n
\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n
\n" + template: "\n \n \n

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n
    \n
  • \n {{ group?.displayName }}\n
  • \n
\n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n
\n
\n \n
\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n
\n" }] } ]; /** @nocollapse */ @@ -419,4 +419,4 @@ function getPermissions(groups) { */ (acc, val) => [...acc, ...val.permissions]), []); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBUSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBUWxGLE1BQU0sT0FBTyw2QkFBNkI7Ozs7O0lBZ0V4QyxZQUFvQixLQUFZLEVBQVUsUUFBbUI7UUFBekMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUF0QzdELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVU1QyxnQkFBVyxHQUFzQyxFQUFFLENBQUM7UUFFcEQsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0IsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixjQUFTOzs7OztRQUFnRCxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUM7SUFvQmhCLENBQUM7Ozs7SUF2RGpFLElBQ0ksT0FBTztRQUNU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L0QsU0FBUyxVQUFVLENBQUMsV0FBOEMsRUFBRSxVQUEyQzs7VUFDdkcsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLElBQUk7Ozs7SUFBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLFVBQVUsRUFBQztJQUVwRixJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLFVBQVUsRUFBRTs7WUFDL0MsTUFBTSxHQUFHLEVBQUU7UUFDZixPQUFPLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0tBQzlEO0lBRUQsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQzs7Ozs7QUFFRCxTQUFTLGNBQWMsQ0FBQyxNQUFvQztJQUMxRCxPQUFPLE1BQU0sQ0FBQyxNQUFNOzs7OztJQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRSxFQUFFLENBQUMsQ0FBQztBQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRyYWNrQnlGdW5jdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBwbHVjaywgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEdldFBlcm1pc3Npb25zLCBVcGRhdGVQZXJtaXNzaW9ucyB9IGZyb20gJy4uL2FjdGlvbnMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LnN0YXRlJztcblxudHlwZSBQZXJtaXNzaW9uV2l0aE1hcmdpbiA9IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb24gJiB7IG1hcmdpbjogbnVtYmVyIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1wZXJtaXNzaW9uLW1hbmFnZW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbk1hbmFnZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHByb3ZpZGVyTmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIF92aXNpYmxlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRHcm91cCkgcmV0dXJuO1xuXG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpXG4gIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFNlbGVjdChQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlLmdldFBlcm1pc3Npb25Hcm91cHMpXG4gIGdyb3VwcyQ6IE9ic2VydmFibGU8UGVybWlzc2lvbk1hbmFnZW1lbnQuR3JvdXBbXT47XG5cbiAgQFNlbGVjdChQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlLmdldEVudGl0aXlEaXNwbGF5TmFtZSlcbiAgZW50aXR5TmFtZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBzZWxlY3RlZEdyb3VwOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5Hcm91cDtcblxuICBwZXJtaXNzaW9uczogUGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbltdID0gW107XG5cbiAgc2VsZWN0VGhpc1RhYjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNlbGVjdEFsbFRhYjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPFBlcm1pc3Npb25NYW5hZ2VtZW50Lkdyb3VwPiA9IChfLCBpdGVtKSA9PiBpdGVtLm5hbWU7XG5cbiAgZ2V0IHNlbGVjdGVkR3JvdXBQZXJtaXNzaW9ucyQoKTogT2JzZXJ2YWJsZTxQZXJtaXNzaW9uV2l0aE1hcmdpbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBzJC5waXBlKFxuICAgICAgbWFwKGdyb3VwcyA9PlxuICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXAgPyBncm91cHMuZmluZChncm91cCA9PiBncm91cC5uYW1lID09PSB0aGlzLnNlbGVjdGVkR3JvdXAubmFtZSkucGVybWlzc2lvbnMgOiBbXSxcbiAgICAgICksXG4gICAgICBtYXA8UGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbltdLCBQZXJtaXNzaW9uV2l0aE1hcmdpbltdPihwZXJtaXNzaW9ucyA9PlxuICAgICAgICBwZXJtaXNzaW9ucy5tYXAoXG4gICAgICAgICAgcGVybWlzc2lvbiA9PlxuICAgICAgICAgICAgKCh7XG4gICAgICAgICAgICAgIC4uLnBlcm1pc3Npb24sXG4gICAgICAgICAgICAgIG1hcmdpbjogZmluZE1hcmdpbihwZXJtaXNzaW9ucywgcGVybWlzc2lvbiksXG4gICAgICAgICAgICAgIGlzR3JhbnRlZDogdGhpcy5wZXJtaXNzaW9ucy5maW5kKHBlciA9PiBwZXIubmFtZSA9PT0gcGVybWlzc2lvbi5uYW1lKS5pc0dyYW50ZWQsXG4gICAgICAgICAgICB9IGFzIGFueSkgYXMgUGVybWlzc2lvbldpdGhNYXJnaW4pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgZ2V0Q2hlY2tlZChuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKHRoaXMucGVybWlzc2lvbnMuZmluZChwZXIgPT4gcGVyLm5hbWUgPT09IG5hbWUpIHx8IHsgaXNHcmFudGVkOiBmYWxzZSB9KS5pc0dyYW50ZWQ7XG4gIH1cblxuICBpc0dyYW50ZWRCeVJvbGUoZ3JhbnRlZFByb3ZpZGVyczogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JhbnRlZFByb3ZpZGVyW10pOiBib29sZWFuIHtcbiAgICBpZiAoZ3JhbnRlZFByb3ZpZGVycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBncmFudGVkUHJvdmlkZXJzLmZpbmRJbmRleChwID0+IHAucHJvdmlkZXJOYW1lID09PSAnUm9sZScpID4gLTE7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG9uQ2xpY2tDaGVja2JveChjbGlja2VkUGVybWlzc2lvbjogUGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbiwgdmFsdWUpIHtcbiAgICBpZiAoY2xpY2tlZFBlcm1pc3Npb24uaXNHcmFudGVkICYmIHRoaXMuaXNHcmFudGVkQnlSb2xlKGNsaWNrZWRQZXJtaXNzaW9uLmdyYW50ZWRQcm92aWRlcnMpKSByZXR1cm47XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucGVybWlzc2lvbnMgPSB0aGlzLnBlcm1pc3Npb25zLm1hcChwZXIgPT4ge1xuICAgICAgICBpZiAoY2xpY2tlZFBlcm1pc3Npb24ubmFtZSA9PT0gcGVyLm5hbWUpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi5wZXIsIGlzR3JhbnRlZDogIXBlci5pc0dyYW50ZWQgfTtcbiAgICAgICAgfSBlbHNlIGlmIChjbGlja2VkUGVybWlzc2lvbi5uYW1lID09PSBwZXIucGFyZW50TmFtZSAmJiBjbGlja2VkUGVybWlzc2lvbi5pc0dyYW50ZWQpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi5wZXIsIGlzR3JhbnRlZDogZmFsc2UgfTtcbiAgICAgICAgfSBlbHNlIGlmIChjbGlja2VkUGVybWlzc2lvbi5wYXJlbnROYW1lID09PSBwZXIubmFtZSAmJiAhY2xpY2tlZFBlcm1pc3Npb24uaXNHcmFudGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHsgLi4ucGVyLCBpc0dyYW50ZWQ6IHRydWUgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwZXI7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5zZXRUYWJDaGVja2JveFN0YXRlKCk7XG4gICAgICB0aGlzLnNldEdyYW50Q2hlY2tib3hTdGF0ZSgpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgc2V0VGFiQ2hlY2tib3hTdGF0ZSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBQZXJtaXNzaW9ucyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocGVybWlzc2lvbnMgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRQZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zLmZpbHRlcihwZXIgPT4gcGVyLmlzR3JhbnRlZCk7XG4gICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3NlbGVjdC1hbGwtaW4tdGhpcy10YWJzJykgYXMgYW55O1xuXG4gICAgICBpZiAoc2VsZWN0ZWRQZXJtaXNzaW9ucy5sZW5ndGggPT09IHBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgICBlbGVtZW50LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RUaGlzVGFiID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRQZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZWxlbWVudC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0VGhpc1RhYiA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5pbmRldGVybWluYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldEdyYW50Q2hlY2tib3hTdGF0ZSgpIHtcbiAgICBjb25zdCBzZWxlY3RlZEFsbFBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9ucy5maWx0ZXIocGVyID0+IHBlci5pc0dyYW50ZWQpO1xuICAgIGNvbnN0IGNoZWNrYm94RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzZWxlY3QtYWxsLWluLWFsbC10YWJzJykgYXMgYW55O1xuXG4gICAgaWYgKHNlbGVjdGVkQWxsUGVybWlzc2lvbnMubGVuZ3RoID09PSB0aGlzLnBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgY2hlY2tib3hFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0QWxsVGFiID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkQWxsUGVybWlzc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjaGVja2JveEVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWxlY3RBbGxUYWIgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2hlY2tib3hFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2tTZWxlY3RUaGlzVGFiKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cFBlcm1pc3Npb25zJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShwZXJtaXNzaW9ucyA9PiB7XG4gICAgICBwZXJtaXNzaW9ucy5mb3JFYWNoKHBlcm1pc3Npb24gPT4ge1xuICAgICAgICBpZiAocGVybWlzc2lvbi5pc0dyYW50ZWQgJiYgdGhpcy5pc0dyYW50ZWRCeVJvbGUocGVybWlzc2lvbi5ncmFudGVkUHJvdmlkZXJzKSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wZXJtaXNzaW9ucy5maW5kSW5kZXgocGVyID0+IHBlci5uYW1lID09PSBwZXJtaXNzaW9uLm5hbWUpO1xuXG4gICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSBbXG4gICAgICAgICAgLi4udGhpcy5wZXJtaXNzaW9ucy5zbGljZSgwLCBpbmRleCksXG4gICAgICAgICAgeyAuLi50aGlzLnBlcm1pc3Npb25zW2luZGV4XSwgaXNHcmFudGVkOiAhdGhpcy5zZWxlY3RUaGlzVGFiIH0sXG4gICAgICAgICAgLi4udGhpcy5wZXJtaXNzaW9ucy5zbGljZShpbmRleCArIDEpLFxuICAgICAgICBdO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNldEdyYW50Q2hlY2tib3hTdGF0ZSgpO1xuICB9XG5cbiAgb25DbGlja1NlbGVjdEFsbCgpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9ucy5tYXAocGVybWlzc2lvbiA9PiAoeyAuLi5wZXJtaXNzaW9uLCBpc0dyYW50ZWQ6ICF0aGlzLnNlbGVjdEFsbFRhYiB9KSk7XG5cbiAgICB0aGlzLnNlbGVjdFRoaXNUYWIgPSAhdGhpcy5zZWxlY3RBbGxUYWI7XG4gIH1cblxuICBvbkNoYW5nZUdyb3VwKGdyb3VwOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5Hcm91cCkge1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cCA9IGdyb3VwO1xuICAgIHRoaXMuc2V0VGFiQ2hlY2tib3hTdGF0ZSgpO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIHRoaXMubW9kYWxCdXN5ID0gdHJ1ZTtcbiAgICBjb25zdCB1bmNoYW5nZWRQZXJtaXNzaW9ucyA9IGdldFBlcm1pc3Npb25zKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlLmdldFBlcm1pc3Npb25Hcm91cHMpLFxuICAgICk7XG5cbiAgICBjb25zdCBjaGFuZ2VkUGVybWlzc2lvbnM6IFBlcm1pc3Npb25NYW5hZ2VtZW50Lk1pbmltdW1QZXJtaXNzaW9uW10gPSB0aGlzLnBlcm1pc3Npb25zXG4gICAgICAuZmlsdGVyKHBlciA9PlxuICAgICAgICB1bmNoYW5nZWRQZXJtaXNzaW9ucy5maW5kKHVuY2hhbmdlZCA9PiB1bmNoYW5nZWQubmFtZSA9PT0gcGVyLm5hbWUpLmlzR3JhbnRlZCA9PT0gcGVyLmlzR3JhbnRlZCA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgIClcbiAgICAgIC5tYXAoKHsgbmFtZSwgaXNHcmFudGVkIH0pID0+ICh7IG5hbWUsIGlzR3JhbnRlZCB9KSk7XG5cbiAgICBpZiAoY2hhbmdlZFBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAuZGlzcGF0Y2goXG4gICAgICAgICAgbmV3IFVwZGF0ZVBlcm1pc3Npb25zKHtcbiAgICAgICAgICAgIHByb3ZpZGVyS2V5OiB0aGlzLnByb3ZpZGVyS2V5LFxuICAgICAgICAgICAgcHJvdmlkZXJOYW1lOiB0aGlzLnByb3ZpZGVyTmFtZSxcbiAgICAgICAgICAgIHBlcm1pc3Npb25zOiBjaGFuZ2VkUGVybWlzc2lvbnMsXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgaWYgKCF0aGlzLnByb3ZpZGVyS2V5IHx8ICF0aGlzLnByb3ZpZGVyTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm92aWRlciBLZXkgYW5kIFByb3ZpZGVyIE5hbWUgYXJlIHJlcXVpcmVkLicpO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgR2V0UGVybWlzc2lvbnMoeyBwcm92aWRlcktleTogdGhpcy5wcm92aWRlcktleSwgcHJvdmlkZXJOYW1lOiB0aGlzLnByb3ZpZGVyTmFtZSB9KSlcbiAgICAgIC5waXBlKHBsdWNrKCdQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlJywgJ3Blcm1pc3Npb25SZXMnKSlcbiAgICAgIC5zdWJzY3JpYmUoKHBlcm1pc3Npb25SZXM6IFBlcm1pc3Npb25NYW5hZ2VtZW50LlJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cCA9IHBlcm1pc3Npb25SZXMuZ3JvdXBzWzBdO1xuICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0gZ2V0UGVybWlzc2lvbnMocGVybWlzc2lvblJlcy5ncm91cHMpO1xuXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgICB9KTtcbiAgfVxuXG4gIGluaXRNb2RhbCgpIHtcbiAgICB0aGlzLnNldFRhYkNoZWNrYm94U3RhdGUoKTtcbiAgICB0aGlzLnNldEdyYW50Q2hlY2tib3hTdGF0ZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyB2aXNpYmxlIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXZpc2libGUpIHJldHVybjtcblxuICAgIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICB9IGVsc2UgaWYgKHZpc2libGUuY3VycmVudFZhbHVlID09PSBmYWxzZSAmJiB0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kTWFyZ2luKHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5QZXJtaXNzaW9uW10sIHBlcm1pc3Npb246IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb24pIHtcbiAgY29uc3QgcGFyZW50UGVybWlzc2lvbiA9IHBlcm1pc3Npb25zLmZpbmQocGVyID0+IHBlci5uYW1lID09PSBwZXJtaXNzaW9uLnBhcmVudE5hbWUpO1xuXG4gIGlmIChwYXJlbnRQZXJtaXNzaW9uICYmIHBhcmVudFBlcm1pc3Npb24ucGFyZW50TmFtZSkge1xuICAgIGxldCBtYXJnaW4gPSAyMDtcbiAgICByZXR1cm4gKG1hcmdpbiArPSBmaW5kTWFyZ2luKHBlcm1pc3Npb25zLCBwYXJlbnRQZXJtaXNzaW9uKSk7XG4gIH1cblxuICByZXR1cm4gcGFyZW50UGVybWlzc2lvbiA/IDIwIDogMDtcbn1cblxuZnVuY3Rpb24gZ2V0UGVybWlzc2lvbnMoZ3JvdXBzOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5Hcm91cFtdKTogUGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbltdIHtcbiAgcmV0dXJuIGdyb3Vwcy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBbLi4uYWNjLCAuLi52YWwucGVybWlzc2lvbnNdLCBbXSk7XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBUSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBUWxGLE1BQU0sT0FBTyw2QkFBNkI7Ozs7O0lBZ0V4QyxZQUFvQixLQUFZLEVBQVUsUUFBbUI7UUFBekMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUF0QzdELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVU1QyxnQkFBVyxHQUFzQyxFQUFFLENBQUM7UUFFcEQsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0IsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixjQUFTOzs7OztRQUFnRCxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUM7SUFvQmhCLENBQUM7Ozs7SUF2RGpFLElBQ0ksT0FBTztRQUNU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L0QsU0FBUyxVQUFVLENBQUMsV0FBOEMsRUFBRSxVQUEyQzs7VUFDdkcsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLElBQUk7Ozs7SUFBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLFVBQVUsRUFBQztJQUVwRixJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLFVBQVUsRUFBRTs7WUFDL0MsTUFBTSxHQUFHLEVBQUU7UUFDZixPQUFPLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0tBQzlEO0lBRUQsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQzs7Ozs7QUFFRCxTQUFTLGNBQWMsQ0FBQyxNQUFvQztJQUMxRCxPQUFPLE1BQU0sQ0FBQyxNQUFNOzs7OztJQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRSxFQUFFLENBQUMsQ0FBQztBQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRyYWNrQnlGdW5jdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBwbHVjaywgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEdldFBlcm1pc3Npb25zLCBVcGRhdGVQZXJtaXNzaW9ucyB9IGZyb20gJy4uL2FjdGlvbnMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuLi9zdGF0ZXMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LnN0YXRlJztcblxudHlwZSBQZXJtaXNzaW9uV2l0aE1hcmdpbiA9IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb24gJiB7IG1hcmdpbjogbnVtYmVyIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1wZXJtaXNzaW9uLW1hbmFnZW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbk1hbmFnZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHByb3ZpZGVyTmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIF92aXNpYmxlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRHcm91cCkgcmV0dXJuO1xuXG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpXG4gIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFNlbGVjdChQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlLmdldFBlcm1pc3Npb25Hcm91cHMpXG4gIGdyb3VwcyQ6IE9ic2VydmFibGU8UGVybWlzc2lvbk1hbmFnZW1lbnQuR3JvdXBbXT47XG5cbiAgQFNlbGVjdChQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlLmdldEVudGl0aXlEaXNwbGF5TmFtZSlcbiAgZW50aXR5TmFtZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBzZWxlY3RlZEdyb3VwOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5Hcm91cDtcblxuICBwZXJtaXNzaW9uczogUGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbltdID0gW107XG5cbiAgc2VsZWN0VGhpc1RhYjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNlbGVjdEFsbFRhYjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPFBlcm1pc3Npb25NYW5hZ2VtZW50Lkdyb3VwPiA9IChfLCBpdGVtKSA9PiBpdGVtLm5hbWU7XG5cbiAgZ2V0IHNlbGVjdGVkR3JvdXBQZXJtaXNzaW9ucyQoKTogT2JzZXJ2YWJsZTxQZXJtaXNzaW9uV2l0aE1hcmdpbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBzJC5waXBlKFxuICAgICAgbWFwKGdyb3VwcyA9PlxuICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXAgPyBncm91cHMuZmluZChncm91cCA9PiBncm91cC5uYW1lID09PSB0aGlzLnNlbGVjdGVkR3JvdXAubmFtZSkucGVybWlzc2lvbnMgOiBbXSxcbiAgICAgICksXG4gICAgICBtYXA8UGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbltdLCBQZXJtaXNzaW9uV2l0aE1hcmdpbltdPihwZXJtaXNzaW9ucyA9PlxuICAgICAgICBwZXJtaXNzaW9ucy5tYXAoXG4gICAgICAgICAgcGVybWlzc2lvbiA9PlxuICAgICAgICAgICAgKCh7XG4gICAgICAgICAgICAgIC4uLnBlcm1pc3Npb24sXG4gICAgICAgICAgICAgIG1hcmdpbjogZmluZE1hcmdpbihwZXJtaXNzaW9ucywgcGVybWlzc2lvbiksXG4gICAgICAgICAgICAgIGlzR3JhbnRlZDogdGhpcy5wZXJtaXNzaW9ucy5maW5kKHBlciA9PiBwZXIubmFtZSA9PT0gcGVybWlzc2lvbi5uYW1lKS5pc0dyYW50ZWQsXG4gICAgICAgICAgICB9IGFzIGFueSkgYXMgUGVybWlzc2lvbldpdGhNYXJnaW4pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgZ2V0Q2hlY2tlZChuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKHRoaXMucGVybWlzc2lvbnMuZmluZChwZXIgPT4gcGVyLm5hbWUgPT09IG5hbWUpIHx8IHsgaXNHcmFudGVkOiBmYWxzZSB9KS5pc0dyYW50ZWQ7XG4gIH1cblxuICBpc0dyYW50ZWRCeVJvbGUoZ3JhbnRlZFByb3ZpZGVyczogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JhbnRlZFByb3ZpZGVyW10pOiBib29sZWFuIHtcbiAgICBpZiAoZ3JhbnRlZFByb3ZpZGVycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBncmFudGVkUHJvdmlkZXJzLmZpbmRJbmRleChwID0+IHAucHJvdmlkZXJOYW1lID09PSAnUm9sZScpID4gLTE7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG9uQ2xpY2tDaGVja2JveChjbGlja2VkUGVybWlzc2lvbjogUGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbiwgdmFsdWUpIHtcbiAgICBpZiAoY2xpY2tlZFBlcm1pc3Npb24uaXNHcmFudGVkICYmIHRoaXMuaXNHcmFudGVkQnlSb2xlKGNsaWNrZWRQZXJtaXNzaW9uLmdyYW50ZWRQcm92aWRlcnMpKSByZXR1cm47XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucGVybWlzc2lvbnMgPSB0aGlzLnBlcm1pc3Npb25zLm1hcChwZXIgPT4ge1xuICAgICAgICBpZiAoY2xpY2tlZFBlcm1pc3Npb24ubmFtZSA9PT0gcGVyLm5hbWUpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi5wZXIsIGlzR3JhbnRlZDogIXBlci5pc0dyYW50ZWQgfTtcbiAgICAgICAgfSBlbHNlIGlmIChjbGlja2VkUGVybWlzc2lvbi5uYW1lID09PSBwZXIucGFyZW50TmFtZSAmJiBjbGlja2VkUGVybWlzc2lvbi5pc0dyYW50ZWQpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi5wZXIsIGlzR3JhbnRlZDogZmFsc2UgfTtcbiAgICAgICAgfSBlbHNlIGlmIChjbGlja2VkUGVybWlzc2lvbi5wYXJlbnROYW1lID09PSBwZXIubmFtZSAmJiAhY2xpY2tlZFBlcm1pc3Npb24uaXNHcmFudGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHsgLi4ucGVyLCBpc0dyYW50ZWQ6IHRydWUgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwZXI7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5zZXRUYWJDaGVja2JveFN0YXRlKCk7XG4gICAgICB0aGlzLnNldEdyYW50Q2hlY2tib3hTdGF0ZSgpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgc2V0VGFiQ2hlY2tib3hTdGF0ZSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBQZXJtaXNzaW9ucyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocGVybWlzc2lvbnMgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRQZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zLmZpbHRlcihwZXIgPT4gcGVyLmlzR3JhbnRlZCk7XG4gICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3NlbGVjdC1hbGwtaW4tdGhpcy10YWJzJykgYXMgYW55O1xuXG4gICAgICBpZiAoc2VsZWN0ZWRQZXJtaXNzaW9ucy5sZW5ndGggPT09IHBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgICBlbGVtZW50LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RUaGlzVGFiID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRQZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZWxlbWVudC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0VGhpc1RhYiA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5pbmRldGVybWluYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldEdyYW50Q2hlY2tib3hTdGF0ZSgpIHtcbiAgICBjb25zdCBzZWxlY3RlZEFsbFBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9ucy5maWx0ZXIocGVyID0+IHBlci5pc0dyYW50ZWQpO1xuICAgIGNvbnN0IGNoZWNrYm94RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzZWxlY3QtYWxsLWluLWFsbC10YWJzJykgYXMgYW55O1xuXG4gICAgaWYgKHNlbGVjdGVkQWxsUGVybWlzc2lvbnMubGVuZ3RoID09PSB0aGlzLnBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgY2hlY2tib3hFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0QWxsVGFiID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkQWxsUGVybWlzc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjaGVja2JveEVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWxlY3RBbGxUYWIgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2hlY2tib3hFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2tTZWxlY3RUaGlzVGFiKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cFBlcm1pc3Npb25zJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShwZXJtaXNzaW9ucyA9PiB7XG4gICAgICBwZXJtaXNzaW9ucy5mb3JFYWNoKHBlcm1pc3Npb24gPT4ge1xuICAgICAgICBpZiAocGVybWlzc2lvbi5pc0dyYW50ZWQgJiYgdGhpcy5pc0dyYW50ZWRCeVJvbGUocGVybWlzc2lvbi5ncmFudGVkUHJvdmlkZXJzKSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wZXJtaXNzaW9ucy5maW5kSW5kZXgocGVyID0+IHBlci5uYW1lID09PSBwZXJtaXNzaW9uLm5hbWUpO1xuXG4gICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSBbXG4gICAgICAgICAgLi4udGhpcy5wZXJtaXNzaW9ucy5zbGljZSgwLCBpbmRleCksXG4gICAgICAgICAgeyAuLi50aGlzLnBlcm1pc3Npb25zW2luZGV4XSwgaXNHcmFudGVkOiAhdGhpcy5zZWxlY3RUaGlzVGFiIH0sXG4gICAgICAgICAgLi4udGhpcy5wZXJtaXNzaW9ucy5zbGljZShpbmRleCArIDEpLFxuICAgICAgICBdO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNldEdyYW50Q2hlY2tib3hTdGF0ZSgpO1xuICB9XG5cbiAgb25DbGlja1NlbGVjdEFsbCgpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9ucy5tYXAocGVybWlzc2lvbiA9PiAoeyAuLi5wZXJtaXNzaW9uLCBpc0dyYW50ZWQ6ICF0aGlzLnNlbGVjdEFsbFRhYiB9KSk7XG5cbiAgICB0aGlzLnNlbGVjdFRoaXNUYWIgPSAhdGhpcy5zZWxlY3RBbGxUYWI7XG4gIH1cblxuICBvbkNoYW5nZUdyb3VwKGdyb3VwOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5Hcm91cCkge1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cCA9IGdyb3VwO1xuICAgIHRoaXMuc2V0VGFiQ2hlY2tib3hTdGF0ZSgpO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIHRoaXMubW9kYWxCdXN5ID0gdHJ1ZTtcbiAgICBjb25zdCB1bmNoYW5nZWRQZXJtaXNzaW9ucyA9IGdldFBlcm1pc3Npb25zKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlLmdldFBlcm1pc3Npb25Hcm91cHMpLFxuICAgICk7XG5cbiAgICBjb25zdCBjaGFuZ2VkUGVybWlzc2lvbnM6IFBlcm1pc3Npb25NYW5hZ2VtZW50Lk1pbmltdW1QZXJtaXNzaW9uW10gPSB0aGlzLnBlcm1pc3Npb25zXG4gICAgICAuZmlsdGVyKHBlciA9PlxuICAgICAgICB1bmNoYW5nZWRQZXJtaXNzaW9ucy5maW5kKHVuY2hhbmdlZCA9PiB1bmNoYW5nZWQubmFtZSA9PT0gcGVyLm5hbWUpLmlzR3JhbnRlZCA9PT0gcGVyLmlzR3JhbnRlZCA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgIClcbiAgICAgIC5tYXAoKHsgbmFtZSwgaXNHcmFudGVkIH0pID0+ICh7IG5hbWUsIGlzR3JhbnRlZCB9KSk7XG5cbiAgICBpZiAoY2hhbmdlZFBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAuZGlzcGF0Y2goXG4gICAgICAgICAgbmV3IFVwZGF0ZVBlcm1pc3Npb25zKHtcbiAgICAgICAgICAgIHByb3ZpZGVyS2V5OiB0aGlzLnByb3ZpZGVyS2V5LFxuICAgICAgICAgICAgcHJvdmlkZXJOYW1lOiB0aGlzLnByb3ZpZGVyTmFtZSxcbiAgICAgICAgICAgIHBlcm1pc3Npb25zOiBjaGFuZ2VkUGVybWlzc2lvbnMsXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgaWYgKCF0aGlzLnByb3ZpZGVyS2V5IHx8ICF0aGlzLnByb3ZpZGVyTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm92aWRlciBLZXkgYW5kIFByb3ZpZGVyIE5hbWUgYXJlIHJlcXVpcmVkLicpO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgR2V0UGVybWlzc2lvbnMoeyBwcm92aWRlcktleTogdGhpcy5wcm92aWRlcktleSwgcHJvdmlkZXJOYW1lOiB0aGlzLnByb3ZpZGVyTmFtZSB9KSlcbiAgICAgIC5waXBlKHBsdWNrKCdQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlJywgJ3Blcm1pc3Npb25SZXMnKSlcbiAgICAgIC5zdWJzY3JpYmUoKHBlcm1pc3Npb25SZXM6IFBlcm1pc3Npb25NYW5hZ2VtZW50LlJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cCA9IHBlcm1pc3Npb25SZXMuZ3JvdXBzWzBdO1xuICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0gZ2V0UGVybWlzc2lvbnMocGVybWlzc2lvblJlcy5ncm91cHMpO1xuXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgICB9KTtcbiAgfVxuXG4gIGluaXRNb2RhbCgpIHtcbiAgICB0aGlzLnNldFRhYkNoZWNrYm94U3RhdGUoKTtcbiAgICB0aGlzLnNldEdyYW50Q2hlY2tib3hTdGF0ZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyB2aXNpYmxlIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXZpc2libGUpIHJldHVybjtcblxuICAgIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICB9IGVsc2UgaWYgKHZpc2libGUuY3VycmVudFZhbHVlID09PSBmYWxzZSAmJiB0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kTWFyZ2luKHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5QZXJtaXNzaW9uW10sIHBlcm1pc3Npb246IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb24pIHtcbiAgY29uc3QgcGFyZW50UGVybWlzc2lvbiA9IHBlcm1pc3Npb25zLmZpbmQocGVyID0+IHBlci5uYW1lID09PSBwZXJtaXNzaW9uLnBhcmVudE5hbWUpO1xuXG4gIGlmIChwYXJlbnRQZXJtaXNzaW9uICYmIHBhcmVudFBlcm1pc3Npb24ucGFyZW50TmFtZSkge1xuICAgIGxldCBtYXJnaW4gPSAyMDtcbiAgICByZXR1cm4gKG1hcmdpbiArPSBmaW5kTWFyZ2luKHBlcm1pc3Npb25zLCBwYXJlbnRQZXJtaXNzaW9uKSk7XG4gIH1cblxuICByZXR1cm4gcGFyZW50UGVybWlzc2lvbiA/IDIwIDogMDtcbn1cblxuZnVuY3Rpb24gZ2V0UGVybWlzc2lvbnMoZ3JvdXBzOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5Hcm91cFtdKTogUGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbltdIHtcbiAgcmV0dXJuIGdyb3Vwcy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBbLi4uYWNjLCAuLi52YWwucGVybWlzc2lvbnNdLCBbXSk7XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/esm2015/lib/permission-management.module.js b/npm/ng-packs/dist/permission-management/esm2015/lib/permission-management.module.js index d9a5774915..f1e276ecb3 100644 --- a/npm/ng-packs/dist/permission-management/esm2015/lib/permission-management.module.js +++ b/npm/ng-packs/dist/permission-management/esm2015/lib/permission-management.module.js @@ -8,14 +8,13 @@ import { NgModule } from '@angular/core'; import { NgxsModule } from '@ngxs/store'; import { PermissionManagementComponent } from './components/permission-management.component'; import { PermissionManagementState } from './states/permission-management.state'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; export class PermissionManagementModule { } PermissionManagementModule.decorators = [ { type: NgModule, args: [{ declarations: [PermissionManagementComponent], - imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule], + imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState])], exports: [PermissionManagementComponent], },] } ]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3Blcm1pc3Npb24tbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTy9ELE1BQU0sT0FBTywwQkFBMEI7OztZQUx0QyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7Z0JBQzdDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixDQUFDO2dCQUNwSCxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQzthQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZSB9IGZyb20gJy4vc3RhdGVzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zdGF0ZSc7XG5pbXBvcnQgeyBQZXJmZWN0U2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnbmd4LXBlcmZlY3Qtc2Nyb2xsYmFyJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUGVybWlzc2lvbk1hbmFnZW1lbnRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgVGhlbWVTaGFyZWRNb2R1bGUsIE5neHNNb2R1bGUuZm9yRmVhdHVyZShbUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZV0pLCBQZXJmZWN0U2Nyb2xsYmFyTW9kdWxlXSxcbiAgZXhwb3J0czogW1Blcm1pc3Npb25NYW5hZ2VtZW50Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbk1hbmFnZW1lbnRNb2R1bGUge31cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3Blcm1pc3Npb24tbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBT2pGLE1BQU0sT0FBTywwQkFBMEI7OztZQUx0QyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7Z0JBQzdDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDO2dCQUM1RixPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQzthQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZSB9IGZyb20gJy4vc3RhdGVzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zdGF0ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1Blcm1pc3Npb25NYW5hZ2VtZW50Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIFRoZW1lU2hhcmVkTW9kdWxlLCBOZ3hzTW9kdWxlLmZvckZlYXR1cmUoW1Blcm1pc3Npb25NYW5hZ2VtZW50U3RhdGVdKV0sXG4gIGV4cG9ydHM6IFtQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25NYW5hZ2VtZW50TW9kdWxlIHt9XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/esm2015/lib/root-permission-management.module.js b/npm/ng-packs/dist/permission-management/esm2015/lib/root-permission-management.module.js deleted file mode 100644 index bc99d2c309..0000000000 --- a/npm/ng-packs/dist/permission-management/esm2015/lib/root-permission-management.module.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { NgModule } from '@angular/core'; -export class RootPermissionManagementModule { - /** - * @return {?} - */ - static forRoot() { - return { - ngModule: RootPermissionManagementModule, - providers: [], - }; - } -} -RootPermissionManagementModule.decorators = [ - { type: NgModule, args: [{},] } -]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wZXJtaXNzaW9uLW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5wZXJtaXNzaW9uLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvcm9vdC1wZXJtaXNzaW9uLW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc5RCxNQUFNLE9BQU8sOEJBQThCOzs7O0lBQ3pDLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSw4QkFBOEI7WUFDeEMsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO0lBQ0osQ0FBQzs7O1lBUEYsUUFBUSxTQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgUm9vdFBlcm1pc3Npb25NYW5hZ2VtZW50TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBSb290UGVybWlzc2lvbk1hbmFnZW1lbnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/esm2015/public-api.js b/npm/ng-packs/dist/permission-management/esm2015/public-api.js index 35502dc49e..9d041be370 100644 --- a/npm/ng-packs/dist/permission-management/esm2015/public-api.js +++ b/npm/ng-packs/dist/permission-management/esm2015/public-api.js @@ -5,11 +5,10 @@ /* * Public API Surface of permission-management */ -export { RootPermissionManagementModule } from './lib/root-permission-management.module'; export { PermissionManagementModule } from './lib/permission-management.module'; export { GetPermissions, UpdatePermissions } from './lib/actions'; export { PermissionManagementComponent } from './lib/components'; export {} from './lib/models'; export { PermissionManagementService } from './lib/services'; export { PermissionManagementState } from './lib/states'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsK0NBQWMseUNBQXlDLENBQUM7QUFDeEQsMkNBQWMsb0NBQW9DLENBQUM7QUFDbkQsa0RBQWMsZUFBZSxDQUFDO0FBQzlCLDhDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGVBQWMsY0FBYyxDQUFDO0FBQzdCLDRDQUFjLGdCQUFnQixDQUFDO0FBQy9CLDBDQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgcGVybWlzc2lvbi1tYW5hZ2VtZW50XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcm9vdC1wZXJtaXNzaW9uLW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Blcm1pc3Npb24tbWFuYWdlbWVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMkNBQWMsb0NBQW9DLENBQUM7QUFDbkQsa0RBQWMsZUFBZSxDQUFDO0FBQzlCLDhDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGVBQWMsY0FBYyxDQUFDO0FBQzdCLDRDQUFjLGdCQUFnQixDQUFDO0FBQy9CLDBDQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgcGVybWlzc2lvbi1tYW5hZ2VtZW50XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVybWlzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlcyc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/esm5/abp-ng.permission-management.js b/npm/ng-packs/dist/permission-management/esm5/abp-ng.permission-management.js index 3743c8495f..a8be4b0a6d 100644 --- a/npm/ng-packs/dist/permission-management/esm5/abp-ng.permission-management.js +++ b/npm/ng-packs/dist/permission-management/esm5/abp-ng.permission-management.js @@ -5,9 +5,9 @@ /** * Generated bundle index. Do not edit. */ -export { RootPermissionManagementModule, PermissionManagementModule, GetPermissions, UpdatePermissions, PermissionManagementComponent, PermissionManagementService, PermissionManagementState } from './public-api'; +export { PermissionManagementModule, GetPermissions, UpdatePermissions, PermissionManagementComponent, PermissionManagementService, PermissionManagementState } from './public-api'; export { GetPermissions as ɵd, UpdatePermissions as ɵe } from './lib/actions/permission-management.actions'; export { PermissionManagementComponent as ɵa } from './lib/components/permission-management.component'; export { PermissionManagementService as ɵc } from './lib/services/permission-management.service'; export { PermissionManagementState as ɵb } from './lib/states/permission-management.state'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnBlcm1pc3Npb24tbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLnBlcm1pc3Npb24tbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscU1BQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pHLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUVyRyxPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDL0YsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0dldFBlcm1pc3Npb25zIGFzIMm1ZCxVcGRhdGVQZXJtaXNzaW9ucyBhcyDJtWV9IGZyb20gJy4vbGliL2FjdGlvbnMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuZXhwb3J0IHtQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG5leHBvcnQge1Blcm1pc3Npb25NYW5hZ2VtZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvbW9kZWxzL3Blcm1pc3Npb24tbWFuYWdlbWVudCc7XG5leHBvcnQge1Blcm1pc3Npb25NYW5hZ2VtZW50U2VydmljZSBhcyDJtWN9IGZyb20gJy4vbGliL3NlcnZpY2VzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7UGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuc3RhdGUnOyJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnBlcm1pc3Npb24tbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLnBlcm1pc3Npb24tbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscUtBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pHLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUVyRyxPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDL0YsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0dldFBlcm1pc3Npb25zIGFzIMm1ZCxVcGRhdGVQZXJtaXNzaW9ucyBhcyDJtWV9IGZyb20gJy4vbGliL2FjdGlvbnMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuZXhwb3J0IHtQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG5leHBvcnQge1Blcm1pc3Npb25NYW5hZ2VtZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvbW9kZWxzL3Blcm1pc3Npb24tbWFuYWdlbWVudCc7XG5leHBvcnQge1Blcm1pc3Npb25NYW5hZ2VtZW50U2VydmljZSBhcyDJtWN9IGZyb20gJy4vbGliL3NlcnZpY2VzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7UGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuc3RhdGUnOyJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/esm5/lib/components/permission-management.component.js b/npm/ng-packs/dist/permission-management/esm5/lib/components/permission-management.component.js index 729f703b4a..b7189a6d9e 100644 --- a/npm/ng-packs/dist/permission-management/esm5/lib/components/permission-management.component.js +++ b/npm/ng-packs/dist/permission-management/esm5/lib/components/permission-management.component.js @@ -392,7 +392,7 @@ var PermissionManagementComponent = /** @class */ (function () { PermissionManagementComponent.decorators = [ { type: Component, args: [{ selector: 'abp-permission-management', - template: "\n \n \n

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n
    \n \n
  • \n {{ group?.displayName }}\n
  • \n
    \n
\n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n \n
\n
\n \n
\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n
\n" + template: "\n \n \n

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n
    \n
  • \n {{ group?.displayName }}\n
  • \n
\n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n
\n
\n \n
\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n
\n" }] } ]; /** @nocollapse */ @@ -487,4 +487,4 @@ function getPermissions(groups) { */ function (acc, val) { return tslib_1.__spread(acc, val.permissions); }), []); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBUSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSWxGO0lBb0VFLHVDQUFvQixLQUFZLEVBQVUsUUFBbUI7UUFBekMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUF0QzdELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVU1QyxnQkFBVyxHQUFzQyxFQUFFLENBQUM7UUFFcEQsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0IsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixjQUFTOzs7OztRQUFnRCxVQUFDLENBQUMsRUFBRSxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsSUFBSSxFQUFULENBQVMsRUFBQztJQW9CaEIsQ0FBQztJQXZEakUsc0JBQ0ksa0RBQU87Ozs7UUFEWDtZQUVFLE9BQU8sSUFB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ImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUcmFja0J5RnVuY3Rpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgcGx1Y2ssIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBHZXRQZXJtaXNzaW9ucywgVXBkYXRlUGVybWlzc2lvbnMgfSBmcm9tICcuLi9hY3Rpb25zL3Blcm1pc3Npb24tbWFuYWdlbWVudC5hY3Rpb25zJztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50IH0gZnJvbSAnLi4vbW9kZWxzL3Blcm1pc3Npb24tbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlIH0gZnJvbSAnLi4vc3RhdGVzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zdGF0ZSc7XG5cbnR5cGUgUGVybWlzc2lvbldpdGhNYXJnaW4gPSBQZXJtaXNzaW9uTWFuYWdlbWVudC5QZXJtaXNzaW9uICYgeyBtYXJnaW46IG51bWJlciB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtcGVybWlzc2lvbi1tYW5hZ2VtZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Blcm1pc3Npb24tbWFuYWdlbWVudC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25NYW5hZ2VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwcm92aWRlck5hbWU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwcm92aWRlcktleTogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBfdmlzaWJsZTtcblxuICBASW5wdXQoKVxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkR3JvdXApIHJldHVybjtcblxuICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXAgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKVxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBTZWxlY3QoUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZS5nZXRQZXJtaXNzaW9uR3JvdXBzKVxuICBncm91cHMkOiBPYnNlcnZhYmxlPFBlcm1pc3Npb25NYW5hZ2VtZW50Lkdyb3VwW10+O1xuXG4gIEBTZWxlY3QoUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZS5nZXRFbnRpdGl5RGlzcGxheU5hbWUpXG4gIGVudGl0eU5hbWUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgc2VsZWN0ZWRHcm91cDogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JvdXA7XG5cbiAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb25bXSA9IFtdO1xuXG4gIHNlbGVjdFRoaXNUYWI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzZWxlY3RBbGxUYWI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxQZXJtaXNzaW9uTWFuYWdlbWVudC5Hcm91cD4gPSAoXywgaXRlbSkgPT4gaXRlbS5uYW1lO1xuXG4gIGdldCBzZWxlY3RlZEdyb3VwUGVybWlzc2lvbnMkKCk6IE9ic2VydmFibGU8UGVybWlzc2lvbldpdGhNYXJnaW5bXT4ge1xuICAgIHJldHVybiB0aGlzLmdyb3VwcyQucGlwZShcbiAgICAgIG1hcChncm91cHMgPT5cbiAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwID8gZ3JvdXBzLmZpbmQoZ3JvdXAgPT4gZ3JvdXAubmFtZSA9PT0gdGhpcy5zZWxlY3RlZEdyb3VwLm5hbWUpLnBlcm1pc3Npb25zIDogW10sXG4gICAgICApLFxuICAgICAgbWFwPFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb25bXSwgUGVybWlzc2lvbldpdGhNYXJnaW5bXT4ocGVybWlzc2lvbnMgPT5cbiAgICAgICAgcGVybWlzc2lvbnMubWFwKFxuICAgICAgICAgIHBlcm1pc3Npb24gPT5cbiAgICAgICAgICAgICgoe1xuICAgICAgICAgICAgICAuLi5wZXJtaXNzaW9uLFxuICAgICAgICAgICAgICBtYXJnaW46IGZpbmRNYXJnaW4ocGVybWlzc2lvbnMsIHBlcm1pc3Npb24pLFxuICAgICAgICAgICAgICBpc0dyYW50ZWQ6IHRoaXMucGVybWlzc2lvbnMuZmluZChwZXIgPT4gcGVyLm5hbWUgPT09IHBlcm1pc3Npb24ubmFtZSkuaXNHcmFudGVkLFxuICAgICAgICAgICAgfSBhcyBhbnkpIGFzIFBlcm1pc3Npb25XaXRoTWFyZ2luKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIGdldENoZWNrZWQobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuICh0aGlzLnBlcm1pc3Npb25zLmZpbmQocGVyID0+IHBlci5uYW1lID09PSBuYW1lKSB8fCB7IGlzR3JhbnRlZDogZmFsc2UgfSkuaXNHcmFudGVkO1xuICB9XG5cbiAgaXNHcmFudGVkQnlSb2xlKGdyYW50ZWRQcm92aWRlcnM6IFBlcm1pc3Npb25NYW5hZ2VtZW50LkdyYW50ZWRQcm92aWRlcltdKTogYm9vbGVhbiB7XG4gICAgaWYgKGdyYW50ZWRQcm92aWRlcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZ3JhbnRlZFByb3ZpZGVycy5maW5kSW5kZXgocCA9PiBwLnByb3ZpZGVyTmFtZSA9PT0gJ1JvbGUnKSA+IC0xO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvbkNsaWNrQ2hlY2tib3goY2xpY2tlZFBlcm1pc3Npb246IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb24sIHZhbHVlKSB7XG4gICAgaWYgKGNsaWNrZWRQZXJtaXNzaW9uLmlzR3JhbnRlZCAmJiB0aGlzLmlzR3JhbnRlZEJ5Um9sZShjbGlja2VkUGVybWlzc2lvbi5ncmFudGVkUHJvdmlkZXJzKSkgcmV0dXJuO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9ucy5tYXAocGVyID0+IHtcbiAgICAgICAgaWYgKGNsaWNrZWRQZXJtaXNzaW9uLm5hbWUgPT09IHBlci5uYW1lKSB7XG4gICAgICAgICAgcmV0dXJuIHsgLi4ucGVyLCBpc0dyYW50ZWQ6ICFwZXIuaXNHcmFudGVkIH07XG4gICAgICAgIH0gZWxzZSBpZiAoY2xpY2tlZFBlcm1pc3Npb24ubmFtZSA9PT0gcGVyLnBhcmVudE5hbWUgJiYgY2xpY2tlZFBlcm1pc3Npb24uaXNHcmFudGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHsgLi4ucGVyLCBpc0dyYW50ZWQ6IGZhbHNlIH07XG4gICAgICAgIH0gZWxzZSBpZiAoY2xpY2tlZFBlcm1pc3Npb24ucGFyZW50TmFtZSA9PT0gcGVyLm5hbWUgJiYgIWNsaWNrZWRQZXJtaXNzaW9uLmlzR3JhbnRlZCkge1xuICAgICAgICAgIHJldHVybiB7IC4uLnBlciwgaXNHcmFudGVkOiB0cnVlIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGVyO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuc2V0VGFiQ2hlY2tib3hTdGF0ZSgpO1xuICAgICAgdGhpcy5zZXRHcmFudENoZWNrYm94U3RhdGUoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHNldFRhYkNoZWNrYm94U3RhdGUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwUGVybWlzc2lvbnMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHBlcm1pc3Npb25zID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkUGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucy5maWx0ZXIocGVyID0+IHBlci5pc0dyYW50ZWQpO1xuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzZWxlY3QtYWxsLWluLXRoaXMtdGFicycpIGFzIGFueTtcblxuICAgICAgaWYgKHNlbGVjdGVkUGVybWlzc2lvbnMubGVuZ3RoID09PSBwZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgICAgZWxlbWVudC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0VGhpc1RhYiA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkUGVybWlzc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdFRoaXNUYWIgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzZXRHcmFudENoZWNrYm94U3RhdGUoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRBbGxQZXJtaXNzaW9ucyA9IHRoaXMucGVybWlzc2lvbnMuZmlsdGVyKHBlciA9PiBwZXIuaXNHcmFudGVkKTtcbiAgICBjb25zdCBjaGVja2JveEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc2VsZWN0LWFsbC1pbi1hbGwtdGFicycpIGFzIGFueTtcblxuICAgIGlmIChzZWxlY3RlZEFsbFBlcm1pc3Npb25zLmxlbmd0aCA9PT0gdGhpcy5wZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIGNoZWNrYm94RWxlbWVudC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdEFsbFRhYiA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZEFsbFBlcm1pc3Npb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY2hlY2tib3hFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0QWxsVGFiID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoZWNrYm94RWxlbWVudC5pbmRldGVybWluYXRlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrU2VsZWN0VGhpc1RhYigpIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBQZXJtaXNzaW9ucyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocGVybWlzc2lvbnMgPT4ge1xuICAgICAgcGVybWlzc2lvbnMuZm9yRWFjaChwZXJtaXNzaW9uID0+IHtcbiAgICAgICAgaWYgKHBlcm1pc3Npb24uaXNHcmFudGVkICYmIHRoaXMuaXNHcmFudGVkQnlSb2xlKHBlcm1pc3Npb24uZ3JhbnRlZFByb3ZpZGVycykpIHJldHVybjtcblxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMucGVybWlzc2lvbnMuZmluZEluZGV4KHBlciA9PiBwZXIubmFtZSA9PT0gcGVybWlzc2lvbi5uYW1lKTtcblxuICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0gW1xuICAgICAgICAgIC4uLnRoaXMucGVybWlzc2lvbnMuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgICAgIHsgLi4udGhpcy5wZXJtaXNzaW9uc1tpbmRleF0sIGlzR3JhbnRlZDogIXRoaXMuc2VsZWN0VGhpc1RhYiB9LFxuICAgICAgICAgIC4uLnRoaXMucGVybWlzc2lvbnMuc2xpY2UoaW5kZXggKyAxKSxcbiAgICAgICAgXTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZXRHcmFudENoZWNrYm94U3RhdGUoKTtcbiAgfVxuXG4gIG9uQ2xpY2tTZWxlY3RBbGwoKSB7XG4gICAgdGhpcy5wZXJtaXNzaW9ucyA9IHRoaXMucGVybWlzc2lvbnMubWFwKHBlcm1pc3Npb24gPT4gKHsgLi4ucGVybWlzc2lvbiwgaXNHcmFudGVkOiAhdGhpcy5zZWxlY3RBbGxUYWIgfSkpO1xuXG4gICAgdGhpcy5zZWxlY3RUaGlzVGFiID0gIXRoaXMuc2VsZWN0QWxsVGFiO1xuICB9XG5cbiAgb25DaGFuZ2VHcm91cChncm91cDogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JvdXApIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXAgPSBncm91cDtcbiAgICB0aGlzLnNldFRhYkNoZWNrYm94U3RhdGUoKTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XG4gICAgY29uc3QgdW5jaGFuZ2VkUGVybWlzc2lvbnMgPSBnZXRQZXJtaXNzaW9ucyhcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZS5nZXRQZXJtaXNzaW9uR3JvdXBzKSxcbiAgICApO1xuXG4gICAgY29uc3QgY2hhbmdlZFBlcm1pc3Npb25zOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5NaW5pbXVtUGVybWlzc2lvbltdID0gdGhpcy5wZXJtaXNzaW9uc1xuICAgICAgLmZpbHRlcihwZXIgPT5cbiAgICAgICAgdW5jaGFuZ2VkUGVybWlzc2lvbnMuZmluZCh1bmNoYW5nZWQgPT4gdW5jaGFuZ2VkLm5hbWUgPT09IHBlci5uYW1lKS5pc0dyYW50ZWQgPT09IHBlci5pc0dyYW50ZWQgPyBmYWxzZSA6IHRydWUsXG4gICAgICApXG4gICAgICAubWFwKCh7IG5hbWUsIGlzR3JhbnRlZCB9KSA9PiAoeyBuYW1lLCBpc0dyYW50ZWQgfSkpO1xuXG4gICAgaWYgKGNoYW5nZWRQZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgLmRpc3BhdGNoKFxuICAgICAgICAgIG5ldyBVcGRhdGVQZXJtaXNzaW9ucyh7XG4gICAgICAgICAgICBwcm92aWRlcktleTogdGhpcy5wcm92aWRlcktleSxcbiAgICAgICAgICAgIHByb3ZpZGVyTmFtZTogdGhpcy5wcm92aWRlck5hbWUsXG4gICAgICAgICAgICBwZXJtaXNzaW9uczogY2hhbmdlZFBlcm1pc3Npb25zLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGFsQnVzeSA9IGZhbHNlO1xuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIGlmICghdGhpcy5wcm92aWRlcktleSB8fCAhdGhpcy5wcm92aWRlck5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUHJvdmlkZXIgS2V5IGFuZCBQcm92aWRlciBOYW1lIGFyZSByZXF1aXJlZC4nKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFBlcm1pc3Npb25zKHsgcHJvdmlkZXJLZXk6IHRoaXMucHJvdmlkZXJLZXksIHByb3ZpZGVyTmFtZTogdGhpcy5wcm92aWRlck5hbWUgfSkpXG4gICAgICAucGlwZShwbHVjaygnUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZScsICdwZXJtaXNzaW9uUmVzJykpXG4gICAgICAuc3Vic2NyaWJlKChwZXJtaXNzaW9uUmVzOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5SZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXAgPSBwZXJtaXNzaW9uUmVzLmdyb3Vwc1swXTtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IGdldFBlcm1pc3Npb25zKHBlcm1pc3Npb25SZXMuZ3JvdXBzKTtcblxuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgICAgfSk7XG4gIH1cblxuICBpbml0TW9kYWwoKSB7XG4gICAgdGhpcy5zZXRUYWJDaGVja2JveFN0YXRlKCk7XG4gICAgdGhpcy5zZXRHcmFudENoZWNrYm94U3RhdGUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgdmlzaWJsZSB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF2aXNpYmxlKSByZXR1cm47XG5cbiAgICBpZiAodmlzaWJsZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgfSBlbHNlIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSA9PT0gZmFsc2UgJiYgdGhpcy52aXNpYmxlKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZE1hcmdpbihwZXJtaXNzaW9uczogUGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbltdLCBwZXJtaXNzaW9uOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5QZXJtaXNzaW9uKSB7XG4gIGNvbnN0IHBhcmVudFBlcm1pc3Npb24gPSBwZXJtaXNzaW9ucy5maW5kKHBlciA9PiBwZXIubmFtZSA9PT0gcGVybWlzc2lvbi5wYXJlbnROYW1lKTtcblxuICBpZiAocGFyZW50UGVybWlzc2lvbiAmJiBwYXJlbnRQZXJtaXNzaW9uLnBhcmVudE5hbWUpIHtcbiAgICBsZXQgbWFyZ2luID0gMjA7XG4gICAgcmV0dXJuIChtYXJnaW4gKz0gZmluZE1hcmdpbihwZXJtaXNzaW9ucywgcGFyZW50UGVybWlzc2lvbikpO1xuICB9XG5cbiAgcmV0dXJuIHBhcmVudFBlcm1pc3Npb24gPyAyMCA6IDA7XG59XG5cbmZ1bmN0aW9uIGdldFBlcm1pc3Npb25zKGdyb3VwczogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JvdXBbXSk6IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb25bXSB7XG4gIHJldHVybiBncm91cHMucmVkdWNlKChhY2MsIHZhbCkgPT4gWy4uLmFjYywgLi4udmFsLnBlcm1pc3Npb25zXSwgW10pO1xufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGVybWlzc2lvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBUSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSWxGO0lBb0VFLHVDQUFvQixLQUFZLEVBQVUsUUFBbUI7UUFBekMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUF0QzdELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVU1QyxnQkFBVyxHQUFzQyxFQUFFLENBQUM7UUFFcEQsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0IsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixjQUFTOzs7OztRQUFnRCxVQUFDLENBQUMsRUFBRSxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsSUFBSSxFQUFULENBQVMsRUFBQztJQW9CaEIsQ0FBQztJQXZEakUsc0JBQ0ksa0RBQU87Ozs7UUFEWDtZQUVFLE9BQU8sSUFB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ImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUcmFja0J5RnVuY3Rpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgcGx1Y2ssIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBHZXRQZXJtaXNzaW9ucywgVXBkYXRlUGVybWlzc2lvbnMgfSBmcm9tICcuLi9hY3Rpb25zL3Blcm1pc3Npb24tbWFuYWdlbWVudC5hY3Rpb25zJztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50IH0gZnJvbSAnLi4vbW9kZWxzL3Blcm1pc3Npb24tbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlIH0gZnJvbSAnLi4vc3RhdGVzL3Blcm1pc3Npb24tbWFuYWdlbWVudC5zdGF0ZSc7XG5cbnR5cGUgUGVybWlzc2lvbldpdGhNYXJnaW4gPSBQZXJtaXNzaW9uTWFuYWdlbWVudC5QZXJtaXNzaW9uICYgeyBtYXJnaW46IG51bWJlciB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtcGVybWlzc2lvbi1tYW5hZ2VtZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Blcm1pc3Npb24tbWFuYWdlbWVudC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25NYW5hZ2VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwcm92aWRlck5hbWU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwcm92aWRlcktleTogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBfdmlzaWJsZTtcblxuICBASW5wdXQoKVxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkR3JvdXApIHJldHVybjtcblxuICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXAgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKVxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBTZWxlY3QoUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZS5nZXRQZXJtaXNzaW9uR3JvdXBzKVxuICBncm91cHMkOiBPYnNlcnZhYmxlPFBlcm1pc3Npb25NYW5hZ2VtZW50Lkdyb3VwW10+O1xuXG4gIEBTZWxlY3QoUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZS5nZXRFbnRpdGl5RGlzcGxheU5hbWUpXG4gIGVudGl0eU5hbWUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgc2VsZWN0ZWRHcm91cDogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JvdXA7XG5cbiAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb25bXSA9IFtdO1xuXG4gIHNlbGVjdFRoaXNUYWI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzZWxlY3RBbGxUYWI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxQZXJtaXNzaW9uTWFuYWdlbWVudC5Hcm91cD4gPSAoXywgaXRlbSkgPT4gaXRlbS5uYW1lO1xuXG4gIGdldCBzZWxlY3RlZEdyb3VwUGVybWlzc2lvbnMkKCk6IE9ic2VydmFibGU8UGVybWlzc2lvbldpdGhNYXJnaW5bXT4ge1xuICAgIHJldHVybiB0aGlzLmdyb3VwcyQucGlwZShcbiAgICAgIG1hcChncm91cHMgPT5cbiAgICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwID8gZ3JvdXBzLmZpbmQoZ3JvdXAgPT4gZ3JvdXAubmFtZSA9PT0gdGhpcy5zZWxlY3RlZEdyb3VwLm5hbWUpLnBlcm1pc3Npb25zIDogW10sXG4gICAgICApLFxuICAgICAgbWFwPFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb25bXSwgUGVybWlzc2lvbldpdGhNYXJnaW5bXT4ocGVybWlzc2lvbnMgPT5cbiAgICAgICAgcGVybWlzc2lvbnMubWFwKFxuICAgICAgICAgIHBlcm1pc3Npb24gPT5cbiAgICAgICAgICAgICgoe1xuICAgICAgICAgICAgICAuLi5wZXJtaXNzaW9uLFxuICAgICAgICAgICAgICBtYXJnaW46IGZpbmRNYXJnaW4ocGVybWlzc2lvbnMsIHBlcm1pc3Npb24pLFxuICAgICAgICAgICAgICBpc0dyYW50ZWQ6IHRoaXMucGVybWlzc2lvbnMuZmluZChwZXIgPT4gcGVyLm5hbWUgPT09IHBlcm1pc3Npb24ubmFtZSkuaXNHcmFudGVkLFxuICAgICAgICAgICAgfSBhcyBhbnkpIGFzIFBlcm1pc3Npb25XaXRoTWFyZ2luKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIGdldENoZWNrZWQobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuICh0aGlzLnBlcm1pc3Npb25zLmZpbmQocGVyID0+IHBlci5uYW1lID09PSBuYW1lKSB8fCB7IGlzR3JhbnRlZDogZmFsc2UgfSkuaXNHcmFudGVkO1xuICB9XG5cbiAgaXNHcmFudGVkQnlSb2xlKGdyYW50ZWRQcm92aWRlcnM6IFBlcm1pc3Npb25NYW5hZ2VtZW50LkdyYW50ZWRQcm92aWRlcltdKTogYm9vbGVhbiB7XG4gICAgaWYgKGdyYW50ZWRQcm92aWRlcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZ3JhbnRlZFByb3ZpZGVycy5maW5kSW5kZXgocCA9PiBwLnByb3ZpZGVyTmFtZSA9PT0gJ1JvbGUnKSA+IC0xO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvbkNsaWNrQ2hlY2tib3goY2xpY2tlZFBlcm1pc3Npb246IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb24sIHZhbHVlKSB7XG4gICAgaWYgKGNsaWNrZWRQZXJtaXNzaW9uLmlzR3JhbnRlZCAmJiB0aGlzLmlzR3JhbnRlZEJ5Um9sZShjbGlja2VkUGVybWlzc2lvbi5ncmFudGVkUHJvdmlkZXJzKSkgcmV0dXJuO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9ucy5tYXAocGVyID0+IHtcbiAgICAgICAgaWYgKGNsaWNrZWRQZXJtaXNzaW9uLm5hbWUgPT09IHBlci5uYW1lKSB7XG4gICAgICAgICAgcmV0dXJuIHsgLi4ucGVyLCBpc0dyYW50ZWQ6ICFwZXIuaXNHcmFudGVkIH07XG4gICAgICAgIH0gZWxzZSBpZiAoY2xpY2tlZFBlcm1pc3Npb24ubmFtZSA9PT0gcGVyLnBhcmVudE5hbWUgJiYgY2xpY2tlZFBlcm1pc3Npb24uaXNHcmFudGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHsgLi4ucGVyLCBpc0dyYW50ZWQ6IGZhbHNlIH07XG4gICAgICAgIH0gZWxzZSBpZiAoY2xpY2tlZFBlcm1pc3Npb24ucGFyZW50TmFtZSA9PT0gcGVyLm5hbWUgJiYgIWNsaWNrZWRQZXJtaXNzaW9uLmlzR3JhbnRlZCkge1xuICAgICAgICAgIHJldHVybiB7IC4uLnBlciwgaXNHcmFudGVkOiB0cnVlIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGVyO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuc2V0VGFiQ2hlY2tib3hTdGF0ZSgpO1xuICAgICAgdGhpcy5zZXRHcmFudENoZWNrYm94U3RhdGUoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHNldFRhYkNoZWNrYm94U3RhdGUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwUGVybWlzc2lvbnMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHBlcm1pc3Npb25zID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkUGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucy5maWx0ZXIocGVyID0+IHBlci5pc0dyYW50ZWQpO1xuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzZWxlY3QtYWxsLWluLXRoaXMtdGFicycpIGFzIGFueTtcblxuICAgICAgaWYgKHNlbGVjdGVkUGVybWlzc2lvbnMubGVuZ3RoID09PSBwZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgICAgZWxlbWVudC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0VGhpc1RhYiA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkUGVybWlzc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdFRoaXNUYWIgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzZXRHcmFudENoZWNrYm94U3RhdGUoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRBbGxQZXJtaXNzaW9ucyA9IHRoaXMucGVybWlzc2lvbnMuZmlsdGVyKHBlciA9PiBwZXIuaXNHcmFudGVkKTtcbiAgICBjb25zdCBjaGVja2JveEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc2VsZWN0LWFsbC1pbi1hbGwtdGFicycpIGFzIGFueTtcblxuICAgIGlmIChzZWxlY3RlZEFsbFBlcm1pc3Npb25zLmxlbmd0aCA9PT0gdGhpcy5wZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIGNoZWNrYm94RWxlbWVudC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdEFsbFRhYiA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZEFsbFBlcm1pc3Npb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY2hlY2tib3hFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0QWxsVGFiID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoZWNrYm94RWxlbWVudC5pbmRldGVybWluYXRlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrU2VsZWN0VGhpc1RhYigpIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBQZXJtaXNzaW9ucyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocGVybWlzc2lvbnMgPT4ge1xuICAgICAgcGVybWlzc2lvbnMuZm9yRWFjaChwZXJtaXNzaW9uID0+IHtcbiAgICAgICAgaWYgKHBlcm1pc3Npb24uaXNHcmFudGVkICYmIHRoaXMuaXNHcmFudGVkQnlSb2xlKHBlcm1pc3Npb24uZ3JhbnRlZFByb3ZpZGVycykpIHJldHVybjtcblxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMucGVybWlzc2lvbnMuZmluZEluZGV4KHBlciA9PiBwZXIubmFtZSA9PT0gcGVybWlzc2lvbi5uYW1lKTtcblxuICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0gW1xuICAgICAgICAgIC4uLnRoaXMucGVybWlzc2lvbnMuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgICAgIHsgLi4udGhpcy5wZXJtaXNzaW9uc1tpbmRleF0sIGlzR3JhbnRlZDogIXRoaXMuc2VsZWN0VGhpc1RhYiB9LFxuICAgICAgICAgIC4uLnRoaXMucGVybWlzc2lvbnMuc2xpY2UoaW5kZXggKyAxKSxcbiAgICAgICAgXTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZXRHcmFudENoZWNrYm94U3RhdGUoKTtcbiAgfVxuXG4gIG9uQ2xpY2tTZWxlY3RBbGwoKSB7XG4gICAgdGhpcy5wZXJtaXNzaW9ucyA9IHRoaXMucGVybWlzc2lvbnMubWFwKHBlcm1pc3Npb24gPT4gKHsgLi4ucGVybWlzc2lvbiwgaXNHcmFudGVkOiAhdGhpcy5zZWxlY3RBbGxUYWIgfSkpO1xuXG4gICAgdGhpcy5zZWxlY3RUaGlzVGFiID0gIXRoaXMuc2VsZWN0QWxsVGFiO1xuICB9XG5cbiAgb25DaGFuZ2VHcm91cChncm91cDogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JvdXApIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXAgPSBncm91cDtcbiAgICB0aGlzLnNldFRhYkNoZWNrYm94U3RhdGUoKTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XG4gICAgY29uc3QgdW5jaGFuZ2VkUGVybWlzc2lvbnMgPSBnZXRQZXJtaXNzaW9ucyhcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZS5nZXRQZXJtaXNzaW9uR3JvdXBzKSxcbiAgICApO1xuXG4gICAgY29uc3QgY2hhbmdlZFBlcm1pc3Npb25zOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5NaW5pbXVtUGVybWlzc2lvbltdID0gdGhpcy5wZXJtaXNzaW9uc1xuICAgICAgLmZpbHRlcihwZXIgPT5cbiAgICAgICAgdW5jaGFuZ2VkUGVybWlzc2lvbnMuZmluZCh1bmNoYW5nZWQgPT4gdW5jaGFuZ2VkLm5hbWUgPT09IHBlci5uYW1lKS5pc0dyYW50ZWQgPT09IHBlci5pc0dyYW50ZWQgPyBmYWxzZSA6IHRydWUsXG4gICAgICApXG4gICAgICAubWFwKCh7IG5hbWUsIGlzR3JhbnRlZCB9KSA9PiAoeyBuYW1lLCBpc0dyYW50ZWQgfSkpO1xuXG4gICAgaWYgKGNoYW5nZWRQZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgLmRpc3BhdGNoKFxuICAgICAgICAgIG5ldyBVcGRhdGVQZXJtaXNzaW9ucyh7XG4gICAgICAgICAgICBwcm92aWRlcktleTogdGhpcy5wcm92aWRlcktleSxcbiAgICAgICAgICAgIHByb3ZpZGVyTmFtZTogdGhpcy5wcm92aWRlck5hbWUsXG4gICAgICAgICAgICBwZXJtaXNzaW9uczogY2hhbmdlZFBlcm1pc3Npb25zLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGFsQnVzeSA9IGZhbHNlO1xuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIGlmICghdGhpcy5wcm92aWRlcktleSB8fCAhdGhpcy5wcm92aWRlck5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUHJvdmlkZXIgS2V5IGFuZCBQcm92aWRlciBOYW1lIGFyZSByZXF1aXJlZC4nKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFBlcm1pc3Npb25zKHsgcHJvdmlkZXJLZXk6IHRoaXMucHJvdmlkZXJLZXksIHByb3ZpZGVyTmFtZTogdGhpcy5wcm92aWRlck5hbWUgfSkpXG4gICAgICAucGlwZShwbHVjaygnUGVybWlzc2lvbk1hbmFnZW1lbnRTdGF0ZScsICdwZXJtaXNzaW9uUmVzJykpXG4gICAgICAuc3Vic2NyaWJlKChwZXJtaXNzaW9uUmVzOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5SZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXAgPSBwZXJtaXNzaW9uUmVzLmdyb3Vwc1swXTtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IGdldFBlcm1pc3Npb25zKHBlcm1pc3Npb25SZXMuZ3JvdXBzKTtcblxuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgICAgfSk7XG4gIH1cblxuICBpbml0TW9kYWwoKSB7XG4gICAgdGhpcy5zZXRUYWJDaGVja2JveFN0YXRlKCk7XG4gICAgdGhpcy5zZXRHcmFudENoZWNrYm94U3RhdGUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgdmlzaWJsZSB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF2aXNpYmxlKSByZXR1cm47XG5cbiAgICBpZiAodmlzaWJsZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgfSBlbHNlIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSA9PT0gZmFsc2UgJiYgdGhpcy52aXNpYmxlKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZE1hcmdpbihwZXJtaXNzaW9uczogUGVybWlzc2lvbk1hbmFnZW1lbnQuUGVybWlzc2lvbltdLCBwZXJtaXNzaW9uOiBQZXJtaXNzaW9uTWFuYWdlbWVudC5QZXJtaXNzaW9uKSB7XG4gIGNvbnN0IHBhcmVudFBlcm1pc3Npb24gPSBwZXJtaXNzaW9ucy5maW5kKHBlciA9PiBwZXIubmFtZSA9PT0gcGVybWlzc2lvbi5wYXJlbnROYW1lKTtcblxuICBpZiAocGFyZW50UGVybWlzc2lvbiAmJiBwYXJlbnRQZXJtaXNzaW9uLnBhcmVudE5hbWUpIHtcbiAgICBsZXQgbWFyZ2luID0gMjA7XG4gICAgcmV0dXJuIChtYXJnaW4gKz0gZmluZE1hcmdpbihwZXJtaXNzaW9ucywgcGFyZW50UGVybWlzc2lvbikpO1xuICB9XG5cbiAgcmV0dXJuIHBhcmVudFBlcm1pc3Npb24gPyAyMCA6IDA7XG59XG5cbmZ1bmN0aW9uIGdldFBlcm1pc3Npb25zKGdyb3VwczogUGVybWlzc2lvbk1hbmFnZW1lbnQuR3JvdXBbXSk6IFBlcm1pc3Npb25NYW5hZ2VtZW50LlBlcm1pc3Npb25bXSB7XG4gIHJldHVybiBncm91cHMucmVkdWNlKChhY2MsIHZhbCkgPT4gWy4uLmFjYywgLi4udmFsLnBlcm1pc3Npb25zXSwgW10pO1xufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/esm5/lib/permission-management.module.js b/npm/ng-packs/dist/permission-management/esm5/lib/permission-management.module.js index 755e939953..c421f1502f 100644 --- a/npm/ng-packs/dist/permission-management/esm5/lib/permission-management.module.js +++ b/npm/ng-packs/dist/permission-management/esm5/lib/permission-management.module.js @@ -8,18 +8,17 @@ import { NgModule } from '@angular/core'; import { NgxsModule } from '@ngxs/store'; import { PermissionManagementComponent } from './components/permission-management.component'; import { PermissionManagementState } from './states/permission-management.state'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; var PermissionManagementModule = /** @class */ (function () { function PermissionManagementModule() { } PermissionManagementModule.decorators = [ { type: NgModule, args: [{ declarations: [PermissionManagementComponent], - imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule], + imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState])], exports: [PermissionManagementComponent], },] } ]; return PermissionManagementModule; }()); export { PermissionManagementModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3Blcm1pc3Npb24tbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9EO0lBQUE7SUFLeUMsQ0FBQzs7Z0JBTHpDLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDN0MsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLEVBQUUsc0JBQXNCLENBQUM7b0JBQ3BILE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO2lCQUN6Qzs7SUFDd0MsaUNBQUM7Q0FBQSxBQUwxQyxJQUswQztTQUE3QiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neHNNb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuL3N0YXRlcy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuc3RhdGUnO1xuaW1wb3J0IHsgUGVyZmVjdFNjcm9sbGJhck1vZHVsZSB9IGZyb20gJ25neC1wZXJmZWN0LXNjcm9sbGJhcic7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1Blcm1pc3Npb25NYW5hZ2VtZW50Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIFRoZW1lU2hhcmVkTW9kdWxlLCBOZ3hzTW9kdWxlLmZvckZlYXR1cmUoW1Blcm1pc3Npb25NYW5hZ2VtZW50U3RhdGVdKSwgUGVyZmVjdFNjcm9sbGJhck1vZHVsZV0sXG4gIGV4cG9ydHM6IFtQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25NYW5hZ2VtZW50TW9kdWxlIHt9XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3Blcm1pc3Npb24tbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWpGO0lBQUE7SUFLeUMsQ0FBQzs7Z0JBTHpDLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDN0MsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7b0JBQzVGLE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO2lCQUN6Qzs7SUFDd0MsaUNBQUM7Q0FBQSxBQUwxQyxJQUswQztTQUE3QiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neHNNb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuL3N0YXRlcy9wZXJtaXNzaW9uLW1hbmFnZW1lbnQuc3RhdGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtQZXJtaXNzaW9uTWFuYWdlbWVudENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBUaGVtZVNoYXJlZE1vZHVsZSwgTmd4c01vZHVsZS5mb3JGZWF0dXJlKFtQZXJtaXNzaW9uTWFuYWdlbWVudFN0YXRlXSldLFxuICBleHBvcnRzOiBbUGVybWlzc2lvbk1hbmFnZW1lbnRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uTWFuYWdlbWVudE1vZHVsZSB7fVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/esm5/lib/root-permission-management.module.js b/npm/ng-packs/dist/permission-management/esm5/lib/root-permission-management.module.js deleted file mode 100644 index 4faa733001..0000000000 --- a/npm/ng-packs/dist/permission-management/esm5/lib/root-permission-management.module.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { NgModule } from '@angular/core'; -var RootPermissionManagementModule = /** @class */ (function () { - function RootPermissionManagementModule() { - } - /** - * @return {?} - */ - RootPermissionManagementModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootPermissionManagementModule, - providers: [], - }; - }; - RootPermissionManagementModule.decorators = [ - { type: NgModule, args: [{},] } - ]; - return RootPermissionManagementModule; -}()); -export { RootPermissionManagementModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wZXJtaXNzaW9uLW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5wZXJtaXNzaW9uLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvcm9vdC1wZXJtaXNzaW9uLW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RDtJQUFBO0lBUUEsQ0FBQzs7OztJQU5RLHNDQUFPOzs7SUFBZDtRQUNFLE9BQU87WUFDTCxRQUFRLEVBQUUsOEJBQThCO1lBQ3hDLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztJQUNKLENBQUM7O2dCQVBGLFFBQVEsU0FBQyxFQUFFOztJQVFaLHFDQUFDO0NBQUEsQUFSRCxJQVFDO1NBUFksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIFJvb3RQZXJtaXNzaW9uTWFuYWdlbWVudE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUm9vdFBlcm1pc3Npb25NYW5hZ2VtZW50TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXSxcbiAgICB9O1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/esm5/public-api.js b/npm/ng-packs/dist/permission-management/esm5/public-api.js index 35502dc49e..9d041be370 100644 --- a/npm/ng-packs/dist/permission-management/esm5/public-api.js +++ b/npm/ng-packs/dist/permission-management/esm5/public-api.js @@ -5,11 +5,10 @@ /* * Public API Surface of permission-management */ -export { RootPermissionManagementModule } from './lib/root-permission-management.module'; export { PermissionManagementModule } from './lib/permission-management.module'; export { GetPermissions, UpdatePermissions } from './lib/actions'; export { PermissionManagementComponent } from './lib/components'; export {} from './lib/models'; export { PermissionManagementService } from './lib/services'; export { PermissionManagementState } from './lib/states'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsK0NBQWMseUNBQXlDLENBQUM7QUFDeEQsMkNBQWMsb0NBQW9DLENBQUM7QUFDbkQsa0RBQWMsZUFBZSxDQUFDO0FBQzlCLDhDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGVBQWMsY0FBYyxDQUFDO0FBQzdCLDRDQUFjLGdCQUFnQixDQUFDO0FBQy9CLDBDQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgcGVybWlzc2lvbi1tYW5hZ2VtZW50XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcm9vdC1wZXJtaXNzaW9uLW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Blcm1pc3Npb24tbWFuYWdlbWVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcucGVybWlzc2lvbi1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMkNBQWMsb0NBQW9DLENBQUM7QUFDbkQsa0RBQWMsZUFBZSxDQUFDO0FBQzlCLDhDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGVBQWMsY0FBYyxDQUFDO0FBQzdCLDRDQUFjLGdCQUFnQixDQUFDO0FBQy9CLDBDQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgcGVybWlzc2lvbi1tYW5hZ2VtZW50XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVybWlzc2lvbi1tYW5hZ2VtZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlcyc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/fesm2015/abp-ng.permission-management.js b/npm/ng-packs/dist/permission-management/fesm2015/abp-ng.permission-management.js index a43dfcc507..570777bfc5 100644 --- a/npm/ng-packs/dist/permission-management/fesm2015/abp-ng.permission-management.js +++ b/npm/ng-packs/dist/permission-management/fesm2015/abp-ng.permission-management.js @@ -1,30 +1,10 @@ -import { NgModule, Injectable, ɵɵdefineInjectable, ɵɵinject, EventEmitter, Component, Renderer2, Input, Output } from '@angular/core'; import { RestService, CoreModule } from '@abp/ng.core'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, EventEmitter, Component, Renderer2, Input, Output, NgModule } from '@angular/core'; import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; import { __decorate, __metadata } from 'tslib'; import { Observable } from 'rxjs'; import { tap, map, take, pluck } from 'rxjs/operators'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -class RootPermissionManagementModule { - /** - * @return {?} - */ - static forRoot() { - return { - ngModule: RootPermissionManagementModule, - providers: [], - }; - } -} -RootPermissionManagementModule.decorators = [ - { type: NgModule, args: [{},] } -]; /** * @fileoverview added by tsickle @@ -527,7 +507,7 @@ class PermissionManagementComponent { PermissionManagementComponent.decorators = [ { type: Component, args: [{ selector: 'abp-permission-management', - template: "\n \n \n

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n
    \n \n
  • \n {{ group?.displayName }}\n
  • \n
    \n
\n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n \n
\n
\n \n
\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n
\n" + template: "\n \n \n

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n
    \n
  • \n {{ group?.displayName }}\n
  • \n
\n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n
\n
\n \n
\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n
\n" }] } ]; /** @nocollapse */ @@ -629,7 +609,7 @@ class PermissionManagementModule { PermissionManagementModule.decorators = [ { type: NgModule, args: [{ declarations: [PermissionManagementComponent], - imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule], + imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState])], exports: [PermissionManagementComponent], },] } ]; @@ -756,5 +736,5 @@ var PermissionManagement; * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { GetPermissions, PermissionManagementComponent, PermissionManagementModule, PermissionManagementService, PermissionManagementState, RootPermissionManagementModule, UpdatePermissions, PermissionManagementComponent as ɵa, PermissionManagementState as ɵb, PermissionManagementService as ɵc, GetPermissions as ɵd, UpdatePermissions as ɵe }; +export { GetPermissions, PermissionManagementComponent, PermissionManagementModule, PermissionManagementService, PermissionManagementState, UpdatePermissions, PermissionManagementComponent as ɵa, PermissionManagementState as ɵb, PermissionManagementService as ɵc, GetPermissions as ɵd, UpdatePermissions as ɵe }; //# sourceMappingURL=abp-ng.permission-management.js.map diff --git a/npm/ng-packs/dist/permission-management/fesm2015/abp-ng.permission-management.js.map b/npm/ng-packs/dist/permission-management/fesm2015/abp-ng.permission-management.js.map index 5592c4d712..90fad6e9ff 100644 --- a/npm/ng-packs/dist/permission-management/fesm2015/abp-ng.permission-management.js.map +++ b/npm/ng-packs/dist/permission-management/fesm2015/abp-ng.permission-management.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.permission-management.js","sources":["ng://@abp/ng.permission-management/lib/root-permission-management.module.ts","ng://@abp/ng.permission-management/lib/actions/permission-management.actions.ts","ng://@abp/ng.permission-management/lib/services/permission-management.service.ts","ng://@abp/ng.permission-management/lib/states/permission-management.state.ts","ng://@abp/ng.permission-management/lib/components/permission-management.component.ts","ng://@abp/ng.permission-management/lib/permission-management.module.ts","ng://@abp/ng.permission-management/lib/models/permission-management.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootPermissionManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootPermissionManagementModule,\n providers: [],\n };\n }\n}\n","import { PermissionManagement } from '../models/permission-management';\n\nexport class GetPermissions {\n static readonly type = '[PermissionManagement] Get Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider) {}\n}\n\nexport class UpdatePermissions {\n static readonly type = '[PermissionManagement] Update Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Observable } from 'rxjs';\nimport { PermissionManagement } from '../models/permission-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionManagementService {\n constructor(private rest: RestService) {}\n\n getPermissions(params: PermissionManagement.GrantedProvider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/permissions',\n params,\n };\n\n return this.rest.request(request);\n }\n\n updatePermissions({\n permissions,\n providerKey,\n providerName,\n }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/permissions',\n body: { permissions },\n params: { providerKey, providerName },\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementService } from '../services/permission-management.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'PermissionManagementState',\n defaults: { permissionRes: {} } as PermissionManagement.State,\n})\nexport class PermissionManagementState {\n @Selector()\n static getPermissionGroups({ permissionRes }: PermissionManagement.State) {\n return permissionRes.groups || [];\n }\n\n @Selector()\n static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string {\n return permissionRes.entityDisplayName;\n }\n\n constructor(private permissionManagementService: PermissionManagementService) {}\n\n @Action(GetPermissions)\n permissionManagementGet({ patchState }: StateContext, { payload }: GetPermissions) {\n return this.permissionManagementService.getPermissions(payload).pipe(\n tap(permissionResponse =>\n patchState({\n permissionRes: permissionResponse,\n }),\n ),\n );\n }\n\n @Action(UpdatePermissions)\n permissionManagementUpdate(_, { payload }: UpdatePermissions) {\n return this.permissionManagementService.updatePermissions(payload);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TrackByFunction,\n} from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { map, pluck, take } from 'rxjs/operators';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementState } from '../states/permission-management.state';\n\ntype PermissionWithMargin = PermissionManagement.Permission & { margin: number };\n\n@Component({\n selector: 'abp-permission-management',\n templateUrl: './permission-management.component.html',\n})\nexport class PermissionManagementComponent implements OnInit, OnChanges {\n @Input()\n providerName: string;\n\n @Input()\n providerKey: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n if (!this.selectedGroup) return;\n\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (!value) {\n this.selectedGroup = null;\n }\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(PermissionManagementState.getPermissionGroups)\n groups$: Observable;\n\n @Select(PermissionManagementState.getEntitiyDisplayName)\n entityName$: Observable;\n\n selectedGroup: PermissionManagement.Group;\n\n permissions: PermissionManagement.Permission[] = [];\n\n selectThisTab: boolean = false;\n\n selectAllTab: boolean = false;\n\n modalBusy: boolean = false;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n get selectedGroupPermissions$(): Observable {\n return this.groups$.pipe(\n map(groups =>\n this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [],\n ),\n map(permissions =>\n permissions.map(\n permission =>\n (({\n ...permission,\n margin: findMargin(permissions, permission),\n isGranted: this.permissions.find(per => per.name === permission.name).isGranted,\n } as any) as PermissionWithMargin),\n ),\n ),\n );\n }\n\n constructor(private store: Store, private renderer: Renderer2) {}\n\n ngOnInit(): void {}\n\n getChecked(name: string) {\n return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;\n }\n\n isGrantedByRole(grantedProviders: PermissionManagement.GrantedProvider[]): boolean {\n if (grantedProviders.length) {\n return grantedProviders.findIndex(p => p.providerName === 'Role') > -1;\n }\n return false;\n }\n\n onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {\n if (clickedPermission.isGranted && this.isGrantedByRole(clickedPermission.grantedProviders)) return;\n\n setTimeout(() => {\n this.permissions = this.permissions.map(per => {\n if (clickedPermission.name === per.name) {\n return { ...per, isGranted: !per.isGranted };\n } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {\n return { ...per, isGranted: false };\n } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {\n return { ...per, isGranted: true };\n }\n\n return per;\n });\n\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n }\n\n setTabCheckboxState() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n const selectedPermissions = permissions.filter(per => per.isGranted);\n const element = document.querySelector('#select-all-in-this-tabs') as any;\n\n if (selectedPermissions.length === permissions.length) {\n element.indeterminate = false;\n this.selectThisTab = true;\n } else if (selectedPermissions.length === 0) {\n element.indeterminate = false;\n this.selectThisTab = false;\n } else {\n element.indeterminate = true;\n }\n });\n }\n\n setGrantCheckboxState() {\n const selectedAllPermissions = this.permissions.filter(per => per.isGranted);\n const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any;\n\n if (selectedAllPermissions.length === this.permissions.length) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = true;\n } else if (selectedAllPermissions.length === 0) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = false;\n } else {\n checkboxElement.indeterminate = true;\n }\n }\n\n onClickSelectThisTab() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n permissions.forEach(permission => {\n if (permission.isGranted && this.isGrantedByRole(permission.grantedProviders)) return;\n\n const index = this.permissions.findIndex(per => per.name === permission.name);\n\n this.permissions = [\n ...this.permissions.slice(0, index),\n { ...this.permissions[index], isGranted: !this.selectThisTab },\n ...this.permissions.slice(index + 1),\n ];\n });\n });\n\n this.setGrantCheckboxState();\n }\n\n onClickSelectAll() {\n this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab }));\n\n this.selectThisTab = !this.selectAllTab;\n }\n\n onChangeGroup(group: PermissionManagement.Group) {\n this.selectedGroup = group;\n this.setTabCheckboxState();\n }\n\n submit() {\n this.modalBusy = true;\n const unchangedPermissions = getPermissions(\n this.store.selectSnapshot(PermissionManagementState.getPermissionGroups),\n );\n\n const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions\n .filter(per =>\n unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true,\n )\n .map(({ name, isGranted }) => ({ name, isGranted }));\n\n if (changedPermissions.length) {\n this.store\n .dispatch(\n new UpdatePermissions({\n providerKey: this.providerKey,\n providerName: this.providerName,\n permissions: changedPermissions,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n } else {\n this.modalBusy = false;\n this.visible = false;\n }\n }\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.store\n .dispatch(new GetPermissions({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('PermissionManagementState', 'permissionRes'))\n .subscribe((permissionRes: PermissionManagement.Response) => {\n this.selectedGroup = permissionRes.groups[0];\n this.permissions = getPermissions(permissionRes.groups);\n\n this.visible = true;\n });\n }\n\n initModal() {\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n\nfunction findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) {\n const parentPermission = permissions.find(per => per.name === permission.parentName);\n\n if (parentPermission && parentPermission.parentName) {\n let margin = 20;\n return (margin += findMargin(permissions, parentPermission));\n }\n\n return parentPermission ? 20 : 0;\n}\n\nfunction getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] {\n return groups.reduce((acc, val) => [...acc, ...val.permissions], []);\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { PermissionManagementComponent } from './components/permission-management.component';\nimport { PermissionManagementState } from './states/permission-management.state';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\n\n@NgModule({\n declarations: [PermissionManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule],\n exports: [PermissionManagementComponent],\n})\nexport class PermissionManagementModule {}\n","export namespace PermissionManagement {\n export interface State {\n permissionRes: Response;\n }\n\n export interface Response {\n entityDisplayName: string;\n groups: Group[];\n }\n\n export interface Group {\n name: string;\n displayName: string;\n permissions: Permission[];\n }\n\n export interface MinimumPermission {\n name: string;\n isGranted: boolean;\n }\n\n export interface Permission extends MinimumPermission {\n displayName: string;\n parentName: string;\n allowedProviders: string[];\n grantedProviders: GrantedProvider[];\n }\n\n export interface GrantedProvider {\n providerName: string;\n providerKey: string;\n }\n\n export interface UpdateRequest {\n permissions: MinimumPermission[];\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.permission-management.js","sources":["ng://@abp/ng.permission-management/lib/actions/permission-management.actions.ts","ng://@abp/ng.permission-management/lib/services/permission-management.service.ts","ng://@abp/ng.permission-management/lib/states/permission-management.state.ts","ng://@abp/ng.permission-management/lib/components/permission-management.component.ts","ng://@abp/ng.permission-management/lib/permission-management.module.ts","ng://@abp/ng.permission-management/lib/models/permission-management.ts"],"sourcesContent":["import { PermissionManagement } from '../models/permission-management';\n\nexport class GetPermissions {\n static readonly type = '[PermissionManagement] Get Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider) {}\n}\n\nexport class UpdatePermissions {\n static readonly type = '[PermissionManagement] Update Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Observable } from 'rxjs';\nimport { PermissionManagement } from '../models/permission-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionManagementService {\n constructor(private rest: RestService) {}\n\n getPermissions(params: PermissionManagement.GrantedProvider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/permissions',\n params,\n };\n\n return this.rest.request(request);\n }\n\n updatePermissions({\n permissions,\n providerKey,\n providerName,\n }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/permissions',\n body: { permissions },\n params: { providerKey, providerName },\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementService } from '../services/permission-management.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'PermissionManagementState',\n defaults: { permissionRes: {} } as PermissionManagement.State,\n})\nexport class PermissionManagementState {\n @Selector()\n static getPermissionGroups({ permissionRes }: PermissionManagement.State) {\n return permissionRes.groups || [];\n }\n\n @Selector()\n static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string {\n return permissionRes.entityDisplayName;\n }\n\n constructor(private permissionManagementService: PermissionManagementService) {}\n\n @Action(GetPermissions)\n permissionManagementGet({ patchState }: StateContext, { payload }: GetPermissions) {\n return this.permissionManagementService.getPermissions(payload).pipe(\n tap(permissionResponse =>\n patchState({\n permissionRes: permissionResponse,\n }),\n ),\n );\n }\n\n @Action(UpdatePermissions)\n permissionManagementUpdate(_, { payload }: UpdatePermissions) {\n return this.permissionManagementService.updatePermissions(payload);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TrackByFunction,\n} from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { map, pluck, take } from 'rxjs/operators';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementState } from '../states/permission-management.state';\n\ntype PermissionWithMargin = PermissionManagement.Permission & { margin: number };\n\n@Component({\n selector: 'abp-permission-management',\n templateUrl: './permission-management.component.html',\n})\nexport class PermissionManagementComponent implements OnInit, OnChanges {\n @Input()\n providerName: string;\n\n @Input()\n providerKey: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n if (!this.selectedGroup) return;\n\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (!value) {\n this.selectedGroup = null;\n }\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(PermissionManagementState.getPermissionGroups)\n groups$: Observable;\n\n @Select(PermissionManagementState.getEntitiyDisplayName)\n entityName$: Observable;\n\n selectedGroup: PermissionManagement.Group;\n\n permissions: PermissionManagement.Permission[] = [];\n\n selectThisTab: boolean = false;\n\n selectAllTab: boolean = false;\n\n modalBusy: boolean = false;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n get selectedGroupPermissions$(): Observable {\n return this.groups$.pipe(\n map(groups =>\n this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [],\n ),\n map(permissions =>\n permissions.map(\n permission =>\n (({\n ...permission,\n margin: findMargin(permissions, permission),\n isGranted: this.permissions.find(per => per.name === permission.name).isGranted,\n } as any) as PermissionWithMargin),\n ),\n ),\n );\n }\n\n constructor(private store: Store, private renderer: Renderer2) {}\n\n ngOnInit(): void {}\n\n getChecked(name: string) {\n return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;\n }\n\n isGrantedByRole(grantedProviders: PermissionManagement.GrantedProvider[]): boolean {\n if (grantedProviders.length) {\n return grantedProviders.findIndex(p => p.providerName === 'Role') > -1;\n }\n return false;\n }\n\n onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {\n if (clickedPermission.isGranted && this.isGrantedByRole(clickedPermission.grantedProviders)) return;\n\n setTimeout(() => {\n this.permissions = this.permissions.map(per => {\n if (clickedPermission.name === per.name) {\n return { ...per, isGranted: !per.isGranted };\n } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {\n return { ...per, isGranted: false };\n } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {\n return { ...per, isGranted: true };\n }\n\n return per;\n });\n\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n }\n\n setTabCheckboxState() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n const selectedPermissions = permissions.filter(per => per.isGranted);\n const element = document.querySelector('#select-all-in-this-tabs') as any;\n\n if (selectedPermissions.length === permissions.length) {\n element.indeterminate = false;\n this.selectThisTab = true;\n } else if (selectedPermissions.length === 0) {\n element.indeterminate = false;\n this.selectThisTab = false;\n } else {\n element.indeterminate = true;\n }\n });\n }\n\n setGrantCheckboxState() {\n const selectedAllPermissions = this.permissions.filter(per => per.isGranted);\n const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any;\n\n if (selectedAllPermissions.length === this.permissions.length) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = true;\n } else if (selectedAllPermissions.length === 0) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = false;\n } else {\n checkboxElement.indeterminate = true;\n }\n }\n\n onClickSelectThisTab() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n permissions.forEach(permission => {\n if (permission.isGranted && this.isGrantedByRole(permission.grantedProviders)) return;\n\n const index = this.permissions.findIndex(per => per.name === permission.name);\n\n this.permissions = [\n ...this.permissions.slice(0, index),\n { ...this.permissions[index], isGranted: !this.selectThisTab },\n ...this.permissions.slice(index + 1),\n ];\n });\n });\n\n this.setGrantCheckboxState();\n }\n\n onClickSelectAll() {\n this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab }));\n\n this.selectThisTab = !this.selectAllTab;\n }\n\n onChangeGroup(group: PermissionManagement.Group) {\n this.selectedGroup = group;\n this.setTabCheckboxState();\n }\n\n submit() {\n this.modalBusy = true;\n const unchangedPermissions = getPermissions(\n this.store.selectSnapshot(PermissionManagementState.getPermissionGroups),\n );\n\n const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions\n .filter(per =>\n unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true,\n )\n .map(({ name, isGranted }) => ({ name, isGranted }));\n\n if (changedPermissions.length) {\n this.store\n .dispatch(\n new UpdatePermissions({\n providerKey: this.providerKey,\n providerName: this.providerName,\n permissions: changedPermissions,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n } else {\n this.modalBusy = false;\n this.visible = false;\n }\n }\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.store\n .dispatch(new GetPermissions({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('PermissionManagementState', 'permissionRes'))\n .subscribe((permissionRes: PermissionManagement.Response) => {\n this.selectedGroup = permissionRes.groups[0];\n this.permissions = getPermissions(permissionRes.groups);\n\n this.visible = true;\n });\n }\n\n initModal() {\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n\nfunction findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) {\n const parentPermission = permissions.find(per => per.name === permission.parentName);\n\n if (parentPermission && parentPermission.parentName) {\n let margin = 20;\n return (margin += findMargin(permissions, parentPermission));\n }\n\n return parentPermission ? 20 : 0;\n}\n\nfunction getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] {\n return groups.reduce((acc, val) => [...acc, ...val.permissions], []);\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { PermissionManagementComponent } from './components/permission-management.component';\nimport { PermissionManagementState } from './states/permission-management.state';\n\n@NgModule({\n declarations: [PermissionManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState])],\n exports: [PermissionManagementComponent],\n})\nexport class PermissionManagementModule {}\n","export namespace PermissionManagement {\n export interface State {\n permissionRes: Response;\n }\n\n export interface Response {\n entityDisplayName: string;\n groups: Group[];\n }\n\n export interface Group {\n name: string;\n displayName: string;\n permissions: Permission[];\n }\n\n export interface MinimumPermission {\n name: string;\n isGranted: boolean;\n }\n\n export interface Permission extends MinimumPermission {\n displayName: string;\n parentName: string;\n allowedProviders: string[];\n grantedProviders: GrantedProvider[];\n }\n\n export interface GrantedProvider {\n providerName: string;\n providerKey: string;\n }\n\n export interface UpdateRequest {\n permissions: MinimumPermission[];\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/fesm5/abp-ng.permission-management.js b/npm/ng-packs/dist/permission-management/fesm5/abp-ng.permission-management.js index 03eaa9e317..3e38c36f70 100644 --- a/npm/ng-packs/dist/permission-management/fesm5/abp-ng.permission-management.js +++ b/npm/ng-packs/dist/permission-management/fesm5/abp-ng.permission-management.js @@ -1,36 +1,10 @@ -import { NgModule, Injectable, ɵɵdefineInjectable, ɵɵinject, EventEmitter, Component, Renderer2, Input, Output } from '@angular/core'; import { RestService, CoreModule } from '@abp/ng.core'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, EventEmitter, Component, Renderer2, Input, Output, NgModule } from '@angular/core'; import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; import { __decorate, __metadata, __assign, __spread } from 'tslib'; import { Observable } from 'rxjs'; import { tap, map, take, pluck } from 'rxjs/operators'; -import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -var RootPermissionManagementModule = /** @class */ (function () { - function RootPermissionManagementModule() { - } - /** - * @return {?} - */ - RootPermissionManagementModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootPermissionManagementModule, - providers: [], - }; - }; - RootPermissionManagementModule.decorators = [ - { type: NgModule, args: [{},] } - ]; - return RootPermissionManagementModule; -}()); /** * @fileoverview added by tsickle @@ -624,7 +598,7 @@ var PermissionManagementComponent = /** @class */ (function () { PermissionManagementComponent.decorators = [ { type: Component, args: [{ selector: 'abp-permission-management', - template: "\n \n \n

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n
    \n \n
  • \n {{ group?.displayName }}\n
  • \n
    \n
\n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n \n
\n
\n \n
\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n
\n" + template: "\n \n \n

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }} - {{ data.entityName }}

\n
\n \n
\n \n \n
\n\n
\n
\n
\n
    \n
  • \n {{ group?.displayName }}\n
  • \n
\n
\n
\n

{{ selectedGroup?.displayName }}

\n
\n
\n
\n \n \n
\n
\n \n \n {{ permission.displayName }}\n {{ provider.providerName }}: {{ provider.providerKey }}\n
\n
\n
\n \n
\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n
\n" }] } ]; /** @nocollapse */ @@ -729,7 +703,7 @@ var PermissionManagementModule = /** @class */ (function () { PermissionManagementModule.decorators = [ { type: NgModule, args: [{ declarations: [PermissionManagementComponent], - imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule], + imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState])], exports: [PermissionManagementComponent], },] } ]; @@ -858,5 +832,5 @@ var PermissionManagement; * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { GetPermissions, PermissionManagementComponent, PermissionManagementModule, PermissionManagementService, PermissionManagementState, RootPermissionManagementModule, UpdatePermissions, PermissionManagementComponent as ɵa, PermissionManagementState as ɵb, PermissionManagementService as ɵc, GetPermissions as ɵd, UpdatePermissions as ɵe }; +export { GetPermissions, PermissionManagementComponent, PermissionManagementModule, PermissionManagementService, PermissionManagementState, UpdatePermissions, PermissionManagementComponent as ɵa, PermissionManagementState as ɵb, PermissionManagementService as ɵc, GetPermissions as ɵd, UpdatePermissions as ɵe }; //# sourceMappingURL=abp-ng.permission-management.js.map diff --git a/npm/ng-packs/dist/permission-management/fesm5/abp-ng.permission-management.js.map b/npm/ng-packs/dist/permission-management/fesm5/abp-ng.permission-management.js.map index a8cb227ccd..c9ac84619e 100644 --- a/npm/ng-packs/dist/permission-management/fesm5/abp-ng.permission-management.js.map +++ b/npm/ng-packs/dist/permission-management/fesm5/abp-ng.permission-management.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.permission-management.js","sources":["ng://@abp/ng.permission-management/lib/root-permission-management.module.ts","ng://@abp/ng.permission-management/lib/actions/permission-management.actions.ts","ng://@abp/ng.permission-management/lib/services/permission-management.service.ts","ng://@abp/ng.permission-management/lib/states/permission-management.state.ts","ng://@abp/ng.permission-management/lib/components/permission-management.component.ts","ng://@abp/ng.permission-management/lib/permission-management.module.ts","ng://@abp/ng.permission-management/lib/models/permission-management.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootPermissionManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootPermissionManagementModule,\n providers: [],\n };\n }\n}\n","import { PermissionManagement } from '../models/permission-management';\n\nexport class GetPermissions {\n static readonly type = '[PermissionManagement] Get Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider) {}\n}\n\nexport class UpdatePermissions {\n static readonly type = '[PermissionManagement] Update Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Observable } from 'rxjs';\nimport { PermissionManagement } from '../models/permission-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionManagementService {\n constructor(private rest: RestService) {}\n\n getPermissions(params: PermissionManagement.GrantedProvider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/permissions',\n params,\n };\n\n return this.rest.request(request);\n }\n\n updatePermissions({\n permissions,\n providerKey,\n providerName,\n }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/permissions',\n body: { permissions },\n params: { providerKey, providerName },\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementService } from '../services/permission-management.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'PermissionManagementState',\n defaults: { permissionRes: {} } as PermissionManagement.State,\n})\nexport class PermissionManagementState {\n @Selector()\n static getPermissionGroups({ permissionRes }: PermissionManagement.State) {\n return permissionRes.groups || [];\n }\n\n @Selector()\n static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string {\n return permissionRes.entityDisplayName;\n }\n\n constructor(private permissionManagementService: PermissionManagementService) {}\n\n @Action(GetPermissions)\n permissionManagementGet({ patchState }: StateContext, { payload }: GetPermissions) {\n return this.permissionManagementService.getPermissions(payload).pipe(\n tap(permissionResponse =>\n patchState({\n permissionRes: permissionResponse,\n }),\n ),\n );\n }\n\n @Action(UpdatePermissions)\n permissionManagementUpdate(_, { payload }: UpdatePermissions) {\n return this.permissionManagementService.updatePermissions(payload);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TrackByFunction,\n} from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { map, pluck, take } from 'rxjs/operators';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementState } from '../states/permission-management.state';\n\ntype PermissionWithMargin = PermissionManagement.Permission & { margin: number };\n\n@Component({\n selector: 'abp-permission-management',\n templateUrl: './permission-management.component.html',\n})\nexport class PermissionManagementComponent implements OnInit, OnChanges {\n @Input()\n providerName: string;\n\n @Input()\n providerKey: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n if (!this.selectedGroup) return;\n\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (!value) {\n this.selectedGroup = null;\n }\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(PermissionManagementState.getPermissionGroups)\n groups$: Observable;\n\n @Select(PermissionManagementState.getEntitiyDisplayName)\n entityName$: Observable;\n\n selectedGroup: PermissionManagement.Group;\n\n permissions: PermissionManagement.Permission[] = [];\n\n selectThisTab: boolean = false;\n\n selectAllTab: boolean = false;\n\n modalBusy: boolean = false;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n get selectedGroupPermissions$(): Observable {\n return this.groups$.pipe(\n map(groups =>\n this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [],\n ),\n map(permissions =>\n permissions.map(\n permission =>\n (({\n ...permission,\n margin: findMargin(permissions, permission),\n isGranted: this.permissions.find(per => per.name === permission.name).isGranted,\n } as any) as PermissionWithMargin),\n ),\n ),\n );\n }\n\n constructor(private store: Store, private renderer: Renderer2) {}\n\n ngOnInit(): void {}\n\n getChecked(name: string) {\n return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;\n }\n\n isGrantedByRole(grantedProviders: PermissionManagement.GrantedProvider[]): boolean {\n if (grantedProviders.length) {\n return grantedProviders.findIndex(p => p.providerName === 'Role') > -1;\n }\n return false;\n }\n\n onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {\n if (clickedPermission.isGranted && this.isGrantedByRole(clickedPermission.grantedProviders)) return;\n\n setTimeout(() => {\n this.permissions = this.permissions.map(per => {\n if (clickedPermission.name === per.name) {\n return { ...per, isGranted: !per.isGranted };\n } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {\n return { ...per, isGranted: false };\n } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {\n return { ...per, isGranted: true };\n }\n\n return per;\n });\n\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n }\n\n setTabCheckboxState() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n const selectedPermissions = permissions.filter(per => per.isGranted);\n const element = document.querySelector('#select-all-in-this-tabs') as any;\n\n if (selectedPermissions.length === permissions.length) {\n element.indeterminate = false;\n this.selectThisTab = true;\n } else if (selectedPermissions.length === 0) {\n element.indeterminate = false;\n this.selectThisTab = false;\n } else {\n element.indeterminate = true;\n }\n });\n }\n\n setGrantCheckboxState() {\n const selectedAllPermissions = this.permissions.filter(per => per.isGranted);\n const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any;\n\n if (selectedAllPermissions.length === this.permissions.length) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = true;\n } else if (selectedAllPermissions.length === 0) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = false;\n } else {\n checkboxElement.indeterminate = true;\n }\n }\n\n onClickSelectThisTab() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n permissions.forEach(permission => {\n if (permission.isGranted && this.isGrantedByRole(permission.grantedProviders)) return;\n\n const index = this.permissions.findIndex(per => per.name === permission.name);\n\n this.permissions = [\n ...this.permissions.slice(0, index),\n { ...this.permissions[index], isGranted: !this.selectThisTab },\n ...this.permissions.slice(index + 1),\n ];\n });\n });\n\n this.setGrantCheckboxState();\n }\n\n onClickSelectAll() {\n this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab }));\n\n this.selectThisTab = !this.selectAllTab;\n }\n\n onChangeGroup(group: PermissionManagement.Group) {\n this.selectedGroup = group;\n this.setTabCheckboxState();\n }\n\n submit() {\n this.modalBusy = true;\n const unchangedPermissions = getPermissions(\n this.store.selectSnapshot(PermissionManagementState.getPermissionGroups),\n );\n\n const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions\n .filter(per =>\n unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true,\n )\n .map(({ name, isGranted }) => ({ name, isGranted }));\n\n if (changedPermissions.length) {\n this.store\n .dispatch(\n new UpdatePermissions({\n providerKey: this.providerKey,\n providerName: this.providerName,\n permissions: changedPermissions,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n } else {\n this.modalBusy = false;\n this.visible = false;\n }\n }\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.store\n .dispatch(new GetPermissions({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('PermissionManagementState', 'permissionRes'))\n .subscribe((permissionRes: PermissionManagement.Response) => {\n this.selectedGroup = permissionRes.groups[0];\n this.permissions = getPermissions(permissionRes.groups);\n\n this.visible = true;\n });\n }\n\n initModal() {\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n\nfunction findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) {\n const parentPermission = permissions.find(per => per.name === permission.parentName);\n\n if (parentPermission && parentPermission.parentName) {\n let margin = 20;\n return (margin += findMargin(permissions, parentPermission));\n }\n\n return parentPermission ? 20 : 0;\n}\n\nfunction getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] {\n return groups.reduce((acc, val) => [...acc, ...val.permissions], []);\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { PermissionManagementComponent } from './components/permission-management.component';\nimport { PermissionManagementState } from './states/permission-management.state';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\n\n@NgModule({\n declarations: [PermissionManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState]), PerfectScrollbarModule],\n exports: [PermissionManagementComponent],\n})\nexport class PermissionManagementModule {}\n","export namespace PermissionManagement {\n export interface State {\n permissionRes: Response;\n }\n\n export interface Response {\n entityDisplayName: string;\n groups: Group[];\n }\n\n export interface Group {\n name: string;\n displayName: string;\n permissions: Permission[];\n }\n\n export interface MinimumPermission {\n name: string;\n isGranted: boolean;\n }\n\n export interface Permission extends MinimumPermission {\n displayName: string;\n parentName: string;\n allowedProviders: string[];\n grantedProviders: GrantedProvider[];\n }\n\n export interface GrantedProvider {\n providerName: string;\n providerKey: string;\n }\n\n export interface UpdateRequest {\n permissions: MinimumPermission[];\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.permission-management.js","sources":["ng://@abp/ng.permission-management/lib/actions/permission-management.actions.ts","ng://@abp/ng.permission-management/lib/services/permission-management.service.ts","ng://@abp/ng.permission-management/lib/states/permission-management.state.ts","ng://@abp/ng.permission-management/lib/components/permission-management.component.ts","ng://@abp/ng.permission-management/lib/permission-management.module.ts","ng://@abp/ng.permission-management/lib/models/permission-management.ts"],"sourcesContent":["import { PermissionManagement } from '../models/permission-management';\n\nexport class GetPermissions {\n static readonly type = '[PermissionManagement] Get Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider) {}\n}\n\nexport class UpdatePermissions {\n static readonly type = '[PermissionManagement] Update Permissions';\n constructor(public payload: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Observable } from 'rxjs';\nimport { PermissionManagement } from '../models/permission-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionManagementService {\n constructor(private rest: RestService) {}\n\n getPermissions(params: PermissionManagement.GrantedProvider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/permissions',\n params,\n };\n\n return this.rest.request(request);\n }\n\n updatePermissions({\n permissions,\n providerKey,\n providerName,\n }: PermissionManagement.GrantedProvider & PermissionManagement.UpdateRequest): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/permissions',\n body: { permissions },\n params: { providerKey, providerName },\n };\n\n return this.rest.request(request);\n }\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementService } from '../services/permission-management.service';\nimport { tap } from 'rxjs/operators';\n\n@State({\n name: 'PermissionManagementState',\n defaults: { permissionRes: {} } as PermissionManagement.State,\n})\nexport class PermissionManagementState {\n @Selector()\n static getPermissionGroups({ permissionRes }: PermissionManagement.State) {\n return permissionRes.groups || [];\n }\n\n @Selector()\n static getEntitiyDisplayName({ permissionRes }: PermissionManagement.State): string {\n return permissionRes.entityDisplayName;\n }\n\n constructor(private permissionManagementService: PermissionManagementService) {}\n\n @Action(GetPermissions)\n permissionManagementGet({ patchState }: StateContext, { payload }: GetPermissions) {\n return this.permissionManagementService.getPermissions(payload).pipe(\n tap(permissionResponse =>\n patchState({\n permissionRes: permissionResponse,\n }),\n ),\n );\n }\n\n @Action(UpdatePermissions)\n permissionManagementUpdate(_, { payload }: UpdatePermissions) {\n return this.permissionManagementService.updatePermissions(payload);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TrackByFunction,\n} from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { from, Observable } from 'rxjs';\nimport { map, pluck, take } from 'rxjs/operators';\nimport { GetPermissions, UpdatePermissions } from '../actions/permission-management.actions';\nimport { PermissionManagement } from '../models/permission-management';\nimport { PermissionManagementState } from '../states/permission-management.state';\n\ntype PermissionWithMargin = PermissionManagement.Permission & { margin: number };\n\n@Component({\n selector: 'abp-permission-management',\n templateUrl: './permission-management.component.html',\n})\nexport class PermissionManagementComponent implements OnInit, OnChanges {\n @Input()\n providerName: string;\n\n @Input()\n providerKey: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n if (!this.selectedGroup) return;\n\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (!value) {\n this.selectedGroup = null;\n }\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(PermissionManagementState.getPermissionGroups)\n groups$: Observable;\n\n @Select(PermissionManagementState.getEntitiyDisplayName)\n entityName$: Observable;\n\n selectedGroup: PermissionManagement.Group;\n\n permissions: PermissionManagement.Permission[] = [];\n\n selectThisTab: boolean = false;\n\n selectAllTab: boolean = false;\n\n modalBusy: boolean = false;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n get selectedGroupPermissions$(): Observable {\n return this.groups$.pipe(\n map(groups =>\n this.selectedGroup ? groups.find(group => group.name === this.selectedGroup.name).permissions : [],\n ),\n map(permissions =>\n permissions.map(\n permission =>\n (({\n ...permission,\n margin: findMargin(permissions, permission),\n isGranted: this.permissions.find(per => per.name === permission.name).isGranted,\n } as any) as PermissionWithMargin),\n ),\n ),\n );\n }\n\n constructor(private store: Store, private renderer: Renderer2) {}\n\n ngOnInit(): void {}\n\n getChecked(name: string) {\n return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;\n }\n\n isGrantedByRole(grantedProviders: PermissionManagement.GrantedProvider[]): boolean {\n if (grantedProviders.length) {\n return grantedProviders.findIndex(p => p.providerName === 'Role') > -1;\n }\n return false;\n }\n\n onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {\n if (clickedPermission.isGranted && this.isGrantedByRole(clickedPermission.grantedProviders)) return;\n\n setTimeout(() => {\n this.permissions = this.permissions.map(per => {\n if (clickedPermission.name === per.name) {\n return { ...per, isGranted: !per.isGranted };\n } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {\n return { ...per, isGranted: false };\n } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {\n return { ...per, isGranted: true };\n }\n\n return per;\n });\n\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }, 0);\n }\n\n setTabCheckboxState() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n const selectedPermissions = permissions.filter(per => per.isGranted);\n const element = document.querySelector('#select-all-in-this-tabs') as any;\n\n if (selectedPermissions.length === permissions.length) {\n element.indeterminate = false;\n this.selectThisTab = true;\n } else if (selectedPermissions.length === 0) {\n element.indeterminate = false;\n this.selectThisTab = false;\n } else {\n element.indeterminate = true;\n }\n });\n }\n\n setGrantCheckboxState() {\n const selectedAllPermissions = this.permissions.filter(per => per.isGranted);\n const checkboxElement = document.querySelector('#select-all-in-all-tabs') as any;\n\n if (selectedAllPermissions.length === this.permissions.length) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = true;\n } else if (selectedAllPermissions.length === 0) {\n checkboxElement.indeterminate = false;\n this.selectAllTab = false;\n } else {\n checkboxElement.indeterminate = true;\n }\n }\n\n onClickSelectThisTab() {\n this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {\n permissions.forEach(permission => {\n if (permission.isGranted && this.isGrantedByRole(permission.grantedProviders)) return;\n\n const index = this.permissions.findIndex(per => per.name === permission.name);\n\n this.permissions = [\n ...this.permissions.slice(0, index),\n { ...this.permissions[index], isGranted: !this.selectThisTab },\n ...this.permissions.slice(index + 1),\n ];\n });\n });\n\n this.setGrantCheckboxState();\n }\n\n onClickSelectAll() {\n this.permissions = this.permissions.map(permission => ({ ...permission, isGranted: !this.selectAllTab }));\n\n this.selectThisTab = !this.selectAllTab;\n }\n\n onChangeGroup(group: PermissionManagement.Group) {\n this.selectedGroup = group;\n this.setTabCheckboxState();\n }\n\n submit() {\n this.modalBusy = true;\n const unchangedPermissions = getPermissions(\n this.store.selectSnapshot(PermissionManagementState.getPermissionGroups),\n );\n\n const changedPermissions: PermissionManagement.MinimumPermission[] = this.permissions\n .filter(per =>\n unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted === per.isGranted ? false : true,\n )\n .map(({ name, isGranted }) => ({ name, isGranted }));\n\n if (changedPermissions.length) {\n this.store\n .dispatch(\n new UpdatePermissions({\n providerKey: this.providerKey,\n providerName: this.providerName,\n permissions: changedPermissions,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n } else {\n this.modalBusy = false;\n this.visible = false;\n }\n }\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.store\n .dispatch(new GetPermissions({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('PermissionManagementState', 'permissionRes'))\n .subscribe((permissionRes: PermissionManagement.Response) => {\n this.selectedGroup = permissionRes.groups[0];\n this.permissions = getPermissions(permissionRes.groups);\n\n this.visible = true;\n });\n }\n\n initModal() {\n this.setTabCheckboxState();\n this.setGrantCheckboxState();\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n\nfunction findMargin(permissions: PermissionManagement.Permission[], permission: PermissionManagement.Permission) {\n const parentPermission = permissions.find(per => per.name === permission.parentName);\n\n if (parentPermission && parentPermission.parentName) {\n let margin = 20;\n return (margin += findMargin(permissions, parentPermission));\n }\n\n return parentPermission ? 20 : 0;\n}\n\nfunction getPermissions(groups: PermissionManagement.Group[]): PermissionManagement.Permission[] {\n return groups.reduce((acc, val) => [...acc, ...val.permissions], []);\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { PermissionManagementComponent } from './components/permission-management.component';\nimport { PermissionManagementState } from './states/permission-management.state';\n\n@NgModule({\n declarations: [PermissionManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([PermissionManagementState])],\n exports: [PermissionManagementComponent],\n})\nexport class PermissionManagementModule {}\n","export namespace PermissionManagement {\n export interface State {\n permissionRes: Response;\n }\n\n export interface Response {\n entityDisplayName: string;\n groups: Group[];\n }\n\n export interface Group {\n name: string;\n displayName: string;\n permissions: Permission[];\n }\n\n export interface MinimumPermission {\n name: string;\n isGranted: boolean;\n }\n\n export interface Permission extends MinimumPermission {\n displayName: string;\n parentName: string;\n allowedProviders: string[];\n grantedProviders: GrantedProvider[];\n }\n\n export interface GrantedProvider {\n providerName: string;\n providerKey: string;\n }\n\n export interface UpdateRequest {\n permissions: MinimumPermission[];\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":";;;;;;;;;;;;AAEA;IAEE,wBAAmB,OAA6C;QAA7C,YAAO,GAAP,OAAO,CAAsC;KAAI;IADpD,mBAAI,GAAG,wCAAwC,CAAC;IAElE,qBAAC;CAHD,IAGC;;;IAFC,oBAAgE;;IACpD,iCAAoD;;AAGlE;IAEE,2BAAmB,OAAkF;QAAlF,YAAO,GAAP,OAAO,CAA2E;KAAI;IADzF,sBAAI,GAAG,2CAA2C,CAAC;IAErE,wBAAC;CAHD,IAGC;;;IAFC,uBAAmE;;IACvD,oCAAyF;;;;;;;ACTvG;IASE,qCAAoB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;KAAI;;;;;IAEzC,oDAAc;;;;IAAd,UAAe,MAA4C;;YACnD,OAAO,GAAuD;YAClE,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,sBAAsB;YAC3B,MAAM,QAAA;SACP;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAsE,OAAO,CAAC,CAAC;KACxG;;;;;IAED,uDAAiB;;;;IAAjB,UAAkB,EAI0D;YAH1E,4BAAW,EACX,4BAAW,EACX,8BAAY;;YAEN,OAAO,GAAqD;YAChE,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,sBAAsB;YAC3B,IAAI,EAAE,EAAE,WAAW,aAAA,EAAE;YACrB,MAAM,EAAE,EAAE,WAAW,aAAA,EAAE,YAAY,cAAA,EAAE;SACtC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA2C,OAAO,CAAC,CAAC;KAC7E;;gBA7BF,UAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;;gBANQ,WAAW;;;sCADpB;CAKA,IA8BC;;;;;;IA1Ba,2CAAyB;;;;;;;;ICYrC,mCAAoB,2BAAwD;QAAxD,gCAA2B,GAA3B,2BAA2B,CAA6B;KAAI;;;;;IATzE,6CAAmB;;;;IAA1B,UAA2B,EAA6C;YAA3C,gCAAa;QACxC,OAAO,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC;KACnC;;;;;IAGM,+CAAqB;;;;IAA5B,UAA6B,EAA6C;YAA3C,gCAAa;QAC1C,OAAO,aAAa,CAAC,iBAAiB,CAAC;KACxC;;;;;;IAKD,2DAAuB;;;;;IAAvB,UAAwB,EAAwD,EAAE,EAA2B;YAAnF,0BAAU;YAAgD,oBAAO;QACzF,OAAO,IAAI,CAAC,2BAA2B,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAClE,GAAG;;;;QAAC,UAAA,kBAAkB;YACpB,OAAA,UAAU,CAAC;gBACT,aAAa,EAAE,kBAAkB;aAClC,CAAC;SAAA,EACH,CACF,CAAC;KACH;;;;;;IAGD,8DAA0B;;;;;IAA1B,UAA2B,CAAC,EAAE,EAA8B;YAA5B,oBAAO;QACrC,OAAO,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;KACpE;IAbDA;QADC,MAAM,CAAC,cAAc,CAAC;;iDACwE,cAAc;;4EAQ5G;IAGDA;QADC,MAAM,CAAC,iBAAiB,CAAC;;iDACiB,iBAAiB;;+EAE3D;IAzBDA;QADC,QAAQ,EAAE;;;;8DAGV;IAGDA;QADC,QAAQ,EAAE;;;;gEAGV;IATU,yBAAyB;QAJrC,KAAK,CAA6B;YACjC,IAAI,EAAE,2BAA2B;YACjC,QAAQ,qBAAE,EAAE,aAAa,EAAE,EAAE,EAAE,EAA8B;SAC9D,CAAC;yCAYiD,2BAA2B;OAXjE,yBAAyB,CA4BrC;IAAD,gCAAC;CAAA,IAAA;;;;;;IAjBa,gEAAgE;;;;;;;;ICmE5E,uCAAoB,KAAY,EAAU,QAAmB;QAAzC,UAAK,GAAL,KAAK,CAAO;QAAU,aAAQ,GAAR,QAAQ,CAAW;QAtC7D,kBAAa,GAAG,IAAI,YAAY,EAAW,CAAC;QAU5C,gBAAW,GAAsC,EAAE,CAAC;QAEpD,kBAAa,GAAY,KAAK,CAAC;QAE/B,iBAAY,GAAY,KAAK,CAAC;QAE9B,cAAS,GAAY,KAAK,CAAC;QAE3B,cAAS;;;;;QAAgD,UAAC,CAAC,EAAE,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,GAAA,EAAC;KAoBf;IAvDjE,sBACI,kDAAO;;;;QADX;YAEE,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;;;;;QAED,UAAY,KAAc;YACxB,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,OAAO;YAEhC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE/B,IAAI,CAAC,KAAK,EAAE;gBACV,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;SACF;;;OAXA;IAkCD,sBAAI,oEAAyB;;;;QAA7B;YAAA,iBAgBC;YAfC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,GAAG;;;;YAAC,UAAA,MAAM;gBACR,OAAA,KAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI;;;;gBAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,IAAI,KAAK,KAAI,CAAC,aAAa,CAAC,IAAI,GAAA,EAAC,CAAC,WAAW,GAAG,EAAE;aAAA,EACnG,EACD,GAAG;;;;YAA4D,UAAA,WAAW;gBACxE,OAAA,WAAW,CAAC,GAAG;;;;gBACb,UAAA,UAAU;oBACR,4DACK,UAAU,IACb,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,EAC3C,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI;;;;wBAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,GAAA,EAAC,CAAC,SAAS;iBAC/C,EACrC;aAAA,EACF,CACF,CAAC;SACH;;;OAAA;;;;IAID,gDAAQ;;;IAAR,eAAmB;;;;;IAEnB,kDAAU;;;;IAAV,UAAW,IAAY;QACrB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;;;;QAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,KAAK,IAAI,GAAA,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC;KAC5F;;;;;IAED,uDAAe;;;;IAAf,UAAgB,gBAAwD;QACtE,IAAI,gBAAgB,CAAC,MAAM,EAAE;YAC3B,OAAO,gBAAgB,CAAC,SAAS;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,YAAY,KAAK,MAAM,GAAA,EAAC,GAAG,CAAC,CAAC,CAAC;SACxE;QACD,OAAO,KAAK,CAAC;KACd;;;;;;IAED,uDAAe;;;;;IAAf,UAAgB,iBAAkD,EAAE,KAAK;QAAzE,iBAmBC;QAlBC,IAAI,iBAAiB,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAEpG,UAAU;;;QAAC;YACT,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,WAAW,CAAC,GAAG;;;;YAAC,UAAA,GAAG;gBACzC,IAAI,iBAAiB,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE;oBACvC,oBAAY,GAAG,IAAE,SAAS,EAAE,CAAC,GAAG,CAAC,SAAS,IAAG;iBAC9C;qBAAM,IAAI,iBAAiB,CAAC,IAAI,KAAK,GAAG,CAAC,UAAU,IAAI,iBAAiB,CAAC,SAAS,EAAE;oBACnF,oBAAY,GAAG,IAAE,SAAS,EAAE,KAAK,IAAG;iBACrC;qBAAM,IAAI,iBAAiB,CAAC,UAAU,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;oBACpF,oBAAY,GAAG,IAAE,SAAS,EAAE,IAAI,IAAG;iBACpC;gBAED,OAAO,GAAG,CAAC;aACZ,EAAC,CAAC;YAEH,KAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,KAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B,GAAE,CAAC,CAAC,CAAC;KACP;;;;IAED,2DAAmB;;;IAAnB;QAAA,iBAeC;QAdC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;;;;QAAC,UAAA,WAAW;;gBAC1D,mBAAmB,GAAG,WAAW,CAAC,MAAM;;;;YAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,SAAS,GAAA,EAAC;;gBAC9D,OAAO,sBAAG,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,EAAO;YAEzE,IAAI,mBAAmB,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE;gBACrD,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC9B,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;iBAAM,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3C,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC9B,KAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;iBAAM;gBACL,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;aAC9B;SACF,EAAC,CAAC;KACJ;;;;IAED,6DAAqB;;;IAArB;;YACQ,sBAAsB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM;;;;QAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,SAAS,GAAA,EAAC;;YACtE,eAAe,sBAAG,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAO;QAEhF,IAAI,sBAAsB,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC7D,eAAe,CAAC,aAAa,GAAG,KAAK,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC1B;aAAM,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9C,eAAe,CAAC,aAAa,GAAG,KAAK,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B;aAAM;YACL,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC;SACtC;KACF;;;;IAED,4DAAoB;;;IAApB;QAAA,iBAgBC;QAfC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;;;;QAAC,UAAA,WAAW;YAChE,WAAW,CAAC,OAAO;;;;YAAC,UAAA,UAAU;gBAC5B,IAAI,UAAU,CAAC,SAAS,IAAI,KAAI,CAAC,eAAe,CAAC,UAAU,CAAC,gBAAgB,CAAC;oBAAE,OAAO;;oBAEhF,KAAK,GAAG,KAAI,CAAC,WAAW,CAAC,SAAS;;;;gBAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,GAAA,EAAC;gBAE7E,KAAI,CAAC,WAAW,YACX,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;iCAC9B,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAE,SAAS,EAAE,CAAC,KAAI,CAAC,aAAa;mBACzD,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CACrC,CAAC;aACH,EAAC,CAAC;SACJ,EAAC,CAAC;QAEH,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;;;;IAED,wDAAgB;;;IAAhB;QAAA,iBAIC;QAHC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG;;;;QAAC,UAAA,UAAU,IAAI,qBAAM,UAAU,IAAE,SAAS,EAAE,CAAC,KAAI,CAAC,YAAY,OAAG,EAAC,CAAC;QAE1G,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;KACzC;;;;;IAED,qDAAa;;;;IAAb,UAAc,KAAiC;QAC7C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;;;;IAED,8CAAM;;;IAAN;QAAA,iBA6BC;QA5BC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;YAChB,oBAAoB,GAAG,cAAc,CACzC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CACzE;;YAEK,kBAAkB,GAA6C,IAAI,CAAC,WAAW;aAClF,MAAM;;;;QAAC,UAAA,GAAG;YACT,OAAA,oBAAoB,CAAC,IAAI;;;;YAAC,UAAA,SAAS,IAAI,OAAA,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAA,EAAC,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI;SAAA,EAC/G;aACA,GAAG;;;;QAAC,UAAC,EAAmB;gBAAjB,cAAI,EAAE,wBAAS;YAAO,QAAC,EAAE,IAAI,MAAA,EAAE,SAAS,WAAA,EAAE;SAAC,EAAC;QAEtD,IAAI,kBAAkB,CAAC,MAAM,EAAE;YAC7B,IAAI,CAAC,KAAK;iBACP,QAAQ,CACP,IAAI,iBAAiB,CAAC;gBACpB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,kBAAkB;aAChC,CAAC,CACH;iBACA,SAAS;;;YAAC;gBACT,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB,EAAC,CAAC;SACN;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;KACF;;;;IAED,iDAAS;;;IAAT;QAAA,iBAcC;QAbC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC3C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;QAED,IAAI,CAAC,KAAK;aACP,QAAQ,CAAC,IAAI,cAAc,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;aAChG,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,eAAe,CAAC,CAAC;aACzD,SAAS;;;;QAAC,UAAC,aAA4C;YACtD,KAAI,CAAC,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7C,KAAI,CAAC,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAExD,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB,EAAC,CAAC;KACN;;;;IAED,iDAAS;;;IAAT;QACE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;;;;;IAED,mDAAW;;;;IAAX,UAAY,EAA0B;YAAxB,oBAAO;QACnB,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,OAAO,CAAC,YAAY,EAAE;YACxB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;aAAM,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YACzD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;KACF;;gBAjOF,SAAS,SAAC;oBACT,QAAQ,EAAE,2BAA2B;oBACrC,ssHAAqD;iBACtD;;;;gBAZgB,KAAK;gBAJpB,SAAS;;;+BAkBR,KAAK;8BAGL,KAAK;0BAKL,KAAK;gCAgBL,MAAM;;IAIPA;QADC,MAAM,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;kCAC7C,UAAU;kEAA+B;IAGlDA;QADC,MAAM,CAAC,yBAAyB,CAAC,qBAAqB,CAAC;kCAC3C,UAAU;sEAAS;IA8LlC,oCAAC;CAlOD,IAkOC;;;IA7NC,qDACqB;;IAErB,oDACoB;;;;;IAEpB,iDAAmB;;IAkBnB,sDAC4C;;IAE5C,gDACkD;;IAElD,oDACgC;;IAEhC,sDAA0C;;IAE1C,oDAAoD;;IAEpD,sDAA+B;;IAE/B,qDAA8B;;IAE9B,kDAA2B;;IAE3B,kDAAgF;;;;;IAoBpE,8CAAoB;;;;;IAAE,iDAA2B;;;;;;;AAgK/D,SAAS,UAAU,CAAC,WAA8C,EAAE,UAA2C;;QACvG,gBAAgB,GAAG,WAAW,CAAC,IAAI;;;;IAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,GAAA,EAAC;IAEpF,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,UAAU,EAAE;;YAC/C,MAAM,GAAG,EAAE;QACf,QAAQ,MAAM,IAAI,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE;KAC9D;IAED,OAAO,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;CAClC;;;;;AAED,SAAS,cAAc,CAAC,MAAoC;IAC1D,OAAO,MAAM,CAAC,MAAM;;;;;IAAC,UAAC,GAAG,EAAE,GAAG,IAAK,gBAAI,GAAG,EAAK,GAAG,CAAC,WAAW,IAAC,GAAE,EAAE,CAAC,CAAC;CACtE;;;;;;ACrQD;IAOA;KAK0C;;gBALzC,QAAQ,SAAC;oBACR,YAAY,EAAE,CAAC,6BAA6B,CAAC;oBAC7C,OAAO,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;oBAC5F,OAAO,EAAE,CAAC,6BAA6B,CAAC;iBACzC;;IACwC,iCAAC;CAL1C;;;;;;;;;;;;;;;;ACPA,IAAiB,oBAAoB,CAoCpC;AApCD,WAAiB,oBAAoB;;;;IACnC,oBAEC;;;;QADC,8BAAwB;;;;;IAG1B,uBAGC;;;;QAFC,qCAA0B;;QAC1B,0BAAgB;;;;;IAGlB,oBAIC;;;;QAHC,qBAAa;;QACb,4BAAoB;;QACpB,4BAA0B;;;;;IAG5B,gCAGC;;;;QAFC,iCAAa;;QACb,sCAAmB;;;;;IAGrB,yBAKC;;;;QAJC,iCAAoB;;QACpB,gCAAmB;;QACnB,sCAA2B;;QAC3B,sCAAoC;;;;;IAGtC,8BAGC;;;;QAFC,uCAAqB;;QACrB,sCAAoB;;;;;IAGtB,4BAEC;;;;QADC,oCAAiC;;CAEpC,EApCgB,oBAAoB,KAApB,oBAAoB,QAoCpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/npm/ng-packs/dist/permission-management/lib/root-permission-management.module.d.ts b/npm/ng-packs/dist/permission-management/lib/root-permission-management.module.d.ts deleted file mode 100644 index 9156f28744..0000000000 --- a/npm/ng-packs/dist/permission-management/lib/root-permission-management.module.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { ModuleWithProviders } from '@angular/core'; -export declare class RootPermissionManagementModule { - static forRoot(): ModuleWithProviders; -} diff --git a/npm/ng-packs/dist/permission-management/package.json b/npm/ng-packs/dist/permission-management/package.json index 55aab852f6..8f197e0025 100644 --- a/npm/ng-packs/dist/permission-management/package.json +++ b/npm/ng-packs/dist/permission-management/package.json @@ -1,8 +1,8 @@ { "name": "@abp/ng.permission-management", - "version": "0.8.3", + "version": "0.9.0", "dependencies": { - "@abp/ng.theme.shared": "^0.8.3", + "@abp/ng.theme.shared": "^0.9.0", "tslib": "^1.9.0" }, "publishConfig": { diff --git a/npm/ng-packs/dist/permission-management/public-api.d.ts b/npm/ng-packs/dist/permission-management/public-api.d.ts index a4f7fa2c23..47632ca4cd 100644 --- a/npm/ng-packs/dist/permission-management/public-api.d.ts +++ b/npm/ng-packs/dist/permission-management/public-api.d.ts @@ -1,4 +1,3 @@ -export * from './lib/root-permission-management.module'; export * from './lib/permission-management.module'; export * from './lib/actions'; export * from './lib/components'; diff --git a/npm/ng-packs/dist/setting-management/abp-ng.setting-management.d.ts b/npm/ng-packs/dist/setting-management/abp-ng.setting-management.d.ts index 7a8413f02b..5f3e971928 100644 --- a/npm/ng-packs/dist/setting-management/abp-ng.setting-management.d.ts +++ b/npm/ng-packs/dist/setting-management/abp-ng.setting-management.d.ts @@ -2,6 +2,6 @@ * Generated bundle index. Do not edit. */ export * from './public-api'; -export { InitialService as ɵb } from './lib/components/services/initial.service'; -export { SettingComponent as ɵa } from './lib/components/setting/setting.component'; -export { SettingManagementRoutingModule as ɵc } from './lib/setting-management-routing.module'; +export { SETTING_MANAGEMENT_ROUTES as ɵc } from './lib/constants/routes'; +export { SettingManagementService as ɵa } from './lib/services/setting-management.service'; +export { SettingManagementRoutingModule as ɵb } from './lib/setting-management-routing.module'; diff --git a/npm/ng-packs/dist/setting-management/abp-ng.setting-management.metadata.json b/npm/ng-packs/dist/setting-management/abp-ng.setting-management.metadata.json index 556144f39b..6644f6567f 100644 --- a/npm/ng-packs/dist/setting-management/abp-ng.setting-management.metadata.json +++ b/npm/ng-packs/dist/setting-management/abp-ng.setting-management.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"exports":[{"from":"./lib/routes"}],"metadata":{"RootSettingManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":2,"character":1},"arguments":[{}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"RootSettingManagementModule"},"providers":[]}}}},"SettingManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":9,"character":44},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":9,"character":56}],"providers":[{"__symbolic":"reference","name":"ɵb"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":13,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"ɵb"}]}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"abp-setting","template":"
\n
\n

{{ 'AbpSettingManagement::Settings' | abpLocalization }}

\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
    \n \n {{ setting.name | abpLocalization }}\n \n
\n
\n
\n
\n
\n

{{ selected.name | abpLocalization }}

\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":9,"character":30}]}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":14,"character":12},"member":"forChild"},"arguments":[[{"path":"","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":8,"character":15},"children":[{"path":"","component":{"__symbolic":"reference","name":"ɵa"}}]}]]}],"exports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":15,"character":12}]}]}],"members":{}}},"origins":{"RootSettingManagementModule":"./lib/root-setting-management.module","SettingManagementModule":"./lib/setting-management.module","ɵa":"./lib/components/setting/setting.component","ɵb":"./lib/components/services/initial.service","ɵc":"./lib/setting-management-routing.module"},"importAs":"@abp/ng.setting-management"} \ No newline at end of file +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/routes"}],"metadata":{"SETTING_LAYOUT":{"__symbolic":"reference","name":"SettingLayoutComponent"},"SettingManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SETTING_LAYOUT"}],"imports":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":10,"character":44},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":10,"character":56}],"entryComponents":[{"__symbolic":"reference","name":"SETTING_LAYOUT"}]}]}],"members":{}},"SettingLayoutComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"abp-setting-layout","template":"
\n
\n

{{ 'AbpSettingManagement::Settings' | abpLocalization }}

\n
\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
    \n \n {{ setting.name | abpLocalization }}\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":17,"character":89}]}],"ngOnDestroy":[{"__symbolic":"method"}]},"statics":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":13,"character":16},"member":"setting"}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Actions","line":19,"character":21},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":20,"character":20},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":21,"character":19},{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":22,"character":26}]}],"ngOnDestroy":[{"__symbolic":"method"}],"setSettings":[{"__symbolic":"method"}],"checkSelected":[{"__symbolic":"method"}],"setSelected":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":16,"character":12},"member":"forChild"},"arguments":[[{"path":"setting-management","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":9,"character":15},"children":[{"path":"","component":{"__symbolic":"reference","name":"SettingLayoutComponent"}}],"data":{"routes":{"__symbolic":"reference","name":"ɵc"},"settings":[]}}]]}],"exports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":17,"character":12}]}]}],"members":{}},"ɵc":{"routes":[{"name":"Settings","path":"setting-management","parentName":"AbpUiNavigation::Menu:Administration","layout":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":8,"character":14},"member":"application"},"order":6,"iconClass":"fa fa-cog"}]}},"origins":{"SETTING_LAYOUT":"./lib/components/setting-layout.component","SettingManagementModule":"./lib/setting-management.module","SettingLayoutComponent":"./lib/components/setting-layout.component","ɵa":"./lib/services/setting-management.service","ɵb":"./lib/setting-management-routing.module","ɵc":"./lib/constants/routes"},"importAs":"@abp/ng.setting-management"} \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.js b/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.js index 8f55023469..ef44e4b693 100644 --- a/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.js +++ b/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.js @@ -1,327 +1,204 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@abp/ng.core'), require('@angular/router'), require('snq'), require('@abp/ng.theme.shared')) : - typeof define === 'function' && define.amd ? define('@abp/ng.setting-management', ['exports', '@angular/core', '@abp/ng.core', '@angular/router', 'snq', '@abp/ng.theme.shared'], factory) : - (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng['setting-management'] = {}), global.ng.core, global.ng_core, global.ng.router, global.snq, global.ng_theme_shared)); -}(this, function (exports, core, ng_core, router, snq, ng_theme_shared) { 'use strict'; - - snq = snq && snq.hasOwnProperty('default') ? snq['default'] : snq; - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - - function __rest(s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - } - - function __decorate(decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - } - - function __param(paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - } - - function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - } - - function __awaiter(thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - } - - function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - } - - function __exportStar(m, exports) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - - function __values(o) { - var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; - if (m) return m.call(o); - return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - } - - function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - } - - function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - } - - function __spreadArrays() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - - function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - } - - function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - } - - function __asyncDelegator(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } - } - - function __asyncValues(o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - } - - function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - }; - - function __importStar(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result.default = mod; - return result; - } - - function __importDefault(mod) { - return (mod && mod.__esModule) ? mod : { default: mod }; - } + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@abp/ng.theme.shared'), require('@angular/core'), require('@angular/router'), require('@ngxs/router-plugin'), require('@ngxs/store'), require('rxjs'), require('angular-oauth2-oidc'), require('rxjs/operators')) : + typeof define === 'function' && define.amd ? define('@abp/ng.setting-management', ['exports', '@abp/ng.core', '@abp/ng.theme.shared', '@angular/core', '@angular/router', '@ngxs/router-plugin', '@ngxs/store', 'rxjs', 'angular-oauth2-oidc', 'rxjs/operators'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng['setting-management'] = {}), global.ng_core, global.ng_theme_shared, global.ng.core, global.ng.router, global.routerPlugin, global.store, global.rxjs, global.angularOauth2Oidc, global.rxjs.operators)); +}(this, function (exports, ng_core, ng_theme_shared, core, router, routerPlugin, store, rxjs, angularOauth2Oidc, operators) { 'use strict'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ - var RootSettingManagementModule = /** @class */ (function () { - function RootSettingManagementModule() { + var SettingManagementService = /** @class */ (function () { + function SettingManagementService(actions, router, store$1, oAuthService) { + var _this = this; + this.actions = actions; + this.router = router; + this.store = store$1; + this.oAuthService = oAuthService; + this.settings = []; + this.selected = (/** @type {?} */ ({})); + this.destroy$ = new rxjs.Subject(); + setTimeout((/** + * @return {?} + */ + function () { return _this.setSettings(); }), 0); + this.actions + .pipe(store.ofActionSuccessful(ng_core.GetAppConfiguration)) + .pipe(operators.takeUntil(this.destroy$)) + .subscribe((/** + * @return {?} + */ + function () { + if (_this.oAuthService.hasValidAccessToken()) { + _this.setSettings(); + } + })); } /** * @return {?} */ - RootSettingManagementModule.forRoot = /** + SettingManagementService.prototype.ngOnDestroy = /** * @return {?} */ function () { - return { - ngModule: RootSettingManagementModule, - providers: [], - }; + this.destroy$.next(); }; - RootSettingManagementModule.decorators = [ - { type: core.NgModule, args: [{},] } - ]; - return RootSettingManagementModule; - }()); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var InitialService = /** @class */ (function () { - function InitialService(router) { - this.router = router; - this.settings = this.router.config - .map((/** - * @param {?} route - * @return {?} - */ - function (route) { return snq((/** + /** + * @return {?} + */ + SettingManagementService.prototype.setSettings = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var route = this.router.config.find((/** + * @param {?} r * @return {?} */ - function () { return route.data.routes.settings; })); })) + function (r) { return r.path === 'setting-management'; })); + this.settings = ((/** @type {?} */ (route.data.settings))) .filter((/** - * @param {?} settings + * @param {?} setting * @return {?} */ - function (settings) { return settings && settings.length; })) - .reduce((/** - * @param {?} acc - * @param {?} val - * @return {?} - */ - function (acc, val) { return __spread(acc, val); }), []) + function (setting) { return _this.store.selectSnapshot(ng_core.ConfigState.getGrantedPolicy(setting.requiredPolicy)); })) .sort((/** * @param {?} a * @param {?} b * @return {?} */ function (a, b) { return a.order - b.order; })); - } - InitialService.decorators = [ - { type: core.Injectable } + this.checkSelected(); + }; + /** + * @return {?} + */ + SettingManagementService.prototype.checkSelected = /** + * @return {?} + */ + function () { + var _this = this; + this.selected = this.settings.find((/** + * @param {?} setting + * @return {?} + */ + function (setting) { return setting.url === _this.router.url; })) || ((/** @type {?} */ ({}))); + if (!this.selected.name && this.settings.length) { + this.setSelected(this.settings[0]); + } + }; + /** + * @param {?} selected + * @return {?} + */ + SettingManagementService.prototype.setSelected = /** + * @param {?} selected + * @return {?} + */ + function (selected) { + this.selected = selected; + this.store.dispatch(new routerPlugin.Navigate([selected.url])); + }; + SettingManagementService.decorators = [ + { type: core.Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ - InitialService.ctorParameters = function () { return [ - { type: router.Router } + SettingManagementService.ctorParameters = function () { return [ + { type: store.Actions }, + { type: router.Router }, + { type: store.Store }, + { type: angularOauth2Oidc.OAuthService } ]; }; - return InitialService; + /** @nocollapse */ SettingManagementService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function SettingManagementService_Factory() { return new SettingManagementService(core.ɵɵinject(store.Actions), core.ɵɵinject(router.Router), core.ɵɵinject(store.Store), core.ɵɵinject(angularOauth2Oidc.OAuthService)); }, token: SettingManagementService, providedIn: "root" }); + return SettingManagementService; }()); if (false) { /** @type {?} */ - InitialService.prototype.settings; + SettingManagementService.prototype.settings; + /** @type {?} */ + SettingManagementService.prototype.selected; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.destroy$; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.actions; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.router; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.store; /** * @type {?} * @private */ - InitialService.prototype.router; + SettingManagementService.prototype.oAuthService; } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ - var SettingComponent = /** @class */ (function () { - function SettingComponent(initialService) { - this.initialService = initialService; - this.selected = (/** @type {?} */ ({})); + var SettingLayoutComponent = /** @class */ (function () { + function SettingLayoutComponent(settingManagementService, router) { + this.settingManagementService = settingManagementService; + this.router = router; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + function (_, item) { return item.name; }); + if (settingManagementService.selected && + this.router.url !== settingManagementService.selected.url && + settingManagementService.settings.length) { + settingManagementService.setSelected(settingManagementService.settings[0]); + } } /** * @return {?} */ - SettingComponent.prototype.ngOnInit = /** + SettingLayoutComponent.prototype.ngOnDestroy = /** * @return {?} */ - function () { - this.settings = this.initialService.settings; - this.selected = this.settings[0]; - }; - SettingComponent.decorators = [ + function () { }; + // required for dynamic component + SettingLayoutComponent.type = "setting" /* setting */; + SettingLayoutComponent.decorators = [ { type: core.Component, args: [{ - selector: 'abp-setting', - template: "
\n
\n

{{ 'AbpSettingManagement::Settings' | abpLocalization }}

\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
    \n \n {{ setting.name | abpLocalization }}\n \n
\n
\n
\n
\n
\n

{{ selected.name | abpLocalization }}

\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n" + selector: 'abp-setting-layout', + template: "
\n
\n

{{ 'AbpSettingManagement::Settings' | abpLocalization }}

\n
\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
    \n \n {{ setting.name | abpLocalization }}\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n" }] } ]; /** @nocollapse */ - SettingComponent.ctorParameters = function () { return [ - { type: InitialService } + SettingLayoutComponent.ctorParameters = function () { return [ + { type: SettingManagementService }, + { type: router.Router } ]; }; - return SettingComponent; + return SettingLayoutComponent; }()); if (false) { /** @type {?} */ - SettingComponent.prototype.settings; + SettingLayoutComponent.type; /** @type {?} */ - SettingComponent.prototype.selected; + SettingLayoutComponent.prototype.trackByFn; + /** @type {?} */ + SettingLayoutComponent.prototype.settingManagementService; /** * @type {?} * @private */ - SettingComponent.prototype.initialService; + SettingLayoutComponent.prototype.router; } /** @@ -329,11 +206,31 @@ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ + var SETTING_MANAGEMENT_ROUTES = { + routes: (/** @type {?} */ ([ + { + name: 'Settings', + path: 'setting-management', + parentName: 'AbpUiNavigation::Menu:Administration', + layout: "application" /* application */, + order: 6, + iconClass: 'fa fa-cog', + }, + ])), + }; + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ɵ0 = { routes: SETTING_MANAGEMENT_ROUTES, settings: [] }; + /** @type {?} */ var routes = [ { - path: '', + path: 'setting-management', component: ng_core.DynamicLayoutComponent, - children: [{ path: '', component: SettingComponent }], + children: [{ path: '', component: SettingLayoutComponent }], + data: ɵ0, }, ]; var SettingManagementRoutingModule = /** @class */ (function () { @@ -352,54 +249,28 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ + /** @type {?} */ + var SETTING_LAYOUT = SettingLayoutComponent; var SettingManagementModule = /** @class */ (function () { - function SettingManagementModule(initialService) { + function SettingManagementModule() { } SettingManagementModule.decorators = [ { type: core.NgModule, args: [{ - declarations: [SettingComponent], + declarations: [SETTING_LAYOUT], imports: [SettingManagementRoutingModule, ng_core.CoreModule, ng_theme_shared.ThemeSharedModule], - providers: [InitialService], + entryComponents: [SETTING_LAYOUT], },] } ]; - /** @nocollapse */ - SettingManagementModule.ctorParameters = function () { return [ - { type: InitialService, decorators: [{ type: core.Self }] } - ]; }; return SettingManagementModule; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var SETTING_MANAGEMENT_ROUTES = { - routes: (/** @type {?} */ ([ - { - name: 'Settings', - path: 'setting-management', - parentName: 'AbpUiNavigation::Menu:Administration', - layout: "application" /* application */, - order: 6, - iconClass: 'fa fa-cog', - }, - ])), - settings: [], - }; - - exports.RootSettingManagementModule = RootSettingManagementModule; + exports.SETTING_LAYOUT = SETTING_LAYOUT; exports.SETTING_MANAGEMENT_ROUTES = SETTING_MANAGEMENT_ROUTES; - exports.SettingComponent = SettingComponent; + exports.SettingLayoutComponent = SettingLayoutComponent; exports.SettingManagementModule = SettingManagementModule; - exports.ɵa = SettingComponent; - exports.ɵb = InitialService; - exports.ɵc = SettingManagementRoutingModule; + exports.ɵa = SettingManagementService; + exports.ɵb = SettingManagementRoutingModule; + exports.ɵc = SETTING_MANAGEMENT_ROUTES; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.js.map b/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.js.map index ce94abda1b..e4bd101a47 100644 --- a/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.js.map +++ b/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.setting-management.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.setting-management/lib/root-setting-management.module.ts","ng://@abp/ng.setting-management/lib/components/services/initial.service.ts","ng://@abp/ng.setting-management/lib/components/setting/setting.component.ts","ng://@abp/ng.setting-management/lib/setting-management-routing.module.ts","ng://@abp/ng.setting-management/lib/setting-management.module.ts","ng://@abp/ng.setting-management/lib/constants/routes.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootSettingManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootSettingManagementModule,\n providers: [],\n };\n }\n}\n","import { SettingTab } from '@abp/ng.theme.shared';\nimport { Injectable, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport snq from 'snq';\n\n@Injectable()\nexport class InitialService {\n public settings: SettingTab[];\n\n constructor(private router: Router) {\n this.settings = this.router.config\n .map(route => snq(() => route.data.routes.settings))\n .filter(settings => settings && settings.length)\n .reduce((acc, val) => [...acc, ...val], [])\n .sort((a, b) => a.order - b.order);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { SettingTab, fade } from '@abp/ng.theme.shared';\nimport { InitialService } from '../services/initial.service';\n\n@Component({\n selector: 'abp-setting',\n templateUrl: './setting.component.html',\n})\nexport class SettingComponent implements OnInit {\n settings: SettingTab[];\n\n selected = {} as SettingTab;\n\n constructor(private initialService: InitialService) {}\n\n ngOnInit() {\n this.settings = this.initialService.settings;\n this.selected = this.settings[0];\n }\n}\n","import { DynamicLayoutComponent } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { SettingComponent } from './components/setting/setting.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: '', component: SettingComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SettingManagementRoutingModule {}\n","import { CoreModule, noop } from '@abp/ng.core';\nimport { NgModule, ModuleWithProviders, APP_INITIALIZER, Self } from '@angular/core';\nimport { SettingComponent } from './components/setting/setting.component';\nimport { SettingManagementRoutingModule } from './setting-management-routing.module';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { InitialService } from './components/services/initial.service';\n\n@NgModule({\n declarations: [SettingComponent],\n imports: [SettingManagementRoutingModule, CoreModule, ThemeSharedModule],\n providers: [InitialService],\n})\nexport class SettingManagementModule {\n constructor(@Self() initialService: InitialService) {}\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const SETTING_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'Settings',\n path: 'setting-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n order: 6,\n iconClass: 'fa fa-cog',\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n"],"names":["NgModule","Injectable","Router","Component","DynamicLayoutComponent","RouterModule","CoreModule","ThemeSharedModule","Self"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.setting-management.umd.js","sources":["ng://@abp/ng.setting-management/lib/services/setting-management.service.ts","ng://@abp/ng.setting-management/lib/components/setting-layout.component.ts","ng://@abp/ng.setting-management/lib/constants/routes.ts","ng://@abp/ng.setting-management/lib/setting-management-routing.module.ts","ng://@abp/ng.setting-management/lib/setting-management.module.ts"],"sourcesContent":["import { SettingTab } from '@abp/ng.theme.shared';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store, Actions, ofActionSuccessful } from '@ngxs/store';\nimport { Subject } from 'rxjs';\nimport { ConfigState, GetAppConfiguration } from '@abp/ng.core';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SettingManagementService {\n settings: SettingTab[] = [];\n\n selected = {} as SettingTab;\n\n private destroy$ = new Subject();\n\n constructor(\n private actions: Actions,\n private router: Router,\n private store: Store,\n private oAuthService: OAuthService,\n ) {\n setTimeout(() => this.setSettings(), 0);\n\n this.actions\n .pipe(ofActionSuccessful(GetAppConfiguration))\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.oAuthService.hasValidAccessToken()) {\n this.setSettings();\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n }\n\n setSettings() {\n const route = this.router.config.find(r => r.path === 'setting-management');\n this.settings = (route.data.settings as SettingTab[])\n .filter(setting => this.store.selectSnapshot(ConfigState.getGrantedPolicy(setting.requiredPolicy)))\n .sort((a, b) => a.order - b.order);\n this.checkSelected();\n }\n\n checkSelected() {\n this.selected = this.settings.find(setting => setting.url === this.router.url) || ({} as SettingTab);\n\n if (!this.selected.name && this.settings.length) {\n this.setSelected(this.settings[0]);\n }\n }\n\n setSelected(selected: SettingTab) {\n this.selected = selected;\n this.store.dispatch(new Navigate([selected.url]));\n }\n}\n","import { eLayoutType } from '@abp/ng.core';\nimport { SettingTab } from '@abp/ng.theme.shared';\nimport { Component, TrackByFunction } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { timer } from 'rxjs';\nimport { SettingManagementService } from '../services/setting-management.service';\n\n@Component({\n selector: 'abp-setting-layout',\n templateUrl: './setting-layout.component.html',\n})\nexport class SettingLayoutComponent {\n // required for dynamic component\n static type = eLayoutType.setting;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n constructor(public settingManagementService: SettingManagementService, private router: Router) {\n if (\n settingManagementService.selected &&\n this.router.url !== settingManagementService.selected.url &&\n settingManagementService.settings.length\n ) {\n settingManagementService.setSelected(settingManagementService.settings[0]);\n }\n }\n\n ngOnDestroy() {}\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const SETTING_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'Settings',\n path: 'setting-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n order: 6,\n iconClass: 'fa fa-cog',\n },\n ] as ABP.FullRoute[],\n};\n","import { DynamicLayoutComponent } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { SETTING_MANAGEMENT_ROUTES } from './constants/routes';\nimport { SettingLayoutComponent } from './components/setting-layout.component';\n\nconst routes: Routes = [\n {\n path: 'setting-management',\n component: DynamicLayoutComponent,\n children: [{ path: '', component: SettingLayoutComponent }],\n data: { routes: SETTING_MANAGEMENT_ROUTES, settings: [] },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SettingManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { SettingLayoutComponent } from './components/setting-layout.component';\nimport { SettingManagementRoutingModule } from './setting-management-routing.module';\n\nexport const SETTING_LAYOUT = SettingLayoutComponent;\n\n@NgModule({\n declarations: [SETTING_LAYOUT],\n imports: [SettingManagementRoutingModule, CoreModule, ThemeSharedModule],\n entryComponents: [SETTING_LAYOUT],\n})\nexport class SettingManagementModule {}\n"],"names":["store","Subject","ofActionSuccessful","GetAppConfiguration","takeUntil","ConfigState","Navigate","Injectable","Actions","Router","Store","OAuthService","Component","DynamicLayoutComponent","NgModule","RouterModule","CoreModule","ThemeSharedModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.min.js b/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.min.js index 1d002c98f4..e40f9ffdb7 100644 --- a/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.min.js +++ b/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.min.js @@ -1,2 +1,2 @@ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core"),require("@abp/ng.core"),require("@angular/router"),require("snq"),require("@abp/ng.theme.shared")):"function"==typeof define&&define.amd?define("@abp/ng.setting-management",["exports","@angular/core","@abp/ng.core","@angular/router","snq","@abp/ng.theme.shared"],n):n(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng["setting-management"]={}),e.ng.core,e.ng_core,e.ng.router,e.snq,e.ng_theme_shared)}(this,function(e,n,t,r,a,o){"use strict";a=a&&a.hasOwnProperty("default")?a.default:a;function i(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var r,a,o=t.call(e),i=[];try{for(;(void 0===n||n-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(t=o.return)&&t.call(o)}finally{if(a)throw a.error}}return i}var s=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[]}},e.decorators=[{type:n.NgModule,args:[{}]}],e}(),c=function(){function e(e){this.router=e,this.settings=this.router.config.map(function(e){return a(function(){return e.data.routes.settings})}).filter(function(e){return e&&e.length}).reduce(function(e,n){return function(){for(var e=[],n=0;n\n
\n

{{ \'AbpSettingManagement::Settings\' | abpLocalization }}

\n
\n \n
\n
\n
\n\n\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n

{{ selected.name | abpLocalization }}

\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n'}]}],e.ctorParameters=function(){return[{type:c}]},e}();var d=[{path:"",component:t.DynamicLayoutComponent,children:[{path:"",component:l}]}],u=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{imports:[r.RouterModule.forChild(d)],exports:[r.RouterModule]}]}],e}(),p=function(){function e(e){}return e.decorators=[{type:n.NgModule,args:[{declarations:[l],imports:[u,t.CoreModule,o.ThemeSharedModule],providers:[c]}]}],e.ctorParameters=function(){return[{type:c,decorators:[{type:n.Self}]}]},e}();e.RootSettingManagementModule=s,e.SETTING_MANAGEMENT_ROUTES={routes:[{name:"Settings",path:"setting-management",parentName:"AbpUiNavigation::Menu:Administration",layout:"application",order:6,iconClass:"fa fa-cog"}],settings:[]},e.SettingComponent=l,e.SettingManagementModule=p,e.ɵa=l,e.ɵb=c,e.ɵc=u,Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@angular/core"),require("@angular/router"),require("@ngxs/router-plugin"),require("@ngxs/store"),require("rxjs"),require("angular-oauth2-oidc"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@abp/ng.setting-management",["exports","@abp/ng.core","@abp/ng.theme.shared","@angular/core","@angular/router","@ngxs/router-plugin","@ngxs/store","rxjs","angular-oauth2-oidc","rxjs/operators"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng["setting-management"]={}),e.ng_core,e.ng_theme_shared,e.ng.core,e.ng.router,e.routerPlugin,e.store,e.rxjs,e.angularOauth2Oidc,e.rxjs.operators)}(this,function(e,t,n,r,i,s,o,a,c,u){"use strict";var d=function(){function e(e,n,r,i){var s=this;this.actions=e,this.router=n,this.store=r,this.oAuthService=i,this.settings=[],this.selected={},this.destroy$=new a.Subject,setTimeout(function(){return s.setSettings()},0),this.actions.pipe(o.ofActionSuccessful(t.GetAppConfiguration)).pipe(u.takeUntil(this.destroy$)).subscribe(function(){s.oAuthService.hasValidAccessToken()&&s.setSettings()})}return e.prototype.ngOnDestroy=function(){this.destroy$.next()},e.prototype.setSettings=function(){var e=this,n=this.router.config.find(function(e){return"setting-management"===e.path});this.settings=n.data.settings.filter(function(n){return e.store.selectSnapshot(t.ConfigState.getGrantedPolicy(n.requiredPolicy))}).sort(function(e,t){return e.order-t.order}),this.checkSelected()},e.prototype.checkSelected=function(){var e=this;this.selected=this.settings.find(function(t){return t.url===e.router.url})||{},!this.selected.name&&this.settings.length&&this.setSelected(this.settings[0])},e.prototype.setSelected=function(e){this.selected=e,this.store.dispatch(new s.Navigate([e.url]))},e.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:o.Actions},{type:i.Router},{type:o.Store},{type:c.OAuthService}]},e.ngInjectableDef=r.ɵɵdefineInjectable({factory:function(){return new e(r.ɵɵinject(o.Actions),r.ɵɵinject(i.Router),r.ɵɵinject(o.Store),r.ɵɵinject(c.OAuthService))},token:e,providedIn:"root"}),e}();var l=function(){function e(e,t){this.settingManagementService=e,this.router=t,this.trackByFn=function(e,t){return t.name},e.selected&&this.router.url!==e.selected.url&&e.settings.length&&e.setSelected(e.settings[0])}return e.prototype.ngOnDestroy=function(){},e.type="setting",e.decorators=[{type:r.Component,args:[{selector:"abp-setting-layout",template:'
\n
\n

{{ \'AbpSettingManagement::Settings\' | abpLocalization }}

\n
\n \x3c!-- --\x3e\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n'}]}],e.ctorParameters=function(){return[{type:d},{type:i.Router}]},e}();var g={routes:[{name:"Settings",path:"setting-management",parentName:"AbpUiNavigation::Menu:Administration",layout:"application",order:6,iconClass:"fa fa-cog"}]},p={routes:g,settings:[]},h=[{path:"setting-management",component:t.DynamicLayoutComponent,children:[{path:"",component:l}],data:p}],f=function(){function e(){}return e.decorators=[{type:r.NgModule,args:[{imports:[i.RouterModule.forChild(h)],exports:[i.RouterModule]}]}],e}(),m=l,v=function(){function e(){}return e.decorators=[{type:r.NgModule,args:[{declarations:[m],imports:[f,t.CoreModule,n.ThemeSharedModule],entryComponents:[m]}]}],e}();e.SETTING_LAYOUT=m,e.SETTING_MANAGEMENT_ROUTES=g,e.SettingLayoutComponent=l,e.SettingManagementModule=v,e.ɵa=d,e.ɵb=f,e.ɵc=g,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=abp-ng.setting-management.umd.min.js.map \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.min.js.map b/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.min.js.map index 925d347e20..2f5cf94d8b 100644 --- a/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.min.js.map +++ b/npm/ng-packs/dist/setting-management/bundles/abp-ng.setting-management.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.setting-management/lib/root-setting-management.module.ts","ng://@abp/ng.setting-management/lib/components/services/initial.service.ts","ng://@abp/ng.setting-management/lib/components/setting/setting.component.ts","ng://@abp/ng.setting-management/lib/setting-management-routing.module.ts","ng://@abp/ng.setting-management/lib/setting-management.module.ts","ng://@abp/ng.setting-management/lib/constants/routes.ts"],"names":["__read","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","value","error","RootSettingManagementModule","forRoot","ngModule","providers","NgModule","args","InitialService","router","this","settings","config","map","route","snq","data","routes","filter","length","reduce","acc","val","arguments","concat","__spread","sort","a","b","order","Injectable","Router","SettingComponent","initialService","selected","prototype","ngOnInit","Component","selector","template","path","component","DynamicLayoutComponent","children","SettingManagementRoutingModule","imports","RouterModule","forChild","exports","SettingManagementModule","declarations","CoreModule","ThemeSharedModule","decorators","type","Self","name","parentName","layout","iconClass"],"mappings":"slBAuHO,SAASA,EAAOC,EAAGC,GACtB,IAAIC,EAAsB,mBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAYC,EAA3BC,EAAIL,EAAEM,KAAKR,GAAOS,EAAK,GAC3B,IACI,WAAc,IAANR,GAAgBA,KAAM,MAAQI,EAAIE,EAAEG,QAAQC,MAAMF,EAAGG,KAAKP,EAAEQ,OAExE,MAAOC,GAASR,EAAI,CAAEQ,MAAOA,GACjC,QACQ,IACQT,IAAMA,EAAEM,OAAST,EAAIK,EAAU,SAAIL,EAAEM,KAAKD,GAE1D,QAAkB,GAAID,EAAG,MAAMA,EAAEQ,OAE7B,OAAOL,ECrIX,IAAAM,EAAA,WAEA,SAAAA,KAQA,OANSA,EAAAC,QAAP,WACE,MAAO,CACLC,SAAUF,EACVG,UAAW,yBALhBC,EAAAA,SAAQC,KAAA,CAAC,MAQVL,EAVA,gBCSE,SAAAM,EAAoBC,GAAAC,KAAAD,OAAAA,EAClBC,KAAKC,SAAWD,KAAKD,OAAOG,OACzBC,IAAG,SAACC,GAAS,OAAAC,EAAG,WAAO,OAAAD,EAAME,KAAKC,OAAON,aACzCO,OAAM,SAACP,GAAY,OAAAA,GAAYA,EAASQ,SACxCC,OAAM,SAAEC,EAAKC,GAAQ,OF2HrB,WACH,IAAK,IAAI1B,EAAK,GAAIF,EAAI,EAAGA,EAAI6B,UAAUJ,OAAQzB,IAC3CE,EAAKA,EAAG4B,OAAOtC,EAAOqC,UAAU7B,KACpC,OAAOE,EE9HiB6B,CAAIJ,EAAQC,IAAM,IACvCI,KAAI,SAAEC,EAAGC,GAAM,OAAAD,EAAEE,MAAQD,EAAEC,QAElC,2BAXCC,EAAAA,sDAHQC,EAAAA,UAcTvB,KChBA,IAAAwB,EAAA,WAaE,SAAAA,EAAoBC,GAAAvB,KAAAuB,eAAAA,EAFpBvB,KAAAwB,SAAQ,GAQV,OAJEF,EAAAG,UAAAC,SAAA,WACE1B,KAAKC,SAAWD,KAAKuB,eAAetB,SACpCD,KAAKwB,SAAWxB,KAAKC,SAAS,wBAbjC0B,EAAAA,UAAS9B,KAAA,CAAC,CACT+B,SAAU,cACVC,SAAA,gtDAJO/B,KAiBTwB,EAnBA,OCKMf,EAAiB,CACrB,CACEuB,KAAM,GACNC,UAAWC,EAAAA,uBACXC,SAAU,CAAC,CAAEH,KAAM,GAAIC,UAAWT,MAItCY,EAAA,WAAA,SAAAA,KAI6C,2BAJ5CtC,EAAAA,SAAQC,KAAA,CAAC,CACRsC,QAAS,CAACC,EAAAA,aAAaC,SAAS9B,IAChC+B,QAAS,CAACF,EAAAA,kBAEiCF,EAJ7C,GCbAK,EAAA,WAaE,SAAAA,EAAoBhB,IACtB,2BAPC3B,EAAAA,SAAQC,KAAA,CAAC,CACR2C,aAAc,CAAClB,GACfa,QAAS,CAACD,EAAgCO,EAAAA,WAAYC,EAAAA,mBACtD/C,UAAW,CAACG,gDALLA,EAAc6C,WAAA,CAAA,CAAAC,KAQRC,EAAAA,UACfN,EAdA,+DCEyC,CACvChC,OAAM,CACJ,CACEuC,KAAM,WACNhB,KAAM,qBACNiB,WAAY,uCACZC,OAAM,cACN7B,MAAO,EACP8B,UAAW,cAGfhD,SAAU","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootSettingManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootSettingManagementModule,\n providers: [],\n };\n }\n}\n","import { SettingTab } from '@abp/ng.theme.shared';\nimport { Injectable, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport snq from 'snq';\n\n@Injectable()\nexport class InitialService {\n public settings: SettingTab[];\n\n constructor(private router: Router) {\n this.settings = this.router.config\n .map(route => snq(() => route.data.routes.settings))\n .filter(settings => settings && settings.length)\n .reduce((acc, val) => [...acc, ...val], [])\n .sort((a, b) => a.order - b.order);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { SettingTab, fade } from '@abp/ng.theme.shared';\nimport { InitialService } from '../services/initial.service';\n\n@Component({\n selector: 'abp-setting',\n templateUrl: './setting.component.html',\n})\nexport class SettingComponent implements OnInit {\n settings: SettingTab[];\n\n selected = {} as SettingTab;\n\n constructor(private initialService: InitialService) {}\n\n ngOnInit() {\n this.settings = this.initialService.settings;\n this.selected = this.settings[0];\n }\n}\n","import { DynamicLayoutComponent } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { SettingComponent } from './components/setting/setting.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: '', component: SettingComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SettingManagementRoutingModule {}\n","import { CoreModule, noop } from '@abp/ng.core';\nimport { NgModule, ModuleWithProviders, APP_INITIALIZER, Self } from '@angular/core';\nimport { SettingComponent } from './components/setting/setting.component';\nimport { SettingManagementRoutingModule } from './setting-management-routing.module';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { InitialService } from './components/services/initial.service';\n\n@NgModule({\n declarations: [SettingComponent],\n imports: [SettingManagementRoutingModule, CoreModule, ThemeSharedModule],\n providers: [InitialService],\n})\nexport class SettingManagementModule {\n constructor(@Self() initialService: InitialService) {}\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const SETTING_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'Settings',\n path: 'setting-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n order: 6,\n iconClass: 'fa fa-cog',\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n"]} \ No newline at end of file +{"version":3,"sources":["ng://@abp/ng.setting-management/lib/services/setting-management.service.ts","ng://@abp/ng.setting-management/lib/components/setting-layout.component.ts","ng://@abp/ng.setting-management/lib/constants/routes.ts","ng://@abp/ng.setting-management/lib/setting-management-routing.module.ts","ng://@abp/ng.setting-management/lib/setting-management.module.ts"],"names":["SettingManagementService","actions","router","store","oAuthService","_this","this","settings","selected","destroy$","Subject","setTimeout","setSettings","pipe","ofActionSuccessful","GetAppConfiguration","takeUntil","subscribe","hasValidAccessToken","prototype","ngOnDestroy","next","route","config","find","r","path","data","filter","setting","selectSnapshot","ConfigState","getGrantedPolicy","requiredPolicy","sort","a","b","order","checkSelected","url","name","length","setSelected","dispatch","Navigate","Injectable","args","providedIn","Actions","Router","Store","OAuthService","SettingLayoutComponent","settingManagementService","trackByFn","_","item","type","Component","selector","template","SETTING_MANAGEMENT_ROUTES","routes","parentName","layout","iconClass","ɵ0","component","DynamicLayoutComponent","children","SettingManagementRoutingModule","NgModule","imports","RouterModule","forChild","exports","SETTING_LAYOUT","SettingManagementModule","declarations","CoreModule","ThemeSharedModule","entryComponents"],"mappings":"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","sourcesContent":["import { SettingTab } from '@abp/ng.theme.shared';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store, Actions, ofActionSuccessful } from '@ngxs/store';\nimport { Subject } from 'rxjs';\nimport { ConfigState, GetAppConfiguration } from '@abp/ng.core';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SettingManagementService {\n settings: SettingTab[] = [];\n\n selected = {} as SettingTab;\n\n private destroy$ = new Subject();\n\n constructor(\n private actions: Actions,\n private router: Router,\n private store: Store,\n private oAuthService: OAuthService,\n ) {\n setTimeout(() => this.setSettings(), 0);\n\n this.actions\n .pipe(ofActionSuccessful(GetAppConfiguration))\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.oAuthService.hasValidAccessToken()) {\n this.setSettings();\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n }\n\n setSettings() {\n const route = this.router.config.find(r => r.path === 'setting-management');\n this.settings = (route.data.settings as SettingTab[])\n .filter(setting => this.store.selectSnapshot(ConfigState.getGrantedPolicy(setting.requiredPolicy)))\n .sort((a, b) => a.order - b.order);\n this.checkSelected();\n }\n\n checkSelected() {\n this.selected = this.settings.find(setting => setting.url === this.router.url) || ({} as SettingTab);\n\n if (!this.selected.name && this.settings.length) {\n this.setSelected(this.settings[0]);\n }\n }\n\n setSelected(selected: SettingTab) {\n this.selected = selected;\n this.store.dispatch(new Navigate([selected.url]));\n }\n}\n","import { eLayoutType } from '@abp/ng.core';\nimport { SettingTab } from '@abp/ng.theme.shared';\nimport { Component, TrackByFunction } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { timer } from 'rxjs';\nimport { SettingManagementService } from '../services/setting-management.service';\n\n@Component({\n selector: 'abp-setting-layout',\n templateUrl: './setting-layout.component.html',\n})\nexport class SettingLayoutComponent {\n // required for dynamic component\n static type = eLayoutType.setting;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n constructor(public settingManagementService: SettingManagementService, private router: Router) {\n if (\n settingManagementService.selected &&\n this.router.url !== settingManagementService.selected.url &&\n settingManagementService.settings.length\n ) {\n settingManagementService.setSelected(settingManagementService.settings[0]);\n }\n }\n\n ngOnDestroy() {}\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const SETTING_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'Settings',\n path: 'setting-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n order: 6,\n iconClass: 'fa fa-cog',\n },\n ] as ABP.FullRoute[],\n};\n","import { DynamicLayoutComponent } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { SETTING_MANAGEMENT_ROUTES } from './constants/routes';\nimport { SettingLayoutComponent } from './components/setting-layout.component';\n\nconst routes: Routes = [\n {\n path: 'setting-management',\n component: DynamicLayoutComponent,\n children: [{ path: '', component: SettingLayoutComponent }],\n data: { routes: SETTING_MANAGEMENT_ROUTES, settings: [] },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SettingManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { SettingLayoutComponent } from './components/setting-layout.component';\nimport { SettingManagementRoutingModule } from './setting-management-routing.module';\n\nexport const SETTING_LAYOUT = SettingLayoutComponent;\n\n@NgModule({\n declarations: [SETTING_LAYOUT],\n imports: [SettingManagementRoutingModule, CoreModule, ThemeSharedModule],\n entryComponents: [SETTING_LAYOUT],\n})\nexport class SettingManagementModule {}\n"]} \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm2015/abp-ng.setting-management.js b/npm/ng-packs/dist/setting-management/esm2015/abp-ng.setting-management.js index d310e82ff6..15732a5bb6 100644 --- a/npm/ng-packs/dist/setting-management/esm2015/abp-ng.setting-management.js +++ b/npm/ng-packs/dist/setting-management/esm2015/abp-ng.setting-management.js @@ -5,8 +5,8 @@ /** * Generated bundle index. Do not edit. */ -export { RootSettingManagementModule, SettingManagementModule, SettingComponent, SETTING_MANAGEMENT_ROUTES } from './public-api'; -export { InitialService as ɵb } from './lib/components/services/initial.service'; -export { SettingComponent as ɵa } from './lib/components/setting/setting.component'; -export { SettingManagementRoutingModule as ɵc } from './lib/setting-management-routing.module'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnNldHRpbmctbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLnNldHRpbmctbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsa0hBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyw4QkFBOEIsSUFBSSxFQUFFLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtJbml0aWFsU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VydmljZXMvaW5pdGlhbC5zZXJ2aWNlJztcbmV4cG9ydCB7U2V0dGluZ0NvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2V0dGluZy9zZXR0aW5nLmNvbXBvbmVudCc7XG5leHBvcnQge1NldHRpbmdNYW5hZ2VtZW50Um91dGluZ01vZHVsZSBhcyDJtWN9IGZyb20gJy4vbGliL3NldHRpbmctbWFuYWdlbWVudC1yb3V0aW5nLm1vZHVsZSc7Il19 \ No newline at end of file +export { SETTING_LAYOUT, SettingManagementModule, SETTING_MANAGEMENT_ROUTES, SettingLayoutComponent } from './public-api'; +export { SETTING_MANAGEMENT_ROUTES as ɵc } from './lib/constants/routes'; +export { SettingManagementService as ɵa } from './lib/services/setting-management.service'; +export { SettingManagementRoutingModule as ɵb } from './lib/setting-management-routing.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnNldHRpbmctbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLnNldHRpbmctbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMkdBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyx5QkFBeUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsd0JBQXdCLElBQUksRUFBRSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDekYsT0FBTyxFQUFDLDhCQUE4QixJQUFJLEVBQUUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge1NFVFRJTkdfTUFOQUdFTUVOVF9ST1VURVMgYXMgybVjfSBmcm9tICcuL2xpYi9jb25zdGFudHMvcm91dGVzJztcbmV4cG9ydCB7U2V0dGluZ01hbmFnZW1lbnRTZXJ2aWNlIGFzIMm1YX0gZnJvbSAnLi9saWIvc2VydmljZXMvc2V0dGluZy1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuZXhwb3J0IHtTZXR0aW5nTWFuYWdlbWVudFJvdXRpbmdNb2R1bGUgYXMgybVifSBmcm9tICcuL2xpYi9zZXR0aW5nLW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUnOyJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm2015/lib/components/index.js b/npm/ng-packs/dist/setting-management/esm2015/lib/components/index.js deleted file mode 100644 index b45a214ce1..0000000000 --- a/npm/ng-packs/dist/setting-management/esm2015/lib/components/index.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -export { SettingComponent } from './setting/setting.component'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnNldHRpbmctbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpQ0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2V0dGluZy9zZXR0aW5nLmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm2015/lib/components/services/initial.service.js b/npm/ng-packs/dist/setting-management/esm2015/lib/components/services/initial.service.js deleted file mode 100644 index eb4e6b6959..0000000000 --- a/npm/ng-packs/dist/setting-management/esm2015/lib/components/services/initial.service.js +++ /dev/null @@ -1,58 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { Injectable } from '@angular/core'; -import { Router } from '@angular/router'; -import snq from 'snq'; -export class InitialService { - /** - * @param {?} router - */ - constructor(router) { - this.router = router; - this.settings = this.router.config - .map((/** - * @param {?} route - * @return {?} - */ - route => snq((/** - * @return {?} - */ - () => route.data.routes.settings)))) - .filter((/** - * @param {?} settings - * @return {?} - */ - settings => settings && settings.length)) - .reduce((/** - * @param {?} acc - * @param {?} val - * @return {?} - */ - (acc, val) => [...acc, ...val]), []) - .sort((/** - * @param {?} a - * @param {?} b - * @return {?} - */ - (a, b) => a.order - b.order)); - } -} -InitialService.decorators = [ - { type: Injectable } -]; -/** @nocollapse */ -InitialService.ctorParameters = () => [ - { type: Router } -]; -if (false) { - /** @type {?} */ - InitialService.prototype.settings; - /** - * @type {?} - * @private - */ - InitialService.prototype.router; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZXJ2aWNlcy9pbml0aWFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUd0QixNQUFNLE9BQU8sY0FBYzs7OztJQUd6QixZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUMvQixHQUFHOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUMsRUFBQzthQUNuRCxNQUFNOzs7O1FBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBQzthQUMvQyxNQUFNOzs7OztRQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQzthQUMxQyxJQUFJOzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUM7SUFDdkMsQ0FBQzs7O1lBVkYsVUFBVTs7OztZQUhGLE1BQU07Ozs7SUFLYixrQ0FBOEI7Ozs7O0lBRWxCLGdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNldHRpbmdUYWIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJbml0aWFsU2VydmljZSB7XG4gIHB1YmxpYyBzZXR0aW5nczogU2V0dGluZ1RhYltdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5yb3V0ZXIuY29uZmlnXG4gICAgICAubWFwKHJvdXRlID0+IHNucSgoKSA9PiByb3V0ZS5kYXRhLnJvdXRlcy5zZXR0aW5ncykpXG4gICAgICAuZmlsdGVyKHNldHRpbmdzID0+IHNldHRpbmdzICYmIHNldHRpbmdzLmxlbmd0aClcbiAgICAgIC5yZWR1Y2UoKGFjYywgdmFsKSA9PiBbLi4uYWNjLCAuLi52YWxdLCBbXSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm2015/lib/components/setting-layout.component.js b/npm/ng-packs/dist/setting-management/esm2015/lib/components/setting-layout.component.js new file mode 100644 index 0000000000..457f4bba81 --- /dev/null +++ b/npm/ng-packs/dist/setting-management/esm2015/lib/components/setting-layout.component.js @@ -0,0 +1,59 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +import { Router } from '@angular/router'; +import { SettingManagementService } from '../services/setting-management.service'; +export class SettingLayoutComponent { + /** + * @param {?} settingManagementService + * @param {?} router + */ + constructor(settingManagementService, router) { + this.settingManagementService = settingManagementService; + this.router = router; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + (_, item) => item.name); + if (settingManagementService.selected && + this.router.url !== settingManagementService.selected.url && + settingManagementService.settings.length) { + settingManagementService.setSelected(settingManagementService.settings[0]); + } + } + /** + * @return {?} + */ + ngOnDestroy() { } +} +// required for dynamic component +SettingLayoutComponent.type = "setting" /* setting */; +SettingLayoutComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-setting-layout', + template: "
\n
\n

{{ 'AbpSettingManagement::Settings' | abpLocalization }}

\n
\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
    \n \n {{ setting.name | abpLocalization }}\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n" + }] } +]; +/** @nocollapse */ +SettingLayoutComponent.ctorParameters = () => [ + { type: SettingManagementService }, + { type: Router } +]; +if (false) { + /** @type {?} */ + SettingLayoutComponent.type; + /** @type {?} */ + SettingLayoutComponent.prototype.trackByFn; + /** @type {?} */ + SettingLayoutComponent.prototype.settingManagementService; + /** + * @type {?} + * @private + */ + SettingLayoutComponent.prototype.router; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZXR0aW5nLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQU1sRixNQUFNLE9BQU8sc0JBQXNCOzs7OztJQU1qQyxZQUFtQix3QkFBa0QsRUFBVSxNQUFjO1FBQTFFLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRjdGLGNBQVM7Ozs7O1FBQWdDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQztRQUc5RCxJQUNFLHdCQUF3QixDQUFDLFFBQVE7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssd0JBQXdCLENBQUMsUUFBUSxDQUFDLEdBQUc7WUFDekQsd0JBQXdCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFDeEM7WUFDQSx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUU7SUFDSCxDQUFDOzs7O0lBRUQsV0FBVyxLQUFJLENBQUM7OztBQWRULDJCQUFJLDJCQUF1Qjs7WUFObkMsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLGkrREFBOEM7YUFDL0M7Ozs7WUFMUSx3QkFBd0I7WUFGeEIsTUFBTTs7OztJQVViLDRCQUFrQzs7SUFFbEMsMkNBQWdFOztJQUVwRCwwREFBeUQ7Ozs7O0lBQUUsd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZUxheW91dFR5cGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgU2V0dGluZ1RhYiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgVHJhY2tCeUZ1bmN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNldHRpbmdNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NldHRpbmctbWFuYWdlbWVudC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXNldHRpbmctbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NldHRpbmctbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ0xheW91dENvbXBvbmVudCB7XG4gIC8vIHJlcXVpcmVkIGZvciBkeW5hbWljIGNvbXBvbmVudFxuICBzdGF0aWMgdHlwZSA9IGVMYXlvdXRUeXBlLnNldHRpbmc7XG5cbiAgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248U2V0dGluZ1RhYj4gPSAoXywgaXRlbSkgPT4gaXRlbS5uYW1lO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZXR0aW5nTWFuYWdlbWVudFNlcnZpY2U6IFNldHRpbmdNYW5hZ2VtZW50U2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIGlmIChcbiAgICAgIHNldHRpbmdNYW5hZ2VtZW50U2VydmljZS5zZWxlY3RlZCAmJlxuICAgICAgdGhpcy5yb3V0ZXIudXJsICE9PSBzZXR0aW5nTWFuYWdlbWVudFNlcnZpY2Uuc2VsZWN0ZWQudXJsICYmXG4gICAgICBzZXR0aW5nTWFuYWdlbWVudFNlcnZpY2Uuc2V0dGluZ3MubGVuZ3RoXG4gICAgKSB7XG4gICAgICBzZXR0aW5nTWFuYWdlbWVudFNlcnZpY2Uuc2V0U2VsZWN0ZWQoc2V0dGluZ01hbmFnZW1lbnRTZXJ2aWNlLnNldHRpbmdzWzBdKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHt9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm2015/lib/components/setting/setting.component.js b/npm/ng-packs/dist/setting-management/esm2015/lib/components/setting/setting.component.js deleted file mode 100644 index 13536947ca..0000000000 --- a/npm/ng-packs/dist/setting-management/esm2015/lib/components/setting/setting.component.js +++ /dev/null @@ -1,44 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { Component } from '@angular/core'; -import { InitialService } from '../services/initial.service'; -export class SettingComponent { - /** - * @param {?} initialService - */ - constructor(initialService) { - this.initialService = initialService; - this.selected = (/** @type {?} */ ({})); - } - /** - * @return {?} - */ - ngOnInit() { - this.settings = this.initialService.settings; - this.selected = this.settings[0]; - } -} -SettingComponent.decorators = [ - { type: Component, args: [{ - selector: 'abp-setting', - template: "
\n
\n

{{ 'AbpSettingManagement::Settings' | abpLocalization }}

\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
    \n \n {{ setting.name | abpLocalization }}\n \n
\n
\n
\n
\n
\n

{{ selected.name | abpLocalization }}

\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n" - }] } -]; -/** @nocollapse */ -SettingComponent.ctorParameters = () => [ - { type: InitialService } -]; -if (false) { - /** @type {?} */ - SettingComponent.prototype.settings; - /** @type {?} */ - SettingComponent.prototype.selected; - /** - * @type {?} - * @private - */ - SettingComponent.prototype.initialService; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnNldHRpbmctbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3NldHRpbmcvc2V0dGluZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBTTdELE1BQU0sT0FBTyxnQkFBZ0I7Ozs7SUFLM0IsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBRmxELGFBQVEsR0FBRyxtQkFBQSxFQUFFLEVBQWMsQ0FBQztJQUV5QixDQUFDOzs7O0lBRXRELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs7WUFkRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLHN1REFBdUM7YUFDeEM7Ozs7WUFMUSxjQUFjOzs7O0lBT3JCLG9DQUF1Qjs7SUFFdkIsb0NBQTRCOzs7OztJQUVoQiwwQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2V0dGluZ1RhYiwgZmFkZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IEluaXRpYWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaW5pdGlhbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXNldHRpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2V0dGluZy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNldHRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzZXR0aW5nczogU2V0dGluZ1RhYltdO1xuXG4gIHNlbGVjdGVkID0ge30gYXMgU2V0dGluZ1RhYjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluaXRpYWxTZXJ2aWNlOiBJbml0aWFsU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5pbml0aWFsU2VydmljZS5zZXR0aW5ncztcbiAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5zZXR0aW5nc1swXTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm2015/lib/constants/routes.js b/npm/ng-packs/dist/setting-management/esm2015/lib/constants/routes.js index 1be56c2214..82eebaa37d 100644 --- a/npm/ng-packs/dist/setting-management/esm2015/lib/constants/routes.js +++ b/npm/ng-packs/dist/setting-management/esm2015/lib/constants/routes.js @@ -14,6 +14,5 @@ export const SETTING_MANAGEMENT_ROUTES = { iconClass: 'fa fa-cog', }, ])), - settings: [], }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvY29uc3RhbnRzL3JvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE1BQU0sT0FBTyx5QkFBeUIsR0FBRztJQUN2QyxNQUFNLEVBQUUsbUJBQUE7UUFDTjtZQUNFLElBQUksRUFBRSxVQUFVO1lBQ2hCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsVUFBVSxFQUFFLHNDQUFzQztZQUNsRCxNQUFNLGlDQUF5QjtZQUMvQixLQUFLLEVBQUUsQ0FBQztZQUNSLFNBQVMsRUFBRSxXQUFXO1NBQ3ZCO0tBQ0YsRUFBbUI7SUFDcEIsUUFBUSxFQUFFLEVBQUU7Q0FDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgZUxheW91dFR5cGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuXG5leHBvcnQgY29uc3QgU0VUVElOR19NQU5BR0VNRU5UX1JPVVRFUyA9IHtcbiAgcm91dGVzOiBbXG4gICAge1xuICAgICAgbmFtZTogJ1NldHRpbmdzJyxcbiAgICAgIHBhdGg6ICdzZXR0aW5nLW1hbmFnZW1lbnQnLFxuICAgICAgcGFyZW50TmFtZTogJ0FicFVpTmF2aWdhdGlvbjo6TWVudTpBZG1pbmlzdHJhdGlvbicsXG4gICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxuICAgICAgb3JkZXI6IDYsXG4gICAgICBpY29uQ2xhc3M6ICdmYSBmYS1jb2cnLFxuICAgIH0sXG4gIF0gYXMgQUJQLkZ1bGxSb3V0ZVtdLFxuICBzZXR0aW5nczogW10sXG59O1xuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvY29uc3RhbnRzL3JvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE1BQU0sT0FBTyx5QkFBeUIsR0FBRztJQUN2QyxNQUFNLEVBQUUsbUJBQUE7UUFDTjtZQUNFLElBQUksRUFBRSxVQUFVO1lBQ2hCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsVUFBVSxFQUFFLHNDQUFzQztZQUNsRCxNQUFNLGlDQUF5QjtZQUMvQixLQUFLLEVBQUUsQ0FBQztZQUNSLFNBQVMsRUFBRSxXQUFXO1NBQ3ZCO0tBQ0YsRUFBbUI7Q0FDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGVMYXlvdXRUeXBlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuZXhwb3J0IGNvbnN0IFNFVFRJTkdfTUFOQUdFTUVOVF9ST1VURVMgPSB7XG4gIHJvdXRlczogW1xuICAgIHtcbiAgICAgIG5hbWU6ICdTZXR0aW5ncycsXG4gICAgICBwYXRoOiAnc2V0dGluZy1tYW5hZ2VtZW50JyxcbiAgICAgIHBhcmVudE5hbWU6ICdBYnBVaU5hdmlnYXRpb246Ok1lbnU6QWRtaW5pc3RyYXRpb24nLFxuICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcbiAgICAgIG9yZGVyOiA2LFxuICAgICAgaWNvbkNsYXNzOiAnZmEgZmEtY29nJyxcbiAgICB9LFxuICBdIGFzIEFCUC5GdWxsUm91dGVbXSxcbn07XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm2015/lib/root-setting-management.module.js b/npm/ng-packs/dist/setting-management/esm2015/lib/root-setting-management.module.js deleted file mode 100644 index 3061f28771..0000000000 --- a/npm/ng-packs/dist/setting-management/esm2015/lib/root-setting-management.module.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { NgModule } from '@angular/core'; -export class RootSettingManagementModule { - /** - * @return {?} - */ - static forRoot() { - return { - ngModule: RootSettingManagementModule, - providers: [], - }; - } -} -RootSettingManagementModule.decorators = [ - { type: NgModule, args: [{},] } -]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1zZXR0aW5nLW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvcm9vdC1zZXR0aW5nLW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc5RCxNQUFNLE9BQU8sMkJBQTJCOzs7O0lBQ3RDLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSwyQkFBMkI7WUFDckMsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO0lBQ0osQ0FBQzs7O1lBUEYsUUFBUSxTQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgUm9vdFNldHRpbmdNYW5hZ2VtZW50TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBSb290U2V0dGluZ01hbmFnZW1lbnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm2015/lib/services/setting-management.service.js b/npm/ng-packs/dist/setting-management/esm2015/lib/services/setting-management.service.js new file mode 100644 index 0000000000..a8c8234286 --- /dev/null +++ b/npm/ng-packs/dist/setting-management/esm2015/lib/services/setting-management.service.js @@ -0,0 +1,142 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Router } from '@angular/router'; +import { Navigate } from '@ngxs/router-plugin'; +import { Store, Actions, ofActionSuccessful } from '@ngxs/store'; +import { Subject } from 'rxjs'; +import { ConfigState, GetAppConfiguration } from '@abp/ng.core'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { takeUntil } from 'rxjs/operators'; +import * as i0 from "@angular/core"; +import * as i1 from "@ngxs/store"; +import * as i2 from "@angular/router"; +import * as i3 from "angular-oauth2-oidc"; +export class SettingManagementService { + /** + * @param {?} actions + * @param {?} router + * @param {?} store + * @param {?} oAuthService + */ + constructor(actions, router, store, oAuthService) { + this.actions = actions; + this.router = router; + this.store = store; + this.oAuthService = oAuthService; + this.settings = []; + this.selected = (/** @type {?} */ ({})); + this.destroy$ = new Subject(); + setTimeout((/** + * @return {?} + */ + () => this.setSettings()), 0); + this.actions + .pipe(ofActionSuccessful(GetAppConfiguration)) + .pipe(takeUntil(this.destroy$)) + .subscribe((/** + * @return {?} + */ + () => { + if (this.oAuthService.hasValidAccessToken()) { + this.setSettings(); + } + })); + } + /** + * @return {?} + */ + ngOnDestroy() { + this.destroy$.next(); + } + /** + * @return {?} + */ + setSettings() { + /** @type {?} */ + const route = this.router.config.find((/** + * @param {?} r + * @return {?} + */ + r => r.path === 'setting-management')); + this.settings = ((/** @type {?} */ (route.data.settings))) + .filter((/** + * @param {?} setting + * @return {?} + */ + setting => this.store.selectSnapshot(ConfigState.getGrantedPolicy(setting.requiredPolicy)))) + .sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + (a, b) => a.order - b.order)); + this.checkSelected(); + } + /** + * @return {?} + */ + checkSelected() { + this.selected = this.settings.find((/** + * @param {?} setting + * @return {?} + */ + setting => setting.url === this.router.url)) || ((/** @type {?} */ ({}))); + if (!this.selected.name && this.settings.length) { + this.setSelected(this.settings[0]); + } + } + /** + * @param {?} selected + * @return {?} + */ + setSelected(selected) { + this.selected = selected; + this.store.dispatch(new Navigate([selected.url])); + } +} +SettingManagementService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } +]; +/** @nocollapse */ +SettingManagementService.ctorParameters = () => [ + { type: Actions }, + { type: Router }, + { type: Store }, + { type: OAuthService } +]; +/** @nocollapse */ SettingManagementService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function SettingManagementService_Factory() { return new SettingManagementService(i0.ɵɵinject(i1.Actions), i0.ɵɵinject(i2.Router), i0.ɵɵinject(i1.Store), i0.ɵɵinject(i3.OAuthService)); }, token: SettingManagementService, providedIn: "root" }); +if (false) { + /** @type {?} */ + SettingManagementService.prototype.settings; + /** @type {?} */ + SettingManagementService.prototype.selected; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.destroy$; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.actions; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.router; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.store; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.oAuthService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1tYW5hZ2VtZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnNldHRpbmctbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9zZXR0aW5nLW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUczQyxNQUFNLE9BQU8sd0JBQXdCOzs7Ozs7O0lBT25DLFlBQ1UsT0FBZ0IsRUFDaEIsTUFBYyxFQUNkLEtBQVksRUFDWixZQUEwQjtRQUgxQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osaUJBQVksR0FBWixZQUFZLENBQWM7UUFWcEMsYUFBUSxHQUFpQixFQUFFLENBQUM7UUFFNUIsYUFBUSxHQUFHLG1CQUFBLEVBQUUsRUFBYyxDQUFDO1FBRXBCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBUS9CLFVBQVU7OztRQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMsT0FBTzthQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVM7OztRQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7O0lBRUQsV0FBVzs7Y0FDSCxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxvQkFBb0IsRUFBQztRQUMzRSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsbUJBQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQWdCLENBQUM7YUFDbEQsTUFBTTs7OztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDO2FBQ2xHLElBQUk7Ozs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7OztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTs7OztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBQyxJQUFJLENBQUMsbUJBQUEsRUFBRSxFQUFjLENBQUMsQ0FBQztRQUVyRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxRQUFvQjtRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7O1lBakRGLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7Ozs7WUFObEIsT0FBTztZQUZkLE1BQU07WUFFTixLQUFLO1lBR0wsWUFBWTs7Ozs7SUFLbkIsNENBQTRCOztJQUU1Qiw0Q0FBNEI7Ozs7O0lBRTVCLDRDQUFpQzs7Ozs7SUFHL0IsMkNBQXdCOzs7OztJQUN4QiwwQ0FBc0I7Ozs7O0lBQ3RCLHlDQUFvQjs7Ozs7SUFDcEIsZ0RBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2V0dGluZ1RhYiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOYXZpZ2F0ZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgU3RvcmUsIEFjdGlvbnMsIG9mQWN0aW9uU3VjY2Vzc2Z1bCB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpZ1N0YXRlLCBHZXRBcHBDb25maWd1cmF0aW9uIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNldHRpbmdNYW5hZ2VtZW50U2VydmljZSB7XG4gIHNldHRpbmdzOiBTZXR0aW5nVGFiW10gPSBbXTtcblxuICBzZWxlY3RlZCA9IHt9IGFzIFNldHRpbmdUYWI7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBvQXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcbiAgKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNldFNldHRpbmdzKCksIDApO1xuXG4gICAgdGhpcy5hY3Rpb25zXG4gICAgICAucGlwZShvZkFjdGlvblN1Y2Nlc3NmdWwoR2V0QXBwQ29uZmlndXJhdGlvbikpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub0F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xuICAgICAgICAgIHRoaXMuc2V0U2V0dGluZ3MoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIHNldFNldHRpbmdzKCkge1xuICAgIGNvbnN0IHJvdXRlID0gdGhpcy5yb3V0ZXIuY29uZmlnLmZpbmQociA9PiByLnBhdGggPT09ICdzZXR0aW5nLW1hbmFnZW1lbnQnKTtcbiAgICB0aGlzLnNldHRpbmdzID0gKHJvdXRlLmRhdGEuc2V0dGluZ3MgYXMgU2V0dGluZ1RhYltdKVxuICAgICAgLmZpbHRlcihzZXR0aW5nID0+IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoQ29uZmlnU3RhdGUuZ2V0R3JhbnRlZFBvbGljeShzZXR0aW5nLnJlcXVpcmVkUG9saWN5KSkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICAgIHRoaXMuY2hlY2tTZWxlY3RlZCgpO1xuICB9XG5cbiAgY2hlY2tTZWxlY3RlZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5zZXR0aW5ncy5maW5kKHNldHRpbmcgPT4gc2V0dGluZy51cmwgPT09IHRoaXMucm91dGVyLnVybCkgfHwgKHt9IGFzIFNldHRpbmdUYWIpO1xuXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkLm5hbWUgJiYgdGhpcy5zZXR0aW5ncy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWQodGhpcy5zZXR0aW5nc1swXSk7XG4gICAgfVxuICB9XG5cbiAgc2V0U2VsZWN0ZWQoc2VsZWN0ZWQ6IFNldHRpbmdUYWIpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGUoW3NlbGVjdGVkLnVybF0pKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm2015/lib/setting-management-routing.module.js b/npm/ng-packs/dist/setting-management/esm2015/lib/setting-management-routing.module.js index b1b24b570e..6022a5494d 100644 --- a/npm/ng-packs/dist/setting-management/esm2015/lib/setting-management-routing.module.js +++ b/npm/ng-packs/dist/setting-management/esm2015/lib/setting-management-routing.module.js @@ -5,13 +5,16 @@ import { DynamicLayoutComponent } from '@abp/ng.core'; import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; -import { SettingComponent } from './components/setting/setting.component'; +import { SETTING_MANAGEMENT_ROUTES } from './constants/routes'; +import { SettingLayoutComponent } from './components/setting-layout.component'; +const ɵ0 = { routes: SETTING_MANAGEMENT_ROUTES, settings: [] }; /** @type {?} */ const routes = [ { - path: '', + path: 'setting-management', component: DynamicLayoutComponent, - children: [{ path: '', component: SettingComponent }], + children: [{ path: '', component: SettingLayoutComponent }], + data: ɵ0, }, ]; export class SettingManagementRoutingModule { @@ -22,4 +25,5 @@ SettingManagementRoutingModule.decorators = [ exports: [RouterModule], },] } ]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvc2V0dGluZy1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O01BRXBFLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLHNCQUFzQjtRQUNqQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUM7S0FDdEQ7Q0FDRjtBQU1ELE1BQU0sT0FBTyw4QkFBOEI7OztZQUoxQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2FBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY0xheW91dENvbXBvbmVudCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU2V0dGluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5nL3NldHRpbmcuY29tcG9uZW50JztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgY2hpbGRyZW46IFt7IHBhdGg6ICcnLCBjb21wb25lbnQ6IFNldHRpbmdDb21wb25lbnQgfV0sXG4gIH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ01hbmFnZW1lbnRSb3V0aW5nTW9kdWxlIHt9XG4iXX0= \ No newline at end of file +export { ɵ0 }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvc2V0dGluZy1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7V0FPckUsRUFBRSxNQUFNLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs7TUFMdkQsTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztRQUMzRCxJQUFJLElBQXFEO0tBQzFEO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sOEJBQThCOzs7WUFKMUMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNMYXlvdXRDb21wb25lbnQgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNFVFRJTkdfTUFOQUdFTUVOVF9ST1VURVMgfSBmcm9tICcuL2NvbnN0YW50cy9yb3V0ZXMnO1xuaW1wb3J0IHsgU2V0dGluZ0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5nLWxheW91dC5jb21wb25lbnQnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICdzZXR0aW5nLW1hbmFnZW1lbnQnLFxuICAgIGNvbXBvbmVudDogRHluYW1pY0xheW91dENvbXBvbmVudCxcbiAgICBjaGlsZHJlbjogW3sgcGF0aDogJycsIGNvbXBvbmVudDogU2V0dGluZ0xheW91dENvbXBvbmVudCB9XSxcbiAgICBkYXRhOiB7IHJvdXRlczogU0VUVElOR19NQU5BR0VNRU5UX1JPVVRFUywgc2V0dGluZ3M6IFtdIH0sXG4gIH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ01hbmFnZW1lbnRSb3V0aW5nTW9kdWxlIHt9XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm2015/lib/setting-management.module.js b/npm/ng-packs/dist/setting-management/esm2015/lib/setting-management.module.js index e1b12f394c..39ea76b705 100644 --- a/npm/ng-packs/dist/setting-management/esm2015/lib/setting-management.module.js +++ b/npm/ng-packs/dist/setting-management/esm2015/lib/setting-management.module.js @@ -3,26 +3,19 @@ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { CoreModule } from '@abp/ng.core'; -import { NgModule, Self } from '@angular/core'; -import { SettingComponent } from './components/setting/setting.component'; -import { SettingManagementRoutingModule } from './setting-management-routing.module'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; -import { InitialService } from './components/services/initial.service'; +import { NgModule } from '@angular/core'; +import { SettingLayoutComponent } from './components/setting-layout.component'; +import { SettingManagementRoutingModule } from './setting-management-routing.module'; +/** @type {?} */ +export const SETTING_LAYOUT = SettingLayoutComponent; export class SettingManagementModule { - /** - * @param {?} initialService - */ - constructor(initialService) { } } SettingManagementModule.decorators = [ { type: NgModule, args: [{ - declarations: [SettingComponent], + declarations: [SETTING_LAYOUT], imports: [SettingManagementRoutingModule, CoreModule, ThemeSharedModule], - providers: [InitialService], + entryComponents: [SETTING_LAYOUT], },] } ]; -/** @nocollapse */ -SettingManagementModule.ctorParameters = () => [ - { type: InitialService, decorators: [{ type: Self }] } -]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3NldHRpbmctbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBd0MsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQU92RSxNQUFNLE9BQU8sdUJBQXVCOzs7O0lBQ2xDLFlBQW9CLGNBQThCLElBQUcsQ0FBQzs7O1lBTnZELFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDaEMsT0FBTyxFQUFFLENBQUMsOEJBQThCLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDO2dCQUN4RSxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7YUFDNUI7Ozs7WUFOUSxjQUFjLHVCQVFSLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlLCBub29wIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBBUFBfSU5JVElBTElaRVIsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNldHRpbmdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2V0dGluZy9zZXR0aW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXR0aW5nTWFuYWdlbWVudFJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL3NldHRpbmctbWFuYWdlbWVudC1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IEluaXRpYWxTZXJ2aWNlIH0gZnJvbSAnLi9jb21wb25lbnRzL3NlcnZpY2VzL2luaXRpYWwuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NldHRpbmdDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbU2V0dGluZ01hbmFnZW1lbnRSb3V0aW5nTW9kdWxlLCBDb3JlTW9kdWxlLCBUaGVtZVNoYXJlZE1vZHVsZV0sXG4gIHByb3ZpZGVyczogW0luaXRpYWxTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ01hbmFnZW1lbnRNb2R1bGUge1xuICBjb25zdHJ1Y3RvcihAU2VsZigpIGluaXRpYWxTZXJ2aWNlOiBJbml0aWFsU2VydmljZSkge31cbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3NldHRpbmctbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFckYsTUFBTSxPQUFPLGNBQWMsR0FBRyxzQkFBc0I7QUFPcEQsTUFBTSxPQUFPLHVCQUF1Qjs7O1lBTG5DLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDLDhCQUE4QixFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztnQkFDeEUsZUFBZSxFQUFFLENBQUMsY0FBYyxDQUFDO2FBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXR0aW5nTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NldHRpbmctbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXR0aW5nTWFuYWdlbWVudFJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL3NldHRpbmctbWFuYWdlbWVudC1yb3V0aW5nLm1vZHVsZSc7XG5cbmV4cG9ydCBjb25zdCBTRVRUSU5HX0xBWU9VVCA9IFNldHRpbmdMYXlvdXRDb21wb25lbnQ7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NFVFRJTkdfTEFZT1VUXSxcbiAgaW1wb3J0czogW1NldHRpbmdNYW5hZ2VtZW50Um91dGluZ01vZHVsZSwgQ29yZU1vZHVsZSwgVGhlbWVTaGFyZWRNb2R1bGVdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtTRVRUSU5HX0xBWU9VVF0sXG59KVxuZXhwb3J0IGNsYXNzIFNldHRpbmdNYW5hZ2VtZW50TW9kdWxlIHt9XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm2015/public-api.js b/npm/ng-packs/dist/setting-management/esm2015/public-api.js index dafa05f548..01feb13ff1 100644 --- a/npm/ng-packs/dist/setting-management/esm2015/public-api.js +++ b/npm/ng-packs/dist/setting-management/esm2015/public-api.js @@ -2,8 +2,7 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { RootSettingManagementModule } from './lib/root-setting-management.module'; -export { SettingManagementModule } from './lib/setting-management.module'; -export { SettingComponent } from './lib/components'; +export { SETTING_LAYOUT, SettingManagementModule } from './lib/setting-management.module'; export { SETTING_MANAGEMENT_ROUTES } from './lib/constants'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNENBQWMsc0NBQXNDLENBQUM7QUFDckQsd0NBQWMsaUNBQWlDLENBQUM7QUFDaEQsaUNBQWMsa0JBQWtCLENBQUM7QUFDakMsMENBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9yb290LXNldHRpbmctbWFuYWdlbWVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2V0dGluZy1tYW5hZ2VtZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN0YW50cyc7XG4iXX0= \ No newline at end of file +export { SettingLayoutComponent } from './lib/components/setting-layout.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsd0RBQWMsaUNBQWlDLENBQUM7QUFDaEQsMENBQWMsaUJBQWlCLENBQUM7QUFDaEMsdUNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9zZXR0aW5nLW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NldHRpbmctbGF5b3V0LmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm5/abp-ng.setting-management.js b/npm/ng-packs/dist/setting-management/esm5/abp-ng.setting-management.js index d310e82ff6..15732a5bb6 100644 --- a/npm/ng-packs/dist/setting-management/esm5/abp-ng.setting-management.js +++ b/npm/ng-packs/dist/setting-management/esm5/abp-ng.setting-management.js @@ -5,8 +5,8 @@ /** * Generated bundle index. Do not edit. */ -export { RootSettingManagementModule, SettingManagementModule, SettingComponent, SETTING_MANAGEMENT_ROUTES } from './public-api'; -export { InitialService as ɵb } from './lib/components/services/initial.service'; -export { SettingComponent as ɵa } from './lib/components/setting/setting.component'; -export { SettingManagementRoutingModule as ɵc } from './lib/setting-management-routing.module'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnNldHRpbmctbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLnNldHRpbmctbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsa0hBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyw4QkFBOEIsSUFBSSxFQUFFLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtJbml0aWFsU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VydmljZXMvaW5pdGlhbC5zZXJ2aWNlJztcbmV4cG9ydCB7U2V0dGluZ0NvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2V0dGluZy9zZXR0aW5nLmNvbXBvbmVudCc7XG5leHBvcnQge1NldHRpbmdNYW5hZ2VtZW50Um91dGluZ01vZHVsZSBhcyDJtWN9IGZyb20gJy4vbGliL3NldHRpbmctbWFuYWdlbWVudC1yb3V0aW5nLm1vZHVsZSc7Il19 \ No newline at end of file +export { SETTING_LAYOUT, SettingManagementModule, SETTING_MANAGEMENT_ROUTES, SettingLayoutComponent } from './public-api'; +export { SETTING_MANAGEMENT_ROUTES as ɵc } from './lib/constants/routes'; +export { SettingManagementService as ɵa } from './lib/services/setting-management.service'; +export { SettingManagementRoutingModule as ɵb } from './lib/setting-management-routing.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnNldHRpbmctbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLnNldHRpbmctbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMkdBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyx5QkFBeUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsd0JBQXdCLElBQUksRUFBRSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDekYsT0FBTyxFQUFDLDhCQUE4QixJQUFJLEVBQUUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge1NFVFRJTkdfTUFOQUdFTUVOVF9ST1VURVMgYXMgybVjfSBmcm9tICcuL2xpYi9jb25zdGFudHMvcm91dGVzJztcbmV4cG9ydCB7U2V0dGluZ01hbmFnZW1lbnRTZXJ2aWNlIGFzIMm1YX0gZnJvbSAnLi9saWIvc2VydmljZXMvc2V0dGluZy1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuZXhwb3J0IHtTZXR0aW5nTWFuYWdlbWVudFJvdXRpbmdNb2R1bGUgYXMgybVifSBmcm9tICcuL2xpYi9zZXR0aW5nLW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUnOyJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm5/lib/components/index.js b/npm/ng-packs/dist/setting-management/esm5/lib/components/index.js deleted file mode 100644 index b45a214ce1..0000000000 --- a/npm/ng-packs/dist/setting-management/esm5/lib/components/index.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -export { SettingComponent } from './setting/setting.component'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnNldHRpbmctbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpQ0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2V0dGluZy9zZXR0aW5nLmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm5/lib/components/services/initial.service.js b/npm/ng-packs/dist/setting-management/esm5/lib/components/services/initial.service.js deleted file mode 100644 index c37570947e..0000000000 --- a/npm/ng-packs/dist/setting-management/esm5/lib/components/services/initial.service.js +++ /dev/null @@ -1,58 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import * as tslib_1 from "tslib"; -import { Injectable } from '@angular/core'; -import { Router } from '@angular/router'; -import snq from 'snq'; -var InitialService = /** @class */ (function () { - function InitialService(router) { - this.router = router; - this.settings = this.router.config - .map((/** - * @param {?} route - * @return {?} - */ - function (route) { return snq((/** - * @return {?} - */ - function () { return route.data.routes.settings; })); })) - .filter((/** - * @param {?} settings - * @return {?} - */ - function (settings) { return settings && settings.length; })) - .reduce((/** - * @param {?} acc - * @param {?} val - * @return {?} - */ - function (acc, val) { return tslib_1.__spread(acc, val); }), []) - .sort((/** - * @param {?} a - * @param {?} b - * @return {?} - */ - function (a, b) { return a.order - b.order; })); - } - InitialService.decorators = [ - { type: Injectable } - ]; - /** @nocollapse */ - InitialService.ctorParameters = function () { return [ - { type: Router } - ]; }; - return InitialService; -}()); -export { InitialService }; -if (false) { - /** @type {?} */ - InitialService.prototype.settings; - /** - * @type {?} - * @private - */ - InitialService.prototype.router; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZXJ2aWNlcy9pbml0aWFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFFdEI7SUFJRSx3QkFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDL0IsR0FBRzs7OztRQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsR0FBRzs7O1FBQUMsY0FBTSxPQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBMUIsQ0FBMEIsRUFBQyxFQUFyQyxDQUFxQyxFQUFDO2FBQ25ELE1BQU07Ozs7UUFBQyxVQUFBLFFBQVEsSUFBSSxPQUFBLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUEzQixDQUEyQixFQUFDO2FBQy9DLE1BQU07Ozs7O1FBQUMsVUFBQyxHQUFHLEVBQUUsR0FBRyxJQUFLLHdCQUFJLEdBQUcsRUFBSyxHQUFHLEdBQWYsQ0FBZ0IsR0FBRSxFQUFFLENBQUM7YUFDMUMsSUFBSTs7Ozs7UUFBQyxVQUFDLENBQUMsRUFBRSxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQWpCLENBQWlCLEVBQUMsQ0FBQztJQUN2QyxDQUFDOztnQkFWRixVQUFVOzs7O2dCQUhGLE1BQU07O0lBY2YscUJBQUM7Q0FBQSxBQVhELElBV0M7U0FWWSxjQUFjOzs7SUFDekIsa0NBQThCOzs7OztJQUVsQixnQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXR0aW5nVGFiIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHNucSBmcm9tICdzbnEnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSW5pdGlhbFNlcnZpY2Uge1xuICBwdWJsaWMgc2V0dGluZ3M6IFNldHRpbmdUYWJbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG4gICAgdGhpcy5zZXR0aW5ncyA9IHRoaXMucm91dGVyLmNvbmZpZ1xuICAgICAgLm1hcChyb3V0ZSA9PiBzbnEoKCkgPT4gcm91dGUuZGF0YS5yb3V0ZXMuc2V0dGluZ3MpKVxuICAgICAgLmZpbHRlcihzZXR0aW5ncyA9PiBzZXR0aW5ncyAmJiBzZXR0aW5ncy5sZW5ndGgpXG4gICAgICAucmVkdWNlKChhY2MsIHZhbCkgPT4gWy4uLmFjYywgLi4udmFsXSwgW10pXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm5/lib/components/setting-layout.component.js b/npm/ng-packs/dist/setting-management/esm5/lib/components/setting-layout.component.js new file mode 100644 index 0000000000..322292e3f0 --- /dev/null +++ b/npm/ng-packs/dist/setting-management/esm5/lib/components/setting-layout.component.js @@ -0,0 +1,60 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component } from '@angular/core'; +import { Router } from '@angular/router'; +import { SettingManagementService } from '../services/setting-management.service'; +var SettingLayoutComponent = /** @class */ (function () { + function SettingLayoutComponent(settingManagementService, router) { + this.settingManagementService = settingManagementService; + this.router = router; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + function (_, item) { return item.name; }); + if (settingManagementService.selected && + this.router.url !== settingManagementService.selected.url && + settingManagementService.settings.length) { + settingManagementService.setSelected(settingManagementService.settings[0]); + } + } + /** + * @return {?} + */ + SettingLayoutComponent.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { }; + // required for dynamic component + SettingLayoutComponent.type = "setting" /* setting */; + SettingLayoutComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-setting-layout', + template: "
\n
\n

{{ 'AbpSettingManagement::Settings' | abpLocalization }}

\n
\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
    \n \n {{ setting.name | abpLocalization }}\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n" + }] } + ]; + /** @nocollapse */ + SettingLayoutComponent.ctorParameters = function () { return [ + { type: SettingManagementService }, + { type: Router } + ]; }; + return SettingLayoutComponent; +}()); +export { SettingLayoutComponent }; +if (false) { + /** @type {?} */ + SettingLayoutComponent.type; + /** @type {?} */ + SettingLayoutComponent.prototype.trackByFn; + /** @type {?} */ + SettingLayoutComponent.prototype.settingManagementService; + /** + * @type {?} + * @private + */ + SettingLayoutComponent.prototype.router; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZXR0aW5nLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUVsRjtJQVVFLGdDQUFtQix3QkFBa0QsRUFBVSxNQUFjO1FBQTFFLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRjdGLGNBQVM7Ozs7O1FBQWdDLFVBQUMsQ0FBQyxFQUFFLElBQUksSUFBSyxPQUFBLElBQUksQ0FBQyxJQUFJLEVBQVQsQ0FBUyxFQUFDO1FBRzlELElBQ0Usd0JBQXdCLENBQUMsUUFBUTtZQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsR0FBRztZQUN6RCx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUN4QztZQUNBLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1RTtJQUNILENBQUM7Ozs7SUFFRCw0Q0FBVzs7O0lBQVgsY0FBZSxDQUFDOztJQWRULDJCQUFJLDJCQUF1Qjs7Z0JBTm5DLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixpK0RBQThDO2lCQUMvQzs7OztnQkFMUSx3QkFBd0I7Z0JBRnhCLE1BQU07O0lBeUJmLDZCQUFDO0NBQUEsQUFyQkQsSUFxQkM7U0FqQlksc0JBQXNCOzs7SUFFakMsNEJBQWtDOztJQUVsQywyQ0FBZ0U7O0lBRXBELDBEQUF5RDs7Ozs7SUFBRSx3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBTZXR0aW5nVGFiIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2V0dGluZ01hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2V0dGluZy1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtc2V0dGluZy1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2V0dGluZy1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nTGF5b3V0Q29tcG9uZW50IHtcbiAgLy8gcmVxdWlyZWQgZm9yIGR5bmFtaWMgY29tcG9uZW50XG4gIHN0YXRpYyB0eXBlID0gZUxheW91dFR5cGUuc2V0dGluZztcblxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxTZXR0aW5nVGFiPiA9IChfLCBpdGVtKSA9PiBpdGVtLm5hbWU7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNldHRpbmdNYW5hZ2VtZW50U2VydmljZTogU2V0dGluZ01hbmFnZW1lbnRTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG4gICAgaWYgKFxuICAgICAgc2V0dGluZ01hbmFnZW1lbnRTZXJ2aWNlLnNlbGVjdGVkICYmXG4gICAgICB0aGlzLnJvdXRlci51cmwgIT09IHNldHRpbmdNYW5hZ2VtZW50U2VydmljZS5zZWxlY3RlZC51cmwgJiZcbiAgICAgIHNldHRpbmdNYW5hZ2VtZW50U2VydmljZS5zZXR0aW5ncy5sZW5ndGhcbiAgICApIHtcbiAgICAgIHNldHRpbmdNYW5hZ2VtZW50U2VydmljZS5zZXRTZWxlY3RlZChzZXR0aW5nTWFuYWdlbWVudFNlcnZpY2Uuc2V0dGluZ3NbMF0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge31cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm5/lib/components/setting/setting.component.js b/npm/ng-packs/dist/setting-management/esm5/lib/components/setting/setting.component.js deleted file mode 100644 index 98d28a526b..0000000000 --- a/npm/ng-packs/dist/setting-management/esm5/lib/components/setting/setting.component.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { Component } from '@angular/core'; -import { InitialService } from '../services/initial.service'; -var SettingComponent = /** @class */ (function () { - function SettingComponent(initialService) { - this.initialService = initialService; - this.selected = (/** @type {?} */ ({})); - } - /** - * @return {?} - */ - SettingComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - this.settings = this.initialService.settings; - this.selected = this.settings[0]; - }; - SettingComponent.decorators = [ - { type: Component, args: [{ - selector: 'abp-setting', - template: "
\n
\n

{{ 'AbpSettingManagement::Settings' | abpLocalization }}

\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
    \n \n {{ setting.name | abpLocalization }}\n \n
\n
\n
\n
\n
\n

{{ selected.name | abpLocalization }}

\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n" - }] } - ]; - /** @nocollapse */ - SettingComponent.ctorParameters = function () { return [ - { type: InitialService } - ]; }; - return SettingComponent; -}()); -export { SettingComponent }; -if (false) { - /** @type {?} */ - SettingComponent.prototype.settings; - /** @type {?} */ - SettingComponent.prototype.selected; - /** - * @type {?} - * @private - */ - SettingComponent.prototype.initialService; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnNldHRpbmctbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3NldHRpbmcvc2V0dGluZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdEO0lBU0UsMEJBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUZsRCxhQUFRLEdBQUcsbUJBQUEsRUFBRSxFQUFjLENBQUM7SUFFeUIsQ0FBQzs7OztJQUV0RCxtQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDOztnQkFkRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLHN1REFBdUM7aUJBQ3hDOzs7O2dCQUxRLGNBQWM7O0lBaUJ2Qix1QkFBQztDQUFBLEFBZkQsSUFlQztTQVhZLGdCQUFnQjs7O0lBQzNCLG9DQUF1Qjs7SUFFdkIsb0NBQTRCOzs7OztJQUVoQiwwQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2V0dGluZ1RhYiwgZmFkZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IEluaXRpYWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaW5pdGlhbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXNldHRpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2V0dGluZy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNldHRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzZXR0aW5nczogU2V0dGluZ1RhYltdO1xuXG4gIHNlbGVjdGVkID0ge30gYXMgU2V0dGluZ1RhYjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluaXRpYWxTZXJ2aWNlOiBJbml0aWFsU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5pbml0aWFsU2VydmljZS5zZXR0aW5ncztcbiAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5zZXR0aW5nc1swXTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm5/lib/constants/routes.js b/npm/ng-packs/dist/setting-management/esm5/lib/constants/routes.js index fb704e6d6e..40bc1b010d 100644 --- a/npm/ng-packs/dist/setting-management/esm5/lib/constants/routes.js +++ b/npm/ng-packs/dist/setting-management/esm5/lib/constants/routes.js @@ -14,6 +14,5 @@ export var SETTING_MANAGEMENT_ROUTES = { iconClass: 'fa fa-cog', }, ])), - settings: [], }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvY29uc3RhbnRzL3JvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE1BQU0sS0FBTyx5QkFBeUIsR0FBRztJQUN2QyxNQUFNLEVBQUUsbUJBQUE7UUFDTjtZQUNFLElBQUksRUFBRSxVQUFVO1lBQ2hCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsVUFBVSxFQUFFLHNDQUFzQztZQUNsRCxNQUFNLGlDQUF5QjtZQUMvQixLQUFLLEVBQUUsQ0FBQztZQUNSLFNBQVMsRUFBRSxXQUFXO1NBQ3ZCO0tBQ0YsRUFBbUI7SUFDcEIsUUFBUSxFQUFFLEVBQUU7Q0FDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgZUxheW91dFR5cGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuXG5leHBvcnQgY29uc3QgU0VUVElOR19NQU5BR0VNRU5UX1JPVVRFUyA9IHtcbiAgcm91dGVzOiBbXG4gICAge1xuICAgICAgbmFtZTogJ1NldHRpbmdzJyxcbiAgICAgIHBhdGg6ICdzZXR0aW5nLW1hbmFnZW1lbnQnLFxuICAgICAgcGFyZW50TmFtZTogJ0FicFVpTmF2aWdhdGlvbjo6TWVudTpBZG1pbmlzdHJhdGlvbicsXG4gICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxuICAgICAgb3JkZXI6IDYsXG4gICAgICBpY29uQ2xhc3M6ICdmYSBmYS1jb2cnLFxuICAgIH0sXG4gIF0gYXMgQUJQLkZ1bGxSb3V0ZVtdLFxuICBzZXR0aW5nczogW10sXG59O1xuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvY29uc3RhbnRzL3JvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE1BQU0sS0FBTyx5QkFBeUIsR0FBRztJQUN2QyxNQUFNLEVBQUUsbUJBQUE7UUFDTjtZQUNFLElBQUksRUFBRSxVQUFVO1lBQ2hCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsVUFBVSxFQUFFLHNDQUFzQztZQUNsRCxNQUFNLGlDQUF5QjtZQUMvQixLQUFLLEVBQUUsQ0FBQztZQUNSLFNBQVMsRUFBRSxXQUFXO1NBQ3ZCO0tBQ0YsRUFBbUI7Q0FDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGVMYXlvdXRUeXBlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuZXhwb3J0IGNvbnN0IFNFVFRJTkdfTUFOQUdFTUVOVF9ST1VURVMgPSB7XG4gIHJvdXRlczogW1xuICAgIHtcbiAgICAgIG5hbWU6ICdTZXR0aW5ncycsXG4gICAgICBwYXRoOiAnc2V0dGluZy1tYW5hZ2VtZW50JyxcbiAgICAgIHBhcmVudE5hbWU6ICdBYnBVaU5hdmlnYXRpb246Ok1lbnU6QWRtaW5pc3RyYXRpb24nLFxuICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcbiAgICAgIG9yZGVyOiA2LFxuICAgICAgaWNvbkNsYXNzOiAnZmEgZmEtY29nJyxcbiAgICB9LFxuICBdIGFzIEFCUC5GdWxsUm91dGVbXSxcbn07XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm5/lib/root-setting-management.module.js b/npm/ng-packs/dist/setting-management/esm5/lib/root-setting-management.module.js deleted file mode 100644 index ac9c911697..0000000000 --- a/npm/ng-packs/dist/setting-management/esm5/lib/root-setting-management.module.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { NgModule } from '@angular/core'; -var RootSettingManagementModule = /** @class */ (function () { - function RootSettingManagementModule() { - } - /** - * @return {?} - */ - RootSettingManagementModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootSettingManagementModule, - providers: [], - }; - }; - RootSettingManagementModule.decorators = [ - { type: NgModule, args: [{},] } - ]; - return RootSettingManagementModule; -}()); -export { RootSettingManagementModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1zZXR0aW5nLW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvcm9vdC1zZXR0aW5nLW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RDtJQUFBO0lBUUEsQ0FBQzs7OztJQU5RLG1DQUFPOzs7SUFBZDtRQUNFLE9BQU87WUFDTCxRQUFRLEVBQUUsMkJBQTJCO1lBQ3JDLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztJQUNKLENBQUM7O2dCQVBGLFFBQVEsU0FBQyxFQUFFOztJQVFaLGtDQUFDO0NBQUEsQUFSRCxJQVFDO1NBUFksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIFJvb3RTZXR0aW5nTWFuYWdlbWVudE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUm9vdFNldHRpbmdNYW5hZ2VtZW50TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXSxcbiAgICB9O1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm5/lib/services/setting-management.service.js b/npm/ng-packs/dist/setting-management/esm5/lib/services/setting-management.service.js new file mode 100644 index 0000000000..c736d49588 --- /dev/null +++ b/npm/ng-packs/dist/setting-management/esm5/lib/services/setting-management.service.js @@ -0,0 +1,154 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { Router } from '@angular/router'; +import { Navigate } from '@ngxs/router-plugin'; +import { Store, Actions, ofActionSuccessful } from '@ngxs/store'; +import { Subject } from 'rxjs'; +import { ConfigState, GetAppConfiguration } from '@abp/ng.core'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { takeUntil } from 'rxjs/operators'; +import * as i0 from "@angular/core"; +import * as i1 from "@ngxs/store"; +import * as i2 from "@angular/router"; +import * as i3 from "angular-oauth2-oidc"; +var SettingManagementService = /** @class */ (function () { + function SettingManagementService(actions, router, store, oAuthService) { + var _this = this; + this.actions = actions; + this.router = router; + this.store = store; + this.oAuthService = oAuthService; + this.settings = []; + this.selected = (/** @type {?} */ ({})); + this.destroy$ = new Subject(); + setTimeout((/** + * @return {?} + */ + function () { return _this.setSettings(); }), 0); + this.actions + .pipe(ofActionSuccessful(GetAppConfiguration)) + .pipe(takeUntil(this.destroy$)) + .subscribe((/** + * @return {?} + */ + function () { + if (_this.oAuthService.hasValidAccessToken()) { + _this.setSettings(); + } + })); + } + /** + * @return {?} + */ + SettingManagementService.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { + this.destroy$.next(); + }; + /** + * @return {?} + */ + SettingManagementService.prototype.setSettings = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var route = this.router.config.find((/** + * @param {?} r + * @return {?} + */ + function (r) { return r.path === 'setting-management'; })); + this.settings = ((/** @type {?} */ (route.data.settings))) + .filter((/** + * @param {?} setting + * @return {?} + */ + function (setting) { return _this.store.selectSnapshot(ConfigState.getGrantedPolicy(setting.requiredPolicy)); })) + .sort((/** + * @param {?} a + * @param {?} b + * @return {?} + */ + function (a, b) { return a.order - b.order; })); + this.checkSelected(); + }; + /** + * @return {?} + */ + SettingManagementService.prototype.checkSelected = /** + * @return {?} + */ + function () { + var _this = this; + this.selected = this.settings.find((/** + * @param {?} setting + * @return {?} + */ + function (setting) { return setting.url === _this.router.url; })) || ((/** @type {?} */ ({}))); + if (!this.selected.name && this.settings.length) { + this.setSelected(this.settings[0]); + } + }; + /** + * @param {?} selected + * @return {?} + */ + SettingManagementService.prototype.setSelected = /** + * @param {?} selected + * @return {?} + */ + function (selected) { + this.selected = selected; + this.store.dispatch(new Navigate([selected.url])); + }; + SettingManagementService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } + ]; + /** @nocollapse */ + SettingManagementService.ctorParameters = function () { return [ + { type: Actions }, + { type: Router }, + { type: Store }, + { type: OAuthService } + ]; }; + /** @nocollapse */ SettingManagementService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function SettingManagementService_Factory() { return new SettingManagementService(i0.ɵɵinject(i1.Actions), i0.ɵɵinject(i2.Router), i0.ɵɵinject(i1.Store), i0.ɵɵinject(i3.OAuthService)); }, token: SettingManagementService, providedIn: "root" }); + return SettingManagementService; +}()); +export { SettingManagementService }; +if (false) { + /** @type {?} */ + SettingManagementService.prototype.settings; + /** @type {?} */ + SettingManagementService.prototype.selected; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.destroy$; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.actions; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.router; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.store; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.oAuthService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1tYW5hZ2VtZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnNldHRpbmctbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9zZXR0aW5nLW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUUzQztJQVFFLGtDQUNVLE9BQWdCLEVBQ2hCLE1BQWMsRUFDZCxLQUFZLEVBQ1osWUFBMEI7UUFKcEMsaUJBZ0JDO1FBZlMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBVnBDLGFBQVEsR0FBaUIsRUFBRSxDQUFDO1FBRTVCLGFBQVEsR0FBRyxtQkFBQSxFQUFFLEVBQWMsQ0FBQztRQUVwQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVEvQixVQUFVOzs7UUFBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLFdBQVcsRUFBRSxFQUFsQixDQUFrQixHQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxPQUFPO2FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLENBQUM7YUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUzs7O1FBQUM7WUFDVCxJQUFJLEtBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsRUFBRTtnQkFDM0MsS0FBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7O0lBRUQsOENBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7O0lBRUQsOENBQVc7OztJQUFYO1FBQUEsaUJBTUM7O1lBTE8sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUk7Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssb0JBQW9CLEVBQS9CLENBQStCLEVBQUM7UUFDM0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLG1CQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFnQixDQUFDO2FBQ2xELE1BQU07Ozs7UUFBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLEtBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBL0UsQ0FBK0UsRUFBQzthQUNsRyxJQUFJOzs7OztRQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBakIsQ0FBaUIsRUFBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7O0lBRUQsZ0RBQWE7OztJQUFiO1FBQUEsaUJBTUM7UUFMQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTs7OztRQUFDLFVBQUEsT0FBTyxJQUFJLE9BQUEsT0FBTyxDQUFDLEdBQUcsS0FBSyxLQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBL0IsQ0FBK0IsRUFBQyxJQUFJLENBQUMsbUJBQUEsRUFBRSxFQUFjLENBQUMsQ0FBQztRQUVyRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDOzs7OztJQUVELDhDQUFXOzs7O0lBQVgsVUFBWSxRQUFvQjtRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7Z0JBakRGLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7Ozs7Z0JBTmxCLE9BQU87Z0JBRmQsTUFBTTtnQkFFTixLQUFLO2dCQUdMLFlBQVk7OzttQ0FQckI7Q0E0REMsQUFsREQsSUFrREM7U0FqRFksd0JBQXdCOzs7SUFDbkMsNENBQTRCOztJQUU1Qiw0Q0FBNEI7Ozs7O0lBRTVCLDRDQUFpQzs7Ozs7SUFHL0IsMkNBQXdCOzs7OztJQUN4QiwwQ0FBc0I7Ozs7O0lBQ3RCLHlDQUFvQjs7Ozs7SUFDcEIsZ0RBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2V0dGluZ1RhYiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOYXZpZ2F0ZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgU3RvcmUsIEFjdGlvbnMsIG9mQWN0aW9uU3VjY2Vzc2Z1bCB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpZ1N0YXRlLCBHZXRBcHBDb25maWd1cmF0aW9uIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNldHRpbmdNYW5hZ2VtZW50U2VydmljZSB7XG4gIHNldHRpbmdzOiBTZXR0aW5nVGFiW10gPSBbXTtcblxuICBzZWxlY3RlZCA9IHt9IGFzIFNldHRpbmdUYWI7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBvQXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcbiAgKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNldFNldHRpbmdzKCksIDApO1xuXG4gICAgdGhpcy5hY3Rpb25zXG4gICAgICAucGlwZShvZkFjdGlvblN1Y2Nlc3NmdWwoR2V0QXBwQ29uZmlndXJhdGlvbikpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub0F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xuICAgICAgICAgIHRoaXMuc2V0U2V0dGluZ3MoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIHNldFNldHRpbmdzKCkge1xuICAgIGNvbnN0IHJvdXRlID0gdGhpcy5yb3V0ZXIuY29uZmlnLmZpbmQociA9PiByLnBhdGggPT09ICdzZXR0aW5nLW1hbmFnZW1lbnQnKTtcbiAgICB0aGlzLnNldHRpbmdzID0gKHJvdXRlLmRhdGEuc2V0dGluZ3MgYXMgU2V0dGluZ1RhYltdKVxuICAgICAgLmZpbHRlcihzZXR0aW5nID0+IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoQ29uZmlnU3RhdGUuZ2V0R3JhbnRlZFBvbGljeShzZXR0aW5nLnJlcXVpcmVkUG9saWN5KSkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICAgIHRoaXMuY2hlY2tTZWxlY3RlZCgpO1xuICB9XG5cbiAgY2hlY2tTZWxlY3RlZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5zZXR0aW5ncy5maW5kKHNldHRpbmcgPT4gc2V0dGluZy51cmwgPT09IHRoaXMucm91dGVyLnVybCkgfHwgKHt9IGFzIFNldHRpbmdUYWIpO1xuXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkLm5hbWUgJiYgdGhpcy5zZXR0aW5ncy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWQodGhpcy5zZXR0aW5nc1swXSk7XG4gICAgfVxuICB9XG5cbiAgc2V0U2VsZWN0ZWQoc2VsZWN0ZWQ6IFNldHRpbmdUYWIpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGUoW3NlbGVjdGVkLnVybF0pKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm5/lib/setting-management-routing.module.js b/npm/ng-packs/dist/setting-management/esm5/lib/setting-management-routing.module.js index 2bbad72de2..d2fa0e0dd9 100644 --- a/npm/ng-packs/dist/setting-management/esm5/lib/setting-management-routing.module.js +++ b/npm/ng-packs/dist/setting-management/esm5/lib/setting-management-routing.module.js @@ -5,13 +5,16 @@ import { DynamicLayoutComponent } from '@abp/ng.core'; import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; -import { SettingComponent } from './components/setting/setting.component'; +import { SETTING_MANAGEMENT_ROUTES } from './constants/routes'; +import { SettingLayoutComponent } from './components/setting-layout.component'; +var ɵ0 = { routes: SETTING_MANAGEMENT_ROUTES, settings: [] }; /** @type {?} */ var routes = [ { - path: '', + path: 'setting-management', component: DynamicLayoutComponent, - children: [{ path: '', component: SettingComponent }], + children: [{ path: '', component: SettingLayoutComponent }], + data: ɵ0, }, ]; var SettingManagementRoutingModule = /** @class */ (function () { @@ -26,4 +29,5 @@ var SettingManagementRoutingModule = /** @class */ (function () { return SettingManagementRoutingModule; }()); export { SettingManagementRoutingModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvc2V0dGluZy1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0lBRXBFLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLHNCQUFzQjtRQUNqQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUM7S0FDdEQ7Q0FDRjtBQUVEO0lBQUE7SUFJNkMsQ0FBQzs7Z0JBSjdDLFFBQVEsU0FBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCOztJQUM0QyxxQ0FBQztDQUFBLEFBSjlDLElBSThDO1NBQWpDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNMYXlvdXRDb21wb25lbnQgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNldHRpbmdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2V0dGluZy9zZXR0aW5nLmNvbXBvbmVudCc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxuICAgIGNoaWxkcmVuOiBbeyBwYXRoOiAnJywgY29tcG9uZW50OiBTZXR0aW5nQ29tcG9uZW50IH1dLFxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNldHRpbmdNYW5hZ2VtZW50Um91dGluZ01vZHVsZSB7fVxuIl19 \ No newline at end of file +export { ɵ0 }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvc2V0dGluZy1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7U0FPckUsRUFBRSxNQUFNLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs7SUFMdkQsTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztRQUMzRCxJQUFJLElBQXFEO0tBQzFEO0NBQ0Y7QUFFRDtJQUFBO0lBSTZDLENBQUM7O2dCQUo3QyxRQUFRLFNBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4Qjs7SUFDNEMscUNBQUM7Q0FBQSxBQUo5QyxJQUk4QztTQUFqQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTRVRUSU5HX01BTkFHRU1FTlRfUk9VVEVTIH0gZnJvbSAnLi9jb25zdGFudHMvcm91dGVzJztcbmltcG9ydCB7IFNldHRpbmdMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2V0dGluZy1sYXlvdXQuY29tcG9uZW50JztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnc2V0dGluZy1tYW5hZ2VtZW50JyxcbiAgICBjb21wb25lbnQ6IER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgY2hpbGRyZW46IFt7IHBhdGg6ICcnLCBjb21wb25lbnQ6IFNldHRpbmdMYXlvdXRDb21wb25lbnQgfV0sXG4gICAgZGF0YTogeyByb3V0ZXM6IFNFVFRJTkdfTUFOQUdFTUVOVF9ST1VURVMsIHNldHRpbmdzOiBbXSB9LFxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNldHRpbmdNYW5hZ2VtZW50Um91dGluZ01vZHVsZSB7fVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm5/lib/setting-management.module.js b/npm/ng-packs/dist/setting-management/esm5/lib/setting-management.module.js index 9aa107cfa6..0b7d328802 100644 --- a/npm/ng-packs/dist/setting-management/esm5/lib/setting-management.module.js +++ b/npm/ng-packs/dist/setting-management/esm5/lib/setting-management.module.js @@ -3,26 +3,23 @@ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { CoreModule } from '@abp/ng.core'; -import { NgModule, Self } from '@angular/core'; -import { SettingComponent } from './components/setting/setting.component'; -import { SettingManagementRoutingModule } from './setting-management-routing.module'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; -import { InitialService } from './components/services/initial.service'; +import { NgModule } from '@angular/core'; +import { SettingLayoutComponent } from './components/setting-layout.component'; +import { SettingManagementRoutingModule } from './setting-management-routing.module'; +/** @type {?} */ +export var SETTING_LAYOUT = SettingLayoutComponent; var SettingManagementModule = /** @class */ (function () { - function SettingManagementModule(initialService) { + function SettingManagementModule() { } SettingManagementModule.decorators = [ { type: NgModule, args: [{ - declarations: [SettingComponent], + declarations: [SETTING_LAYOUT], imports: [SettingManagementRoutingModule, CoreModule, ThemeSharedModule], - providers: [InitialService], + entryComponents: [SETTING_LAYOUT], },] } ]; - /** @nocollapse */ - SettingManagementModule.ctorParameters = function () { return [ - { type: InitialService, decorators: [{ type: Self }] } - ]; }; return SettingManagementModule; }()); export { SettingManagementModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3NldHRpbmctbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBd0MsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV2RTtJQU1FLGlDQUFvQixjQUE4QjtJQUFHLENBQUM7O2dCQU52RCxRQUFRLFNBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRSxDQUFDLDhCQUE4QixFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztvQkFDeEUsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUM1Qjs7OztnQkFOUSxjQUFjLHVCQVFSLElBQUk7O0lBQ25CLDhCQUFDO0NBQUEsQUFQRCxJQU9DO1NBRlksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSwgbm9vcCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycywgQVBQX0lOSVRJQUxJWkVSLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXR0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NldHRpbmcvc2V0dGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2V0dGluZ01hbmFnZW1lbnRSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9zZXR0aW5nLW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBJbml0aWFsU2VydmljZSB9IGZyb20gJy4vY29tcG9uZW50cy9zZXJ2aWNlcy9pbml0aWFsLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTZXR0aW5nQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1NldHRpbmdNYW5hZ2VtZW50Um91dGluZ01vZHVsZSwgQ29yZU1vZHVsZSwgVGhlbWVTaGFyZWRNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtJbml0aWFsU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNldHRpbmdNYW5hZ2VtZW50TW9kdWxlIHtcbiAgY29uc3RydWN0b3IoQFNlbGYoKSBpbml0aWFsU2VydmljZTogSW5pdGlhbFNlcnZpY2UpIHt9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3NldHRpbmctbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFckYsTUFBTSxLQUFPLGNBQWMsR0FBRyxzQkFBc0I7QUFFcEQ7SUFBQTtJQUtzQyxDQUFDOztnQkFMdEMsUUFBUSxTQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsOEJBQThCLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDO29CQUN4RSxlQUFlLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQ2xDOztJQUNxQyw4QkFBQztDQUFBLEFBTHZDLElBS3VDO1NBQTFCLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2V0dGluZ0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5nLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2V0dGluZ01hbmFnZW1lbnRSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9zZXR0aW5nLW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUnO1xuXG5leHBvcnQgY29uc3QgU0VUVElOR19MQVlPVVQgPSBTZXR0aW5nTGF5b3V0Q29tcG9uZW50O1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTRVRUSU5HX0xBWU9VVF0sXG4gIGltcG9ydHM6IFtTZXR0aW5nTWFuYWdlbWVudFJvdXRpbmdNb2R1bGUsIENvcmVNb2R1bGUsIFRoZW1lU2hhcmVkTW9kdWxlXSxcbiAgZW50cnlDb21wb25lbnRzOiBbU0VUVElOR19MQVlPVVRdLFxufSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nTWFuYWdlbWVudE1vZHVsZSB7fVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/esm5/public-api.js b/npm/ng-packs/dist/setting-management/esm5/public-api.js index dafa05f548..01feb13ff1 100644 --- a/npm/ng-packs/dist/setting-management/esm5/public-api.js +++ b/npm/ng-packs/dist/setting-management/esm5/public-api.js @@ -2,8 +2,7 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { RootSettingManagementModule } from './lib/root-setting-management.module'; -export { SettingManagementModule } from './lib/setting-management.module'; -export { SettingComponent } from './lib/components'; +export { SETTING_LAYOUT, SettingManagementModule } from './lib/setting-management.module'; export { SETTING_MANAGEMENT_ROUTES } from './lib/constants'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNENBQWMsc0NBQXNDLENBQUM7QUFDckQsd0NBQWMsaUNBQWlDLENBQUM7QUFDaEQsaUNBQWMsa0JBQWtCLENBQUM7QUFDakMsMENBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9yb290LXNldHRpbmctbWFuYWdlbWVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2V0dGluZy1tYW5hZ2VtZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN0YW50cyc7XG4iXX0= \ No newline at end of file +export { SettingLayoutComponent } from './lib/components/setting-layout.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsd0RBQWMsaUNBQWlDLENBQUM7QUFDaEQsMENBQWMsaUJBQWlCLENBQUM7QUFDaEMsdUNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9zZXR0aW5nLW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NldHRpbmctbGF5b3V0LmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/fesm2015/abp-ng.setting-management.js b/npm/ng-packs/dist/setting-management/fesm2015/abp-ng.setting-management.js index 5eee600821..c3b871f85f 100644 --- a/npm/ng-packs/dist/setting-management/fesm2015/abp-ng.setting-management.js +++ b/npm/ng-packs/dist/setting-management/fesm2015/abp-ng.setting-management.js @@ -1,123 +1,197 @@ -import { NgModule, Injectable, Component, Self } from '@angular/core'; -import { DynamicLayoutComponent, CoreModule } from '@abp/ng.core'; -import { Router, RouterModule } from '@angular/router'; -import snq from 'snq'; +import { GetAppConfiguration, ConfigState, DynamicLayoutComponent, CoreModule } from '@abp/ng.core'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, NgModule } from '@angular/core'; +import { Router, RouterModule } from '@angular/router'; +import { Navigate } from '@ngxs/router-plugin'; +import { ofActionSuccessful, Actions, Store } from '@ngxs/store'; +import { Subject } from 'rxjs'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { takeUntil } from 'rxjs/operators'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -class RootSettingManagementModule { - /** - * @return {?} - */ - static forRoot() { - return { - ngModule: RootSettingManagementModule, - providers: [], - }; - } -} -RootSettingManagementModule.decorators = [ - { type: NgModule, args: [{},] } -]; - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -class InitialService { +class SettingManagementService { /** + * @param {?} actions * @param {?} router + * @param {?} store + * @param {?} oAuthService */ - constructor(router) { + constructor(actions, router, store, oAuthService) { + this.actions = actions; this.router = router; - this.settings = this.router.config - .map((/** - * @param {?} route + this.store = store; + this.oAuthService = oAuthService; + this.settings = []; + this.selected = (/** @type {?} */ ({})); + this.destroy$ = new Subject(); + setTimeout((/** * @return {?} */ - route => snq((/** + () => this.setSettings()), 0); + this.actions + .pipe(ofActionSuccessful(GetAppConfiguration)) + .pipe(takeUntil(this.destroy$)) + .subscribe((/** * @return {?} */ - () => route.data.routes.settings)))) - .filter((/** - * @param {?} settings + () => { + if (this.oAuthService.hasValidAccessToken()) { + this.setSettings(); + } + })); + } + /** + * @return {?} + */ + ngOnDestroy() { + this.destroy$.next(); + } + /** + * @return {?} + */ + setSettings() { + /** @type {?} */ + const route = this.router.config.find((/** + * @param {?} r * @return {?} */ - settings => settings && settings.length)) - .reduce((/** - * @param {?} acc - * @param {?} val + r => r.path === 'setting-management')); + this.settings = ((/** @type {?} */ (route.data.settings))) + .filter((/** + * @param {?} setting * @return {?} */ - (acc, val) => [...acc, ...val]), []) + setting => this.store.selectSnapshot(ConfigState.getGrantedPolicy(setting.requiredPolicy)))) .sort((/** * @param {?} a * @param {?} b * @return {?} */ (a, b) => a.order - b.order)); + this.checkSelected(); + } + /** + * @return {?} + */ + checkSelected() { + this.selected = this.settings.find((/** + * @param {?} setting + * @return {?} + */ + setting => setting.url === this.router.url)) || ((/** @type {?} */ ({}))); + if (!this.selected.name && this.settings.length) { + this.setSelected(this.settings[0]); + } + } + /** + * @param {?} selected + * @return {?} + */ + setSelected(selected) { + this.selected = selected; + this.store.dispatch(new Navigate([selected.url])); } } -InitialService.decorators = [ - { type: Injectable } +SettingManagementService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ -InitialService.ctorParameters = () => [ - { type: Router } +SettingManagementService.ctorParameters = () => [ + { type: Actions }, + { type: Router }, + { type: Store }, + { type: OAuthService } ]; +/** @nocollapse */ SettingManagementService.ngInjectableDef = ɵɵdefineInjectable({ factory: function SettingManagementService_Factory() { return new SettingManagementService(ɵɵinject(Actions), ɵɵinject(Router), ɵɵinject(Store), ɵɵinject(OAuthService)); }, token: SettingManagementService, providedIn: "root" }); if (false) { /** @type {?} */ - InitialService.prototype.settings; + SettingManagementService.prototype.settings; + /** @type {?} */ + SettingManagementService.prototype.selected; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.destroy$; /** * @type {?} * @private */ - InitialService.prototype.router; + SettingManagementService.prototype.actions; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.router; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.store; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.oAuthService; } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -class SettingComponent { +class SettingLayoutComponent { /** - * @param {?} initialService + * @param {?} settingManagementService + * @param {?} router */ - constructor(initialService) { - this.initialService = initialService; - this.selected = (/** @type {?} */ ({})); + constructor(settingManagementService, router) { + this.settingManagementService = settingManagementService; + this.router = router; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + (_, item) => item.name); + if (settingManagementService.selected && + this.router.url !== settingManagementService.selected.url && + settingManagementService.settings.length) { + settingManagementService.setSelected(settingManagementService.settings[0]); + } } /** * @return {?} */ - ngOnInit() { - this.settings = this.initialService.settings; - this.selected = this.settings[0]; - } + ngOnDestroy() { } } -SettingComponent.decorators = [ +// required for dynamic component +SettingLayoutComponent.type = "setting" /* setting */; +SettingLayoutComponent.decorators = [ { type: Component, args: [{ - selector: 'abp-setting', - template: "
\n
\n

{{ 'AbpSettingManagement::Settings' | abpLocalization }}

\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
    \n \n {{ setting.name | abpLocalization }}\n \n
\n
\n
\n
\n
\n

{{ selected.name | abpLocalization }}

\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n" + selector: 'abp-setting-layout', + template: "
\n
\n

{{ 'AbpSettingManagement::Settings' | abpLocalization }}

\n
\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
    \n \n {{ setting.name | abpLocalization }}\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n" }] } ]; /** @nocollapse */ -SettingComponent.ctorParameters = () => [ - { type: InitialService } +SettingLayoutComponent.ctorParameters = () => [ + { type: SettingManagementService }, + { type: Router } ]; if (false) { /** @type {?} */ - SettingComponent.prototype.settings; + SettingLayoutComponent.type; + /** @type {?} */ + SettingLayoutComponent.prototype.trackByFn; /** @type {?} */ - SettingComponent.prototype.selected; + SettingLayoutComponent.prototype.settingManagementService; /** * @type {?} * @private */ - SettingComponent.prototype.initialService; + SettingLayoutComponent.prototype.router; } /** @@ -125,11 +199,31 @@ if (false) { * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ +const SETTING_MANAGEMENT_ROUTES = { + routes: (/** @type {?} */ ([ + { + name: 'Settings', + path: 'setting-management', + parentName: 'AbpUiNavigation::Menu:Administration', + layout: "application" /* application */, + order: 6, + iconClass: 'fa fa-cog', + }, + ])), +}; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +const ɵ0 = { routes: SETTING_MANAGEMENT_ROUTES, settings: [] }; +/** @type {?} */ const routes = [ { - path: '', + path: 'setting-management', component: DynamicLayoutComponent, - children: [{ path: '', component: SettingComponent }], + children: [{ path: '', component: SettingLayoutComponent }], + data: ɵ0, }, ]; class SettingManagementRoutingModule { @@ -145,47 +239,17 @@ SettingManagementRoutingModule.decorators = [ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ +/** @type {?} */ +const SETTING_LAYOUT = SettingLayoutComponent; class SettingManagementModule { - /** - * @param {?} initialService - */ - constructor(initialService) { } } SettingManagementModule.decorators = [ { type: NgModule, args: [{ - declarations: [SettingComponent], + declarations: [SETTING_LAYOUT], imports: [SettingManagementRoutingModule, CoreModule, ThemeSharedModule], - providers: [InitialService], + entryComponents: [SETTING_LAYOUT], },] } ]; -/** @nocollapse */ -SettingManagementModule.ctorParameters = () => [ - { type: InitialService, decorators: [{ type: Self }] } -]; - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -/** @type {?} */ -const SETTING_MANAGEMENT_ROUTES = { - routes: (/** @type {?} */ ([ - { - name: 'Settings', - path: 'setting-management', - parentName: 'AbpUiNavigation::Menu:Administration', - layout: "application" /* application */, - order: 6, - iconClass: 'fa fa-cog', - }, - ])), - settings: [], -}; /** * @fileoverview added by tsickle @@ -202,5 +266,5 @@ const SETTING_MANAGEMENT_ROUTES = { * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { RootSettingManagementModule, SETTING_MANAGEMENT_ROUTES, SettingComponent, SettingManagementModule, SettingComponent as ɵa, InitialService as ɵb, SettingManagementRoutingModule as ɵc }; +export { SETTING_LAYOUT, SETTING_MANAGEMENT_ROUTES, SettingLayoutComponent, SettingManagementModule, SettingManagementService as ɵa, SettingManagementRoutingModule as ɵb, SETTING_MANAGEMENT_ROUTES as ɵc }; //# sourceMappingURL=abp-ng.setting-management.js.map diff --git a/npm/ng-packs/dist/setting-management/fesm2015/abp-ng.setting-management.js.map b/npm/ng-packs/dist/setting-management/fesm2015/abp-ng.setting-management.js.map index ae0e51e008..666660a3f0 100644 --- a/npm/ng-packs/dist/setting-management/fesm2015/abp-ng.setting-management.js.map +++ b/npm/ng-packs/dist/setting-management/fesm2015/abp-ng.setting-management.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.setting-management.js","sources":["ng://@abp/ng.setting-management/lib/root-setting-management.module.ts","ng://@abp/ng.setting-management/lib/components/services/initial.service.ts","ng://@abp/ng.setting-management/lib/components/setting/setting.component.ts","ng://@abp/ng.setting-management/lib/setting-management-routing.module.ts","ng://@abp/ng.setting-management/lib/setting-management.module.ts","ng://@abp/ng.setting-management/lib/constants/routes.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootSettingManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootSettingManagementModule,\n providers: [],\n };\n }\n}\n","import { SettingTab } from '@abp/ng.theme.shared';\nimport { Injectable, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport snq from 'snq';\n\n@Injectable()\nexport class InitialService {\n public settings: SettingTab[];\n\n constructor(private router: Router) {\n this.settings = this.router.config\n .map(route => snq(() => route.data.routes.settings))\n .filter(settings => settings && settings.length)\n .reduce((acc, val) => [...acc, ...val], [])\n .sort((a, b) => a.order - b.order);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { SettingTab, fade } from '@abp/ng.theme.shared';\nimport { InitialService } from '../services/initial.service';\n\n@Component({\n selector: 'abp-setting',\n templateUrl: './setting.component.html',\n})\nexport class SettingComponent implements OnInit {\n settings: SettingTab[];\n\n selected = {} as SettingTab;\n\n constructor(private initialService: InitialService) {}\n\n ngOnInit() {\n this.settings = this.initialService.settings;\n this.selected = this.settings[0];\n }\n}\n","import { DynamicLayoutComponent } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { SettingComponent } from './components/setting/setting.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: '', component: SettingComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SettingManagementRoutingModule {}\n","import { CoreModule, noop } from '@abp/ng.core';\nimport { NgModule, ModuleWithProviders, APP_INITIALIZER, Self } from '@angular/core';\nimport { SettingComponent } from './components/setting/setting.component';\nimport { SettingManagementRoutingModule } from './setting-management-routing.module';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { InitialService } from './components/services/initial.service';\n\n@NgModule({\n declarations: [SettingComponent],\n imports: [SettingManagementRoutingModule, CoreModule, ThemeSharedModule],\n providers: [InitialService],\n})\nexport class SettingManagementModule {\n constructor(@Self() initialService: InitialService) {}\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const SETTING_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'Settings',\n path: 'setting-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n order: 6,\n iconClass: 'fa fa-cog',\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n"],"names":[],"mappings":";;;;;;;;;;AAAA,MAGa,2BAA2B;;;;IACtC,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,2BAA2B;YACrC,SAAS,EAAE,EAAE;SACd,CAAC;KACH;;;YAPF,QAAQ,SAAC,EAAE;;;;;;;ACDZ,MAKa,cAAc;;;;IAGzB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;aAC/B,GAAG;;;;QAAC,KAAK,IAAI,GAAG;;;QAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAC,EAAC;aACnD,MAAM;;;;QAAC,QAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAC;aAC/C,MAAM;;;;;QAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,GAAE,EAAE,CAAC;aAC1C,IAAI;;;;;QAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAC,CAAC;KACtC;;;YAVF,UAAU;;;;YAHF,MAAM;;;;IAKb,kCAA8B;;;;;IAElB,gCAAsB;;;;;;;ACTpC,MAQa,gBAAgB;;;;IAK3B,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAFlD,aAAQ,sBAAG,EAAE,EAAc,CAAC;KAE0B;;;;IAEtD,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAClC;;;YAdF,SAAS,SAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,suDAAuC;aACxC;;;;YALQ,cAAc;;;;IAOrB,oCAAuB;;IAEvB,oCAA4B;;;;;IAEhB,0CAAsC;;;;;;;ACbpD;MAKM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,sBAAsB;QACjC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;KACtD;CACF;AAMD,MAAa,8BAA8B;;;YAJ1C,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;aACxB;;;;;;;AChBD,MAYa,uBAAuB;;;;IAClC,YAAoB,cAA8B,KAAI;;;YANvD,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;gBAChC,OAAO,EAAE,CAAC,8BAA8B,EAAE,UAAU,EAAE,iBAAiB,CAAC;gBACxE,SAAS,EAAE,CAAC,cAAc,CAAC;aAC5B;;;;YANQ,cAAc,uBAQR,IAAI;;;;;;;;;;;;;ACXnB,MAAa,yBAAyB,GAAG;IACvC,MAAM,qBAAE;QACN;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,sCAAsC;YAClD,MAAM;YACN,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,WAAW;SACvB;KACF,EAAmB;IACpB,QAAQ,EAAE,EAAE;CACb;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"abp-ng.setting-management.js","sources":["ng://@abp/ng.setting-management/lib/services/setting-management.service.ts","ng://@abp/ng.setting-management/lib/components/setting-layout.component.ts","ng://@abp/ng.setting-management/lib/constants/routes.ts","ng://@abp/ng.setting-management/lib/setting-management-routing.module.ts","ng://@abp/ng.setting-management/lib/setting-management.module.ts"],"sourcesContent":["import { SettingTab } from '@abp/ng.theme.shared';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store, Actions, ofActionSuccessful } from '@ngxs/store';\nimport { Subject } from 'rxjs';\nimport { ConfigState, GetAppConfiguration } from '@abp/ng.core';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SettingManagementService {\n settings: SettingTab[] = [];\n\n selected = {} as SettingTab;\n\n private destroy$ = new Subject();\n\n constructor(\n private actions: Actions,\n private router: Router,\n private store: Store,\n private oAuthService: OAuthService,\n ) {\n setTimeout(() => this.setSettings(), 0);\n\n this.actions\n .pipe(ofActionSuccessful(GetAppConfiguration))\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.oAuthService.hasValidAccessToken()) {\n this.setSettings();\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n }\n\n setSettings() {\n const route = this.router.config.find(r => r.path === 'setting-management');\n this.settings = (route.data.settings as SettingTab[])\n .filter(setting => this.store.selectSnapshot(ConfigState.getGrantedPolicy(setting.requiredPolicy)))\n .sort((a, b) => a.order - b.order);\n this.checkSelected();\n }\n\n checkSelected() {\n this.selected = this.settings.find(setting => setting.url === this.router.url) || ({} as SettingTab);\n\n if (!this.selected.name && this.settings.length) {\n this.setSelected(this.settings[0]);\n }\n }\n\n setSelected(selected: SettingTab) {\n this.selected = selected;\n this.store.dispatch(new Navigate([selected.url]));\n }\n}\n","import { eLayoutType } from '@abp/ng.core';\nimport { SettingTab } from '@abp/ng.theme.shared';\nimport { Component, TrackByFunction } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { timer } from 'rxjs';\nimport { SettingManagementService } from '../services/setting-management.service';\n\n@Component({\n selector: 'abp-setting-layout',\n templateUrl: './setting-layout.component.html',\n})\nexport class SettingLayoutComponent {\n // required for dynamic component\n static type = eLayoutType.setting;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n constructor(public settingManagementService: SettingManagementService, private router: Router) {\n if (\n settingManagementService.selected &&\n this.router.url !== settingManagementService.selected.url &&\n settingManagementService.settings.length\n ) {\n settingManagementService.setSelected(settingManagementService.settings[0]);\n }\n }\n\n ngOnDestroy() {}\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const SETTING_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'Settings',\n path: 'setting-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n order: 6,\n iconClass: 'fa fa-cog',\n },\n ] as ABP.FullRoute[],\n};\n","import { DynamicLayoutComponent } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { SETTING_MANAGEMENT_ROUTES } from './constants/routes';\nimport { SettingLayoutComponent } from './components/setting-layout.component';\n\nconst routes: Routes = [\n {\n path: 'setting-management',\n component: DynamicLayoutComponent,\n children: [{ path: '', component: SettingLayoutComponent }],\n data: { routes: SETTING_MANAGEMENT_ROUTES, settings: [] },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SettingManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { SettingLayoutComponent } from './components/setting-layout.component';\nimport { SettingManagementRoutingModule } from './setting-management-routing.module';\n\nexport const SETTING_LAYOUT = SettingLayoutComponent;\n\n@NgModule({\n declarations: [SETTING_LAYOUT],\n imports: [SettingManagementRoutingModule, CoreModule, ThemeSharedModule],\n entryComponents: [SETTING_LAYOUT],\n})\nexport class SettingManagementModule {}\n"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,MAUa,wBAAwB;;;;;;;IAOnC,YACU,OAAgB,EAChB,MAAc,EACd,KAAY,EACZ,YAA0B;QAH1B,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAO;QACZ,iBAAY,GAAZ,YAAY,CAAc;QAVpC,aAAQ,GAAiB,EAAE,CAAC;QAE5B,aAAQ,sBAAG,EAAE,EAAc,CAAC;QAEpB,aAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAQ/B,UAAU;;;QAAC,MAAM,IAAI,CAAC,WAAW,EAAE,GAAE,CAAC,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO;aACT,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;aAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS;;;QAAC;YACT,IAAI,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAE;gBAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF,EAAC,CAAC;KACN;;;;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;;;;IAED,WAAW;;cACH,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;;;;QAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,EAAC;QAC3E,IAAI,CAAC,QAAQ,GAAG,oBAAC,KAAK,CAAC,IAAI,CAAC,QAAQ;aACjC,MAAM;;;;QAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAC;aAClG,IAAI;;;;;QAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAC,CAAC;QACrC,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;;;;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;;;;QAAC,OAAO,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,EAAC,wBAAK,EAAE,GAAe,CAAC;QAErG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC;KACF;;;;;IAED,WAAW,CAAC,QAAoB;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACnD;;;YAjDF,UAAU,SAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;YANlB,OAAO;YAFd,MAAM;YAEN,KAAK;YAGL,YAAY;;;;;IAKnB,4CAA4B;;IAE5B,4CAA4B;;;;;IAE5B,4CAAiC;;;;;IAG/B,2CAAwB;;;;;IACxB,0CAAsB;;;;;IACtB,yCAAoB;;;;;IACpB,gDAAkC;;;;;;;ACpBtC,MASa,sBAAsB;;;;;IAMjC,YAAmB,wBAAkD,EAAU,MAAc;QAA1E,6BAAwB,GAAxB,wBAAwB,CAA0B;QAAU,WAAM,GAAN,MAAM,CAAQ;QAF7F,cAAS;;;;;QAAgC,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC,IAAI,EAAC;QAG9D,IACE,wBAAwB,CAAC,QAAQ;YACjC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,wBAAwB,CAAC,QAAQ,CAAC,GAAG;YACzD,wBAAwB,CAAC,QAAQ,CAAC,MAAM,EACxC;YACA,wBAAwB,CAAC,WAAW,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5E;KACF;;;;IAED,WAAW,MAAK;;;AAdT,2BAAI,2BAAuB;;YANnC,SAAS,SAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,i+DAA8C;aAC/C;;;;YALQ,wBAAwB;YAFxB,MAAM;;;;IAUb,4BAAkC;;IAElC,2CAAgE;;IAEpD,0DAAyD;;;;;IAAE,wCAAsB;;;;;;;;ACf/F,MAAa,yBAAyB,GAAG;IACvC,MAAM,qBAAE;QACN;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,sCAAsC;YAClD,MAAM;YACN,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,WAAW;SACvB;KACF,EAAmB;CACrB;;;;;;ACbD,WAWU,EAAE,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,EAAE,EAAE;;MALvD,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,sBAAsB;QACjC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;QAC3D,IAAI,IAAqD;KAC1D;CACF;AAMD,MAAa,8BAA8B;;;YAJ1C,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;aACxB;;;;;;;AClBD;AAMA,MAAa,cAAc,GAAG,sBAAsB;AAOpD,MAAa,uBAAuB;;;YALnC,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,cAAc,CAAC;gBAC9B,OAAO,EAAE,CAAC,8BAA8B,EAAE,UAAU,EAAE,iBAAiB,CAAC;gBACxE,eAAe,EAAE,CAAC,cAAc,CAAC;aAClC;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/fesm5/abp-ng.setting-management.js b/npm/ng-packs/dist/setting-management/fesm5/abp-ng.setting-management.js index 95bc2e675e..9e00457e8f 100644 --- a/npm/ng-packs/dist/setting-management/fesm5/abp-ng.setting-management.js +++ b/npm/ng-packs/dist/setting-management/fesm5/abp-ng.setting-management.js @@ -1,129 +1,208 @@ -import { NgModule, Injectable, Component, Self } from '@angular/core'; -import { DynamicLayoutComponent, CoreModule } from '@abp/ng.core'; -import { __spread } from 'tslib'; -import { Router, RouterModule } from '@angular/router'; -import snq from 'snq'; +import { GetAppConfiguration, ConfigState, DynamicLayoutComponent, CoreModule } from '@abp/ng.core'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, NgModule } from '@angular/core'; +import { Router, RouterModule } from '@angular/router'; +import { Navigate } from '@ngxs/router-plugin'; +import { ofActionSuccessful, Actions, Store } from '@ngxs/store'; +import { Subject } from 'rxjs'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { takeUntil } from 'rxjs/operators'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -var RootSettingManagementModule = /** @class */ (function () { - function RootSettingManagementModule() { +var SettingManagementService = /** @class */ (function () { + function SettingManagementService(actions, router, store, oAuthService) { + var _this = this; + this.actions = actions; + this.router = router; + this.store = store; + this.oAuthService = oAuthService; + this.settings = []; + this.selected = (/** @type {?} */ ({})); + this.destroy$ = new Subject(); + setTimeout((/** + * @return {?} + */ + function () { return _this.setSettings(); }), 0); + this.actions + .pipe(ofActionSuccessful(GetAppConfiguration)) + .pipe(takeUntil(this.destroy$)) + .subscribe((/** + * @return {?} + */ + function () { + if (_this.oAuthService.hasValidAccessToken()) { + _this.setSettings(); + } + })); } /** * @return {?} */ - RootSettingManagementModule.forRoot = /** + SettingManagementService.prototype.ngOnDestroy = /** * @return {?} */ function () { - return { - ngModule: RootSettingManagementModule, - providers: [], - }; + this.destroy$.next(); }; - RootSettingManagementModule.decorators = [ - { type: NgModule, args: [{},] } - ]; - return RootSettingManagementModule; -}()); - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -var InitialService = /** @class */ (function () { - function InitialService(router) { - this.router = router; - this.settings = this.router.config - .map((/** - * @param {?} route - * @return {?} - */ - function (route) { return snq((/** + /** + * @return {?} + */ + SettingManagementService.prototype.setSettings = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var route = this.router.config.find((/** + * @param {?} r * @return {?} */ - function () { return route.data.routes.settings; })); })) + function (r) { return r.path === 'setting-management'; })); + this.settings = ((/** @type {?} */ (route.data.settings))) .filter((/** - * @param {?} settings - * @return {?} - */ - function (settings) { return settings && settings.length; })) - .reduce((/** - * @param {?} acc - * @param {?} val + * @param {?} setting * @return {?} */ - function (acc, val) { return __spread(acc, val); }), []) + function (setting) { return _this.store.selectSnapshot(ConfigState.getGrantedPolicy(setting.requiredPolicy)); })) .sort((/** * @param {?} a * @param {?} b * @return {?} */ function (a, b) { return a.order - b.order; })); - } - InitialService.decorators = [ - { type: Injectable } + this.checkSelected(); + }; + /** + * @return {?} + */ + SettingManagementService.prototype.checkSelected = /** + * @return {?} + */ + function () { + var _this = this; + this.selected = this.settings.find((/** + * @param {?} setting + * @return {?} + */ + function (setting) { return setting.url === _this.router.url; })) || ((/** @type {?} */ ({}))); + if (!this.selected.name && this.settings.length) { + this.setSelected(this.settings[0]); + } + }; + /** + * @param {?} selected + * @return {?} + */ + SettingManagementService.prototype.setSelected = /** + * @param {?} selected + * @return {?} + */ + function (selected) { + this.selected = selected; + this.store.dispatch(new Navigate([selected.url])); + }; + SettingManagementService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ - InitialService.ctorParameters = function () { return [ - { type: Router } + SettingManagementService.ctorParameters = function () { return [ + { type: Actions }, + { type: Router }, + { type: Store }, + { type: OAuthService } ]; }; - return InitialService; + /** @nocollapse */ SettingManagementService.ngInjectableDef = ɵɵdefineInjectable({ factory: function SettingManagementService_Factory() { return new SettingManagementService(ɵɵinject(Actions), ɵɵinject(Router), ɵɵinject(Store), ɵɵinject(OAuthService)); }, token: SettingManagementService, providedIn: "root" }); + return SettingManagementService; }()); if (false) { /** @type {?} */ - InitialService.prototype.settings; + SettingManagementService.prototype.settings; + /** @type {?} */ + SettingManagementService.prototype.selected; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.destroy$; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.actions; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.router; /** * @type {?} * @private */ - InitialService.prototype.router; + SettingManagementService.prototype.store; + /** + * @type {?} + * @private + */ + SettingManagementService.prototype.oAuthService; } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -var SettingComponent = /** @class */ (function () { - function SettingComponent(initialService) { - this.initialService = initialService; - this.selected = (/** @type {?} */ ({})); +var SettingLayoutComponent = /** @class */ (function () { + function SettingLayoutComponent(settingManagementService, router) { + this.settingManagementService = settingManagementService; + this.router = router; + this.trackByFn = (/** + * @param {?} _ + * @param {?} item + * @return {?} + */ + function (_, item) { return item.name; }); + if (settingManagementService.selected && + this.router.url !== settingManagementService.selected.url && + settingManagementService.settings.length) { + settingManagementService.setSelected(settingManagementService.settings[0]); + } } /** * @return {?} */ - SettingComponent.prototype.ngOnInit = /** + SettingLayoutComponent.prototype.ngOnDestroy = /** * @return {?} */ - function () { - this.settings = this.initialService.settings; - this.selected = this.settings[0]; - }; - SettingComponent.decorators = [ + function () { }; + // required for dynamic component + SettingLayoutComponent.type = "setting" /* setting */; + SettingLayoutComponent.decorators = [ { type: Component, args: [{ - selector: 'abp-setting', - template: "
\n
\n

{{ 'AbpSettingManagement::Settings' | abpLocalization }}

\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
    \n \n {{ setting.name | abpLocalization }}\n \n
\n
\n
\n
\n
\n

{{ selected.name | abpLocalization }}

\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n" + selector: 'abp-setting-layout', + template: "
\n
\n

{{ 'AbpSettingManagement::Settings' | abpLocalization }}

\n
\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
    \n \n {{ setting.name | abpLocalization }}\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n" }] } ]; /** @nocollapse */ - SettingComponent.ctorParameters = function () { return [ - { type: InitialService } + SettingLayoutComponent.ctorParameters = function () { return [ + { type: SettingManagementService }, + { type: Router } ]; }; - return SettingComponent; + return SettingLayoutComponent; }()); if (false) { /** @type {?} */ - SettingComponent.prototype.settings; + SettingLayoutComponent.type; /** @type {?} */ - SettingComponent.prototype.selected; + SettingLayoutComponent.prototype.trackByFn; + /** @type {?} */ + SettingLayoutComponent.prototype.settingManagementService; /** * @type {?} * @private */ - SettingComponent.prototype.initialService; + SettingLayoutComponent.prototype.router; } /** @@ -131,11 +210,31 @@ if (false) { * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ +var SETTING_MANAGEMENT_ROUTES = { + routes: (/** @type {?} */ ([ + { + name: 'Settings', + path: 'setting-management', + parentName: 'AbpUiNavigation::Menu:Administration', + layout: "application" /* application */, + order: 6, + iconClass: 'fa fa-cog', + }, + ])), +}; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ɵ0 = { routes: SETTING_MANAGEMENT_ROUTES, settings: [] }; +/** @type {?} */ var routes = [ { - path: '', + path: 'setting-management', component: DynamicLayoutComponent, - children: [{ path: '', component: SettingComponent }], + children: [{ path: '', component: SettingLayoutComponent }], + data: ɵ0, }, ]; var SettingManagementRoutingModule = /** @class */ (function () { @@ -154,47 +253,21 @@ var SettingManagementRoutingModule = /** @class */ (function () { * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ +/** @type {?} */ +var SETTING_LAYOUT = SettingLayoutComponent; var SettingManagementModule = /** @class */ (function () { - function SettingManagementModule(initialService) { + function SettingManagementModule() { } SettingManagementModule.decorators = [ { type: NgModule, args: [{ - declarations: [SettingComponent], + declarations: [SETTING_LAYOUT], imports: [SettingManagementRoutingModule, CoreModule, ThemeSharedModule], - providers: [InitialService], + entryComponents: [SETTING_LAYOUT], },] } ]; - /** @nocollapse */ - SettingManagementModule.ctorParameters = function () { return [ - { type: InitialService, decorators: [{ type: Self }] } - ]; }; return SettingManagementModule; }()); -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -/** @type {?} */ -var SETTING_MANAGEMENT_ROUTES = { - routes: (/** @type {?} */ ([ - { - name: 'Settings', - path: 'setting-management', - parentName: 'AbpUiNavigation::Menu:Administration', - layout: "application" /* application */, - order: 6, - iconClass: 'fa fa-cog', - }, - ])), - settings: [], -}; - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -210,5 +283,5 @@ var SETTING_MANAGEMENT_ROUTES = { * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { RootSettingManagementModule, SETTING_MANAGEMENT_ROUTES, SettingComponent, SettingManagementModule, SettingComponent as ɵa, InitialService as ɵb, SettingManagementRoutingModule as ɵc }; +export { SETTING_LAYOUT, SETTING_MANAGEMENT_ROUTES, SettingLayoutComponent, SettingManagementModule, SettingManagementService as ɵa, SettingManagementRoutingModule as ɵb, SETTING_MANAGEMENT_ROUTES as ɵc }; //# sourceMappingURL=abp-ng.setting-management.js.map diff --git a/npm/ng-packs/dist/setting-management/fesm5/abp-ng.setting-management.js.map b/npm/ng-packs/dist/setting-management/fesm5/abp-ng.setting-management.js.map index 15c1436085..6dea332714 100644 --- a/npm/ng-packs/dist/setting-management/fesm5/abp-ng.setting-management.js.map +++ b/npm/ng-packs/dist/setting-management/fesm5/abp-ng.setting-management.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.setting-management.js","sources":["ng://@abp/ng.setting-management/lib/root-setting-management.module.ts","ng://@abp/ng.setting-management/lib/components/services/initial.service.ts","ng://@abp/ng.setting-management/lib/components/setting/setting.component.ts","ng://@abp/ng.setting-management/lib/setting-management-routing.module.ts","ng://@abp/ng.setting-management/lib/setting-management.module.ts","ng://@abp/ng.setting-management/lib/constants/routes.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootSettingManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootSettingManagementModule,\n providers: [],\n };\n }\n}\n","import { SettingTab } from '@abp/ng.theme.shared';\nimport { Injectable, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport snq from 'snq';\n\n@Injectable()\nexport class InitialService {\n public settings: SettingTab[];\n\n constructor(private router: Router) {\n this.settings = this.router.config\n .map(route => snq(() => route.data.routes.settings))\n .filter(settings => settings && settings.length)\n .reduce((acc, val) => [...acc, ...val], [])\n .sort((a, b) => a.order - b.order);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { SettingTab, fade } from '@abp/ng.theme.shared';\nimport { InitialService } from '../services/initial.service';\n\n@Component({\n selector: 'abp-setting',\n templateUrl: './setting.component.html',\n})\nexport class SettingComponent implements OnInit {\n settings: SettingTab[];\n\n selected = {} as SettingTab;\n\n constructor(private initialService: InitialService) {}\n\n ngOnInit() {\n this.settings = this.initialService.settings;\n this.selected = this.settings[0];\n }\n}\n","import { DynamicLayoutComponent } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { SettingComponent } from './components/setting/setting.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: DynamicLayoutComponent,\n children: [{ path: '', component: SettingComponent }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SettingManagementRoutingModule {}\n","import { CoreModule, noop } from '@abp/ng.core';\nimport { NgModule, ModuleWithProviders, APP_INITIALIZER, Self } from '@angular/core';\nimport { SettingComponent } from './components/setting/setting.component';\nimport { SettingManagementRoutingModule } from './setting-management-routing.module';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { InitialService } from './components/services/initial.service';\n\n@NgModule({\n declarations: [SettingComponent],\n imports: [SettingManagementRoutingModule, CoreModule, ThemeSharedModule],\n providers: [InitialService],\n})\nexport class SettingManagementModule {\n constructor(@Self() initialService: InitialService) {}\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const SETTING_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'Settings',\n path: 'setting-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n order: 6,\n iconClass: 'fa fa-cog',\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAAA;IAEA;KAQC;;;;IANQ,mCAAO;;;IAAd;QACE,OAAO;YACL,QAAQ,EAAE,2BAA2B;YACrC,SAAS,EAAE,EAAE;SACd,CAAC;KACH;;gBAPF,QAAQ,SAAC,EAAE;;IAQZ,kCAAC;CARD;;;;;;;ICOE,wBAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;aAC/B,GAAG;;;;QAAC,UAAA,KAAK,IAAI,OAAA,GAAG;;;QAAC,cAAM,OAAA,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAA,EAAC,GAAA,EAAC;aACnD,MAAM;;;;QAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAA,EAAC;aAC/C,MAAM;;;;;QAAC,UAAC,GAAG,EAAE,GAAG,IAAK,gBAAI,GAAG,EAAK,GAAG,IAAC,GAAE,EAAE,CAAC;aAC1C,IAAI;;;;;QAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAA,EAAC,CAAC;KACtC;;gBAVF,UAAU;;;;gBAHF,MAAM;;IAcf,qBAAC;CAXD,IAWC;;;IATC,kCAA8B;;;;;IAElB,gCAAsB;;;;;;;ACTpC;IAaE,0BAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAFlD,aAAQ,sBAAG,EAAE,EAAc,CAAC;KAE0B;;;;IAEtD,mCAAQ;;;IAAR;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAClC;;gBAdF,SAAS,SAAC;oBACT,QAAQ,EAAE,aAAa;oBACvB,suDAAuC;iBACxC;;;;gBALQ,cAAc;;IAiBvB,uBAAC;CAfD,IAeC;;;IAVC,oCAAuB;;IAEvB,oCAA4B;;;;;IAEhB,0CAAsC;;;;;;;ACbpD;IAKM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,sBAAsB;QACjC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;KACtD;CACF;AAED;IAAA;KAI8C;;gBAJ7C,QAAQ,SAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB;;IAC4C,qCAAC;CAJ9C;;;;;;ACbA;IAaE,iCAAoB,cAA8B;KAAI;;gBANvD,QAAQ,SAAC;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,8BAA8B,EAAE,UAAU,EAAE,iBAAiB,CAAC;oBACxE,SAAS,EAAE,CAAC,cAAc,CAAC;iBAC5B;;;;gBANQ,cAAc,uBAQR,IAAI;;IACnB,8BAAC;CAPD;;;;;;;;;;;;ACLA,IAAa,yBAAyB,GAAG;IACvC,MAAM,qBAAE;QACN;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,sCAAsC;YAClD,MAAM;YACN,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,WAAW;SACvB;KACF,EAAmB;IACpB,QAAQ,EAAE,EAAE;CACb;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"abp-ng.setting-management.js","sources":["ng://@abp/ng.setting-management/lib/services/setting-management.service.ts","ng://@abp/ng.setting-management/lib/components/setting-layout.component.ts","ng://@abp/ng.setting-management/lib/constants/routes.ts","ng://@abp/ng.setting-management/lib/setting-management-routing.module.ts","ng://@abp/ng.setting-management/lib/setting-management.module.ts"],"sourcesContent":["import { SettingTab } from '@abp/ng.theme.shared';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Navigate } from '@ngxs/router-plugin';\nimport { Store, Actions, ofActionSuccessful } from '@ngxs/store';\nimport { Subject } from 'rxjs';\nimport { ConfigState, GetAppConfiguration } from '@abp/ng.core';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SettingManagementService {\n settings: SettingTab[] = [];\n\n selected = {} as SettingTab;\n\n private destroy$ = new Subject();\n\n constructor(\n private actions: Actions,\n private router: Router,\n private store: Store,\n private oAuthService: OAuthService,\n ) {\n setTimeout(() => this.setSettings(), 0);\n\n this.actions\n .pipe(ofActionSuccessful(GetAppConfiguration))\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.oAuthService.hasValidAccessToken()) {\n this.setSettings();\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n }\n\n setSettings() {\n const route = this.router.config.find(r => r.path === 'setting-management');\n this.settings = (route.data.settings as SettingTab[])\n .filter(setting => this.store.selectSnapshot(ConfigState.getGrantedPolicy(setting.requiredPolicy)))\n .sort((a, b) => a.order - b.order);\n this.checkSelected();\n }\n\n checkSelected() {\n this.selected = this.settings.find(setting => setting.url === this.router.url) || ({} as SettingTab);\n\n if (!this.selected.name && this.settings.length) {\n this.setSelected(this.settings[0]);\n }\n }\n\n setSelected(selected: SettingTab) {\n this.selected = selected;\n this.store.dispatch(new Navigate([selected.url]));\n }\n}\n","import { eLayoutType } from '@abp/ng.core';\nimport { SettingTab } from '@abp/ng.theme.shared';\nimport { Component, TrackByFunction } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { timer } from 'rxjs';\nimport { SettingManagementService } from '../services/setting-management.service';\n\n@Component({\n selector: 'abp-setting-layout',\n templateUrl: './setting-layout.component.html',\n})\nexport class SettingLayoutComponent {\n // required for dynamic component\n static type = eLayoutType.setting;\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n constructor(public settingManagementService: SettingManagementService, private router: Router) {\n if (\n settingManagementService.selected &&\n this.router.url !== settingManagementService.selected.url &&\n settingManagementService.settings.length\n ) {\n settingManagementService.setSelected(settingManagementService.settings[0]);\n }\n }\n\n ngOnDestroy() {}\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const SETTING_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'Settings',\n path: 'setting-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n order: 6,\n iconClass: 'fa fa-cog',\n },\n ] as ABP.FullRoute[],\n};\n","import { DynamicLayoutComponent } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { SETTING_MANAGEMENT_ROUTES } from './constants/routes';\nimport { SettingLayoutComponent } from './components/setting-layout.component';\n\nconst routes: Routes = [\n {\n path: 'setting-management',\n component: DynamicLayoutComponent,\n children: [{ path: '', component: SettingLayoutComponent }],\n data: { routes: SETTING_MANAGEMENT_ROUTES, settings: [] },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SettingManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { SettingLayoutComponent } from './components/setting-layout.component';\nimport { SettingManagementRoutingModule } from './setting-management-routing.module';\n\nexport const SETTING_LAYOUT = SettingLayoutComponent;\n\n@NgModule({\n declarations: [SETTING_LAYOUT],\n imports: [SettingManagementRoutingModule, CoreModule, ThemeSharedModule],\n entryComponents: [SETTING_LAYOUT],\n})\nexport class SettingManagementModule {}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/setting-management/lib/components/index.d.ts b/npm/ng-packs/dist/setting-management/lib/components/index.d.ts deleted file mode 100644 index 4f59d5c056..0000000000 --- a/npm/ng-packs/dist/setting-management/lib/components/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './setting/setting.component'; diff --git a/npm/ng-packs/dist/setting-management/lib/components/services/initial.service.d.ts b/npm/ng-packs/dist/setting-management/lib/components/services/initial.service.d.ts deleted file mode 100644 index 13dc6ef71d..0000000000 --- a/npm/ng-packs/dist/setting-management/lib/components/services/initial.service.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { SettingTab } from '@abp/ng.theme.shared'; -import { Router } from '@angular/router'; -export declare class InitialService { - private router; - settings: SettingTab[]; - constructor(router: Router); -} diff --git a/npm/ng-packs/dist/setting-management/lib/components/setting-layout.component.d.ts b/npm/ng-packs/dist/setting-management/lib/components/setting-layout.component.d.ts new file mode 100644 index 0000000000..f56d6af994 --- /dev/null +++ b/npm/ng-packs/dist/setting-management/lib/components/setting-layout.component.d.ts @@ -0,0 +1,13 @@ +import { eLayoutType } from '@abp/ng.core'; +import { SettingTab } from '@abp/ng.theme.shared'; +import { TrackByFunction } from '@angular/core'; +import { Router } from '@angular/router'; +import { SettingManagementService } from '../services/setting-management.service'; +export declare class SettingLayoutComponent { + settingManagementService: SettingManagementService; + private router; + static type: eLayoutType; + trackByFn: TrackByFunction; + constructor(settingManagementService: SettingManagementService, router: Router); + ngOnDestroy(): void; +} diff --git a/npm/ng-packs/dist/setting-management/lib/components/setting/setting.component.d.ts b/npm/ng-packs/dist/setting-management/lib/components/setting/setting.component.d.ts deleted file mode 100644 index 46b68b6ac0..0000000000 --- a/npm/ng-packs/dist/setting-management/lib/components/setting/setting.component.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { OnInit } from '@angular/core'; -import { SettingTab } from '@abp/ng.theme.shared'; -import { InitialService } from '../services/initial.service'; -export declare class SettingComponent implements OnInit { - private initialService; - settings: SettingTab[]; - selected: SettingTab; - constructor(initialService: InitialService); - ngOnInit(): void; -} diff --git a/npm/ng-packs/dist/setting-management/lib/constants/routes.d.ts b/npm/ng-packs/dist/setting-management/lib/constants/routes.d.ts index 69027a092f..3466b0d05f 100644 --- a/npm/ng-packs/dist/setting-management/lib/constants/routes.d.ts +++ b/npm/ng-packs/dist/setting-management/lib/constants/routes.d.ts @@ -1,5 +1,4 @@ import { ABP } from '@abp/ng.core'; export declare const SETTING_MANAGEMENT_ROUTES: { routes: ABP.FullRoute[]; - settings: any[]; }; diff --git a/npm/ng-packs/dist/setting-management/lib/root-setting-management.module.d.ts b/npm/ng-packs/dist/setting-management/lib/root-setting-management.module.d.ts deleted file mode 100644 index 0cc1bac879..0000000000 --- a/npm/ng-packs/dist/setting-management/lib/root-setting-management.module.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { ModuleWithProviders } from '@angular/core'; -export declare class RootSettingManagementModule { - static forRoot(): ModuleWithProviders; -} diff --git a/npm/ng-packs/dist/setting-management/lib/services/setting-management.service.d.ts b/npm/ng-packs/dist/setting-management/lib/services/setting-management.service.d.ts new file mode 100644 index 0000000000..ed624ca0fc --- /dev/null +++ b/npm/ng-packs/dist/setting-management/lib/services/setting-management.service.d.ts @@ -0,0 +1,18 @@ +import { SettingTab } from '@abp/ng.theme.shared'; +import { Router } from '@angular/router'; +import { Store, Actions } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +export declare class SettingManagementService { + private actions; + private router; + private store; + private oAuthService; + settings: SettingTab[]; + selected: SettingTab; + private destroy$; + constructor(actions: Actions, router: Router, store: Store, oAuthService: OAuthService); + ngOnDestroy(): void; + setSettings(): void; + checkSelected(): void; + setSelected(selected: SettingTab): void; +} diff --git a/npm/ng-packs/dist/setting-management/lib/setting-management.module.d.ts b/npm/ng-packs/dist/setting-management/lib/setting-management.module.d.ts index 75f02f3c1c..95dd39ec1a 100644 --- a/npm/ng-packs/dist/setting-management/lib/setting-management.module.d.ts +++ b/npm/ng-packs/dist/setting-management/lib/setting-management.module.d.ts @@ -1,4 +1,4 @@ -import { InitialService } from './components/services/initial.service'; +import { SettingLayoutComponent } from './components/setting-layout.component'; +export declare const SETTING_LAYOUT: typeof SettingLayoutComponent; export declare class SettingManagementModule { - constructor(initialService: InitialService); } diff --git a/npm/ng-packs/dist/setting-management/package.json b/npm/ng-packs/dist/setting-management/package.json index f0c4553121..ad2f9401a8 100644 --- a/npm/ng-packs/dist/setting-management/package.json +++ b/npm/ng-packs/dist/setting-management/package.json @@ -1,8 +1,8 @@ { "name": "@abp/ng.setting-management", - "version": "0.0.1", + "version": "0.9.0", "dependencies": { - "@abp/ng.theme.shared": "^0.8.3", + "@abp/ng.theme.shared": "^0.9.0", "tslib": "^1.9.0" }, "publishConfig": { diff --git a/npm/ng-packs/dist/setting-management/public-api.d.ts b/npm/ng-packs/dist/setting-management/public-api.d.ts index 6ef085fc8e..5343d9e457 100644 --- a/npm/ng-packs/dist/setting-management/public-api.d.ts +++ b/npm/ng-packs/dist/setting-management/public-api.d.ts @@ -1,4 +1,3 @@ -export * from './lib/root-setting-management.module'; export * from './lib/setting-management.module'; -export * from './lib/components'; export * from './lib/constants'; +export * from './lib/components/setting-layout.component'; diff --git a/npm/ng-packs/dist/tenant-management/abp-ng.tenant-management.metadata.json b/npm/ng-packs/dist/tenant-management/abp-ng.tenant-management.metadata.json index 0e4f70a986..ff3e695e77 100644 --- a/npm/ng-packs/dist/tenant-management/abp-ng.tenant-management.metadata.json +++ b/npm/ng-packs/dist/tenant-management/abp-ng.tenant-management.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"exports":[{"from":"./lib/tenant-management.state"}],"metadata":{"RootTenantManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":2,"character":1},"arguments":[{}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"RootTenantManagementModule"},"providers":[]}}}},"TenantManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":16,"character":4},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵb"}]]},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":17,"character":4},{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":18,"character":4},{"__symbolic":"reference","module":"primeng/table","name":"TableModule","line":19,"character":4},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":20,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":21,"character":4},{"__symbolic":"reference","module":"@abp/ng.feature-management","name":"FeatureManagementModule","line":22,"character":4}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"abp-tenants","template":"
\n
\n
\n
\n
\n {{ 'AbpTenantManagement::Tenants' | abpLocalization }}\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n"}]}],"members":{"data$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":28,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"get"}]}]}],"totalCount$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":31,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getTenantsTotalCount"}]}]}],"tenantModalTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":68,"character":3},"arguments":["tenantModalTemplate",{"static":false}]}]}],"connectionStringModalTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":71,"character":3},"arguments":["connectionStringModalTemplate",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ConfirmationService","line":75,"character":33},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":77,"character":16},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":78,"character":19}]}],"onSearch":[{"__symbolic":"method"}],"createTenantForm":[{"__symbolic":"method"}],"createDefaultConnectionStringForm":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"onEditConnectionString":[{"__symbolic":"method"}],"onAddTenant":[{"__symbolic":"method"}],"onEditTenant":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"saveConnectionString":[{"__symbolic":"method"}],"saveTenant":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"onPageChange":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":13,"character":1},"arguments":[{"name":"TenantManagementState","defaults":{"result":{},"selectedItem":{}}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"get":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":30,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}]}],"getById":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":41,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"delete":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":52,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵh"}]}]}],"add":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":57,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵf"}]}]}],"update":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":62,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵg"}]}]}]},"statics":{"get":{"__symbolic":"function","parameters":["result"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"result"},"member":"items"},"right":[]}},"getTenantsTotalCount":{"__symbolic":"function","parameters":["result"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"result"},"member":"totalCount"}}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":9,"character":28}]}],"getTenant":[{"__symbolic":"method"}],"getTenantById":[{"__symbolic":"method"}],"deleteTenant":[{"__symbolic":"method"}],"createTenant":[{"__symbolic":"method"}],"updateTenant":[{"__symbolic":"method"}],"getDefaultConnectionString":[{"__symbolic":"method"}],"updateDefaultConnectionString":[{"__symbolic":"method"}],"deleteDefaultConnectionString":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ABP","line":5,"character":31},"member":"PageQueryParams"}]}]},"statics":{"type":"[TenantManagement] Get Tenant"}},"ɵe":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[TenantManagement] Get Tenant By Id"}},"ɵf":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵi"},"member":"AddRequest"}]}]},"statics":{"type":"[TenantManagement] Create Tenant"}},"ɵg":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵi"},"member":"UpdateRequest"}]}]},"statics":{"type":"[TenantManagement] Update Tenant"}},"ɵh":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[TenantManagement] Delete Tenant"}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":18,"character":12},"member":"forChild"},"arguments":[[{"path":"","redirectTo":"tenants","pathMatch":"full"},{"path":"tenants","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":10,"character":15},"canActivate":[{"__symbolic":"reference","module":"@abp/ng.core","name":"AuthGuard","line":11,"character":18},{"__symbolic":"reference","module":"@abp/ng.core","name":"PermissionGuard","line":11,"character":29}],"data":{"requiredPolicy":"AbpTenantManagement.Tenants"},"children":[{"path":"","component":{"__symbolic":"reference","name":"ɵa"},"resolve":[{"__symbolic":"reference","name":"ɵk"}]}]}]]}],"exports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":19,"character":12}],"providers":[{"__symbolic":"reference","name":"ɵk"}]}]}],"members":{}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":9,"character":29}]}],"resolve":[{"__symbolic":"method"}]}}},"origins":{"RootTenantManagementModule":"./lib/root-tenant-management.module","TenantManagementModule":"./lib/tenant-management.module","ɵa":"./lib/components/tenants/tenants.component","ɵb":"./lib/states/tenant-management.state","ɵc":"./lib/services/tenant-management.service","ɵd":"./lib/actions/tenant-management.actions","ɵe":"./lib/actions/tenant-management.actions","ɵf":"./lib/actions/tenant-management.actions","ɵg":"./lib/actions/tenant-management.actions","ɵh":"./lib/actions/tenant-management.actions","ɵi":"./lib/models/tenant-management","ɵj":"./lib/tenant-management-routing.module","ɵk":"./lib/resolvers/tenants.resolver"},"importAs":"@abp/ng.tenant-management"} \ No newline at end of file +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/tenant-management.state"}],"metadata":{"TenantManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":16,"character":4},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵb"}]]},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":17,"character":4},{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":18,"character":4},{"__symbolic":"reference","module":"primeng/table","name":"TableModule","line":19,"character":4},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":20,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":21,"character":4},{"__symbolic":"reference","module":"@abp/ng.feature-management","name":"FeatureManagementModule","line":22,"character":4}]}]}],"members":{}},"TenantManagementProviders":{"__symbolic":"function","parameters":[],"value":[]},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"abp-tenants","template":"
\n
\n

{{ 'AbpTenantManagement::Tenants' | abpLocalization }}

\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n"}]}],"members":{"data$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":28,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"get"}]}]}],"totalCount$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":31,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getTenantsTotalCount"}]}]}],"tenantModalTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":70,"character":3},"arguments":["tenantModalTemplate",{"static":false}]}]}],"connectionStringModalTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":73,"character":3},"arguments":["connectionStringModalTemplate",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ConfirmationService","line":77,"character":33},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":79,"character":16},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":80,"character":19}]}],"onSearch":[{"__symbolic":"method"}],"createTenantForm":[{"__symbolic":"method"}],"createDefaultConnectionStringForm":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"onEditConnectionString":[{"__symbolic":"method"}],"onAddTenant":[{"__symbolic":"method"}],"onEditTenant":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"saveConnectionString":[{"__symbolic":"method"}],"saveTenant":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"onPageChange":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"changeSortOrder":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":13,"character":1},"arguments":[{"name":"TenantManagementState","defaults":{"result":{},"selectedItem":{}}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"get":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":30,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}]}],"getById":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":41,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"delete":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":52,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵh"}]}]}],"add":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":57,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵf"}]}]}],"update":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":62,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵg"}]}]}]},"statics":{"get":{"__symbolic":"function","parameters":["result"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"result"},"member":"items"},"right":[]}},"getTenantsTotalCount":{"__symbolic":"function","parameters":["result"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"result"},"member":"totalCount"}}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":9,"character":28}]}],"getTenant":[{"__symbolic":"method"}],"getTenantById":[{"__symbolic":"method"}],"deleteTenant":[{"__symbolic":"method"}],"createTenant":[{"__symbolic":"method"}],"updateTenant":[{"__symbolic":"method"}],"getDefaultConnectionString":[{"__symbolic":"method"}],"updateDefaultConnectionString":[{"__symbolic":"method"}],"deleteDefaultConnectionString":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵd":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ABP","line":5,"character":31},"member":"PageQueryParams"}]}]},"statics":{"type":"[TenantManagement] Get Tenant"}},"ɵe":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[TenantManagement] Get Tenant By Id"}},"ɵf":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵi"},"member":"AddRequest"}]}]},"statics":{"type":"[TenantManagement] Create Tenant"}},"ɵg":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵi"},"member":"UpdateRequest"}]}]},"statics":{"type":"[TenantManagement] Update Tenant"}},"ɵh":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[TenantManagement] Delete Tenant"}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":18,"character":12},"member":"forChild"},"arguments":[[{"path":"","redirectTo":"tenants","pathMatch":"full"},{"path":"tenants","component":{"__symbolic":"reference","module":"@abp/ng.core","name":"DynamicLayoutComponent","line":10,"character":15},"canActivate":[{"__symbolic":"reference","module":"@abp/ng.core","name":"AuthGuard","line":11,"character":18},{"__symbolic":"reference","module":"@abp/ng.core","name":"PermissionGuard","line":11,"character":29}],"data":{"requiredPolicy":"AbpTenantManagement.Tenants"},"children":[{"path":"","component":{"__symbolic":"reference","name":"ɵa"},"resolve":[{"__symbolic":"reference","name":"ɵk"}]}]}]]}],"exports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":19,"character":12}],"providers":[{"__symbolic":"reference","name":"ɵk"}]}]}],"members":{}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":9,"character":29}]}],"resolve":[{"__symbolic":"method"}]}}},"origins":{"TenantManagementModule":"./lib/tenant-management.module","TenantManagementProviders":"./lib/tenant-management.module","ɵa":"./lib/components/tenants/tenants.component","ɵb":"./lib/states/tenant-management.state","ɵc":"./lib/services/tenant-management.service","ɵd":"./lib/actions/tenant-management.actions","ɵe":"./lib/actions/tenant-management.actions","ɵf":"./lib/actions/tenant-management.actions","ɵg":"./lib/actions/tenant-management.actions","ɵh":"./lib/actions/tenant-management.actions","ɵi":"./lib/models/tenant-management","ɵj":"./lib/tenant-management-routing.module","ɵk":"./lib/resolvers/tenants.resolver"},"importAs":"@abp/ng.tenant-management"} \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js b/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js index 9bb95106d8..bf708dd848 100644 --- a/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js +++ b/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js @@ -1,8 +1,8 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@abp/ng.core'), require('@abp/ng.theme.shared'), require('@ng-bootstrap/ng-bootstrap'), require('@ngxs/store'), require('primeng/table'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@angular/router'), require('@abp/ng.feature-management'), require('@ngx-validate/core')) : - typeof define === 'function' && define.amd ? define('@abp/ng.tenant-management', ['exports', '@angular/core', '@abp/ng.core', '@abp/ng.theme.shared', '@ng-bootstrap/ng-bootstrap', '@ngxs/store', 'primeng/table', '@angular/forms', 'rxjs', 'rxjs/operators', '@angular/router', '@abp/ng.feature-management', '@ngx-validate/core'], factory) : - (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng['tenant-management'] = {}), global.ng.core, global.ng_core, global.ng_theme_shared, global.ngBootstrap, global.store, global.table, global.ng.forms, global.rxjs, global.rxjs.operators, global.ng.router, global.ng_featureManagement, global.core$1)); -}(this, function (exports, core, ng_core, ng_theme_shared, ngBootstrap, store, table, forms, rxjs, operators, router, ng_featureManagement, core$1) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@abp/ng.theme.shared'), require('@angular/core'), require('@ng-bootstrap/ng-bootstrap'), require('@ngxs/store'), require('primeng/table'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('@angular/router'), require('@abp/ng.feature-management'), require('@ngx-validate/core')) : + typeof define === 'function' && define.amd ? define('@abp/ng.tenant-management', ['exports', '@abp/ng.core', '@abp/ng.theme.shared', '@angular/core', '@ng-bootstrap/ng-bootstrap', '@ngxs/store', 'primeng/table', '@angular/forms', 'rxjs', 'rxjs/operators', '@angular/router', '@abp/ng.feature-management', '@ngx-validate/core'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng['tenant-management'] = {}), global.ng_core, global.ng_theme_shared, global.ng.core, global.ngBootstrap, global.store, global.table, global.ng.forms, global.rxjs, global.rxjs.operators, global.ng.router, global.ng_featureManagement, global.core$1)); +}(this, function (exports, ng_core, ng_theme_shared, core, ngBootstrap, store, table, forms, rxjs, operators, router, ng_featureManagement, core$1) { 'use strict'; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. @@ -201,31 +201,6 @@ return (mod && mod.__esModule) ? mod : { default: mod }; } - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var RootTenantManagementModule = /** @class */ (function () { - function RootTenantManagementModule() { - } - /** - * @return {?} - */ - RootTenantManagementModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootTenantManagementModule, - providers: [], - }; - }; - RootTenantManagementModule.decorators = [ - { type: core.NgModule, args: [{},] } - ]; - return RootTenantManagementModule; - }()); - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -679,6 +654,7 @@ }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; } Object.defineProperty(TenantsComponent.prototype, "useSharedDatabase", { get: /** @@ -892,11 +868,14 @@ .dispatch(this.selected.id ? new UpdateTenant(__assign({}, this.tenantForm.value, { id: this.selected.id })) : new CreateTenant(this.tenantForm.value)) + .pipe(operators.finalize((/** + * @return {?} + */ + function () { return (_this.modalBusy = false); }))) .subscribe((/** * @return {?} */ function () { - _this.modalBusy = false; _this.isModalVisible = false; })); }; @@ -923,7 +902,6 @@ function (status) { if (status === "confirm" /* confirm */) { _this.store.dispatch(new DeleteTenant(id)); - _this.modalBusy = false; } })); }; @@ -957,10 +935,19 @@ function () { return (_this.loading = false); }))) .subscribe(); }; + /** + * @return {?} + */ + TenantsComponent.prototype.changeSortOrder = /** + * @return {?} + */ + function () { + this.sortOrder = this.sortOrder.toLowerCase() === "asc" ? "desc" : "asc"; + }; TenantsComponent.decorators = [ { type: core.Component, args: [{ selector: 'abp-tenants', - template: "
\n
\n
\n
\n
\n {{ 'AbpTenantManagement::Tenants' | abpLocalization }}\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n" + template: "
\n
\n

{{ 'AbpTenantManagement::Tenants' | abpLocalization }}

\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n" }] } ]; /** @nocollapse */ @@ -1014,6 +1001,8 @@ /** @type {?} */ TenantsComponent.prototype.modalBusy; /** @type {?} */ + TenantsComponent.prototype.sortOrder; + /** @type {?} */ TenantsComponent.prototype.tenantModalTemplate; /** @type {?} */ TenantsComponent.prototype.connectionStringModalTemplate; @@ -1128,6 +1117,12 @@ ]; return TenantManagementModule; }()); + /** + * @return {?} + */ + function TenantManagementProviders() { + return []; + } /** * @fileoverview added by tsickle @@ -1162,7 +1157,6 @@ ], }, ])), - settings: [], }; /** @@ -1233,9 +1227,9 @@ exports.DeleteTenant = DeleteTenant; exports.GetTenantById = GetTenantById; exports.GetTenants = GetTenants; - exports.RootTenantManagementModule = RootTenantManagementModule; exports.TENANT_MANAGEMENT_ROUTES = TENANT_MANAGEMENT_ROUTES; exports.TenantManagementModule = TenantManagementModule; + exports.TenantManagementProviders = TenantManagementProviders; exports.TenantManagementService = TenantManagementService; exports.TenantManagementState = TenantManagementState; exports.TenantsComponent = TenantsComponent; diff --git a/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js.map b/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js.map index 743b4c5e8e..577b3da25e 100644 --- a/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js.map +++ b/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.tenant-management.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.tenant-management/lib/root-tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/actions/tenant-management.actions.ts","ng://@abp/ng.tenant-management/lib/services/tenant-management.service.ts","ng://@abp/ng.tenant-management/lib/states/tenant-management.state.ts","ng://@abp/ng.tenant-management/lib/components/tenants/tenants.component.ts","ng://@abp/ng.tenant-management/lib/resolvers/tenants.resolver.ts","ng://@abp/ng.tenant-management/lib/tenant-management-routing.module.ts","ng://@abp/ng.tenant-management/lib/tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/constants/routes.ts","ng://@abp/ng.tenant-management/lib/models/tenant-management.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootTenantManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootTenantManagementModule,\n providers: [],\n };\n }\n}\n","import { TenantManagement } from '../models/tenant-management';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetTenants {\n static readonly type = '[TenantManagement] Get Tenant';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetTenantById {\n static readonly type = '[TenantManagement] Get Tenant By Id';\n constructor(public payload: string) {}\n}\n\nexport class CreateTenant {\n static readonly type = '[TenantManagement] Create Tenant';\n constructor(public payload: TenantManagement.AddRequest) {}\n}\n\nexport class UpdateTenant {\n static readonly type = '[TenantManagement] Update Tenant';\n constructor(public payload: TenantManagement.UpdateRequest) {}\n}\n\nexport class DeleteTenant {\n static readonly type = '[TenantManagement] Delete Tenant';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { TenantManagement } from '../models/tenant-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantManagementService {\n constructor(private rest: RestService) {}\n\n getTenant(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/multi-tenancy/tenants',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getTenantById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteTenant(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createTenant(body: TenantManagement.AddRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/multi-tenancy/tenants`,\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateTenant(body: TenantManagement.UpdateRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'GET',\n responseType: Rest.ResponseType.Text,\n url,\n };\n return this.rest.request(request);\n }\n\n updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${payload.id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n params: { defaultConnectionString: payload.defaultConnectionString },\n };\n return this.rest.request(request);\n }\n\n deleteDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'DELETE',\n url,\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementService } from '../services/tenant-management.service';\nimport { ABP } from '@abp/ng.core';\n\n@State({\n name: 'TenantManagementState',\n defaults: { result: {}, selectedItem: {} } as TenantManagement.State,\n})\nexport class TenantManagementState {\n @Selector()\n static get({ result }: TenantManagement.State): ABP.BasicItem[] {\n return result.items || [];\n }\n\n @Selector()\n static getTenantsTotalCount({ result }: TenantManagement.State): number {\n return result.totalCount;\n }\n\n constructor(private tenantManagementService: TenantManagementService) {}\n\n @Action(GetTenants)\n get({ patchState }: StateContext, { payload }: GetTenants) {\n return this.tenantManagementService.getTenant(payload).pipe(\n tap(result =>\n patchState({\n result,\n }),\n ),\n );\n }\n\n @Action(GetTenantById)\n getById({ patchState }: StateContext, { payload }: GetTenantById) {\n return this.tenantManagementService.getTenantById(payload).pipe(\n tap(selectedItem =>\n patchState({\n selectedItem,\n }),\n ),\n );\n }\n\n @Action(DeleteTenant)\n delete({ dispatch }: StateContext, { payload }: DeleteTenant) {\n return this.tenantManagementService.deleteTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(CreateTenant)\n add({ dispatch }: StateContext, { payload }: CreateTenant) {\n return this.tenantManagementService.createTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(UpdateTenant)\n update({ dispatch, getState }: StateContext, { payload }: UpdateTenant) {\n return dispatch(new GetTenantById(payload.id)).pipe(\n switchMap(() => this.tenantManagementService.updateTenant({ ...getState().selectedItem, ...payload })),\n switchMap(() => dispatch(new GetTenants())),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../../actions/tenant-management.actions';\nimport { TenantManagementService } from '../../services/tenant-management.service';\nimport { TenantManagementState } from '../../states/tenant-management.state';\n\ntype SelectedModalContent = {\n type: string;\n title: string;\n template: TemplateRef;\n};\n\n@Component({\n selector: 'abp-tenants',\n templateUrl: './tenants.component.html',\n})\nexport class TenantsComponent {\n @Select(TenantManagementState.get)\n data$: Observable;\n\n @Select(TenantManagementState.getTenantsTotalCount)\n totalCount$: Observable;\n\n selected: ABP.BasicItem;\n\n tenantForm: FormGroup;\n\n defaultConnectionStringForm: FormGroup;\n\n defaultConnectionString: string;\n\n isModalVisible: boolean;\n\n selectedModalContent = {} as SelectedModalContent;\n\n visibleFeatures: boolean = false;\n\n providerKey: string;\n\n _useSharedDatabase: boolean;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n get useSharedDatabase(): boolean {\n return this.defaultConnectionStringForm.get('useSharedDatabase').value;\n }\n\n get connectionString(): string {\n return this.defaultConnectionStringForm.get('defaultConnectionString').value;\n }\n\n @ViewChild('tenantModalTemplate', { static: false })\n tenantModalTemplate: TemplateRef;\n\n @ViewChild('connectionStringModalTemplate', { static: false })\n connectionStringModalTemplate: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private tenantService: TenantManagementService,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n private createTenantForm() {\n this.tenantForm = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n });\n }\n\n private createDefaultConnectionStringForm() {\n this.defaultConnectionStringForm = this.fb.group({\n useSharedDatabase: this._useSharedDatabase,\n defaultConnectionString: [this.defaultConnectionString || ''],\n });\n }\n\n openModal(title: string, template: TemplateRef, type: string) {\n this.selectedModalContent = {\n title,\n template,\n type,\n };\n\n this.isModalVisible = true;\n }\n\n onEditConnectionString(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(\n pluck('TenantManagementState', 'selectedItem'),\n switchMap(selected => {\n this.selected = selected;\n return this.tenantService.getDefaultConnectionString(id);\n }),\n )\n .subscribe(fetchedConnectionString => {\n this._useSharedDatabase = fetchedConnectionString ? false : true;\n this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : '';\n this.createDefaultConnectionStringForm();\n this.openModal('AbpTenantManagement::ConnectionStrings', this.connectionStringModalTemplate, 'saveConnStr');\n });\n }\n\n onAddTenant() {\n this.selected = {} as ABP.BasicItem;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::NewTenant', this.tenantModalTemplate, 'saveTenant');\n }\n\n onEditTenant(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(pluck('TenantManagementState', 'selectedItem'))\n .subscribe(selected => {\n this.selected = selected;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::Edit', this.tenantModalTemplate, 'saveTenant');\n });\n }\n\n save() {\n const { type } = this.selectedModalContent;\n if (!type) return;\n if (type === 'saveTenant') this.saveTenant();\n else if (type === 'saveConnStr') this.saveConnectionString();\n }\n\n saveConnectionString() {\n this.modalBusy = true;\n if (this.useSharedDatabase || (!this.useSharedDatabase && !this.connectionString)) {\n this.tenantService\n .deleteDefaultConnectionString(this.selected.id)\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n } else {\n this.tenantService\n .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n }\n }\n\n saveTenant() {\n if (!this.tenantForm.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateTenant({ ...this.tenantForm.value, id: this.selected.id })\n : new CreateTenant(this.tenantForm.value),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteTenant(id));\n this.modalBusy = false;\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetTenants(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetTenants } from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementState } from '../states/tenant-management.state';\n\n@Injectable()\nexport class TenantsResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const data = this.store.selectSnapshot(TenantManagementState.get);\n return data && data.length ? null : this.store.dispatch(new GetTenants());\n }\n}\n","import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { TenantsResolver } from './resolvers/tenants.resolver';\nimport { TenantsComponent } from './components/tenants/tenants.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\n {\n path: 'tenants',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpTenantManagement.Tenants' },\n children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [TenantsResolver],\n})\nexport class TenantManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxsModule } from '@ngxs/store';\nimport { TableModule } from 'primeng/table';\nimport { TenantsComponent } from './components/tenants/tenants.component';\nimport { TenantManagementState } from './states/tenant-management.state';\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\nimport { FeatureManagementModule } from '@abp/ng.feature-management';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [TenantsComponent],\n imports: [\n TenantManagementRoutingModule,\n NgxsModule.forFeature([TenantManagementState]),\n NgxValidateCoreModule,\n CoreModule,\n TableModule,\n ThemeSharedModule,\n NgbDropdownModule,\n FeatureManagementModule,\n ],\n})\nexport class TenantManagementModule {}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const TENANT_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'AbpTenantManagement::Menu:TenantManagement',\n path: 'tenant-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-users',\n children: [\n {\n path: 'tenants',\n name: 'AbpTenantManagement::Tenants',\n order: 1,\n requiredPolicy: 'AbpTenantManagement.Tenants',\n },\n ],\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace TenantManagement {\n export interface State {\n result: Response;\n selectedItem: Item;\n }\n\n export type Response = ABP.PagedResponse;\n\n export interface Item {\n id: string;\n name: string;\n }\n\n export interface AddRequest {\n name: string;\n }\n\n export interface UpdateRequest extends AddRequest {\n id: string;\n }\n\n export interface DefaultConnectionStringRequest {\n id: string;\n defaultConnectionString: string;\n }\n}\n"],"names":["NgModule","Injectable","RestService","tap","switchMap","tslib_1.__decorate","Action","Selector","State","Validators","pluck","take","finalize","Component","ConfirmationService","FormBuilder","Store","ViewChild","Select","Observable","DynamicLayoutComponent","AuthGuard","PermissionGuard","RouterModule","NgxsModule","NgxValidateCoreModule","CoreModule","TableModule","ThemeSharedModule","NgbDropdownModule","FeatureManagementModule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.tenant-management.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.tenant-management/lib/actions/tenant-management.actions.ts","ng://@abp/ng.tenant-management/lib/services/tenant-management.service.ts","ng://@abp/ng.tenant-management/lib/states/tenant-management.state.ts","ng://@abp/ng.tenant-management/lib/components/tenants/tenants.component.ts","ng://@abp/ng.tenant-management/lib/resolvers/tenants.resolver.ts","ng://@abp/ng.tenant-management/lib/tenant-management-routing.module.ts","ng://@abp/ng.tenant-management/lib/tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/constants/routes.ts","ng://@abp/ng.tenant-management/lib/models/tenant-management.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { TenantManagement } from '../models/tenant-management';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetTenants {\n static readonly type = '[TenantManagement] Get Tenant';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetTenantById {\n static readonly type = '[TenantManagement] Get Tenant By Id';\n constructor(public payload: string) {}\n}\n\nexport class CreateTenant {\n static readonly type = '[TenantManagement] Create Tenant';\n constructor(public payload: TenantManagement.AddRequest) {}\n}\n\nexport class UpdateTenant {\n static readonly type = '[TenantManagement] Update Tenant';\n constructor(public payload: TenantManagement.UpdateRequest) {}\n}\n\nexport class DeleteTenant {\n static readonly type = '[TenantManagement] Delete Tenant';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { TenantManagement } from '../models/tenant-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantManagementService {\n constructor(private rest: RestService) {}\n\n getTenant(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/multi-tenancy/tenants',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getTenantById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteTenant(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createTenant(body: TenantManagement.AddRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/multi-tenancy/tenants`,\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateTenant(body: TenantManagement.UpdateRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'GET',\n responseType: Rest.ResponseType.Text,\n url,\n };\n return this.rest.request(request);\n }\n\n updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${payload.id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n params: { defaultConnectionString: payload.defaultConnectionString },\n };\n return this.rest.request(request);\n }\n\n deleteDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'DELETE',\n url,\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementService } from '../services/tenant-management.service';\nimport { ABP } from '@abp/ng.core';\n\n@State({\n name: 'TenantManagementState',\n defaults: { result: {}, selectedItem: {} } as TenantManagement.State,\n})\nexport class TenantManagementState {\n @Selector()\n static get({ result }: TenantManagement.State): ABP.BasicItem[] {\n return result.items || [];\n }\n\n @Selector()\n static getTenantsTotalCount({ result }: TenantManagement.State): number {\n return result.totalCount;\n }\n\n constructor(private tenantManagementService: TenantManagementService) {}\n\n @Action(GetTenants)\n get({ patchState }: StateContext, { payload }: GetTenants) {\n return this.tenantManagementService.getTenant(payload).pipe(\n tap(result =>\n patchState({\n result,\n }),\n ),\n );\n }\n\n @Action(GetTenantById)\n getById({ patchState }: StateContext, { payload }: GetTenantById) {\n return this.tenantManagementService.getTenantById(payload).pipe(\n tap(selectedItem =>\n patchState({\n selectedItem,\n }),\n ),\n );\n }\n\n @Action(DeleteTenant)\n delete({ dispatch }: StateContext, { payload }: DeleteTenant) {\n return this.tenantManagementService.deleteTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(CreateTenant)\n add({ dispatch }: StateContext, { payload }: CreateTenant) {\n return this.tenantManagementService.createTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(UpdateTenant)\n update({ dispatch, getState }: StateContext, { payload }: UpdateTenant) {\n return dispatch(new GetTenantById(payload.id)).pipe(\n switchMap(() => this.tenantManagementService.updateTenant({ ...getState().selectedItem, ...payload })),\n switchMap(() => dispatch(new GetTenants())),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../../actions/tenant-management.actions';\nimport { TenantManagementService } from '../../services/tenant-management.service';\nimport { TenantManagementState } from '../../states/tenant-management.state';\n\ntype SelectedModalContent = {\n type: string;\n title: string;\n template: TemplateRef;\n};\n\n@Component({\n selector: 'abp-tenants',\n templateUrl: './tenants.component.html',\n})\nexport class TenantsComponent {\n @Select(TenantManagementState.get)\n data$: Observable;\n\n @Select(TenantManagementState.getTenantsTotalCount)\n totalCount$: Observable;\n\n selected: ABP.BasicItem;\n\n tenantForm: FormGroup;\n\n defaultConnectionStringForm: FormGroup;\n\n defaultConnectionString: string;\n\n isModalVisible: boolean;\n\n selectedModalContent = {} as SelectedModalContent;\n\n visibleFeatures: boolean = false;\n\n providerKey: string;\n\n _useSharedDatabase: boolean;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n sortOrder: string = 'asc';\n\n get useSharedDatabase(): boolean {\n return this.defaultConnectionStringForm.get('useSharedDatabase').value;\n }\n\n get connectionString(): string {\n return this.defaultConnectionStringForm.get('defaultConnectionString').value;\n }\n\n @ViewChild('tenantModalTemplate', { static: false })\n tenantModalTemplate: TemplateRef;\n\n @ViewChild('connectionStringModalTemplate', { static: false })\n connectionStringModalTemplate: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private tenantService: TenantManagementService,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n private createTenantForm() {\n this.tenantForm = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n });\n }\n\n private createDefaultConnectionStringForm() {\n this.defaultConnectionStringForm = this.fb.group({\n useSharedDatabase: this._useSharedDatabase,\n defaultConnectionString: [this.defaultConnectionString || ''],\n });\n }\n\n openModal(title: string, template: TemplateRef, type: string) {\n this.selectedModalContent = {\n title,\n template,\n type,\n };\n\n this.isModalVisible = true;\n }\n\n onEditConnectionString(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(\n pluck('TenantManagementState', 'selectedItem'),\n switchMap(selected => {\n this.selected = selected;\n return this.tenantService.getDefaultConnectionString(id);\n }),\n )\n .subscribe(fetchedConnectionString => {\n this._useSharedDatabase = fetchedConnectionString ? false : true;\n this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : '';\n this.createDefaultConnectionStringForm();\n this.openModal('AbpTenantManagement::ConnectionStrings', this.connectionStringModalTemplate, 'saveConnStr');\n });\n }\n\n onAddTenant() {\n this.selected = {} as ABP.BasicItem;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::NewTenant', this.tenantModalTemplate, 'saveTenant');\n }\n\n onEditTenant(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(pluck('TenantManagementState', 'selectedItem'))\n .subscribe(selected => {\n this.selected = selected;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::Edit', this.tenantModalTemplate, 'saveTenant');\n });\n }\n\n save() {\n const { type } = this.selectedModalContent;\n if (!type) return;\n if (type === 'saveTenant') this.saveTenant();\n else if (type === 'saveConnStr') this.saveConnectionString();\n }\n\n saveConnectionString() {\n this.modalBusy = true;\n if (this.useSharedDatabase || (!this.useSharedDatabase && !this.connectionString)) {\n this.tenantService\n .deleteDefaultConnectionString(this.selected.id)\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n } else {\n this.tenantService\n .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n }\n }\n\n saveTenant() {\n if (!this.tenantForm.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateTenant({ ...this.tenantForm.value, id: this.selected.id })\n : new CreateTenant(this.tenantForm.value),\n )\n .pipe(finalize(()=> (this.modalBusy = false)))\n .subscribe(() => {\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteTenant(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetTenants(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n\n changeSortOrder() {\n this.sortOrder = this.sortOrder.toLowerCase() === \"asc\" ? \"desc\" : \"asc\";\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetTenants } from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementState } from '../states/tenant-management.state';\n\n@Injectable()\nexport class TenantsResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const data = this.store.selectSnapshot(TenantManagementState.get);\n return data && data.length ? null : this.store.dispatch(new GetTenants());\n }\n}\n","import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { TenantsResolver } from './resolvers/tenants.resolver';\nimport { TenantsComponent } from './components/tenants/tenants.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\n {\n path: 'tenants',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpTenantManagement.Tenants' },\n children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [TenantsResolver],\n})\nexport class TenantManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule, Provider } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxsModule } from '@ngxs/store';\nimport { TableModule } from 'primeng/table';\nimport { TenantsComponent } from './components/tenants/tenants.component';\nimport { TenantManagementState } from './states/tenant-management.state';\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\nimport { FeatureManagementModule } from '@abp/ng.feature-management';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [TenantsComponent],\n imports: [\n TenantManagementRoutingModule,\n NgxsModule.forFeature([TenantManagementState]),\n NgxValidateCoreModule,\n CoreModule,\n TableModule,\n ThemeSharedModule,\n NgbDropdownModule,\n FeatureManagementModule,\n ],\n})\nexport class TenantManagementModule {}\n\nexport function TenantManagementProviders(): Provider[] {\n return [];\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const TENANT_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'AbpTenantManagement::Menu:TenantManagement',\n path: 'tenant-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-users',\n children: [\n {\n path: 'tenants',\n name: 'AbpTenantManagement::Tenants',\n order: 1,\n requiredPolicy: 'AbpTenantManagement.Tenants',\n },\n ],\n },\n ] as ABP.FullRoute[],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace TenantManagement {\n export interface State {\n result: Response;\n selectedItem: Item;\n }\n\n export type Response = ABP.PagedResponse;\n\n export interface Item {\n id: string;\n name: string;\n }\n\n export interface AddRequest {\n name: string;\n }\n\n export interface UpdateRequest extends AddRequest {\n id: string;\n }\n\n export interface DefaultConnectionStringRequest {\n id: string;\n defaultConnectionString: string;\n }\n}\n"],"names":["Injectable","RestService","tap","switchMap","tslib_1.__decorate","Action","Selector","State","Validators","pluck","take","finalize","Component","ConfirmationService","FormBuilder","Store","ViewChild","Select","Observable","DynamicLayoutComponent","AuthGuard","PermissionGuard","NgModule","RouterModule","NgxsModule","NgxValidateCoreModule","CoreModule","TableModule","ThemeSharedModule","NgbDropdownModule","FeatureManagementModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js b/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js index 5ff2541677..6679921f49 100644 --- a/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js +++ b/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@ng-bootstrap/ng-bootstrap"),require("@ngxs/store"),require("primeng/table"),require("@angular/forms"),require("rxjs"),require("rxjs/operators"),require("@angular/router"),require("@abp/ng.feature-management"),require("@ngx-validate/core")):"function"==typeof define&&define.amd?define("@abp/ng.tenant-management",["exports","@angular/core","@abp/ng.core","@abp/ng.theme.shared","@ng-bootstrap/ng-bootstrap","@ngxs/store","primeng/table","@angular/forms","rxjs","rxjs/operators","@angular/router","@abp/ng.feature-management","@ngx-validate/core"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng["tenant-management"]={}),e.ng.core,e.ng_core,e.ng_theme_shared,e.ngBootstrap,e.store,e.table,e.ng.forms,e.rxjs,e.rxjs.operators,e.ng.router,e.ng_featureManagement,e.core$1)}(this,function(e,t,n,a,o,r,i,s,p,c,l,u,d){"use strict";var g=function(){return(g=Object.assign||function(e){for(var t,n=1,a=arguments.length;n=0;s--)(o=e[s])&&(i=(r<3?o(i):r>3?o(t,n,i):o(t,n))||i);return r>3&&i&&Object.defineProperty(t,n,i),i}function b(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var f=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[]}},e.decorators=[{type:t.NgModule,args:[{}]}],e}(),h=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Get Tenant",e}();var y=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Get Tenant By Id",e}();var v=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Create Tenant",e}();var T=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Update Tenant",e}();var M=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Delete Tenant",e}();var S=function(){function e(e){this.rest=e}return e.prototype.getTenant=function(e){void 0===e&&(e={});var t={method:"GET",url:"/api/multi-tenancy/tenants",params:e};return this.rest.request(t)},e.prototype.getTenantById=function(e){var t={method:"GET",url:"/api/multi-tenancy/tenants/"+e};return this.rest.request(t)},e.prototype.deleteTenant=function(e){var t={method:"DELETE",url:"/api/multi-tenancy/tenants/"+e};return this.rest.request(t)},e.prototype.createTenant=function(e){var t={method:"POST",url:"/api/multi-tenancy/tenants",body:e};return this.rest.request(t)},e.prototype.updateTenant=function(e){var t="/api/multi-tenancy/tenants/"+e.id;delete e.id;var n={method:"PUT",url:t,body:e};return this.rest.request(n)},e.prototype.getDefaultConnectionString=function(e){var t={method:"GET",responseType:"text",url:"/api/multi-tenancy/tenants/"+e+"/default-connection-string"};return this.rest.request(t)},e.prototype.updateDefaultConnectionString=function(e){var t={method:"PUT",url:"/api/multi-tenancy/tenants/"+e.id+"/default-connection-string",params:{defaultConnectionString:e.defaultConnectionString}};return this.rest.request(t)},e.prototype.deleteDefaultConnectionString=function(e){var t={method:"DELETE",url:"/api/multi-tenancy/tenants/"+e+"/default-connection-string"};return this.rest.request(t)},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:n.RestService}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(n.RestService))},token:e,providedIn:"root"}),e}();var C=function(){function e(e){this.tenantManagementService=e}return e.get=function(e){return e.result.items||[]},e.getTenantsTotalCount=function(e){return e.result.totalCount},e.prototype.get=function(e,t){var n=e.patchState,a=t.payload;return this.tenantManagementService.getTenant(a).pipe(c.tap(function(e){return n({result:e})}))},e.prototype.getById=function(e,t){var n=e.patchState,a=t.payload;return this.tenantManagementService.getTenantById(a).pipe(c.tap(function(e){return n({selectedItem:e})}))},e.prototype.delete=function(e,t){var n=e.dispatch,a=t.payload;return this.tenantManagementService.deleteTenant(a).pipe(c.switchMap(function(){return n(new h)}))},e.prototype.add=function(e,t){var n=e.dispatch,a=t.payload;return this.tenantManagementService.createTenant(a).pipe(c.switchMap(function(){return n(new h)}))},e.prototype.update=function(e,t){var n=this,a=e.dispatch,o=e.getState,r=t.payload;return a(new y(r.id)).pipe(c.switchMap(function(){return n.tenantManagementService.updateTenant(g({},o().selectedItem,r))}),c.switchMap(function(){return a(new h)}))},m([r.Action(h),b("design:type",Function),b("design:paramtypes",[Object,h]),b("design:returntype",void 0)],e.prototype,"get",null),m([r.Action(y),b("design:type",Function),b("design:paramtypes",[Object,y]),b("design:returntype",void 0)],e.prototype,"getById",null),m([r.Action(M),b("design:type",Function),b("design:paramtypes",[Object,M]),b("design:returntype",void 0)],e.prototype,"delete",null),m([r.Action(v),b("design:type",Function),b("design:paramtypes",[Object,v]),b("design:returntype",void 0)],e.prototype,"add",null),m([r.Action(T),b("design:type",Function),b("design:paramtypes",[Object,T]),b("design:returntype",void 0)],e.prototype,"update",null),m([r.Selector(),b("design:type",Function),b("design:paramtypes",[Object]),b("design:returntype",Array)],e,"get",null),m([r.Selector(),b("design:type",Function),b("design:paramtypes",[Object]),b("design:returntype",Number)],e,"getTenantsTotalCount",null),e=m([r.State({name:"TenantManagementState",defaults:{result:{},selectedItem:{}}}),b("design:paramtypes",[S])],e)}();var A=function(){function e(e,t,n,a){this.confirmationService=e,this.tenantService=t,this.fb=n,this.store=a,this.selectedModalContent={},this.visibleFeatures=!1,this.pageQuery={sorting:"name"},this.loading=!1,this.modalBusy=!1}return Object.defineProperty(e.prototype,"useSharedDatabase",{get:function(){return this.defaultConnectionStringForm.get("useSharedDatabase").value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"connectionString",{get:function(){return this.defaultConnectionStringForm.get("defaultConnectionString").value},enumerable:!0,configurable:!0}),e.prototype.onSearch=function(e){this.pageQuery.filter=e,this.get()},e.prototype.createTenantForm=function(){this.tenantForm=this.fb.group({name:[this.selected.name||"",[s.Validators.required,s.Validators.maxLength(256)]]})},e.prototype.createDefaultConnectionStringForm=function(){this.defaultConnectionStringForm=this.fb.group({useSharedDatabase:this._useSharedDatabase,defaultConnectionString:[this.defaultConnectionString||""]})},e.prototype.openModal=function(e,t,n){this.selectedModalContent={title:e,template:t,type:n},this.isModalVisible=!0},e.prototype.onEditConnectionString=function(e){var t=this;this.store.dispatch(new y(e)).pipe(c.pluck("TenantManagementState","selectedItem"),c.switchMap(function(n){return t.selected=n,t.tenantService.getDefaultConnectionString(e)})).subscribe(function(e){t._useSharedDatabase=!e,t.defaultConnectionString=e||"",t.createDefaultConnectionStringForm(),t.openModal("AbpTenantManagement::ConnectionStrings",t.connectionStringModalTemplate,"saveConnStr")})},e.prototype.onAddTenant=function(){this.selected={},this.createTenantForm(),this.openModal("AbpTenantManagement::NewTenant",this.tenantModalTemplate,"saveTenant")},e.prototype.onEditTenant=function(e){var t=this;this.store.dispatch(new y(e)).pipe(c.pluck("TenantManagementState","selectedItem")).subscribe(function(e){t.selected=e,t.createTenantForm(),t.openModal("AbpTenantManagement::Edit",t.tenantModalTemplate,"saveTenant")})},e.prototype.save=function(){var e=this.selectedModalContent.type;e&&("saveTenant"===e?this.saveTenant():"saveConnStr"===e&&this.saveConnectionString())},e.prototype.saveConnectionString=function(){var e=this;this.modalBusy=!0,this.useSharedDatabase||!this.useSharedDatabase&&!this.connectionString?this.tenantService.deleteDefaultConnectionString(this.selected.id).pipe(c.take(1),c.finalize(function(){return e.modalBusy=!1})).subscribe(function(){e.isModalVisible=!1}):this.tenantService.updateDefaultConnectionString({id:this.selected.id,defaultConnectionString:this.connectionString}).pipe(c.take(1),c.finalize(function(){return e.modalBusy=!1})).subscribe(function(){e.isModalVisible=!1})},e.prototype.saveTenant=function(){var e=this;this.tenantForm.valid&&(this.modalBusy=!0,this.store.dispatch(this.selected.id?new T(g({},this.tenantForm.value,{id:this.selected.id})):new v(this.tenantForm.value)).subscribe(function(){e.modalBusy=!1,e.isModalVisible=!1}))},e.prototype.delete=function(e,t){var n=this;this.confirmationService.warn("AbpTenantManagement::TenantDeletionConfirmationMessage","AbpTenantManagement::AreYouSure",{messageLocalizationParams:[t]}).subscribe(function(t){"confirm"===t&&(n.store.dispatch(new M(e)),n.modalBusy=!1)})},e.prototype.onPageChange=function(e){this.pageQuery.skipCount=e.first,this.pageQuery.maxResultCount=e.rows,this.get()},e.prototype.get=function(){var e=this;this.loading=!0,this.store.dispatch(new h(this.pageQuery)).pipe(c.finalize(function(){return e.loading=!1})).subscribe()},e.decorators=[{type:t.Component,args:[{selector:"abp-tenants",template:'
\n
\n
\n
\n
\n {{ \'AbpTenantManagement::Tenants\' | abpLocalization }}\n
\n
\n
\n \n \n {{ \'AbpTenantManagement::NewTenant\' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ \'AbpTenantManagement::Actions\' | abpLocalization }}\n {{ \'AbpTenantManagement::TenantName\' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ \'AbpTenantManagement::Actions\' | abpLocalization }}\n \n
\n \n {{ \'AbpTenantManagement::Edit\' | abpLocalization }}\n \n \n {{ \'AbpTenantManagement::Permission:ManageConnectionStrings\' | abpLocalization }}\n \n \n {{ \'AbpTenantManagement::Permission:ManageFeatures\' | abpLocalization }}\n \n \n {{ \'AbpTenantManagement::Delete\' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ \'AbpIdentity::Save\' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n'}]}],e.ctorParameters=function(){return[{type:a.ConfirmationService},{type:S},{type:s.FormBuilder},{type:r.Store}]},e.propDecorators={tenantModalTemplate:[{type:t.ViewChild,args:["tenantModalTemplate",{static:!1}]}],connectionStringModalTemplate:[{type:t.ViewChild,args:["connectionStringModalTemplate",{static:!1}]}]},m([r.Select(C.get),b("design:type",p.Observable)],e.prototype,"data$",void 0),m([r.Select(C.getTenantsTotalCount),b("design:type",p.Observable)],e.prototype,"totalCount$",void 0),e}();var D=function(){function e(e){this.store=e}return e.prototype.resolve=function(){var e=this.store.selectSnapshot(C.get);return e&&e.length?null:this.store.dispatch(new h)},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:r.Store}]},e}();var w,F=[{path:"",redirectTo:"tenants",pathMatch:"full"},{path:"tenants",component:n.DynamicLayoutComponent,canActivate:[n.AuthGuard,n.PermissionGuard],data:{requiredPolicy:"AbpTenantManagement.Tenants"},children:[{path:"",component:A,resolve:[D]}]}],j=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[l.RouterModule.forChild(F)],exports:[l.RouterModule],providers:[D]}]}],e}(),q=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[A],imports:[j,r.NgxsModule.forFeature([C]),d.NgxValidateCoreModule,n.CoreModule,i.TableModule,a.ThemeSharedModule,o.NgbDropdownModule,u.FeatureManagementModule]}]}],e}();!function(e){function t(){}function n(){}function a(){}function o(){}function r(){}e.State=t,e.Item=n,e.AddRequest=a,e.UpdateRequest=o,e.DefaultConnectionStringRequest=r}(w||(w={})),e.CreateTenant=v,e.DeleteTenant=M,e.GetTenantById=y,e.GetTenants=h,e.RootTenantManagementModule=f,e.TENANT_MANAGEMENT_ROUTES={routes:[{name:"AbpTenantManagement::Menu:TenantManagement",path:"tenant-management",parentName:"AbpUiNavigation::Menu:Administration",layout:"application",iconClass:"fa fa-users",children:[{path:"tenants",name:"AbpTenantManagement::Tenants",order:1,requiredPolicy:"AbpTenantManagement.Tenants"}]}],settings:[]},e.TenantManagementModule=q,e.TenantManagementService=S,e.TenantManagementState=C,e.TenantsComponent=A,e.TenantsResolver=D,e.UpdateTenant=T,e.ɵa=A,e.ɵb=C,e.ɵc=S,e.ɵd=h,e.ɵe=y,e.ɵf=v,e.ɵg=T,e.ɵh=M,e.ɵj=j,e.ɵk=D,Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@angular/core"),require("@ng-bootstrap/ng-bootstrap"),require("@ngxs/store"),require("primeng/table"),require("@angular/forms"),require("rxjs"),require("rxjs/operators"),require("@angular/router"),require("@abp/ng.feature-management"),require("@ngx-validate/core")):"function"==typeof define&&define.amd?define("@abp/ng.tenant-management",["exports","@abp/ng.core","@abp/ng.theme.shared","@angular/core","@ng-bootstrap/ng-bootstrap","@ngxs/store","primeng/table","@angular/forms","rxjs","rxjs/operators","@angular/router","@abp/ng.feature-management","@ngx-validate/core"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng["tenant-management"]={}),e.ng_core,e.ng_theme_shared,e.ng.core,e.ngBootstrap,e.store,e.table,e.ng.forms,e.rxjs,e.rxjs.operators,e.ng.router,e.ng_featureManagement,e.core$1)}(this,function(e,t,n,a,o,r,i,s,p,l,c,u,d){"use strict";var g=function(){return(g=Object.assign||function(e){for(var t,n=1,a=arguments.length;n=0;s--)(o=e[s])&&(i=(r<3?o(i):r>3?o(t,n,i):o(t,n))||i);return r>3&&i&&Object.defineProperty(t,n,i),i}function b(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var f=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Get Tenant",e}();var h=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Get Tenant By Id",e}();var y=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Create Tenant",e}();var v=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Update Tenant",e}();var T=function(){function e(e){this.payload=e}return e.type="[TenantManagement] Delete Tenant",e}();var M=function(){function e(e){this.rest=e}return e.prototype.getTenant=function(e){void 0===e&&(e={});var t={method:"GET",url:"/api/multi-tenancy/tenants",params:e};return this.rest.request(t)},e.prototype.getTenantById=function(e){var t={method:"GET",url:"/api/multi-tenancy/tenants/"+e};return this.rest.request(t)},e.prototype.deleteTenant=function(e){var t={method:"DELETE",url:"/api/multi-tenancy/tenants/"+e};return this.rest.request(t)},e.prototype.createTenant=function(e){var t={method:"POST",url:"/api/multi-tenancy/tenants",body:e};return this.rest.request(t)},e.prototype.updateTenant=function(e){var t="/api/multi-tenancy/tenants/"+e.id;delete e.id;var n={method:"PUT",url:t,body:e};return this.rest.request(n)},e.prototype.getDefaultConnectionString=function(e){var t={method:"GET",responseType:"text",url:"/api/multi-tenancy/tenants/"+e+"/default-connection-string"};return this.rest.request(t)},e.prototype.updateDefaultConnectionString=function(e){var t={method:"PUT",url:"/api/multi-tenancy/tenants/"+e.id+"/default-connection-string",params:{defaultConnectionString:e.defaultConnectionString}};return this.rest.request(t)},e.prototype.deleteDefaultConnectionString=function(e){var t={method:"DELETE",url:"/api/multi-tenancy/tenants/"+e+"/default-connection-string"};return this.rest.request(t)},e.decorators=[{type:a.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:t.RestService}]},e.ngInjectableDef=a.ɵɵdefineInjectable({factory:function(){return new e(a.ɵɵinject(t.RestService))},token:e,providedIn:"root"}),e}();var S=function(){function e(e){this.tenantManagementService=e}return e.get=function(e){return e.result.items||[]},e.getTenantsTotalCount=function(e){return e.result.totalCount},e.prototype.get=function(e,t){var n=e.patchState,a=t.payload;return this.tenantManagementService.getTenant(a).pipe(l.tap(function(e){return n({result:e})}))},e.prototype.getById=function(e,t){var n=e.patchState,a=t.payload;return this.tenantManagementService.getTenantById(a).pipe(l.tap(function(e){return n({selectedItem:e})}))},e.prototype.delete=function(e,t){var n=e.dispatch,a=t.payload;return this.tenantManagementService.deleteTenant(a).pipe(l.switchMap(function(){return n(new f)}))},e.prototype.add=function(e,t){var n=e.dispatch,a=t.payload;return this.tenantManagementService.createTenant(a).pipe(l.switchMap(function(){return n(new f)}))},e.prototype.update=function(e,t){var n=this,a=e.dispatch,o=e.getState,r=t.payload;return a(new h(r.id)).pipe(l.switchMap(function(){return n.tenantManagementService.updateTenant(g({},o().selectedItem,r))}),l.switchMap(function(){return a(new f)}))},m([r.Action(f),b("design:type",Function),b("design:paramtypes",[Object,f]),b("design:returntype",void 0)],e.prototype,"get",null),m([r.Action(h),b("design:type",Function),b("design:paramtypes",[Object,h]),b("design:returntype",void 0)],e.prototype,"getById",null),m([r.Action(T),b("design:type",Function),b("design:paramtypes",[Object,T]),b("design:returntype",void 0)],e.prototype,"delete",null),m([r.Action(y),b("design:type",Function),b("design:paramtypes",[Object,y]),b("design:returntype",void 0)],e.prototype,"add",null),m([r.Action(v),b("design:type",Function),b("design:paramtypes",[Object,v]),b("design:returntype",void 0)],e.prototype,"update",null),m([r.Selector(),b("design:type",Function),b("design:paramtypes",[Object]),b("design:returntype",Array)],e,"get",null),m([r.Selector(),b("design:type",Function),b("design:paramtypes",[Object]),b("design:returntype",Number)],e,"getTenantsTotalCount",null),e=m([r.State({name:"TenantManagementState",defaults:{result:{},selectedItem:{}}}),b("design:paramtypes",[M])],e)}();var C=function(){function e(e,t,n,a){this.confirmationService=e,this.tenantService=t,this.fb=n,this.store=a,this.selectedModalContent={},this.visibleFeatures=!1,this.pageQuery={sorting:"name"},this.loading=!1,this.modalBusy=!1,this.sortOrder="asc"}return Object.defineProperty(e.prototype,"useSharedDatabase",{get:function(){return this.defaultConnectionStringForm.get("useSharedDatabase").value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"connectionString",{get:function(){return this.defaultConnectionStringForm.get("defaultConnectionString").value},enumerable:!0,configurable:!0}),e.prototype.onSearch=function(e){this.pageQuery.filter=e,this.get()},e.prototype.createTenantForm=function(){this.tenantForm=this.fb.group({name:[this.selected.name||"",[s.Validators.required,s.Validators.maxLength(256)]]})},e.prototype.createDefaultConnectionStringForm=function(){this.defaultConnectionStringForm=this.fb.group({useSharedDatabase:this._useSharedDatabase,defaultConnectionString:[this.defaultConnectionString||""]})},e.prototype.openModal=function(e,t,n){this.selectedModalContent={title:e,template:t,type:n},this.isModalVisible=!0},e.prototype.onEditConnectionString=function(e){var t=this;this.store.dispatch(new h(e)).pipe(l.pluck("TenantManagementState","selectedItem"),l.switchMap(function(n){return t.selected=n,t.tenantService.getDefaultConnectionString(e)})).subscribe(function(e){t._useSharedDatabase=!e,t.defaultConnectionString=e||"",t.createDefaultConnectionStringForm(),t.openModal("AbpTenantManagement::ConnectionStrings",t.connectionStringModalTemplate,"saveConnStr")})},e.prototype.onAddTenant=function(){this.selected={},this.createTenantForm(),this.openModal("AbpTenantManagement::NewTenant",this.tenantModalTemplate,"saveTenant")},e.prototype.onEditTenant=function(e){var t=this;this.store.dispatch(new h(e)).pipe(l.pluck("TenantManagementState","selectedItem")).subscribe(function(e){t.selected=e,t.createTenantForm(),t.openModal("AbpTenantManagement::Edit",t.tenantModalTemplate,"saveTenant")})},e.prototype.save=function(){var e=this.selectedModalContent.type;e&&("saveTenant"===e?this.saveTenant():"saveConnStr"===e&&this.saveConnectionString())},e.prototype.saveConnectionString=function(){var e=this;this.modalBusy=!0,this.useSharedDatabase||!this.useSharedDatabase&&!this.connectionString?this.tenantService.deleteDefaultConnectionString(this.selected.id).pipe(l.take(1),l.finalize(function(){return e.modalBusy=!1})).subscribe(function(){e.isModalVisible=!1}):this.tenantService.updateDefaultConnectionString({id:this.selected.id,defaultConnectionString:this.connectionString}).pipe(l.take(1),l.finalize(function(){return e.modalBusy=!1})).subscribe(function(){e.isModalVisible=!1})},e.prototype.saveTenant=function(){var e=this;this.tenantForm.valid&&(this.modalBusy=!0,this.store.dispatch(this.selected.id?new v(g({},this.tenantForm.value,{id:this.selected.id})):new y(this.tenantForm.value)).pipe(l.finalize(function(){return e.modalBusy=!1})).subscribe(function(){e.isModalVisible=!1}))},e.prototype.delete=function(e,t){var n=this;this.confirmationService.warn("AbpTenantManagement::TenantDeletionConfirmationMessage","AbpTenantManagement::AreYouSure",{messageLocalizationParams:[t]}).subscribe(function(t){"confirm"===t&&n.store.dispatch(new T(e))})},e.prototype.onPageChange=function(e){this.pageQuery.skipCount=e.first,this.pageQuery.maxResultCount=e.rows,this.get()},e.prototype.get=function(){var e=this;this.loading=!0,this.store.dispatch(new f(this.pageQuery)).pipe(l.finalize(function(){return e.loading=!1})).subscribe()},e.prototype.changeSortOrder=function(){this.sortOrder="asc"===this.sortOrder.toLowerCase()?"desc":"asc"},e.decorators=[{type:a.Component,args:[{selector:"abp-tenants",template:'
\n
\n

{{ \'AbpTenantManagement::Tenants\' | abpLocalization }}

\n
\n
\n
\n \n \n {{ \'AbpTenantManagement::NewTenant\' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ \'AbpTenantManagement::Actions\' | abpLocalization }}\n \n {{ \'AbpTenantManagement::TenantName\' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ \'AbpTenantManagement::Actions\' | abpLocalization }}\n \n
\n \n {{ \'AbpTenantManagement::Edit\' | abpLocalization }}\n \n \n {{ \'AbpTenantManagement::Permission:ManageConnectionStrings\' | abpLocalization }}\n \n \n {{ \'AbpTenantManagement::Permission:ManageFeatures\' | abpLocalization }}\n \n \n {{ \'AbpTenantManagement::Delete\' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ \'AbpIdentity::Save\' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n'}]}],e.ctorParameters=function(){return[{type:n.ConfirmationService},{type:M},{type:s.FormBuilder},{type:r.Store}]},e.propDecorators={tenantModalTemplate:[{type:a.ViewChild,args:["tenantModalTemplate",{static:!1}]}],connectionStringModalTemplate:[{type:a.ViewChild,args:["connectionStringModalTemplate",{static:!1}]}]},m([r.Select(S.get),b("design:type",p.Observable)],e.prototype,"data$",void 0),m([r.Select(S.getTenantsTotalCount),b("design:type",p.Observable)],e.prototype,"totalCount$",void 0),e}();var A=function(){function e(e){this.store=e}return e.prototype.resolve=function(){var e=this.store.selectSnapshot(S.get);return e&&e.length?null:this.store.dispatch(new f)},e.decorators=[{type:a.Injectable}],e.ctorParameters=function(){return[{type:r.Store}]},e}();var D=[{path:"",redirectTo:"tenants",pathMatch:"full"},{path:"tenants",component:t.DynamicLayoutComponent,canActivate:[t.AuthGuard,t.PermissionGuard],data:{requiredPolicy:"AbpTenantManagement.Tenants"},children:[{path:"",component:C,resolve:[A]}]}],w=function(){function e(){}return e.decorators=[{type:a.NgModule,args:[{imports:[c.RouterModule.forChild(D)],exports:[c.RouterModule],providers:[A]}]}],e}(),F=function(){function e(){}return e.decorators=[{type:a.NgModule,args:[{declarations:[C],imports:[w,r.NgxsModule.forFeature([S]),d.NgxValidateCoreModule,t.CoreModule,i.TableModule,n.ThemeSharedModule,o.NgbDropdownModule,u.FeatureManagementModule]}]}],e}();var j;!function(e){function t(){}function n(){}function a(){}function o(){}function r(){}e.State=t,e.Item=n,e.AddRequest=a,e.UpdateRequest=o,e.DefaultConnectionStringRequest=r}(j||(j={})),e.CreateTenant=y,e.DeleteTenant=T,e.GetTenantById=h,e.GetTenants=f,e.TENANT_MANAGEMENT_ROUTES={routes:[{name:"AbpTenantManagement::Menu:TenantManagement",path:"tenant-management",parentName:"AbpUiNavigation::Menu:Administration",layout:"application",iconClass:"fa fa-users",children:[{path:"tenants",name:"AbpTenantManagement::Tenants",order:1,requiredPolicy:"AbpTenantManagement.Tenants"}]}]},e.TenantManagementModule=F,e.TenantManagementProviders=function(){return[]},e.TenantManagementService=M,e.TenantManagementState=S,e.TenantsComponent=C,e.TenantsResolver=A,e.UpdateTenant=v,e.ɵa=C,e.ɵb=S,e.ɵc=M,e.ɵd=f,e.ɵe=h,e.ɵf=y,e.ɵg=v,e.ɵh=T,e.ɵj=w,e.ɵk=A,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=abp-ng.tenant-management.umd.min.js.map \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js.map b/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js.map index 93325d3f71..80ff48d971 100644 --- a/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js.map +++ b/npm/ng-packs/dist/tenant-management/bundles/abp-ng.tenant-management.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.tenant-management/lib/root-tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/actions/tenant-management.actions.ts","ng://@abp/ng.tenant-management/lib/services/tenant-management.service.ts","ng://@abp/ng.tenant-management/lib/states/tenant-management.state.ts","ng://@abp/ng.tenant-management/lib/components/tenants/tenants.component.ts","ng://@abp/ng.tenant-management/lib/resolvers/tenants.resolver.ts","ng://@abp/ng.tenant-management/lib/tenant-management-routing.module.ts","ng://@abp/ng.tenant-management/lib/models/tenant-management.ts","ng://@abp/ng.tenant-management/lib/tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/constants/routes.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","RootTenantManagementModule","forRoot","ngModule","providers","NgModule","args","GetTenants","payload","type","GetTenantById","CreateTenant","UpdateTenant","DeleteTenant","TenantManagementService","rest","getTenant","params","request","method","url","getTenantById","id","deleteTenant","createTenant","body","updateTenant","getDefaultConnectionString","responseType","updateDefaultConnectionString","defaultConnectionString","deleteDefaultConnectionString","Injectable","providedIn","RestService","TenantManagementState","tenantManagementService","get","_a","result","items","getTenantsTotalCount","totalCount","_b","patchState","pipe","tap","getById","selectedItem","delete","dispatch","switchMap","add","update","_this","getState","tslib_1.__decorate","Action","Selector","State","name","defaults","TenantsComponent","confirmationService","tenantService","fb","store","selectedModalContent","visibleFeatures","pageQuery","sorting","loading","modalBusy","defaultConnectionStringForm","value","onSearch","filter","createTenantForm","tenantForm","group","selected","Validators","required","maxLength","createDefaultConnectionStringForm","useSharedDatabase","_useSharedDatabase","openModal","title","template","isModalVisible","onEditConnectionString","pluck","subscribe","fetchedConnectionString","connectionStringModalTemplate","onAddTenant","tenantModalTemplate","onEditTenant","save","saveTenant","saveConnectionString","connectionString","take","finalize","valid","warn","messageLocalizationParams","status","onPageChange","data","skipCount","first","maxResultCount","rows","Component","selector","ConfirmationService","FormBuilder","Store","ViewChild","static","Select","Observable","TenantsResolver","resolve","selectSnapshot","TenantManagement","routes","path","redirectTo","pathMatch","component","DynamicLayoutComponent","canActivate","AuthGuard","PermissionGuard","requiredPolicy","children","TenantManagementRoutingModule","imports","RouterModule","forChild","exports","TenantManagementModule","declarations","NgxsModule","forFeature","NgxValidateCoreModule","CoreModule","TableModule","ThemeSharedModule","NgbDropdownModule","FeatureManagementModule","Item","AddRequest","UpdateRequest","DefaultConnectionStringRequest","parentName","layout","iconClass","order","settings"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootTenantManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootTenantManagementModule,\n providers: [],\n };\n }\n}\n","import { TenantManagement } from '../models/tenant-management';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetTenants {\n static readonly type = '[TenantManagement] Get Tenant';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetTenantById {\n static readonly type = '[TenantManagement] Get Tenant By Id';\n constructor(public payload: string) {}\n}\n\nexport class CreateTenant {\n static readonly type = '[TenantManagement] Create Tenant';\n constructor(public payload: TenantManagement.AddRequest) {}\n}\n\nexport class UpdateTenant {\n static readonly type = '[TenantManagement] Update Tenant';\n constructor(public payload: TenantManagement.UpdateRequest) {}\n}\n\nexport class DeleteTenant {\n static readonly type = '[TenantManagement] Delete Tenant';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { TenantManagement } from '../models/tenant-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantManagementService {\n constructor(private rest: RestService) {}\n\n getTenant(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/multi-tenancy/tenants',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getTenantById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteTenant(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createTenant(body: TenantManagement.AddRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/multi-tenancy/tenants`,\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateTenant(body: TenantManagement.UpdateRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'GET',\n responseType: Rest.ResponseType.Text,\n url,\n };\n return this.rest.request(request);\n }\n\n updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${payload.id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n params: { defaultConnectionString: payload.defaultConnectionString },\n };\n return this.rest.request(request);\n }\n\n deleteDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'DELETE',\n url,\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementService } from '../services/tenant-management.service';\nimport { ABP } from '@abp/ng.core';\n\n@State({\n name: 'TenantManagementState',\n defaults: { result: {}, selectedItem: {} } as TenantManagement.State,\n})\nexport class TenantManagementState {\n @Selector()\n static get({ result }: TenantManagement.State): ABP.BasicItem[] {\n return result.items || [];\n }\n\n @Selector()\n static getTenantsTotalCount({ result }: TenantManagement.State): number {\n return result.totalCount;\n }\n\n constructor(private tenantManagementService: TenantManagementService) {}\n\n @Action(GetTenants)\n get({ patchState }: StateContext, { payload }: GetTenants) {\n return this.tenantManagementService.getTenant(payload).pipe(\n tap(result =>\n patchState({\n result,\n }),\n ),\n );\n }\n\n @Action(GetTenantById)\n getById({ patchState }: StateContext, { payload }: GetTenantById) {\n return this.tenantManagementService.getTenantById(payload).pipe(\n tap(selectedItem =>\n patchState({\n selectedItem,\n }),\n ),\n );\n }\n\n @Action(DeleteTenant)\n delete({ dispatch }: StateContext, { payload }: DeleteTenant) {\n return this.tenantManagementService.deleteTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(CreateTenant)\n add({ dispatch }: StateContext, { payload }: CreateTenant) {\n return this.tenantManagementService.createTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(UpdateTenant)\n update({ dispatch, getState }: StateContext, { payload }: UpdateTenant) {\n return dispatch(new GetTenantById(payload.id)).pipe(\n switchMap(() => this.tenantManagementService.updateTenant({ ...getState().selectedItem, ...payload })),\n switchMap(() => dispatch(new GetTenants())),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../../actions/tenant-management.actions';\nimport { TenantManagementService } from '../../services/tenant-management.service';\nimport { TenantManagementState } from '../../states/tenant-management.state';\n\ntype SelectedModalContent = {\n type: string;\n title: string;\n template: TemplateRef;\n};\n\n@Component({\n selector: 'abp-tenants',\n templateUrl: './tenants.component.html',\n})\nexport class TenantsComponent {\n @Select(TenantManagementState.get)\n data$: Observable;\n\n @Select(TenantManagementState.getTenantsTotalCount)\n totalCount$: Observable;\n\n selected: ABP.BasicItem;\n\n tenantForm: FormGroup;\n\n defaultConnectionStringForm: FormGroup;\n\n defaultConnectionString: string;\n\n isModalVisible: boolean;\n\n selectedModalContent = {} as SelectedModalContent;\n\n visibleFeatures: boolean = false;\n\n providerKey: string;\n\n _useSharedDatabase: boolean;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n get useSharedDatabase(): boolean {\n return this.defaultConnectionStringForm.get('useSharedDatabase').value;\n }\n\n get connectionString(): string {\n return this.defaultConnectionStringForm.get('defaultConnectionString').value;\n }\n\n @ViewChild('tenantModalTemplate', { static: false })\n tenantModalTemplate: TemplateRef;\n\n @ViewChild('connectionStringModalTemplate', { static: false })\n connectionStringModalTemplate: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private tenantService: TenantManagementService,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n private createTenantForm() {\n this.tenantForm = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n });\n }\n\n private createDefaultConnectionStringForm() {\n this.defaultConnectionStringForm = this.fb.group({\n useSharedDatabase: this._useSharedDatabase,\n defaultConnectionString: [this.defaultConnectionString || ''],\n });\n }\n\n openModal(title: string, template: TemplateRef, type: string) {\n this.selectedModalContent = {\n title,\n template,\n type,\n };\n\n this.isModalVisible = true;\n }\n\n onEditConnectionString(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(\n pluck('TenantManagementState', 'selectedItem'),\n switchMap(selected => {\n this.selected = selected;\n return this.tenantService.getDefaultConnectionString(id);\n }),\n )\n .subscribe(fetchedConnectionString => {\n this._useSharedDatabase = fetchedConnectionString ? false : true;\n this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : '';\n this.createDefaultConnectionStringForm();\n this.openModal('AbpTenantManagement::ConnectionStrings', this.connectionStringModalTemplate, 'saveConnStr');\n });\n }\n\n onAddTenant() {\n this.selected = {} as ABP.BasicItem;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::NewTenant', this.tenantModalTemplate, 'saveTenant');\n }\n\n onEditTenant(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(pluck('TenantManagementState', 'selectedItem'))\n .subscribe(selected => {\n this.selected = selected;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::Edit', this.tenantModalTemplate, 'saveTenant');\n });\n }\n\n save() {\n const { type } = this.selectedModalContent;\n if (!type) return;\n if (type === 'saveTenant') this.saveTenant();\n else if (type === 'saveConnStr') this.saveConnectionString();\n }\n\n saveConnectionString() {\n this.modalBusy = true;\n if (this.useSharedDatabase || (!this.useSharedDatabase && !this.connectionString)) {\n this.tenantService\n .deleteDefaultConnectionString(this.selected.id)\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n } else {\n this.tenantService\n .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n }\n }\n\n saveTenant() {\n if (!this.tenantForm.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateTenant({ ...this.tenantForm.value, id: this.selected.id })\n : new CreateTenant(this.tenantForm.value),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteTenant(id));\n this.modalBusy = false;\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetTenants(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetTenants } from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementState } from '../states/tenant-management.state';\n\n@Injectable()\nexport class TenantsResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const data = this.store.selectSnapshot(TenantManagementState.get);\n return data && data.length ? null : this.store.dispatch(new GetTenants());\n }\n}\n","import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { TenantsResolver } from './resolvers/tenants.resolver';\nimport { TenantsComponent } from './components/tenants/tenants.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\n {\n path: 'tenants',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpTenantManagement.Tenants' },\n children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [TenantsResolver],\n})\nexport class TenantManagementRoutingModule {}\n","import { ABP } from '@abp/ng.core';\n\nexport namespace TenantManagement {\n export interface State {\n result: Response;\n selectedItem: Item;\n }\n\n export type Response = ABP.PagedResponse;\n\n export interface Item {\n id: string;\n name: string;\n }\n\n export interface AddRequest {\n name: string;\n }\n\n export interface UpdateRequest extends AddRequest {\n id: string;\n }\n\n export interface DefaultConnectionStringRequest {\n id: string;\n defaultConnectionString: string;\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxsModule } from '@ngxs/store';\nimport { TableModule } from 'primeng/table';\nimport { TenantsComponent } from './components/tenants/tenants.component';\nimport { TenantManagementState } from './states/tenant-management.state';\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\nimport { FeatureManagementModule } from '@abp/ng.feature-management';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [TenantsComponent],\n imports: [\n TenantManagementRoutingModule,\n NgxsModule.forFeature([TenantManagementState]),\n NgxValidateCoreModule,\n CoreModule,\n TableModule,\n ThemeSharedModule,\n NgbDropdownModule,\n FeatureManagementModule,\n ],\n})\nexport class TenantManagementModule {}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const TENANT_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'AbpTenantManagement::Menu:TenantManagement',\n path: 'tenant-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-users',\n children: [\n {\n path: 'tenants',\n name: 'AbpTenantManagement::Tenants',\n order: 1,\n requiredPolicy: 'AbpTenantManagement.Tenants',\n },\n ],\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n"]} \ No newline at end of file +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.tenant-management/lib/actions/tenant-management.actions.ts","ng://@abp/ng.tenant-management/lib/services/tenant-management.service.ts","ng://@abp/ng.tenant-management/lib/states/tenant-management.state.ts","ng://@abp/ng.tenant-management/lib/components/tenants/tenants.component.ts","ng://@abp/ng.tenant-management/lib/resolvers/tenants.resolver.ts","ng://@abp/ng.tenant-management/lib/tenant-management-routing.module.ts","ng://@abp/ng.tenant-management/lib/tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/constants/routes.ts","ng://@abp/ng.tenant-management/lib/models/tenant-management.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","GetTenants","payload","type","GetTenantById","CreateTenant","UpdateTenant","DeleteTenant","TenantManagementService","rest","getTenant","params","request","method","url","getTenantById","id","deleteTenant","createTenant","body","updateTenant","getDefaultConnectionString","responseType","updateDefaultConnectionString","defaultConnectionString","deleteDefaultConnectionString","Injectable","args","providedIn","RestService","TenantManagementState","tenantManagementService","get","_a","result","items","getTenantsTotalCount","totalCount","_b","patchState","pipe","tap","getById","selectedItem","delete","dispatch","switchMap","add","update","_this","getState","tslib_1.__decorate","Action","Selector","State","name","defaults","TenantsComponent","confirmationService","tenantService","fb","store","selectedModalContent","visibleFeatures","pageQuery","sorting","loading","modalBusy","sortOrder","defaultConnectionStringForm","value","onSearch","filter","createTenantForm","tenantForm","group","selected","Validators","required","maxLength","createDefaultConnectionStringForm","useSharedDatabase","_useSharedDatabase","openModal","title","template","isModalVisible","onEditConnectionString","pluck","subscribe","fetchedConnectionString","connectionStringModalTemplate","onAddTenant","tenantModalTemplate","onEditTenant","save","saveTenant","saveConnectionString","connectionString","take","finalize","valid","warn","messageLocalizationParams","status","onPageChange","data","skipCount","first","maxResultCount","rows","changeSortOrder","toLowerCase","Component","selector","ConfirmationService","FormBuilder","Store","ViewChild","static","Select","Observable","TenantsResolver","resolve","selectSnapshot","routes","path","redirectTo","pathMatch","component","DynamicLayoutComponent","canActivate","AuthGuard","PermissionGuard","requiredPolicy","children","TenantManagementRoutingModule","NgModule","imports","RouterModule","forChild","exports","providers","TenantManagementModule","declarations","NgxsModule","forFeature","NgxValidateCoreModule","CoreModule","TableModule","ThemeSharedModule","NgbDropdownModule","FeatureManagementModule","TenantManagement","Item","AddRequest","UpdateRequest","DefaultConnectionStringRequest","parentName","layout","iconClass","order"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { TenantManagement } from '../models/tenant-management';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetTenants {\n static readonly type = '[TenantManagement] Get Tenant';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetTenantById {\n static readonly type = '[TenantManagement] Get Tenant By Id';\n constructor(public payload: string) {}\n}\n\nexport class CreateTenant {\n static readonly type = '[TenantManagement] Create Tenant';\n constructor(public payload: TenantManagement.AddRequest) {}\n}\n\nexport class UpdateTenant {\n static readonly type = '[TenantManagement] Update Tenant';\n constructor(public payload: TenantManagement.UpdateRequest) {}\n}\n\nexport class DeleteTenant {\n static readonly type = '[TenantManagement] Delete Tenant';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { TenantManagement } from '../models/tenant-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantManagementService {\n constructor(private rest: RestService) {}\n\n getTenant(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/multi-tenancy/tenants',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getTenantById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteTenant(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createTenant(body: TenantManagement.AddRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/multi-tenancy/tenants`,\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateTenant(body: TenantManagement.UpdateRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'GET',\n responseType: Rest.ResponseType.Text,\n url,\n };\n return this.rest.request(request);\n }\n\n updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${payload.id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n params: { defaultConnectionString: payload.defaultConnectionString },\n };\n return this.rest.request(request);\n }\n\n deleteDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'DELETE',\n url,\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementService } from '../services/tenant-management.service';\nimport { ABP } from '@abp/ng.core';\n\n@State({\n name: 'TenantManagementState',\n defaults: { result: {}, selectedItem: {} } as TenantManagement.State,\n})\nexport class TenantManagementState {\n @Selector()\n static get({ result }: TenantManagement.State): ABP.BasicItem[] {\n return result.items || [];\n }\n\n @Selector()\n static getTenantsTotalCount({ result }: TenantManagement.State): number {\n return result.totalCount;\n }\n\n constructor(private tenantManagementService: TenantManagementService) {}\n\n @Action(GetTenants)\n get({ patchState }: StateContext, { payload }: GetTenants) {\n return this.tenantManagementService.getTenant(payload).pipe(\n tap(result =>\n patchState({\n result,\n }),\n ),\n );\n }\n\n @Action(GetTenantById)\n getById({ patchState }: StateContext, { payload }: GetTenantById) {\n return this.tenantManagementService.getTenantById(payload).pipe(\n tap(selectedItem =>\n patchState({\n selectedItem,\n }),\n ),\n );\n }\n\n @Action(DeleteTenant)\n delete({ dispatch }: StateContext, { payload }: DeleteTenant) {\n return this.tenantManagementService.deleteTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(CreateTenant)\n add({ dispatch }: StateContext, { payload }: CreateTenant) {\n return this.tenantManagementService.createTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(UpdateTenant)\n update({ dispatch, getState }: StateContext, { payload }: UpdateTenant) {\n return dispatch(new GetTenantById(payload.id)).pipe(\n switchMap(() => this.tenantManagementService.updateTenant({ ...getState().selectedItem, ...payload })),\n switchMap(() => dispatch(new GetTenants())),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../../actions/tenant-management.actions';\nimport { TenantManagementService } from '../../services/tenant-management.service';\nimport { TenantManagementState } from '../../states/tenant-management.state';\n\ntype SelectedModalContent = {\n type: string;\n title: string;\n template: TemplateRef;\n};\n\n@Component({\n selector: 'abp-tenants',\n templateUrl: './tenants.component.html',\n})\nexport class TenantsComponent {\n @Select(TenantManagementState.get)\n data$: Observable;\n\n @Select(TenantManagementState.getTenantsTotalCount)\n totalCount$: Observable;\n\n selected: ABP.BasicItem;\n\n tenantForm: FormGroup;\n\n defaultConnectionStringForm: FormGroup;\n\n defaultConnectionString: string;\n\n isModalVisible: boolean;\n\n selectedModalContent = {} as SelectedModalContent;\n\n visibleFeatures: boolean = false;\n\n providerKey: string;\n\n _useSharedDatabase: boolean;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n sortOrder: string = 'asc';\n\n get useSharedDatabase(): boolean {\n return this.defaultConnectionStringForm.get('useSharedDatabase').value;\n }\n\n get connectionString(): string {\n return this.defaultConnectionStringForm.get('defaultConnectionString').value;\n }\n\n @ViewChild('tenantModalTemplate', { static: false })\n tenantModalTemplate: TemplateRef;\n\n @ViewChild('connectionStringModalTemplate', { static: false })\n connectionStringModalTemplate: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private tenantService: TenantManagementService,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n private createTenantForm() {\n this.tenantForm = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n });\n }\n\n private createDefaultConnectionStringForm() {\n this.defaultConnectionStringForm = this.fb.group({\n useSharedDatabase: this._useSharedDatabase,\n defaultConnectionString: [this.defaultConnectionString || ''],\n });\n }\n\n openModal(title: string, template: TemplateRef, type: string) {\n this.selectedModalContent = {\n title,\n template,\n type,\n };\n\n this.isModalVisible = true;\n }\n\n onEditConnectionString(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(\n pluck('TenantManagementState', 'selectedItem'),\n switchMap(selected => {\n this.selected = selected;\n return this.tenantService.getDefaultConnectionString(id);\n }),\n )\n .subscribe(fetchedConnectionString => {\n this._useSharedDatabase = fetchedConnectionString ? false : true;\n this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : '';\n this.createDefaultConnectionStringForm();\n this.openModal('AbpTenantManagement::ConnectionStrings', this.connectionStringModalTemplate, 'saveConnStr');\n });\n }\n\n onAddTenant() {\n this.selected = {} as ABP.BasicItem;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::NewTenant', this.tenantModalTemplate, 'saveTenant');\n }\n\n onEditTenant(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(pluck('TenantManagementState', 'selectedItem'))\n .subscribe(selected => {\n this.selected = selected;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::Edit', this.tenantModalTemplate, 'saveTenant');\n });\n }\n\n save() {\n const { type } = this.selectedModalContent;\n if (!type) return;\n if (type === 'saveTenant') this.saveTenant();\n else if (type === 'saveConnStr') this.saveConnectionString();\n }\n\n saveConnectionString() {\n this.modalBusy = true;\n if (this.useSharedDatabase || (!this.useSharedDatabase && !this.connectionString)) {\n this.tenantService\n .deleteDefaultConnectionString(this.selected.id)\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n } else {\n this.tenantService\n .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n }\n }\n\n saveTenant() {\n if (!this.tenantForm.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateTenant({ ...this.tenantForm.value, id: this.selected.id })\n : new CreateTenant(this.tenantForm.value),\n )\n .pipe(finalize(()=> (this.modalBusy = false)))\n .subscribe(() => {\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteTenant(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetTenants(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n\n changeSortOrder() {\n this.sortOrder = this.sortOrder.toLowerCase() === \"asc\" ? \"desc\" : \"asc\";\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetTenants } from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementState } from '../states/tenant-management.state';\n\n@Injectable()\nexport class TenantsResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const data = this.store.selectSnapshot(TenantManagementState.get);\n return data && data.length ? null : this.store.dispatch(new GetTenants());\n }\n}\n","import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { TenantsResolver } from './resolvers/tenants.resolver';\nimport { TenantsComponent } from './components/tenants/tenants.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\n {\n path: 'tenants',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpTenantManagement.Tenants' },\n children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [TenantsResolver],\n})\nexport class TenantManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule, Provider } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxsModule } from '@ngxs/store';\nimport { TableModule } from 'primeng/table';\nimport { TenantsComponent } from './components/tenants/tenants.component';\nimport { TenantManagementState } from './states/tenant-management.state';\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\nimport { FeatureManagementModule } from '@abp/ng.feature-management';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [TenantsComponent],\n imports: [\n TenantManagementRoutingModule,\n NgxsModule.forFeature([TenantManagementState]),\n NgxValidateCoreModule,\n CoreModule,\n TableModule,\n ThemeSharedModule,\n NgbDropdownModule,\n FeatureManagementModule,\n ],\n})\nexport class TenantManagementModule {}\n\nexport function TenantManagementProviders(): Provider[] {\n return [];\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const TENANT_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'AbpTenantManagement::Menu:TenantManagement',\n path: 'tenant-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-users',\n children: [\n {\n path: 'tenants',\n name: 'AbpTenantManagement::Tenants',\n order: 1,\n requiredPolicy: 'AbpTenantManagement.Tenants',\n },\n ],\n },\n ] as ABP.FullRoute[],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace TenantManagement {\n export interface State {\n result: Response;\n selectedItem: Item;\n }\n\n export type Response = ABP.PagedResponse;\n\n export interface Item {\n id: string;\n name: string;\n }\n\n export interface AddRequest {\n name: string;\n }\n\n export interface UpdateRequest extends AddRequest {\n id: string;\n }\n\n export interface DefaultConnectionStringRequest {\n id: string;\n defaultConnectionString: string;\n }\n}\n"]} \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/esm2015/abp-ng.tenant-management.js b/npm/ng-packs/dist/tenant-management/esm2015/abp-ng.tenant-management.js index bb2193197a..74b2fd80e7 100644 --- a/npm/ng-packs/dist/tenant-management/esm2015/abp-ng.tenant-management.js +++ b/npm/ng-packs/dist/tenant-management/esm2015/abp-ng.tenant-management.js @@ -5,11 +5,11 @@ /** * Generated bundle index. Do not edit. */ -export { RootTenantManagementModule, TenantManagementModule, GetTenants, GetTenantById, CreateTenant, UpdateTenant, DeleteTenant, TenantsComponent, TENANT_MANAGEMENT_ROUTES, TenantsResolver, TenantManagementService, TenantManagementState } from './public-api'; +export { TenantManagementProviders, TenantManagementModule, GetTenants, GetTenantById, CreateTenant, UpdateTenant, DeleteTenant, TenantsComponent, TENANT_MANAGEMENT_ROUTES, TenantsResolver, TenantManagementService, TenantManagementState } from './public-api'; export { CreateTenant as ɵf, DeleteTenant as ɵh, GetTenantById as ɵe, GetTenants as ɵd, UpdateTenant as ɵg } from './lib/actions/tenant-management.actions'; export { TenantsComponent as ɵa } from './lib/components/tenants/tenants.component'; export { TenantsResolver as ɵk } from './lib/resolvers/tenants.resolver'; export { TenantManagementService as ɵc } from './lib/services/tenant-management.service'; export { TenantManagementState as ɵb } from './lib/states/tenant-management.state'; export { TenantManagementRoutingModule as ɵj } from './lib/tenant-management-routing.module'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRlbmFudC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImFicC1uZy50ZW5hbnQtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscVBBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0SixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFbEYsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDdkYsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtDcmVhdGVUZW5hbnQgYXMgybVmLERlbGV0ZVRlbmFudCBhcyDJtWgsR2V0VGVuYW50QnlJZCBhcyDJtWUsR2V0VGVuYW50cyBhcyDJtWQsVXBkYXRlVGVuYW50IGFzIMm1Z30gZnJvbSAnLi9saWIvYWN0aW9ucy90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zJztcbmV4cG9ydCB7VGVuYW50c0NvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudCc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnQgYXMgybVpfSBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50LW1hbmFnZW1lbnQnO1xuZXhwb3J0IHtUZW5hbnRzUmVzb2x2ZXIgYXMgybVrfSBmcm9tICcuL2xpYi9yZXNvbHZlcnMvdGVuYW50cy5yZXNvbHZlcic7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9saWIvc2VydmljZXMvdGVuYW50LW1hbmFnZW1lbnQuc2VydmljZSc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcy90ZW5hbnQtbWFuYWdlbWVudC5zdGF0ZSc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlIGFzIMm1an0gZnJvbSAnLi9saWIvdGVuYW50LW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUnOyJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRlbmFudC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImFicC1uZy50ZW5hbnQtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb1BBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0SixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFbEYsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDdkYsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtDcmVhdGVUZW5hbnQgYXMgybVmLERlbGV0ZVRlbmFudCBhcyDJtWgsR2V0VGVuYW50QnlJZCBhcyDJtWUsR2V0VGVuYW50cyBhcyDJtWQsVXBkYXRlVGVuYW50IGFzIMm1Z30gZnJvbSAnLi9saWIvYWN0aW9ucy90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zJztcbmV4cG9ydCB7VGVuYW50c0NvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudCc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnQgYXMgybVpfSBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50LW1hbmFnZW1lbnQnO1xuZXhwb3J0IHtUZW5hbnRzUmVzb2x2ZXIgYXMgybVrfSBmcm9tICcuL2xpYi9yZXNvbHZlcnMvdGVuYW50cy5yZXNvbHZlcic7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9saWIvc2VydmljZXMvdGVuYW50LW1hbmFnZW1lbnQuc2VydmljZSc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcy90ZW5hbnQtbWFuYWdlbWVudC5zdGF0ZSc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlIGFzIMm1an0gZnJvbSAnLi9saWIvdGVuYW50LW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUnOyJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/esm2015/lib/components/tenants/tenants.component.js b/npm/ng-packs/dist/tenant-management/esm2015/lib/components/tenants/tenants.component.js index d7c42cac08..0d778bb79d 100644 --- a/npm/ng-packs/dist/tenant-management/esm2015/lib/components/tenants/tenants.component.js +++ b/npm/ng-packs/dist/tenant-management/esm2015/lib/components/tenants/tenants.component.js @@ -31,6 +31,7 @@ export class TenantsComponent { }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; } /** * @return {?} @@ -194,11 +195,14 @@ export class TenantsComponent { .dispatch(this.selected.id ? new UpdateTenant(Object.assign({}, this.tenantForm.value, { id: this.selected.id })) : new CreateTenant(this.tenantForm.value)) + .pipe(finalize((/** + * @return {?} + */ + () => (this.modalBusy = false)))) .subscribe((/** * @return {?} */ () => { - this.modalBusy = false; this.isModalVisible = false; })); } @@ -219,7 +223,6 @@ export class TenantsComponent { (status) => { if (status === "confirm" /* confirm */) { this.store.dispatch(new DeleteTenant(id)); - this.modalBusy = false; } })); } @@ -245,11 +248,17 @@ export class TenantsComponent { () => (this.loading = false)))) .subscribe(); } + /** + * @return {?} + */ + changeSortOrder() { + this.sortOrder = this.sortOrder.toLowerCase() === "asc" ? "desc" : "asc"; + } } TenantsComponent.decorators = [ { type: Component, args: [{ selector: 'abp-tenants', - template: "
\n
\n
\n
\n
\n {{ 'AbpTenantManagement::Tenants' | abpLocalization }}\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n" + template: "
\n
\n

{{ 'AbpTenantManagement::Tenants' | abpLocalization }}

\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n" }] } ]; /** @nocollapse */ @@ -301,6 +310,8 @@ if (false) { /** @type {?} */ TenantsComponent.prototype.modalBusy; /** @type {?} */ + TenantsComponent.prototype.sortOrder; + /** @type {?} */ TenantsComponent.prototype.tenantModalTemplate; /** @type {?} */ TenantsComponent.prototype.connectionStringModalTemplate; @@ -325,4 +336,4 @@ if (false) { */ TenantsComponent.prototype.store; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFnQixRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQ0wsWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsYUFBYSxFQUNiLFlBQVksR0FDYixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBWTdFLE1BQU0sT0FBTyxnQkFBZ0I7Ozs7Ozs7SUErQzNCLFlBQ1UsbUJBQXdDLEVBQ3hDLGFBQXNDLEVBQ3RDLEVBQWUsRUFDZixLQUFZO1FBSFosd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7UUFDdEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQU87UUFsQ3RCLHlCQUFvQixHQUFHLG1CQUFBLEVBQUUsRUFBd0IsQ0FBQztRQUVsRCxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQU1qQyxjQUFTLEdBQXdCO1lBQy9CLE9BQU8sRUFBRSxNQUFNO1NBQ2hCLENBQUM7UUFFRixZQUFPLEdBQVksS0FBSyxDQUFDO1FBRXpCLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFxQnhCLENBQUM7Ozs7SUFuQkosSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3pFLENBQUM7Ozs7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDL0UsQ0FBQzs7Ozs7SUFlRCxRQUFRLENBQUMsS0FBSztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDYixDQUFDOzs7OztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzlCLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ25GLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRU8saUNBQWlDO1FBQ3ZDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMvQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzFDLHVCQUF1QixFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixJQUFJLEVBQUUsQ0FBQztTQUM5RCxDQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7O0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxRQUEwQixFQUFFLElBQVk7UUFDL0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHO1lBQzFCLEtBQUs7WUFDTCxRQUFRO1lBQ1IsSUFBSTtTQUNMLENBQUM7UUFFRixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDOzs7OztJQUVELHNCQUFzQixDQUFDLEVBQVU7UUFDL0IsSUFBSSxDQUFDLEtBQUs7YUFDUCxRQUFRLENBQUMsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDL0IsSUFBSSxDQUNILEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxjQUFjLENBQUMsRUFDOUMsU0FBUzs7OztRQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDLEVBQUMsQ0FDSDthQUNBLFNBQVM7Ozs7UUFBQyx1QkFBdUIsQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDakUsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RGLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsd0NBQXdDLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzlHLENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxHQUFHLG1CQUFBLEVBQUUsRUFBaUIsQ0FBQztRQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUMzRixDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxFQUFVO1FBQ3JCLElBQUksQ0FBQyxLQUFLO2FBQ1AsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsY0FBYyxDQUFDLENBQUM7YUFDcEQsU0FBUzs7OztRQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3RGLENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7OztJQUVELElBQUk7Y0FDSSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFBb0I7UUFDMUMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ2xCLElBQUksSUFBSSxLQUFLLFlBQVk7WUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDeEMsSUFBSSxJQUFJLEtBQUssYUFBYTtZQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQy9ELENBQUM7Ozs7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ2pGLElBQUksQ0FBQyxhQUFhO2lCQUNmLDZCQUE2QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2lCQUMvQyxJQUFJLENBQ0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFFBQVE7OztZQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsRUFBQyxDQUN6QztpQkFDQSxTQUFTOzs7WUFBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDOUIsQ0FBQyxFQUFDLENBQUM7U0FDTjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWE7aUJBQ2YsNkJBQTZCLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7aUJBQ3ZHLElBQUksQ0FDSCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsUUFBUTs7O1lBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxFQUFDLENBQ3pDO2lCQUNBLFNBQVM7OztZQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztZQUM5QixDQUFDLEVBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQzs7OztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixJQUFJLENBQUMsS0FBSzthQUNQLFFBQVEsQ0FDUCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDZCxDQUFDLENBQUMsSUFBSSxZQUFZLG1CQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBRztZQUN0RSxDQUFDLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FDNUM7YUFDQSxTQUFTOzs7UUFBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7OztJQUVELE1BQU0sQ0FBQyxFQUFVLEVBQUUsSUFBWTtRQUM3QixJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLElBQUksQ0FBQyx3REFBd0QsRUFBRSxpQ0FBaUMsRUFBRTtZQUNqRyx5QkFBeUIsRUFBRSxDQUFDLElBQUksQ0FBQztTQUNsQyxDQUFDO2FBQ0QsU0FBUzs7OztRQUFDLENBQUMsTUFBc0IsRUFBRSxFQUFFO1lBQ3BDLElBQUksTUFBTSw0QkFBMkIsRUFBRTtnQkFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDeEI7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7O0lBRUQsWUFBWSxDQUFDLElBQUk7UUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFMUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2IsQ0FBQzs7OztJQUVELEdBQUc7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSzthQUNQLFFBQVEsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDeEMsSUFBSSxDQUFDLFFBQVE7OztRQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBQyxDQUFDO2FBQzVDLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7OztZQW5NRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLDIyTEFBdUM7YUFDeEM7Ozs7WUF6QlEsbUJBQW1CO1lBYW5CLHVCQUF1QjtZQVh2QixXQUFXO1lBQ0gsS0FBSzs7O2tDQWdFbkIsU0FBUyxTQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs0Q0FHbEQsU0FBUyxTQUFDLCtCQUErQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7QUExQzdEO0lBREMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQztzQ0FDM0IsVUFBVTsrQ0FBa0I7QUFHbkM7SUFEQyxNQUFNLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUM7c0NBQ3RDLFVBQVU7cURBQVM7OztJQUpoQyxpQ0FDbUM7O0lBRW5DLHVDQUNnQzs7SUFFaEMsb0NBQXdCOztJQUV4QixzQ0FBc0I7O0lBRXRCLHVEQUF1Qzs7SUFFdkMsbURBQWdDOztJQUVoQywwQ0FBd0I7O0lBRXhCLGdEQUFrRDs7SUFFbEQsMkNBQWlDOztJQUVqQyx1Q0FBb0I7O0lBRXBCLDhDQUE0Qjs7SUFFNUIscUNBRUU7O0lBRUYsbUNBQXlCOztJQUV6QixxQ0FBMkI7O0lBVTNCLCtDQUNzQzs7SUFFdEMseURBQ2dEOzs7OztJQUc5QywrQ0FBZ0Q7Ozs7O0lBQ2hELHlDQUE4Qzs7Ozs7SUFDOUMsOEJBQXVCOzs7OztJQUN2QixpQ0FBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbmFsaXplLCBwbHVjaywgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ3JlYXRlVGVuYW50LFxuICBEZWxldGVUZW5hbnQsXG4gIEdldFRlbmFudHMsXG4gIEdldFRlbmFudEJ5SWQsXG4gIFVwZGF0ZVRlbmFudCxcbn0gZnJvbSAnLi4vLi4vYWN0aW9ucy90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zJztcbmltcG9ydCB7IFRlbmFudE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVuYW50LW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZXMvdGVuYW50LW1hbmFnZW1lbnQuc3RhdGUnO1xuXG50eXBlIFNlbGVjdGVkTW9kYWxDb250ZW50ID0ge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXRlbmFudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50cy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudHNDb21wb25lbnQge1xuICBAU2VsZWN0KFRlbmFudE1hbmFnZW1lbnRTdGF0ZS5nZXQpXG4gIGRhdGEkOiBPYnNlcnZhYmxlPEFCUC5CYXNpY0l0ZW1bXT47XG5cbiAgQFNlbGVjdChUZW5hbnRNYW5hZ2VtZW50U3RhdGUuZ2V0VGVuYW50c1RvdGFsQ291bnQpXG4gIHRvdGFsQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgc2VsZWN0ZWQ6IEFCUC5CYXNpY0l0ZW07XG5cbiAgdGVuYW50Rm9ybTogRm9ybUdyb3VwO1xuXG4gIGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nRm9ybTogRm9ybUdyb3VwO1xuXG4gIGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nOiBzdHJpbmc7XG5cbiAgaXNNb2RhbFZpc2libGU6IGJvb2xlYW47XG5cbiAgc2VsZWN0ZWRNb2RhbENvbnRlbnQgPSB7fSBhcyBTZWxlY3RlZE1vZGFsQ29udGVudDtcblxuICB2aXNpYmxlRmVhdHVyZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcm92aWRlcktleTogc3RyaW5nO1xuXG4gIF91c2VTaGFyZWREYXRhYmFzZTogYm9vbGVhbjtcblxuICBwYWdlUXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMgPSB7XG4gICAgc29ydGluZzogJ25hbWUnLFxuICB9O1xuXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBnZXQgdXNlU2hhcmVkRGF0YWJhc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtLmdldCgndXNlU2hhcmVkRGF0YWJhc2UnKS52YWx1ZTtcbiAgfVxuXG4gIGdldCBjb25uZWN0aW9uU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtLmdldCgnZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcnKS52YWx1ZTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3RlbmFudE1vZGFsVGVtcGxhdGUnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgdGVuYW50TW9kYWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdjb25uZWN0aW9uU3RyaW5nTW9kYWxUZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBjb25uZWN0aW9uU3RyaW5nTW9kYWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZW5hbnRTZXJ2aWNlOiBUZW5hbnRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgKSB7fVxuXG4gIG9uU2VhcmNoKHZhbHVlKSB7XG4gICAgdGhpcy5wYWdlUXVlcnkuZmlsdGVyID0gdmFsdWU7XG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGVuYW50Rm9ybSgpIHtcbiAgICB0aGlzLnRlbmFudEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IFt0aGlzLnNlbGVjdGVkLm5hbWUgfHwgJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURlZmF1bHRDb25uZWN0aW9uU3RyaW5nRm9ybSgpIHtcbiAgICB0aGlzLmRlZmF1bHRDb25uZWN0aW9uU3RyaW5nRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgdXNlU2hhcmVkRGF0YWJhc2U6IHRoaXMuX3VzZVNoYXJlZERhdGFiYXNlLFxuICAgICAgZGVmYXVsdENvbm5lY3Rpb25TdHJpbmc6IFt0aGlzLmRlZmF1bHRDb25uZWN0aW9uU3RyaW5nIHx8ICcnXSxcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCh0aXRsZTogc3RyaW5nLCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiwgdHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGFsQ29udGVudCA9IHtcbiAgICAgIHRpdGxlLFxuICAgICAgdGVtcGxhdGUsXG4gICAgICB0eXBlLFxuICAgIH07XG5cbiAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIG9uRWRpdENvbm5lY3Rpb25TdHJpbmcoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgR2V0VGVuYW50QnlJZChpZCkpXG4gICAgICAucGlwZShcbiAgICAgICAgcGx1Y2soJ1RlbmFudE1hbmFnZW1lbnRTdGF0ZScsICdzZWxlY3RlZEl0ZW0nKSxcbiAgICAgICAgc3dpdGNoTWFwKHNlbGVjdGVkID0+IHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudGVuYW50U2VydmljZS5nZXREZWZhdWx0Q29ubmVjdGlvblN0cmluZyhpZCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShmZXRjaGVkQ29ubmVjdGlvblN0cmluZyA9PiB7XG4gICAgICAgIHRoaXMuX3VzZVNoYXJlZERhdGFiYXNlID0gZmV0Y2hlZENvbm5lY3Rpb25TdHJpbmcgPyBmYWxzZSA6IHRydWU7XG4gICAgICAgIHRoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcgPSBmZXRjaGVkQ29ubmVjdGlvblN0cmluZyA/IGZldGNoZWRDb25uZWN0aW9uU3RyaW5nIDogJyc7XG4gICAgICAgIHRoaXMuY3JlYXRlRGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtKCk7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsKCdBYnBUZW5hbnRNYW5hZ2VtZW50OjpDb25uZWN0aW9uU3RyaW5ncycsIHRoaXMuY29ubmVjdGlvblN0cmluZ01vZGFsVGVtcGxhdGUsICdzYXZlQ29ublN0cicpO1xuICAgICAgfSk7XG4gIH1cblxuICBvbkFkZFRlbmFudCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0ge30gYXMgQUJQLkJhc2ljSXRlbTtcbiAgICB0aGlzLmNyZWF0ZVRlbmFudEZvcm0oKTtcbiAgICB0aGlzLm9wZW5Nb2RhbCgnQWJwVGVuYW50TWFuYWdlbWVudDo6TmV3VGVuYW50JywgdGhpcy50ZW5hbnRNb2RhbFRlbXBsYXRlLCAnc2F2ZVRlbmFudCcpO1xuICB9XG5cbiAgb25FZGl0VGVuYW50KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFRlbmFudEJ5SWQoaWQpKVxuICAgICAgLnBpcGUocGx1Y2soJ1RlbmFudE1hbmFnZW1lbnRTdGF0ZScsICdzZWxlY3RlZEl0ZW0nKSlcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0ZWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMuY3JlYXRlVGVuYW50Rm9ybSgpO1xuICAgICAgICB0aGlzLm9wZW5Nb2RhbCgnQWJwVGVuYW50TWFuYWdlbWVudDo6RWRpdCcsIHRoaXMudGVuYW50TW9kYWxUZW1wbGF0ZSwgJ3NhdmVUZW5hbnQnKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IHRoaXMuc2VsZWN0ZWRNb2RhbENvbnRlbnQ7XG4gICAgaWYgKCF0eXBlKSByZXR1cm47XG4gICAgaWYgKHR5cGUgPT09ICdzYXZlVGVuYW50JykgdGhpcy5zYXZlVGVuYW50KCk7XG4gICAgZWxzZSBpZiAodHlwZSA9PT0gJ3NhdmVDb25uU3RyJykgdGhpcy5zYXZlQ29ubmVjdGlvblN0cmluZygpO1xuICB9XG5cbiAgc2F2ZUNvbm5lY3Rpb25TdHJpbmcoKSB7XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuICAgIGlmICh0aGlzLnVzZVNoYXJlZERhdGFiYXNlIHx8ICghdGhpcy51c2VTaGFyZWREYXRhYmFzZSAmJiAhdGhpcy5jb25uZWN0aW9uU3RyaW5nKSkge1xuICAgICAgdGhpcy50ZW5hbnRTZXJ2aWNlXG4gICAgICAgIC5kZWxldGVEZWZhdWx0Q29ubmVjdGlvblN0cmluZyh0aGlzLnNlbGVjdGVkLmlkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLm1vZGFsQnVzeSA9IGZhbHNlKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZW5hbnRTZXJ2aWNlXG4gICAgICAgIC51cGRhdGVEZWZhdWx0Q29ubmVjdGlvblN0cmluZyh7IGlkOiB0aGlzLnNlbGVjdGVkLmlkLCBkZWZhdWx0Q29ubmVjdGlvblN0cmluZzogdGhpcy5jb25uZWN0aW9uU3RyaW5nIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMubW9kYWxCdXN5ID0gZmFsc2UpKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNhdmVUZW5hbnQoKSB7XG4gICAgaWYgKCF0aGlzLnRlbmFudEZvcm0udmFsaWQpIHJldHVybjtcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuaWRcbiAgICAgICAgICA/IG5ldyBVcGRhdGVUZW5hbnQoeyAuLi50aGlzLnRlbmFudEZvcm0udmFsdWUsIGlkOiB0aGlzLnNlbGVjdGVkLmlkIH0pXG4gICAgICAgICAgOiBuZXcgQ3JlYXRlVGVuYW50KHRoaXMudGVuYW50Rm9ybS52YWx1ZSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgfSk7XG4gIH1cblxuICBkZWxldGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlXG4gICAgICAud2FybignQWJwVGVuYW50TWFuYWdlbWVudDo6VGVuYW50RGVsZXRpb25Db25maXJtYXRpb25NZXNzYWdlJywgJ0FicFRlbmFudE1hbmFnZW1lbnQ6OkFyZVlvdVN1cmUnLCB7XG4gICAgICAgIG1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXM6IFtuYW1lXSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IFRvYXN0ZXIuU3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm0pIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBEZWxldGVUZW5hbnQoaWQpKTtcbiAgICAgICAgICB0aGlzLm1vZGFsQnVzeSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShkYXRhKSB7XG4gICAgdGhpcy5wYWdlUXVlcnkuc2tpcENvdW50ID0gZGF0YS5maXJzdDtcbiAgICB0aGlzLnBhZ2VRdWVyeS5tYXhSZXN1bHRDb3VudCA9IGRhdGEucm93cztcblxuICAgIHRoaXMuZ2V0KCk7XG4gIH1cblxuICBnZXQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFRlbmFudHModGhpcy5wYWdlUXVlcnkpKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSkpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFnQixRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQ0wsWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsYUFBYSxFQUNiLFlBQVksR0FDYixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBWTdFLE1BQU0sT0FBTyxnQkFBZ0I7Ozs7Ozs7SUFpRDNCLFlBQ1UsbUJBQXdDLEVBQ3hDLGFBQXNDLEVBQ3RDLEVBQWUsRUFDZixLQUFZO1FBSFosd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7UUFDdEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQU87UUFwQ3RCLHlCQUFvQixHQUFHLG1CQUFBLEVBQUUsRUFBd0Is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QUFFLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMzRSxDQUFDOzs7WUF4TUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2Qiw0dE5BQXVDO2FBQ3hDOzs7O1lBekJRLG1CQUFtQjtZQWFuQix1QkFBdUI7WUFYdkIsV0FBVztZQUNILEtBQUs7OztrQ0FrRW5CLFNBQVMsU0FBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7NENBR2xELFNBQVMsU0FBQywrQkFBK0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7O0FBNUM3RDtJQURDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7c0NBQzNCLFVBQVU7K0NBQWtCO0FBR25DO0lBREMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDO3NDQUN0QyxVQUFVO3FEQUFTOzs7SUFKaEMsaUNBQ21DOztJQUVuQyx1Q0FDZ0M7O0lBRWhDLG9DQUF3Qjs7SUFFeEIsc0NBQXNCOztJQUV0Qix1REFBdUM7O0lBRXZDLG1EQUFnQzs7SUFFaEMsMENBQXdCOztJQUV4QixnREFBa0Q7O0lBRWxELDJDQUFpQzs7SUFFakMsdUNBQW9COztJQUVwQiw4Q0FBNEI7O0lBRTVCLHFDQUVFOztJQUVGLG1DQUF5Qjs7SUFFekIscUNBQTJCOztJQUUzQixxQ0FBMEI7O0lBVTFCLCtDQUNzQzs7SUFFdEMseURBQ2dEOzs7OztJQUc5QywrQ0FBZ0Q7Ozs7O0lBQ2hELHlDQUE4Qzs7Ozs7SUFDOUMsOEJBQXVCOzs7OztJQUN2QixpQ0FBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbmFsaXplLCBwbHVjaywgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ3JlYXRlVGVuYW50LFxuICBEZWxldGVUZW5hbnQsXG4gIEdldFRlbmFudHMsXG4gIEdldFRlbmFudEJ5SWQsXG4gIFVwZGF0ZVRlbmFudCxcbn0gZnJvbSAnLi4vLi4vYWN0aW9ucy90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zJztcbmltcG9ydCB7IFRlbmFudE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVuYW50LW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZXMvdGVuYW50LW1hbmFnZW1lbnQuc3RhdGUnO1xuXG50eXBlIFNlbGVjdGVkTW9kYWxDb250ZW50ID0ge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLXRlbmFudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50cy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudHNDb21wb25lbnQge1xuICBAU2VsZWN0KFRlbmFudE1hbmFnZW1lbnRTdGF0ZS5nZXQpXG4gIGRhdGEkOiBPYnNlcnZhYmxlPEFCUC5CYXNpY0l0ZW1bXT47XG5cbiAgQFNlbGVjdChUZW5hbnRNYW5hZ2VtZW50U3RhdGUuZ2V0VGVuYW50c1RvdGFsQ291bnQpXG4gIHRvdGFsQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgc2VsZWN0ZWQ6IEFCUC5CYXNpY0l0ZW07XG5cbiAgdGVuYW50Rm9ybTogRm9ybUdyb3VwO1xuXG4gIGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nRm9ybTogRm9ybUdyb3VwO1xuXG4gIGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nOiBzdHJpbmc7XG5cbiAgaXNNb2RhbFZpc2libGU6IGJvb2xlYW47XG5cbiAgc2VsZWN0ZWRNb2RhbENvbnRlbnQgPSB7fSBhcyBTZWxlY3RlZE1vZGFsQ29udGVudDtcblxuICB2aXNpYmxlRmVhdHVyZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcm92aWRlcktleTogc3RyaW5nO1xuXG4gIF91c2VTaGFyZWREYXRhYmFzZTogYm9vbGVhbjtcblxuICBwYWdlUXVlcnk6IEFCUC5QYWdlUXVlcnlQYXJhbXMgPSB7XG4gICAgc29ydGluZzogJ25hbWUnLFxuICB9O1xuXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzb3J0T3JkZXI6IHN0cmluZyA9ICdhc2MnO1xuXG4gIGdldCB1c2VTaGFyZWREYXRhYmFzZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0Q29ubmVjdGlvblN0cmluZ0Zvcm0uZ2V0KCd1c2VTaGFyZWREYXRhYmFzZScpLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGNvbm5lY3Rpb25TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0Q29ubmVjdGlvblN0cmluZ0Zvcm0uZ2V0KCdkZWZhdWx0Q29ubmVjdGlvblN0cmluZycpLnZhbHVlO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgndGVuYW50TW9kYWxUZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICB0ZW5hbnRNb2RhbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoJ2Nvbm5lY3Rpb25TdHJpbmdNb2RhbFRlbXBsYXRlJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGNvbm5lY3Rpb25TdHJpbmdNb2RhbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHRlbmFudFNlcnZpY2U6IFRlbmFudE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICApIHt9XG5cbiAgb25TZWFyY2godmFsdWUpIHtcbiAgICB0aGlzLnBhZ2VRdWVyeS5maWx0ZXIgPSB2YWx1ZTtcbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUZW5hbnRGb3JtKCkge1xuICAgIHRoaXMudGVuYW50Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbmFtZTogW3RoaXMuc2VsZWN0ZWQubmFtZSB8fCAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtKCkge1xuICAgIHRoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB1c2VTaGFyZWREYXRhYmFzZTogdGhpcy5fdXNlU2hhcmVkRGF0YWJhc2UsXG4gICAgICBkZWZhdWx0Q29ubmVjdGlvblN0cmluZzogW3RoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcgfHwgJyddLFxuICAgIH0pO1xuICB9XG5cbiAgb3Blbk1vZGFsKHRpdGxlOiBzdHJpbmcsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LCB0eXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9kYWxDb250ZW50ID0ge1xuICAgICAgdGl0bGUsXG4gICAgICB0ZW1wbGF0ZSxcbiAgICAgIHR5cGUsXG4gICAgfTtcblxuICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgb25FZGl0Q29ubmVjdGlvblN0cmluZyhpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBHZXRUZW5hbnRCeUlkKGlkKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBwbHVjaygnVGVuYW50TWFuYWdlbWVudFN0YXRlJywgJ3NlbGVjdGVkSXRlbScpLFxuICAgICAgICBzd2l0Y2hNYXAoc2VsZWN0ZWQgPT4ge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgICAgICByZXR1cm4gdGhpcy50ZW5hbnRTZXJ2aWNlLmdldERlZmF1bHRDb25uZWN0aW9uU3RyaW5nKGlkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGZldGNoZWRDb25uZWN0aW9uU3RyaW5nID0+IHtcbiAgICAgICAgdGhpcy5fdXNlU2hhcmVkRGF0YWJhc2UgPSBmZXRjaGVkQ29ubmVjdGlvblN0cmluZyA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29ubmVjdGlvblN0cmluZyA9IGZldGNoZWRDb25uZWN0aW9uU3RyaW5nID8gZmV0Y2hlZENvbm5lY3Rpb25TdHJpbmcgOiAnJztcbiAgICAgICAgdGhpcy5jcmVhdGVEZWZhdWx0Q29ubmVjdGlvblN0cmluZ0Zvcm0oKTtcbiAgICAgICAgdGhpcy5vcGVuTW9kYWwoJ0FicFRlbmFudE1hbmFnZW1lbnQ6OkNvbm5lY3Rpb25TdHJpbmdzJywgdGhpcy5jb25uZWN0aW9uU3RyaW5nTW9kYWxUZW1wbGF0ZSwgJ3NhdmVDb25uU3RyJyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uQWRkVGVuYW50KCkge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSB7fSBhcyBBQlAuQmFzaWNJdGVtO1xuICAgIHRoaXMuY3JlYXRlVGVuYW50Rm9ybSgpO1xuICAgIHRoaXMub3Blbk1vZGFsKCdBYnBUZW5hbnRNYW5hZ2VtZW50OjpOZXdUZW5hbnQnLCB0aGlzLnRlbmFudE1vZGFsVGVtcGxhdGUsICdzYXZlVGVuYW50Jyk7XG4gIH1cblxuICBvbkVkaXRUZW5hbnQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgR2V0VGVuYW50QnlJZChpZCkpXG4gICAgICAucGlwZShwbHVjaygnVGVuYW50TWFuYWdlbWVudFN0YXRlJywgJ3NlbGVjdGVkSXRlbScpKVxuICAgICAgLnN1YnNjcmliZShzZWxlY3RlZCA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgICAgdGhpcy5jcmVhdGVUZW5hbnRGb3JtKCk7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsKCdBYnBUZW5hbnRNYW5hZ2VtZW50OjpFZGl0JywgdGhpcy50ZW5hbnRNb2RhbFRlbXBsYXRlLCAnc2F2ZVRlbmFudCcpO1xuICAgICAgfSk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gdGhpcy5zZWxlY3RlZE1vZGFsQ29udGVudDtcbiAgICBpZiAoIXR5cGUpIHJldHVybjtcbiAgICBpZiAodHlwZSA9PT0gJ3NhdmVUZW5hbnQnKSB0aGlzLnNhdmVUZW5hbnQoKTtcbiAgICBlbHNlIGlmICh0eXBlID09PSAnc2F2ZUNvbm5TdHInKSB0aGlzLnNhdmVDb25uZWN0aW9uU3RyaW5nKCk7XG4gIH1cblxuICBzYXZlQ29ubmVjdGlvblN0cmluZygpIHtcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XG4gICAgaWYgKHRoaXMudXNlU2hhcmVkRGF0YWJhc2UgfHwgKCF0aGlzLnVzZVNoYXJlZERhdGFiYXNlICYmICF0aGlzLmNvbm5lY3Rpb25TdHJpbmcpKSB7XG4gICAgICB0aGlzLnRlbmFudFNlcnZpY2VcbiAgICAgICAgLmRlbGV0ZURlZmF1bHRDb25uZWN0aW9uU3RyaW5nKHRoaXMuc2VsZWN0ZWQuaWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMubW9kYWxCdXN5ID0gZmFsc2UpKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRlbmFudFNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZURlZmF1bHRDb25uZWN0aW9uU3RyaW5nKHsgaWQ6IHRoaXMuc2VsZWN0ZWQuaWQsIGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nOiB0aGlzLmNvbm5lY3Rpb25TdHJpbmcgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5tb2RhbEJ1c3kgPSBmYWxzZSkpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZVRlbmFudCgpIHtcbiAgICBpZiAoIXRoaXMudGVuYW50Rm9ybS52YWxpZCkgcmV0dXJuO1xuICAgIHRoaXMubW9kYWxCdXN5ID0gdHJ1ZTtcblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5pZFxuICAgICAgICAgID8gbmV3IFVwZGF0ZVRlbmFudCh7IC4uLnRoaXMudGVuYW50Rm9ybS52YWx1ZSwgaWQ6IHRoaXMuc2VsZWN0ZWQuaWQgfSlcbiAgICAgICAgICA6IG5ldyBDcmVhdGVUZW5hbnQodGhpcy50ZW5hbnRGb3JtLnZhbHVlKSxcbiAgICAgIClcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpPT4gKHRoaXMubW9kYWxCdXN5ID0gZmFsc2UpKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gZmFsc2U7XG4gICAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZShpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2VcbiAgICAgIC53YXJuKCdBYnBUZW5hbnRNYW5hZ2VtZW50OjpUZW5hbnREZWxldGlvbkNvbmZpcm1hdGlvbk1lc3NhZ2UnLCAnQWJwVGVuYW50TWFuYWdlbWVudDo6QXJlWW91U3VyZScsIHtcbiAgICAgICAgbWVzc2FnZUxvY2FsaXphdGlvblBhcmFtczogW25hbWVdLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogVG9hc3Rlci5TdGF0dXMpID0+IHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gVG9hc3Rlci5TdGF0dXMuY29uZmlybSkge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IERlbGV0ZVRlbmFudChpZCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShkYXRhKSB7XG4gICAgdGhpcy5wYWdlUXVlcnkuc2tpcENvdW50ID0gZGF0YS5maXJzdDtcbiAgICB0aGlzLnBhZ2VRdWVyeS5tYXhSZXN1bHRDb3VudCA9IGRhdGEucm93cztcblxuICAgIHRoaXMuZ2V0KCk7XG4gIH1cblxuICBnZXQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFRlbmFudHModGhpcy5wYWdlUXVlcnkpKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSkpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjaGFuZ2VTb3J0T3JkZXIoKSB7XG4gICAgdGhpcy5zb3J0T3JkZXIgPSB0aGlzLnNvcnRPcmRlci50b0xvd2VyQ2FzZSgpID09PSBcImFzY1wiID8gXCJkZXNjXCIgOiBcImFzY1wiO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/esm2015/lib/constants/routes.js b/npm/ng-packs/dist/tenant-management/esm2015/lib/constants/routes.js index 031d5fe865..ab75bf4dfb 100644 --- a/npm/ng-packs/dist/tenant-management/esm2015/lib/constants/routes.js +++ b/npm/ng-packs/dist/tenant-management/esm2015/lib/constants/routes.js @@ -21,6 +21,5 @@ export const TENANT_MANAGEMENT_ROUTES = { ], }, ])), - settings: [], }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBTSxPQUFPLHdCQUF3QixHQUFHO0lBQ3RDLE1BQU0sRUFBRSxtQkFBQTtRQUNOO1lBQ0UsSUFBSSxFQUFFLDRDQUE0QztZQUNsRCxJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFVBQVUsRUFBRSxzQ0FBc0M7WUFDbEQsTUFBTSxpQ0FBeUI7WUFDL0IsU0FBUyxFQUFFLGFBQWE7WUFDeEIsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSw4QkFBOEI7b0JBQ3BDLEtBQUssRUFBRSxDQUFDO29CQUNSLGNBQWMsRUFBRSw2QkFBNkI7aUJBQzlDO2FBQ0Y7U0FDRjtLQUNGLEVBQW1CO0lBQ3BCLFFBQVEsRUFBRSxFQUFFO0NBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGVMYXlvdXRUeXBlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuZXhwb3J0IGNvbnN0IFRFTkFOVF9NQU5BR0VNRU5UX1JPVVRFUyA9IHtcbiAgcm91dGVzOiBbXG4gICAge1xuICAgICAgbmFtZTogJ0FicFRlbmFudE1hbmFnZW1lbnQ6Ok1lbnU6VGVuYW50TWFuYWdlbWVudCcsXG4gICAgICBwYXRoOiAndGVuYW50LW1hbmFnZW1lbnQnLFxuICAgICAgcGFyZW50TmFtZTogJ0FicFVpTmF2aWdhdGlvbjo6TWVudTpBZG1pbmlzdHJhdGlvbicsXG4gICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxuICAgICAgaWNvbkNsYXNzOiAnZmEgZmEtdXNlcnMnLFxuICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAge1xuICAgICAgICAgIHBhdGg6ICd0ZW5hbnRzJyxcbiAgICAgICAgICBuYW1lOiAnQWJwVGVuYW50TWFuYWdlbWVudDo6VGVuYW50cycsXG4gICAgICAgICAgb3JkZXI6IDEsXG4gICAgICAgICAgcmVxdWlyZWRQb2xpY3k6ICdBYnBUZW5hbnRNYW5hZ2VtZW50LlRlbmFudHMnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdIGFzIEFCUC5GdWxsUm91dGVbXSxcbiAgc2V0dGluZ3M6IFtdLFxufTtcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBTSxPQUFPLHdCQUF3QixHQUFHO0lBQ3RDLE1BQU0sRUFBRSxtQkFBQTtRQUNOO1lBQ0UsSUFBSSxFQUFFLDRDQUE0QztZQUNsRCxJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFVBQVUsRUFBRSxzQ0FBc0M7WUFDbEQsTUFBTSxpQ0FBeUI7WUFDL0IsU0FBUyxFQUFFLGFBQWE7WUFDeEIsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSw4QkFBOEI7b0JBQ3BDLEtBQUssRUFBRSxDQUFDO29CQUNSLGNBQWMsRUFBRSw2QkFBNkI7aUJBQzlDO2FBQ0Y7U0FDRjtLQUNGLEVBQW1CO0NBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBjb25zdCBURU5BTlRfTUFOQUdFTUVOVF9ST1VURVMgPSB7XG4gIHJvdXRlczogW1xuICAgIHtcbiAgICAgIG5hbWU6ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpNZW51OlRlbmFudE1hbmFnZW1lbnQnLFxuICAgICAgcGF0aDogJ3RlbmFudC1tYW5hZ2VtZW50JyxcbiAgICAgIHBhcmVudE5hbWU6ICdBYnBVaU5hdmlnYXRpb246Ok1lbnU6QWRtaW5pc3RyYXRpb24nLFxuICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcbiAgICAgIGljb25DbGFzczogJ2ZhIGZhLXVzZXJzJyxcbiAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwYXRoOiAndGVuYW50cycsXG4gICAgICAgICAgbmFtZTogJ0FicFRlbmFudE1hbmFnZW1lbnQ6OlRlbmFudHMnLFxuICAgICAgICAgIG9yZGVyOiAxLFxuICAgICAgICAgIHJlcXVpcmVkUG9saWN5OiAnQWJwVGVuYW50TWFuYWdlbWVudC5UZW5hbnRzJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSBhcyBBQlAuRnVsbFJvdXRlW10sXG59O1xuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/esm2015/lib/root-tenant-management.module.js b/npm/ng-packs/dist/tenant-management/esm2015/lib/root-tenant-management.module.js deleted file mode 100644 index eaf1730653..0000000000 --- a/npm/ng-packs/dist/tenant-management/esm2015/lib/root-tenant-management.module.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { NgModule } from '@angular/core'; -export class RootTenantManagementModule { - /** - * @return {?} - */ - static forRoot() { - return { - ngModule: RootTenantManagementModule, - providers: [], - }; - } -} -RootTenantManagementModule.decorators = [ - { type: NgModule, args: [{},] } -]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC10ZW5hbnQtbWFuYWdlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3Jvb3QtdGVuYW50LW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc5RCxNQUFNLE9BQU8sMEJBQTBCOzs7O0lBQ3JDLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO0lBQ0osQ0FBQzs7O1lBUEYsUUFBUSxTQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgUm9vdFRlbmFudE1hbmFnZW1lbnRNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFJvb3RUZW5hbnRNYW5hZ2VtZW50TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXSxcbiAgICB9O1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/esm2015/lib/tenant-management.module.js b/npm/ng-packs/dist/tenant-management/esm2015/lib/tenant-management.module.js index 4365e18858..70d1ccefe0 100644 --- a/npm/ng-packs/dist/tenant-management/esm2015/lib/tenant-management.module.js +++ b/npm/ng-packs/dist/tenant-management/esm2015/lib/tenant-management.module.js @@ -30,4 +30,10 @@ TenantManagementModule.decorators = [ ], },] } ]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi90ZW5hbnQtbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFlM0QsTUFBTSxPQUFPLHNCQUFzQjs7O1lBYmxDLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDaEMsT0FBTyxFQUFFO29CQUNQLDZCQUE2QjtvQkFDN0IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUM7b0JBQzlDLHFCQUFxQjtvQkFDckIsVUFBVTtvQkFDVixXQUFXO29CQUNYLGlCQUFpQjtvQkFDakIsaUJBQWlCO29CQUNqQix1QkFBdUI7aUJBQ3hCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBUZW5hbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RlbmFudHMvdGVuYW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudFN0YXRlIH0gZnJvbSAnLi9zdGF0ZXMvdGVuYW50LW1hbmFnZW1lbnQuc3RhdGUnO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudFJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL3RlbmFudC1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IEZlYXR1cmVNYW5hZ2VtZW50TW9kdWxlIH0gZnJvbSAnQGFicC9uZy5mZWF0dXJlLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVGVuYW50c0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBUZW5hbnRNYW5hZ2VtZW50Um91dGluZ01vZHVsZSxcbiAgICBOZ3hzTW9kdWxlLmZvckZlYXR1cmUoW1RlbmFudE1hbmFnZW1lbnRTdGF0ZV0pLFxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcbiAgICBDb3JlTW9kdWxlLFxuICAgIFRhYmxlTW9kdWxlLFxuICAgIFRoZW1lU2hhcmVkTW9kdWxlLFxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxuICAgIEZlYXR1cmVNYW5hZ2VtZW50TW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUZW5hbnRNYW5hZ2VtZW50TW9kdWxlIHt9XG4iXX0= \ No newline at end of file +/** + * @return {?} + */ +export function TenantManagementProviders() { + return []; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi90ZW5hbnQtbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFlM0QsTUFBTSxPQUFPLHNCQUFzQjs7O1lBYmxDLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDaEMsT0FBTyxFQUFFO29CQUNQLDZCQUE2QjtvQkFDN0IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUM7b0JBQzlDLHFCQUFxQjtvQkFDckIsVUFBVTtvQkFDVixXQUFXO29CQUNYLGlCQUFpQjtvQkFDakIsaUJBQWlCO29CQUNqQix1QkFBdUI7aUJBQ3hCO2FBQ0Y7Ozs7O0FBR0QsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgTmdNb2R1bGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE5neHNNb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgVGVuYW50c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW5hbnRzL3RlbmFudHMuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbmFudE1hbmFnZW1lbnRTdGF0ZSB9IGZyb20gJy4vc3RhdGVzL3RlbmFudC1tYW5hZ2VtZW50LnN0YXRlJztcbmltcG9ydCB7IFRlbmFudE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi90ZW5hbnQtbWFuYWdlbWVudC1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBGZWF0dXJlTWFuYWdlbWVudE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50JztcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1RlbmFudHNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgVGVuYW50TWFuYWdlbWVudFJvdXRpbmdNb2R1bGUsXG4gICAgTmd4c01vZHVsZS5mb3JGZWF0dXJlKFtUZW5hbnRNYW5hZ2VtZW50U3RhdGVdKSxcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXG4gICAgQ29yZU1vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcbiAgICBGZWF0dXJlTWFuYWdlbWVudE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGVuYW50TWFuYWdlbWVudE1vZHVsZSB7fVxuXG5leHBvcnQgZnVuY3Rpb24gVGVuYW50TWFuYWdlbWVudFByb3ZpZGVycygpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtdO1xufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/esm2015/public-api.js b/npm/ng-packs/dist/tenant-management/esm2015/public-api.js index 0da027bafa..72c68e259e 100644 --- a/npm/ng-packs/dist/tenant-management/esm2015/public-api.js +++ b/npm/ng-packs/dist/tenant-management/esm2015/public-api.js @@ -2,8 +2,7 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { RootTenantManagementModule } from './lib/root-tenant-management.module'; -export { TenantManagementModule } from './lib/tenant-management.module'; +export { TenantManagementProviders, TenantManagementModule } from './lib/tenant-management.module'; export { GetTenants, GetTenantById, CreateTenant, UpdateTenant, DeleteTenant } from './lib/actions'; export { TenantsComponent } from './lib/components'; export { TENANT_MANAGEMENT_ROUTES } from './lib/constants'; @@ -11,4 +10,4 @@ export {} from './lib/models'; export { TenantsResolver } from './lib/resolvers'; export { TenantManagementService } from './lib/services'; export { TenantManagementState } from './lib/states'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGVuYW50LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwyQ0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCx1Q0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxvRkFBYyxlQUFlLENBQUM7QUFDOUIsaUNBQWMsa0JBQWtCLENBQUM7QUFDakMseUNBQWMsaUJBQWlCLENBQUM7QUFDaEMsZUFBYyxjQUFjLENBQUM7QUFDN0IsZ0NBQWMsaUJBQWlCLENBQUM7QUFDaEMsd0NBQWMsZ0JBQWdCLENBQUM7QUFDL0Isc0NBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvcm9vdC10ZW5hbnQtbWFuYWdlbWVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVuYW50LW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc29sdmVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGVuYW50LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxrRUFBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxvRkFBYyxlQUFlLENBQUM7QUFDOUIsaUNBQWMsa0JBQWtCLENBQUM7QUFDakMseUNBQWMsaUJBQWlCLENBQUM7QUFDaEMsZUFBYyxjQUFjLENBQUM7QUFDN0IsZ0NBQWMsaUJBQWlCLENBQUM7QUFDaEMsd0NBQWMsZ0JBQWdCLENBQUM7QUFDL0Isc0NBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvdGVuYW50LW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc29sdmVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/esm5/abp-ng.tenant-management.js b/npm/ng-packs/dist/tenant-management/esm5/abp-ng.tenant-management.js index bb2193197a..74b2fd80e7 100644 --- a/npm/ng-packs/dist/tenant-management/esm5/abp-ng.tenant-management.js +++ b/npm/ng-packs/dist/tenant-management/esm5/abp-ng.tenant-management.js @@ -5,11 +5,11 @@ /** * Generated bundle index. Do not edit. */ -export { RootTenantManagementModule, TenantManagementModule, GetTenants, GetTenantById, CreateTenant, UpdateTenant, DeleteTenant, TenantsComponent, TENANT_MANAGEMENT_ROUTES, TenantsResolver, TenantManagementService, TenantManagementState } from './public-api'; +export { TenantManagementProviders, TenantManagementModule, GetTenants, GetTenantById, CreateTenant, UpdateTenant, DeleteTenant, TenantsComponent, TENANT_MANAGEMENT_ROUTES, TenantsResolver, TenantManagementService, TenantManagementState } from './public-api'; export { CreateTenant as ɵf, DeleteTenant as ɵh, GetTenantById as ɵe, GetTenants as ɵd, UpdateTenant as ɵg } from './lib/actions/tenant-management.actions'; export { TenantsComponent as ɵa } from './lib/components/tenants/tenants.component'; export { TenantsResolver as ɵk } from './lib/resolvers/tenants.resolver'; export { TenantManagementService as ɵc } from './lib/services/tenant-management.service'; export { TenantManagementState as ɵb } from './lib/states/tenant-management.state'; export { TenantManagementRoutingModule as ɵj } from './lib/tenant-management-routing.module'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRlbmFudC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImFicC1uZy50ZW5hbnQtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscVBBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0SixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFbEYsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDdkYsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtDcmVhdGVUZW5hbnQgYXMgybVmLERlbGV0ZVRlbmFudCBhcyDJtWgsR2V0VGVuYW50QnlJZCBhcyDJtWUsR2V0VGVuYW50cyBhcyDJtWQsVXBkYXRlVGVuYW50IGFzIMm1Z30gZnJvbSAnLi9saWIvYWN0aW9ucy90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zJztcbmV4cG9ydCB7VGVuYW50c0NvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudCc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnQgYXMgybVpfSBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50LW1hbmFnZW1lbnQnO1xuZXhwb3J0IHtUZW5hbnRzUmVzb2x2ZXIgYXMgybVrfSBmcm9tICcuL2xpYi9yZXNvbHZlcnMvdGVuYW50cy5yZXNvbHZlcic7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9saWIvc2VydmljZXMvdGVuYW50LW1hbmFnZW1lbnQuc2VydmljZSc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcy90ZW5hbnQtbWFuYWdlbWVudC5zdGF0ZSc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlIGFzIMm1an0gZnJvbSAnLi9saWIvdGVuYW50LW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUnOyJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRlbmFudC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImFicC1uZy50ZW5hbnQtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb1BBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0SixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFbEYsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDdkYsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtDcmVhdGVUZW5hbnQgYXMgybVmLERlbGV0ZVRlbmFudCBhcyDJtWgsR2V0VGVuYW50QnlJZCBhcyDJtWUsR2V0VGVuYW50cyBhcyDJtWQsVXBkYXRlVGVuYW50IGFzIMm1Z30gZnJvbSAnLi9saWIvYWN0aW9ucy90ZW5hbnQtbWFuYWdlbWVudC5hY3Rpb25zJztcbmV4cG9ydCB7VGVuYW50c0NvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudCc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnQgYXMgybVpfSBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50LW1hbmFnZW1lbnQnO1xuZXhwb3J0IHtUZW5hbnRzUmVzb2x2ZXIgYXMgybVrfSBmcm9tICcuL2xpYi9yZXNvbHZlcnMvdGVuYW50cy5yZXNvbHZlcic7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9saWIvc2VydmljZXMvdGVuYW50LW1hbmFnZW1lbnQuc2VydmljZSc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcy90ZW5hbnQtbWFuYWdlbWVudC5zdGF0ZSc7XG5leHBvcnQge1RlbmFudE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlIGFzIMm1an0gZnJvbSAnLi9saWIvdGVuYW50LW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUnOyJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/esm5/lib/components/tenants/tenants.component.js b/npm/ng-packs/dist/tenant-management/esm5/lib/components/tenants/tenants.component.js index 9d5ac20bfb..2d99e362f6 100644 --- a/npm/ng-packs/dist/tenant-management/esm5/lib/components/tenants/tenants.component.js +++ b/npm/ng-packs/dist/tenant-management/esm5/lib/components/tenants/tenants.component.js @@ -25,6 +25,7 @@ var TenantsComponent = /** @class */ (function () { }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; } Object.defineProperty(TenantsComponent.prototype, "useSharedDatabase", { get: /** @@ -238,11 +239,14 @@ var TenantsComponent = /** @class */ (function () { .dispatch(this.selected.id ? new UpdateTenant(tslib_1.__assign({}, this.tenantForm.value, { id: this.selected.id })) : new CreateTenant(this.tenantForm.value)) + .pipe(finalize((/** + * @return {?} + */ + function () { return (_this.modalBusy = false); }))) .subscribe((/** * @return {?} */ function () { - _this.modalBusy = false; _this.isModalVisible = false; })); }; @@ -269,7 +273,6 @@ var TenantsComponent = /** @class */ (function () { function (status) { if (status === "confirm" /* confirm */) { _this.store.dispatch(new DeleteTenant(id)); - _this.modalBusy = false; } })); }; @@ -303,10 +306,19 @@ var TenantsComponent = /** @class */ (function () { function () { return (_this.loading = false); }))) .subscribe(); }; + /** + * @return {?} + */ + TenantsComponent.prototype.changeSortOrder = /** + * @return {?} + */ + function () { + this.sortOrder = this.sortOrder.toLowerCase() === "asc" ? "desc" : "asc"; + }; TenantsComponent.decorators = [ { type: Component, args: [{ selector: 'abp-tenants', - template: "
\n
\n
\n
\n
\n {{ 'AbpTenantManagement::Tenants' | abpLocalization }}\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n" + template: "
\n
\n

{{ 'AbpTenantManagement::Tenants' | abpLocalization }}

\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n" }] } ]; /** @nocollapse */ @@ -361,6 +373,8 @@ if (false) { /** @type {?} */ TenantsComponent.prototype.modalBusy; /** @type {?} */ + TenantsComponent.prototype.sortOrder; + /** @type {?} */ TenantsComponent.prototype.tenantModalTemplate; /** @type {?} */ TenantsComponent.prototype.connectionStringModalTemplate; @@ -385,4 +399,4 @@ if (false) { */ TenantsComponent.prototype.store; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFnQixRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQ0wsWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsYUFBYSxFQUNiLFlBQVksR0FDYixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBUTdFO0lBbURFLDBCQUNVLG1CQUF3QyxFQUN4QyxhQUFzQyxFQUN0QyxFQUFlLEVBQ2YsS0FBWTtRQUhaLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBQ3RDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBbEN0Qix5QkFBb0IsR0FBRyxtQkFBQSxFQUFFLEVBQXdCLENBQUM7UUFFbEQsb0JBQWUsR0FBWSxL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QzthQUM1QyxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDOztnQkFuTUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QiwyMkxBQXVDO2lCQUN4Qzs7OztnQkF6QlEsbUJBQW1CO2dCQWFuQix1QkFBdUI7Z0JBWHZCLFdBQVc7Z0JBQ0gsS0FBSzs7O3NDQWdFbkIsU0FBUyxTQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnREFHbEQsU0FBUyxTQUFDLCtCQUErQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7SUExQzdEO1FBREMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQzswQ0FDM0IsVUFBVTttREFBa0I7SUFHbkM7UUFEQyxNQUFNLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUM7MENBQ3RDLFVBQVU7eURBQVM7SUEyTGxDLHVCQUFDO0NBQUEsQUFwTUQsSUFvTUM7U0FoTVksZ0JBQWdCOzs7SUFDM0IsaUNBQ21DOztJQUVuQyx1Q0FDZ0M7O0lBRWhDLG9DQUF3Qjs7SUFFeEIsc0NBQXNCOztJQUV0Qix1REFBdUM7O0lBRXZDLG1EQUFnQzs7SUFFaEMsMENBQXdCOztJQUV4QixnREFBa0Q7O0lBRWxELDJDQUFpQzs7SUFFakMsdUNBQW9COztJQUVwQiw4Q0FBNEI7O0lBRTVCLHFDQUVFOztJQUVGLG1DQUF5Qjs7SUFFekIscUNBQTJCOztJQVUzQiwrQ0FDc0M7O0lBRXRDLHlEQUNnRDs7Ozs7SUFHOUMsK0NBQWdEOzs7OztJQUNoRCx5Q0FBOEM7Ozs7O0lBQzlDLDhCQUF1Qjs7Ozs7SUFDdkIsaUNBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaW5hbGl6ZSwgcGx1Y2ssIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIENyZWF0ZVRlbmFudCxcbiAgRGVsZXRlVGVuYW50LFxuICBHZXRUZW5hbnRzLFxuICBHZXRUZW5hbnRCeUlkLFxuICBVcGRhdGVUZW5hbnQsXG59IGZyb20gJy4uLy4uL2FjdGlvbnMvdGVuYW50LW1hbmFnZW1lbnQuYWN0aW9ucyc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbmFudC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudFN0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGVzL3RlbmFudC1tYW5hZ2VtZW50LnN0YXRlJztcblxudHlwZSBTZWxlY3RlZE1vZGFsQ29udGVudCA9IHtcbiAgdHlwZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC10ZW5hbnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudHMuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUZW5hbnRzQ29tcG9uZW50IHtcbiAgQFNlbGVjdChUZW5hbnRNYW5hZ2VtZW50U3RhdGUuZ2V0KVxuICBkYXRhJDogT2JzZXJ2YWJsZTxBQlAuQmFzaWNJdGVtW10+O1xuXG4gIEBTZWxlY3QoVGVuYW50TWFuYWdlbWVudFN0YXRlLmdldFRlbmFudHNUb3RhbENvdW50KVxuICB0b3RhbENvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIHNlbGVjdGVkOiBBQlAuQmFzaWNJdGVtO1xuXG4gIHRlbmFudEZvcm06IEZvcm1Hcm91cDtcblxuICBkZWZhdWx0Q29ubmVjdGlvblN0cmluZ0Zvcm06IEZvcm1Hcm91cDtcblxuICBkZWZhdWx0Q29ubmVjdGlvblN0cmluZzogc3RyaW5nO1xuXG4gIGlzTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuXG4gIHNlbGVjdGVkTW9kYWxDb250ZW50ID0ge30gYXMgU2VsZWN0ZWRNb2RhbENvbnRlbnQ7XG5cbiAgdmlzaWJsZUZlYXR1cmVzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdmlkZXJLZXk6IHN0cmluZztcblxuICBfdXNlU2hhcmVkRGF0YWJhc2U6IGJvb2xlYW47XG5cbiAgcGFnZVF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zID0ge1xuICAgIHNvcnRpbmc6ICduYW1lJyxcbiAgfTtcblxuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbW9kYWxCdXN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IHVzZVNoYXJlZERhdGFiYXNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRDb25uZWN0aW9uU3RyaW5nRm9ybS5nZXQoJ3VzZVNoYXJlZERhdGFiYXNlJykudmFsdWU7XG4gIH1cblxuICBnZXQgY29ubmVjdGlvblN0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRDb25uZWN0aW9uU3RyaW5nRm9ybS5nZXQoJ2RlZmF1bHRDb25uZWN0aW9uU3RyaW5nJykudmFsdWU7XG4gIH1cblxuICBAVmlld0NoaWxkKCd0ZW5hbnRNb2RhbFRlbXBsYXRlJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHRlbmFudE1vZGFsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZCgnY29ubmVjdGlvblN0cmluZ01vZGFsVGVtcGxhdGUnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgY29ubmVjdGlvblN0cmluZ01vZGFsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdGVuYW50U2VydmljZTogVGVuYW50TWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICkge31cblxuICBvblNlYXJjaCh2YWx1ZSkge1xuICAgIHRoaXMucGFnZVF1ZXJ5LmZpbHRlciA9IHZhbHVlO1xuICAgIHRoaXMuZ2V0KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRlbmFudEZvcm0oKSB7XG4gICAgdGhpcy50ZW5hbnRGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBbdGhpcy5zZWxlY3RlZC5uYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV1dLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEZWZhdWx0Q29ubmVjdGlvblN0cmluZ0Zvcm0oKSB7XG4gICAgdGhpcy5kZWZhdWx0Q29ubmVjdGlvblN0cmluZ0Zvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHVzZVNoYXJlZERhdGFiYXNlOiB0aGlzLl91c2VTaGFyZWREYXRhYmFzZSxcbiAgICAgIGRlZmF1bHRDb25uZWN0aW9uU3RyaW5nOiBbdGhpcy5kZWZhdWx0Q29ubmVjdGlvblN0cmluZyB8fCAnJ10sXG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwodGl0bGU6IHN0cmluZywgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sIHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RhbENvbnRlbnQgPSB7XG4gICAgICB0aXRsZSxcbiAgICAgIHRlbXBsYXRlLFxuICAgICAgdHlwZSxcbiAgICB9O1xuXG4gICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBvbkVkaXRDb25uZWN0aW9uU3RyaW5nKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFRlbmFudEJ5SWQoaWQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHBsdWNrKCdUZW5hbnRNYW5hZ2VtZW50U3RhdGUnLCAnc2VsZWN0ZWRJdGVtJyksXG4gICAgICAgIHN3aXRjaE1hcChzZWxlY3RlZCA9PiB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICAgIHJldHVybiB0aGlzLnRlbmFudFNlcnZpY2UuZ2V0RGVmYXVsdENvbm5lY3Rpb25TdHJpbmcoaWQpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZmV0Y2hlZENvbm5lY3Rpb25TdHJpbmcgPT4ge1xuICAgICAgICB0aGlzLl91c2VTaGFyZWREYXRhYmFzZSA9IGZldGNoZWRDb25uZWN0aW9uU3RyaW5nID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICB0aGlzLmRlZmF1bHRDb25uZWN0aW9uU3RyaW5nID0gZmV0Y2hlZENvbm5lY3Rpb25TdHJpbmcgPyBmZXRjaGVkQ29ubmVjdGlvblN0cmluZyA6ICcnO1xuICAgICAgICB0aGlzLmNyZWF0ZURlZmF1bHRDb25uZWN0aW9uU3RyaW5nRm9ybSgpO1xuICAgICAgICB0aGlzLm9wZW5Nb2RhbCgnQWJwVGVuYW50TWFuYWdlbWVudDo6Q29ubmVjdGlvblN0cmluZ3MnLCB0aGlzLmNvbm5lY3Rpb25TdHJpbmdNb2RhbFRlbXBsYXRlLCAnc2F2ZUNvbm5TdHInKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb25BZGRUZW5hbnQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9IGFzIEFCUC5CYXNpY0l0ZW07XG4gICAgdGhpcy5jcmVhdGVUZW5hbnRGb3JtKCk7XG4gICAgdGhpcy5vcGVuTW9kYWwoJ0FicFRlbmFudE1hbmFnZW1lbnQ6Ok5ld1RlbmFudCcsIHRoaXMudGVuYW50TW9kYWxUZW1wbGF0ZSwgJ3NhdmVUZW5hbnQnKTtcbiAgfVxuXG4gIG9uRWRpdFRlbmFudChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBHZXRUZW5hbnRCeUlkKGlkKSlcbiAgICAgIC5waXBlKHBsdWNrKCdUZW5hbnRNYW5hZ2VtZW50U3RhdGUnLCAnc2VsZWN0ZWRJdGVtJykpXG4gICAgICAuc3Vic2NyaWJlKHNlbGVjdGVkID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICB0aGlzLmNyZWF0ZVRlbmFudEZvcm0oKTtcbiAgICAgICAgdGhpcy5vcGVuTW9kYWwoJ0FicFRlbmFudE1hbmFnZW1lbnQ6OkVkaXQnLCB0aGlzLnRlbmFudE1vZGFsVGVtcGxhdGUsICdzYXZlVGVuYW50Jyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgY29uc3QgeyB0eXBlIH0gPSB0aGlzLnNlbGVjdGVkTW9kYWxDb250ZW50O1xuICAgIGlmICghdHlwZSkgcmV0dXJuO1xuICAgIGlmICh0eXBlID09PSAnc2F2ZVRlbmFudCcpIHRoaXMuc2F2ZVRlbmFudCgpO1xuICAgIGVsc2UgaWYgKHR5cGUgPT09ICdzYXZlQ29ublN0cicpIHRoaXMuc2F2ZUNvbm5lY3Rpb25TdHJpbmcoKTtcbiAgfVxuXG4gIHNhdmVDb25uZWN0aW9uU3RyaW5nKCkge1xuICAgIHRoaXMubW9kYWxCdXN5ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy51c2VTaGFyZWREYXRhYmFzZSB8fCAoIXRoaXMudXNlU2hhcmVkRGF0YWJhc2UgJiYgIXRoaXMuY29ubmVjdGlvblN0cmluZykpIHtcbiAgICAgIHRoaXMudGVuYW50U2VydmljZVxuICAgICAgICAuZGVsZXRlRGVmYXVsdENvbm5lY3Rpb25TdHJpbmcodGhpcy5zZWxlY3RlZC5pZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5tb2RhbEJ1c3kgPSBmYWxzZSkpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGVuYW50U2VydmljZVxuICAgICAgICAudXBkYXRlRGVmYXVsdENvbm5lY3Rpb25TdHJpbmcoeyBpZDogdGhpcy5zZWxlY3RlZC5pZCwgZGVmYXVsdENvbm5lY3Rpb25TdHJpbmc6IHRoaXMuY29ubmVjdGlvblN0cmluZyB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLm1vZGFsQnVzeSA9IGZhbHNlKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzYXZlVGVuYW50KCkge1xuICAgIGlmICghdGhpcy50ZW5hbnRGb3JtLnZhbGlkKSByZXR1cm47XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKFxuICAgICAgICB0aGlzLnNlbGVjdGVkLmlkXG4gICAgICAgICAgPyBuZXcgVXBkYXRlVGVuYW50KHsgLi4udGhpcy50ZW5hbnRGb3JtLnZhbHVlLCBpZDogdGhpcy5zZWxlY3RlZC5pZCB9KVxuICAgICAgICAgIDogbmV3IENyZWF0ZVRlbmFudCh0aGlzLnRlbmFudEZvcm0udmFsdWUpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxuICAgICAgLndhcm4oJ0FicFRlbmFudE1hbmFnZW1lbnQ6OlRlbmFudERlbGV0aW9uQ29uZmlybWF0aW9uTWVzc2FnZScsICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpBcmVZb3VTdXJlJywge1xuICAgICAgICBtZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zOiBbbmFtZV0sXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBUb2FzdGVyLlN0YXR1cykgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09PSBUb2FzdGVyLlN0YXR1cy5jb25maXJtKSB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgRGVsZXRlVGVuYW50KGlkKSk7XG4gICAgICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2UoZGF0YSkge1xuICAgIHRoaXMucGFnZVF1ZXJ5LnNraXBDb3VudCA9IGRhdGEuZmlyc3Q7XG4gICAgdGhpcy5wYWdlUXVlcnkubWF4UmVzdWx0Q291bnQgPSBkYXRhLnJvd3M7XG5cbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgZ2V0KCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBHZXRUZW5hbnRzKHRoaXMucGFnZVF1ZXJ5KSlcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFnQixRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQ0wsWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsYUFBYSxFQUNiLFlBQVksR0FDYixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBUTdFO0lBcURFLDBCQUNVLG1CQUF3QyxFQUN4QyxhQUFzQyxFQUN0QyxFQUFlLEVBQ2YsS0FBWTtRQUhaLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBQ3RDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBcEN0Qix5QkFBb0IsR0FBRyxtQkFBQSxFQUFFLEVBQXdCLENBQUM7UUFFbEQsb0JBQWUsR0FBWSxL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LDhCQUF1Qjs7Ozs7SUFDdkIsaUNBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaW5hbGl6ZSwgcGx1Y2ssIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIENyZWF0ZVRlbmFudCxcbiAgRGVsZXRlVGVuYW50LFxuICBHZXRUZW5hbnRzLFxuICBHZXRUZW5hbnRCeUlkLFxuICBVcGRhdGVUZW5hbnQsXG59IGZyb20gJy4uLy4uL2FjdGlvbnMvdGVuYW50LW1hbmFnZW1lbnQuYWN0aW9ucyc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbmFudC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVuYW50TWFuYWdlbWVudFN0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGVzL3RlbmFudC1tYW5hZ2VtZW50LnN0YXRlJztcblxudHlwZSBTZWxlY3RlZE1vZGFsQ29udGVudCA9IHtcbiAgdHlwZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC10ZW5hbnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudHMuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUZW5hbnRzQ29tcG9uZW50IHtcbiAgQFNlbGVjdChUZW5hbnRNYW5hZ2VtZW50U3RhdGUuZ2V0KVxuICBkYXRhJDogT2JzZXJ2YWJsZTxBQlAuQmFzaWNJdGVtW10+O1xuXG4gIEBTZWxlY3QoVGVuYW50TWFuYWdlbWVudFN0YXRlLmdldFRlbmFudHNUb3RhbENvdW50KVxuICB0b3RhbENvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIHNlbGVjdGVkOiBBQlAuQmFzaWNJdGVtO1xuXG4gIHRlbmFudEZvcm06IEZvcm1Hcm91cDtcblxuICBkZWZhdWx0Q29ubmVjdGlvblN0cmluZ0Zvcm06IEZvcm1Hcm91cDtcblxuICBkZWZhdWx0Q29ubmVjdGlvblN0cmluZzogc3RyaW5nO1xuXG4gIGlzTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuXG4gIHNlbGVjdGVkTW9kYWxDb250ZW50ID0ge30gYXMgU2VsZWN0ZWRNb2RhbENvbnRlbnQ7XG5cbiAgdmlzaWJsZUZlYXR1cmVzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdmlkZXJLZXk6IHN0cmluZztcblxuICBfdXNlU2hhcmVkRGF0YWJhc2U6IGJvb2xlYW47XG5cbiAgcGFnZVF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zID0ge1xuICAgIHNvcnRpbmc6ICduYW1lJyxcbiAgfTtcblxuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbW9kYWxCdXN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgc29ydE9yZGVyOiBzdHJpbmcgPSAnYXNjJztcblxuICBnZXQgdXNlU2hhcmVkRGF0YWJhc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtLmdldCgndXNlU2hhcmVkRGF0YWJhc2UnKS52YWx1ZTtcbiAgfVxuXG4gIGdldCBjb25uZWN0aW9uU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtLmdldCgnZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcnKS52YWx1ZTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3RlbmFudE1vZGFsVGVtcGxhdGUnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgdGVuYW50TW9kYWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdjb25uZWN0aW9uU3RyaW5nTW9kYWxUZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBjb25uZWN0aW9uU3RyaW5nTW9kYWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZW5hbnRTZXJ2aWNlOiBUZW5hbnRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgKSB7fVxuXG4gIG9uU2VhcmNoKHZhbHVlKSB7XG4gICAgdGhpcy5wYWdlUXVlcnkuZmlsdGVyID0gdmFsdWU7XG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGVuYW50Rm9ybSgpIHtcbiAgICB0aGlzLnRlbmFudEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IFt0aGlzLnNlbGVjdGVkLm5hbWUgfHwgJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURlZmF1bHRDb25uZWN0aW9uU3RyaW5nRm9ybSgpIHtcbiAgICB0aGlzLmRlZmF1bHRDb25uZWN0aW9uU3RyaW5nRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgdXNlU2hhcmVkRGF0YWJhc2U6IHRoaXMuX3VzZVNoYXJlZERhdGFiYXNlLFxuICAgICAgZGVmYXVsdENvbm5lY3Rpb25TdHJpbmc6IFt0aGlzLmRlZmF1bHRDb25uZWN0aW9uU3RyaW5nIHx8ICcnXSxcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCh0aXRsZTogc3RyaW5nLCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiwgdHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGFsQ29udGVudCA9IHtcbiAgICAgIHRpdGxlLFxuICAgICAgdGVtcGxhdGUsXG4gICAgICB0eXBlLFxuICAgIH07XG5cbiAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIG9uRWRpdENvbm5lY3Rpb25TdHJpbmcoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgR2V0VGVuYW50QnlJZChpZCkpXG4gICAgICAucGlwZShcbiAgICAgICAgcGx1Y2soJ1RlbmFudE1hbmFnZW1lbnRTdGF0ZScsICdzZWxlY3RlZEl0ZW0nKSxcbiAgICAgICAgc3dpdGNoTWFwKHNlbGVjdGVkID0+IHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudGVuYW50U2VydmljZS5nZXREZWZhdWx0Q29ubmVjdGlvblN0cmluZyhpZCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShmZXRjaGVkQ29ubmVjdGlvblN0cmluZyA9PiB7XG4gICAgICAgIHRoaXMuX3VzZVNoYXJlZERhdGFiYXNlID0gZmV0Y2hlZENvbm5lY3Rpb25TdHJpbmcgPyBmYWxzZSA6IHRydWU7XG4gICAgICAgIHRoaXMuZGVmYXVsdENvbm5lY3Rpb25TdHJpbmcgPSBmZXRjaGVkQ29ubmVjdGlvblN0cmluZyA/IGZldGNoZWRDb25uZWN0aW9uU3RyaW5nIDogJyc7XG4gICAgICAgIHRoaXMuY3JlYXRlRGVmYXVsdENvbm5lY3Rpb25TdHJpbmdGb3JtKCk7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsKCdBYnBUZW5hbnRNYW5hZ2VtZW50OjpDb25uZWN0aW9uU3RyaW5ncycsIHRoaXMuY29ubmVjdGlvblN0cmluZ01vZGFsVGVtcGxhdGUsICdzYXZlQ29ublN0cicpO1xuICAgICAgfSk7XG4gIH1cblxuICBvbkFkZFRlbmFudCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkID0ge30gYXMgQUJQLkJhc2ljSXRlbTtcbiAgICB0aGlzLmNyZWF0ZVRlbmFudEZvcm0oKTtcbiAgICB0aGlzLm9wZW5Nb2RhbCgnQWJwVGVuYW50TWFuYWdlbWVudDo6TmV3VGVuYW50JywgdGhpcy50ZW5hbnRNb2RhbFRlbXBsYXRlLCAnc2F2ZVRlbmFudCcpO1xuICB9XG5cbiAgb25FZGl0VGVuYW50KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldFRlbmFudEJ5SWQoaWQpKVxuICAgICAgLnBpcGUocGx1Y2soJ1RlbmFudE1hbmFnZW1lbnRTdGF0ZScsICdzZWxlY3RlZEl0ZW0nKSlcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0ZWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMuY3JlYXRlVGVuYW50Rm9ybSgpO1xuICAgICAgICB0aGlzLm9wZW5Nb2RhbCgnQWJwVGVuYW50TWFuYWdlbWVudDo6RWRpdCcsIHRoaXMudGVuYW50TW9kYWxUZW1wbGF0ZSwgJ3NhdmVUZW5hbnQnKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IHRoaXMuc2VsZWN0ZWRNb2RhbENvbnRlbnQ7XG4gICAgaWYgKCF0eXBlKSByZXR1cm47XG4gICAgaWYgKHR5cGUgPT09ICdzYXZlVGVuYW50JykgdGhpcy5zYXZlVGVuYW50KCk7XG4gICAgZWxzZSBpZiAodHlwZSA9PT0gJ3NhdmVDb25uU3RyJykgdGhpcy5zYXZlQ29ubmVjdGlvblN0cmluZygpO1xuICB9XG5cbiAgc2F2ZUNvbm5lY3Rpb25TdHJpbmcoKSB7XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuICAgIGlmICh0aGlzLnVzZVNoYXJlZERhdGFiYXNlIHx8ICghdGhpcy51c2VTaGFyZWREYXRhYmFzZSAmJiAhdGhpcy5jb25uZWN0aW9uU3RyaW5nKSkge1xuICAgICAgdGhpcy50ZW5hbnRTZXJ2aWNlXG4gICAgICAgIC5kZWxldGVEZWZhdWx0Q29ubmVjdGlvblN0cmluZyh0aGlzLnNlbGVjdGVkLmlkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLm1vZGFsQnVzeSA9IGZhbHNlKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZW5hbnRTZXJ2aWNlXG4gICAgICAgIC51cGRhdGVEZWZhdWx0Q29ubmVjdGlvblN0cmluZyh7IGlkOiB0aGlzLnNlbGVjdGVkLmlkLCBkZWZhdWx0Q29ubmVjdGlvblN0cmluZzogdGhpcy5jb25uZWN0aW9uU3RyaW5nIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMubW9kYWxCdXN5ID0gZmFsc2UpKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNhdmVUZW5hbnQoKSB7XG4gICAgaWYgKCF0aGlzLnRlbmFudEZvcm0udmFsaWQpIHJldHVybjtcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2goXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuaWRcbiAgICAgICAgICA/IG5ldyBVcGRhdGVUZW5hbnQoeyAuLi50aGlzLnRlbmFudEZvcm0udmFsdWUsIGlkOiB0aGlzLnNlbGVjdGVkLmlkIH0pXG4gICAgICAgICAgOiBuZXcgQ3JlYXRlVGVuYW50KHRoaXMudGVuYW50Rm9ybS52YWx1ZSksXG4gICAgICApXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKT0+ICh0aGlzLm1vZGFsQnVzeSA9IGZhbHNlKSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgfSk7XG4gIH1cblxuICBkZWxldGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlXG4gICAgICAud2FybignQWJwVGVuYW50TWFuYWdlbWVudDo6VGVuYW50RGVsZXRpb25Db25maXJtYXRpb25NZXNzYWdlJywgJ0FicFRlbmFudE1hbmFnZW1lbnQ6OkFyZVlvdVN1cmUnLCB7XG4gICAgICAgIG1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXM6IFtuYW1lXSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IFRvYXN0ZXIuU3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm0pIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBEZWxldGVUZW5hbnQoaWQpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2UoZGF0YSkge1xuICAgIHRoaXMucGFnZVF1ZXJ5LnNraXBDb3VudCA9IGRhdGEuZmlyc3Q7XG4gICAgdGhpcy5wYWdlUXVlcnkubWF4UmVzdWx0Q291bnQgPSBkYXRhLnJvd3M7XG5cbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgZ2V0KCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBHZXRUZW5hbnRzKHRoaXMucGFnZVF1ZXJ5KSlcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgY2hhbmdlU29ydE9yZGVyKCkge1xuICAgIHRoaXMuc29ydE9yZGVyID0gdGhpcy5zb3J0T3JkZXIudG9Mb3dlckNhc2UoKSA9PT0gXCJhc2NcIiA/IFwiZGVzY1wiIDogXCJhc2NcIjtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/esm5/lib/constants/routes.js b/npm/ng-packs/dist/tenant-management/esm5/lib/constants/routes.js index f56dbbbfd6..b7863165d8 100644 --- a/npm/ng-packs/dist/tenant-management/esm5/lib/constants/routes.js +++ b/npm/ng-packs/dist/tenant-management/esm5/lib/constants/routes.js @@ -21,6 +21,5 @@ export var TENANT_MANAGEMENT_ROUTES = { ], }, ])), - settings: [], }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBTSxLQUFPLHdCQUF3QixHQUFHO0lBQ3RDLE1BQU0sRUFBRSxtQkFBQTtRQUNOO1lBQ0UsSUFBSSxFQUFFLDRDQUE0QztZQUNsRCxJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFVBQVUsRUFBRSxzQ0FBc0M7WUFDbEQsTUFBTSxpQ0FBeUI7WUFDL0IsU0FBUyxFQUFFLGFBQWE7WUFDeEIsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSw4QkFBOEI7b0JBQ3BDLEtBQUssRUFBRSxDQUFDO29CQUNSLGNBQWMsRUFBRSw2QkFBNkI7aUJBQzlDO2FBQ0Y7U0FDRjtLQUNGLEVBQW1CO0lBQ3BCLFFBQVEsRUFBRSxFQUFFO0NBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGVMYXlvdXRUeXBlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcblxuZXhwb3J0IGNvbnN0IFRFTkFOVF9NQU5BR0VNRU5UX1JPVVRFUyA9IHtcbiAgcm91dGVzOiBbXG4gICAge1xuICAgICAgbmFtZTogJ0FicFRlbmFudE1hbmFnZW1lbnQ6Ok1lbnU6VGVuYW50TWFuYWdlbWVudCcsXG4gICAgICBwYXRoOiAndGVuYW50LW1hbmFnZW1lbnQnLFxuICAgICAgcGFyZW50TmFtZTogJ0FicFVpTmF2aWdhdGlvbjo6TWVudTpBZG1pbmlzdHJhdGlvbicsXG4gICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxuICAgICAgaWNvbkNsYXNzOiAnZmEgZmEtdXNlcnMnLFxuICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAge1xuICAgICAgICAgIHBhdGg6ICd0ZW5hbnRzJyxcbiAgICAgICAgICBuYW1lOiAnQWJwVGVuYW50TWFuYWdlbWVudDo6VGVuYW50cycsXG4gICAgICAgICAgb3JkZXI6IDEsXG4gICAgICAgICAgcmVxdWlyZWRQb2xpY3k6ICdBYnBUZW5hbnRNYW5hZ2VtZW50LlRlbmFudHMnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdIGFzIEFCUC5GdWxsUm91dGVbXSxcbiAgc2V0dGluZ3M6IFtdLFxufTtcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsTUFBTSxLQUFPLHdCQUF3QixHQUFHO0lBQ3RDLE1BQU0sRUFBRSxtQkFBQTtRQUNOO1lBQ0UsSUFBSSxFQUFFLDRDQUE0QztZQUNsRCxJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFVBQVUsRUFBRSxzQ0FBc0M7WUFDbEQsTUFBTSxpQ0FBeUI7WUFDL0IsU0FBUyxFQUFFLGFBQWE7WUFDeEIsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSw4QkFBOEI7b0JBQ3BDLEtBQUssRUFBRSxDQUFDO29CQUNSLGNBQWMsRUFBRSw2QkFBNkI7aUJBQzlDO2FBQ0Y7U0FDRjtLQUNGLEVBQW1CO0NBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBlTGF5b3V0VHlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbmV4cG9ydCBjb25zdCBURU5BTlRfTUFOQUdFTUVOVF9ST1VURVMgPSB7XG4gIHJvdXRlczogW1xuICAgIHtcbiAgICAgIG5hbWU6ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpNZW51OlRlbmFudE1hbmFnZW1lbnQnLFxuICAgICAgcGF0aDogJ3RlbmFudC1tYW5hZ2VtZW50JyxcbiAgICAgIHBhcmVudE5hbWU6ICdBYnBVaU5hdmlnYXRpb246Ok1lbnU6QWRtaW5pc3RyYXRpb24nLFxuICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcbiAgICAgIGljb25DbGFzczogJ2ZhIGZhLXVzZXJzJyxcbiAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwYXRoOiAndGVuYW50cycsXG4gICAgICAgICAgbmFtZTogJ0FicFRlbmFudE1hbmFnZW1lbnQ6OlRlbmFudHMnLFxuICAgICAgICAgIG9yZGVyOiAxLFxuICAgICAgICAgIHJlcXVpcmVkUG9saWN5OiAnQWJwVGVuYW50TWFuYWdlbWVudC5UZW5hbnRzJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSBhcyBBQlAuRnVsbFJvdXRlW10sXG59O1xuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/esm5/lib/root-tenant-management.module.js b/npm/ng-packs/dist/tenant-management/esm5/lib/root-tenant-management.module.js deleted file mode 100644 index a6967c63ed..0000000000 --- a/npm/ng-packs/dist/tenant-management/esm5/lib/root-tenant-management.module.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import { NgModule } from '@angular/core'; -var RootTenantManagementModule = /** @class */ (function () { - function RootTenantManagementModule() { - } - /** - * @return {?} - */ - RootTenantManagementModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootTenantManagementModule, - providers: [], - }; - }; - RootTenantManagementModule.decorators = [ - { type: NgModule, args: [{},] } - ]; - return RootTenantManagementModule; -}()); -export { RootTenantManagementModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC10ZW5hbnQtbWFuYWdlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRlbmFudC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3Jvb3QtdGVuYW50LW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RDtJQUFBO0lBUUEsQ0FBQzs7OztJQU5RLGtDQUFPOzs7SUFBZDtRQUNFLE9BQU87WUFDTCxRQUFRLEVBQUUsMEJBQTBCO1lBQ3BDLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztJQUNKLENBQUM7O2dCQVBGLFFBQVEsU0FBQyxFQUFFOztJQVFaLGlDQUFDO0NBQUEsQUFSRCxJQVFDO1NBUFksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIFJvb3RUZW5hbnRNYW5hZ2VtZW50TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBSb290VGVuYW50TWFuYWdlbWVudE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW10sXG4gICAgfTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/esm5/lib/tenant-management.module.js b/npm/ng-packs/dist/tenant-management/esm5/lib/tenant-management.module.js index f4d50cd7bf..ec4e5002a8 100644 --- a/npm/ng-packs/dist/tenant-management/esm5/lib/tenant-management.module.js +++ b/npm/ng-packs/dist/tenant-management/esm5/lib/tenant-management.module.js @@ -34,4 +34,10 @@ var TenantManagementModule = /** @class */ (function () { return TenantManagementModule; }()); export { TenantManagementModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi90ZW5hbnQtbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0Q7SUFBQTtJQWFxQyxDQUFDOztnQkFickMsUUFBUSxTQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNoQyxPQUFPLEVBQUU7d0JBQ1AsNkJBQTZCO3dCQUM3QixVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQzt3QkFDOUMscUJBQXFCO3dCQUNyQixVQUFVO3dCQUNWLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLHVCQUF1QjtxQkFDeEI7aUJBQ0Y7O0lBQ29DLDZCQUFDO0NBQUEsQUFidEMsSUFhc0M7U0FBekIsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE5neHNNb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgVGVuYW50c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW5hbnRzL3RlbmFudHMuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbmFudE1hbmFnZW1lbnRTdGF0ZSB9IGZyb20gJy4vc3RhdGVzL3RlbmFudC1tYW5hZ2VtZW50LnN0YXRlJztcbmltcG9ydCB7IFRlbmFudE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi90ZW5hbnQtbWFuYWdlbWVudC1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBGZWF0dXJlTWFuYWdlbWVudE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50JztcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1RlbmFudHNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgVGVuYW50TWFuYWdlbWVudFJvdXRpbmdNb2R1bGUsXG4gICAgTmd4c01vZHVsZS5mb3JGZWF0dXJlKFtUZW5hbnRNYW5hZ2VtZW50U3RhdGVdKSxcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXG4gICAgQ29yZU1vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcbiAgICBGZWF0dXJlTWFuYWdlbWVudE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGVuYW50TWFuYWdlbWVudE1vZHVsZSB7fVxuIl19 \ No newline at end of file +/** + * @return {?} + */ +export function TenantManagementProviders() { + return []; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50ZW5hbnQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi90ZW5hbnQtbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0Q7SUFBQTtJQWFxQyxDQUFDOztnQkFickMsUUFBUSxTQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNoQyxPQUFPLEVBQUU7d0JBQ1AsNkJBQTZCO3dCQUM3QixVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQzt3QkFDOUMscUJBQXFCO3dCQUNyQixVQUFVO3dCQUNWLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLHVCQUF1QjtxQkFDeEI7aUJBQ0Y7O0lBQ29DLDZCQUFDO0NBQUEsQUFidEMsSUFhc0M7U0FBekIsc0JBQXNCOzs7O0FBRW5DLE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IE5nTW9kdWxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBOZ3hzTW9kdWxlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IFRlbmFudHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuL3N0YXRlcy90ZW5hbnQtbWFuYWdlbWVudC5zdGF0ZSc7XG5pbXBvcnQgeyBUZW5hbnRNYW5hZ2VtZW50Um91dGluZ01vZHVsZSB9IGZyb20gJy4vdGVuYW50LW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgRmVhdHVyZU1hbmFnZW1lbnRNb2R1bGUgfSBmcm9tICdAYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtUZW5hbnRzQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIFRlbmFudE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlLFxuICAgIE5neHNNb2R1bGUuZm9yRmVhdHVyZShbVGVuYW50TWFuYWdlbWVudFN0YXRlXSksXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxuICAgIENvcmVNb2R1bGUsXG4gICAgVGFibGVNb2R1bGUsXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXG4gICAgRmVhdHVyZU1hbmFnZW1lbnRNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudE1hbmFnZW1lbnRNb2R1bGUge31cblxuZXhwb3J0IGZ1bmN0aW9uIFRlbmFudE1hbmFnZW1lbnRQcm92aWRlcnMoKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/esm5/public-api.js b/npm/ng-packs/dist/tenant-management/esm5/public-api.js index 0da027bafa..72c68e259e 100644 --- a/npm/ng-packs/dist/tenant-management/esm5/public-api.js +++ b/npm/ng-packs/dist/tenant-management/esm5/public-api.js @@ -2,8 +2,7 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { RootTenantManagementModule } from './lib/root-tenant-management.module'; -export { TenantManagementModule } from './lib/tenant-management.module'; +export { TenantManagementProviders, TenantManagementModule } from './lib/tenant-management.module'; export { GetTenants, GetTenantById, CreateTenant, UpdateTenant, DeleteTenant } from './lib/actions'; export { TenantsComponent } from './lib/components'; export { TENANT_MANAGEMENT_ROUTES } from './lib/constants'; @@ -11,4 +10,4 @@ export {} from './lib/models'; export { TenantsResolver } from './lib/resolvers'; export { TenantManagementService } from './lib/services'; export { TenantManagementState } from './lib/states'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGVuYW50LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwyQ0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCx1Q0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxvRkFBYyxlQUFlLENBQUM7QUFDOUIsaUNBQWMsa0JBQWtCLENBQUM7QUFDakMseUNBQWMsaUJBQWlCLENBQUM7QUFDaEMsZUFBYyxjQUFjLENBQUM7QUFDN0IsZ0NBQWMsaUJBQWlCLENBQUM7QUFDaEMsd0NBQWMsZ0JBQWdCLENBQUM7QUFDL0Isc0NBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvcm9vdC10ZW5hbnQtbWFuYWdlbWVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVuYW50LW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc29sdmVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGVuYW50LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxrRUFBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxvRkFBYyxlQUFlLENBQUM7QUFDOUIsaUNBQWMsa0JBQWtCLENBQUM7QUFDakMseUNBQWMsaUJBQWlCLENBQUM7QUFDaEMsZUFBYyxjQUFjLENBQUM7QUFDN0IsZ0NBQWMsaUJBQWlCLENBQUM7QUFDaEMsd0NBQWMsZ0JBQWdCLENBQUM7QUFDL0Isc0NBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvdGVuYW50LW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc29sdmVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/fesm2015/abp-ng.tenant-management.js b/npm/ng-packs/dist/tenant-management/fesm2015/abp-ng.tenant-management.js index bd20ff80ae..7a1812c115 100644 --- a/npm/ng-packs/dist/tenant-management/fesm2015/abp-ng.tenant-management.js +++ b/npm/ng-packs/dist/tenant-management/fesm2015/abp-ng.tenant-management.js @@ -1,6 +1,6 @@ -import { NgModule, Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild } from '@angular/core'; import { RestService, DynamicLayoutComponent, AuthGuard, PermissionGuard, CoreModule } from '@abp/ng.core'; import { ConfirmationService, ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild, NgModule } from '@angular/core'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; import { TableModule } from 'primeng/table'; @@ -12,25 +12,6 @@ import { RouterModule } from '@angular/router'; import { FeatureManagementModule } from '@abp/ng.feature-management'; import { NgxValidateCoreModule } from '@ngx-validate/core'; -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -class RootTenantManagementModule { - /** - * @return {?} - */ - static forRoot() { - return { - ngModule: RootTenantManagementModule, - providers: [], - }; - } -} -RootTenantManagementModule.decorators = [ - { type: NgModule, args: [{},] } -]; - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -421,6 +402,7 @@ class TenantsComponent { }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; } /** * @return {?} @@ -584,11 +566,14 @@ class TenantsComponent { .dispatch(this.selected.id ? new UpdateTenant(Object.assign({}, this.tenantForm.value, { id: this.selected.id })) : new CreateTenant(this.tenantForm.value)) + .pipe(finalize((/** + * @return {?} + */ + () => (this.modalBusy = false)))) .subscribe((/** * @return {?} */ () => { - this.modalBusy = false; this.isModalVisible = false; })); } @@ -609,7 +594,6 @@ class TenantsComponent { (status) => { if (status === "confirm" /* confirm */) { this.store.dispatch(new DeleteTenant(id)); - this.modalBusy = false; } })); } @@ -635,11 +619,17 @@ class TenantsComponent { () => (this.loading = false)))) .subscribe(); } + /** + * @return {?} + */ + changeSortOrder() { + this.sortOrder = this.sortOrder.toLowerCase() === "asc" ? "desc" : "asc"; + } } TenantsComponent.decorators = [ { type: Component, args: [{ selector: 'abp-tenants', - template: "
\n
\n
\n
\n
\n {{ 'AbpTenantManagement::Tenants' | abpLocalization }}\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n" + template: "
\n
\n

{{ 'AbpTenantManagement::Tenants' | abpLocalization }}

\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n" }] } ]; /** @nocollapse */ @@ -691,6 +681,8 @@ if (false) { /** @type {?} */ TenantsComponent.prototype.modalBusy; /** @type {?} */ + TenantsComponent.prototype.sortOrder; + /** @type {?} */ TenantsComponent.prototype.tenantModalTemplate; /** @type {?} */ TenantsComponent.prototype.connectionStringModalTemplate; @@ -798,6 +790,12 @@ TenantManagementModule.decorators = [ ], },] } ]; +/** + * @return {?} + */ +function TenantManagementProviders() { + return []; +} /** * @fileoverview added by tsickle @@ -832,7 +830,6 @@ const TENANT_MANAGEMENT_ROUTES = { ], }, ])), - settings: [], }; /** @@ -929,5 +926,5 @@ var TenantManagement; * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { CreateTenant, DeleteTenant, GetTenantById, GetTenants, RootTenantManagementModule, TENANT_MANAGEMENT_ROUTES, TenantManagementModule, TenantManagementService, TenantManagementState, TenantsComponent, TenantsResolver, UpdateTenant, TenantsComponent as ɵa, TenantManagementState as ɵb, TenantManagementService as ɵc, GetTenants as ɵd, GetTenantById as ɵe, CreateTenant as ɵf, UpdateTenant as ɵg, DeleteTenant as ɵh, TenantManagementRoutingModule as ɵj, TenantsResolver as ɵk }; +export { CreateTenant, DeleteTenant, GetTenantById, GetTenants, TENANT_MANAGEMENT_ROUTES, TenantManagementModule, TenantManagementProviders, TenantManagementService, TenantManagementState, TenantsComponent, TenantsResolver, UpdateTenant, TenantsComponent as ɵa, TenantManagementState as ɵb, TenantManagementService as ɵc, GetTenants as ɵd, GetTenantById as ɵe, CreateTenant as ɵf, UpdateTenant as ɵg, DeleteTenant as ɵh, TenantManagementRoutingModule as ɵj, TenantsResolver as ɵk }; //# sourceMappingURL=abp-ng.tenant-management.js.map diff --git a/npm/ng-packs/dist/tenant-management/fesm2015/abp-ng.tenant-management.js.map b/npm/ng-packs/dist/tenant-management/fesm2015/abp-ng.tenant-management.js.map index 5efbd879b8..fbba9a096b 100644 --- a/npm/ng-packs/dist/tenant-management/fesm2015/abp-ng.tenant-management.js.map +++ b/npm/ng-packs/dist/tenant-management/fesm2015/abp-ng.tenant-management.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.tenant-management.js","sources":["ng://@abp/ng.tenant-management/lib/root-tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/actions/tenant-management.actions.ts","ng://@abp/ng.tenant-management/lib/services/tenant-management.service.ts","ng://@abp/ng.tenant-management/lib/states/tenant-management.state.ts","ng://@abp/ng.tenant-management/lib/components/tenants/tenants.component.ts","ng://@abp/ng.tenant-management/lib/resolvers/tenants.resolver.ts","ng://@abp/ng.tenant-management/lib/tenant-management-routing.module.ts","ng://@abp/ng.tenant-management/lib/tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/constants/routes.ts","ng://@abp/ng.tenant-management/lib/models/tenant-management.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootTenantManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootTenantManagementModule,\n providers: [],\n };\n }\n}\n","import { TenantManagement } from '../models/tenant-management';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetTenants {\n static readonly type = '[TenantManagement] Get Tenant';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetTenantById {\n static readonly type = '[TenantManagement] Get Tenant By Id';\n constructor(public payload: string) {}\n}\n\nexport class CreateTenant {\n static readonly type = '[TenantManagement] Create Tenant';\n constructor(public payload: TenantManagement.AddRequest) {}\n}\n\nexport class UpdateTenant {\n static readonly type = '[TenantManagement] Update Tenant';\n constructor(public payload: TenantManagement.UpdateRequest) {}\n}\n\nexport class DeleteTenant {\n static readonly type = '[TenantManagement] Delete Tenant';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { TenantManagement } from '../models/tenant-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantManagementService {\n constructor(private rest: RestService) {}\n\n getTenant(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/multi-tenancy/tenants',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getTenantById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteTenant(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createTenant(body: TenantManagement.AddRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/multi-tenancy/tenants`,\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateTenant(body: TenantManagement.UpdateRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'GET',\n responseType: Rest.ResponseType.Text,\n url,\n };\n return this.rest.request(request);\n }\n\n updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${payload.id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n params: { defaultConnectionString: payload.defaultConnectionString },\n };\n return this.rest.request(request);\n }\n\n deleteDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'DELETE',\n url,\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementService } from '../services/tenant-management.service';\nimport { ABP } from '@abp/ng.core';\n\n@State({\n name: 'TenantManagementState',\n defaults: { result: {}, selectedItem: {} } as TenantManagement.State,\n})\nexport class TenantManagementState {\n @Selector()\n static get({ result }: TenantManagement.State): ABP.BasicItem[] {\n return result.items || [];\n }\n\n @Selector()\n static getTenantsTotalCount({ result }: TenantManagement.State): number {\n return result.totalCount;\n }\n\n constructor(private tenantManagementService: TenantManagementService) {}\n\n @Action(GetTenants)\n get({ patchState }: StateContext, { payload }: GetTenants) {\n return this.tenantManagementService.getTenant(payload).pipe(\n tap(result =>\n patchState({\n result,\n }),\n ),\n );\n }\n\n @Action(GetTenantById)\n getById({ patchState }: StateContext, { payload }: GetTenantById) {\n return this.tenantManagementService.getTenantById(payload).pipe(\n tap(selectedItem =>\n patchState({\n selectedItem,\n }),\n ),\n );\n }\n\n @Action(DeleteTenant)\n delete({ dispatch }: StateContext, { payload }: DeleteTenant) {\n return this.tenantManagementService.deleteTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(CreateTenant)\n add({ dispatch }: StateContext, { payload }: CreateTenant) {\n return this.tenantManagementService.createTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(UpdateTenant)\n update({ dispatch, getState }: StateContext, { payload }: UpdateTenant) {\n return dispatch(new GetTenantById(payload.id)).pipe(\n switchMap(() => this.tenantManagementService.updateTenant({ ...getState().selectedItem, ...payload })),\n switchMap(() => dispatch(new GetTenants())),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../../actions/tenant-management.actions';\nimport { TenantManagementService } from '../../services/tenant-management.service';\nimport { TenantManagementState } from '../../states/tenant-management.state';\n\ntype SelectedModalContent = {\n type: string;\n title: string;\n template: TemplateRef;\n};\n\n@Component({\n selector: 'abp-tenants',\n templateUrl: './tenants.component.html',\n})\nexport class TenantsComponent {\n @Select(TenantManagementState.get)\n data$: Observable;\n\n @Select(TenantManagementState.getTenantsTotalCount)\n totalCount$: Observable;\n\n selected: ABP.BasicItem;\n\n tenantForm: FormGroup;\n\n defaultConnectionStringForm: FormGroup;\n\n defaultConnectionString: string;\n\n isModalVisible: boolean;\n\n selectedModalContent = {} as SelectedModalContent;\n\n visibleFeatures: boolean = false;\n\n providerKey: string;\n\n _useSharedDatabase: boolean;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n get useSharedDatabase(): boolean {\n return this.defaultConnectionStringForm.get('useSharedDatabase').value;\n }\n\n get connectionString(): string {\n return this.defaultConnectionStringForm.get('defaultConnectionString').value;\n }\n\n @ViewChild('tenantModalTemplate', { static: false })\n tenantModalTemplate: TemplateRef;\n\n @ViewChild('connectionStringModalTemplate', { static: false })\n connectionStringModalTemplate: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private tenantService: TenantManagementService,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n private createTenantForm() {\n this.tenantForm = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n });\n }\n\n private createDefaultConnectionStringForm() {\n this.defaultConnectionStringForm = this.fb.group({\n useSharedDatabase: this._useSharedDatabase,\n defaultConnectionString: [this.defaultConnectionString || ''],\n });\n }\n\n openModal(title: string, template: TemplateRef, type: string) {\n this.selectedModalContent = {\n title,\n template,\n type,\n };\n\n this.isModalVisible = true;\n }\n\n onEditConnectionString(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(\n pluck('TenantManagementState', 'selectedItem'),\n switchMap(selected => {\n this.selected = selected;\n return this.tenantService.getDefaultConnectionString(id);\n }),\n )\n .subscribe(fetchedConnectionString => {\n this._useSharedDatabase = fetchedConnectionString ? false : true;\n this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : '';\n this.createDefaultConnectionStringForm();\n this.openModal('AbpTenantManagement::ConnectionStrings', this.connectionStringModalTemplate, 'saveConnStr');\n });\n }\n\n onAddTenant() {\n this.selected = {} as ABP.BasicItem;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::NewTenant', this.tenantModalTemplate, 'saveTenant');\n }\n\n onEditTenant(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(pluck('TenantManagementState', 'selectedItem'))\n .subscribe(selected => {\n this.selected = selected;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::Edit', this.tenantModalTemplate, 'saveTenant');\n });\n }\n\n save() {\n const { type } = this.selectedModalContent;\n if (!type) return;\n if (type === 'saveTenant') this.saveTenant();\n else if (type === 'saveConnStr') this.saveConnectionString();\n }\n\n saveConnectionString() {\n this.modalBusy = true;\n if (this.useSharedDatabase || (!this.useSharedDatabase && !this.connectionString)) {\n this.tenantService\n .deleteDefaultConnectionString(this.selected.id)\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n } else {\n this.tenantService\n .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n }\n }\n\n saveTenant() {\n if (!this.tenantForm.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateTenant({ ...this.tenantForm.value, id: this.selected.id })\n : new CreateTenant(this.tenantForm.value),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteTenant(id));\n this.modalBusy = false;\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetTenants(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetTenants } from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementState } from '../states/tenant-management.state';\n\n@Injectable()\nexport class TenantsResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const data = this.store.selectSnapshot(TenantManagementState.get);\n return data && data.length ? null : this.store.dispatch(new GetTenants());\n }\n}\n","import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { TenantsResolver } from './resolvers/tenants.resolver';\nimport { TenantsComponent } from './components/tenants/tenants.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\n {\n path: 'tenants',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpTenantManagement.Tenants' },\n children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [TenantsResolver],\n})\nexport class TenantManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxsModule } from '@ngxs/store';\nimport { TableModule } from 'primeng/table';\nimport { TenantsComponent } from './components/tenants/tenants.component';\nimport { TenantManagementState } from './states/tenant-management.state';\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\nimport { FeatureManagementModule } from '@abp/ng.feature-management';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [TenantsComponent],\n imports: [\n TenantManagementRoutingModule,\n NgxsModule.forFeature([TenantManagementState]),\n NgxValidateCoreModule,\n CoreModule,\n TableModule,\n ThemeSharedModule,\n NgbDropdownModule,\n FeatureManagementModule,\n ],\n})\nexport class TenantManagementModule {}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const TENANT_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'AbpTenantManagement::Menu:TenantManagement',\n path: 'tenant-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-users',\n children: [\n {\n path: 'tenants',\n name: 'AbpTenantManagement::Tenants',\n order: 1,\n requiredPolicy: 'AbpTenantManagement.Tenants',\n },\n ],\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace TenantManagement {\n export interface State {\n result: Response;\n selectedItem: Item;\n }\n\n export type Response = ABP.PagedResponse;\n\n export interface Item {\n id: string;\n name: string;\n }\n\n export interface AddRequest {\n name: string;\n }\n\n export interface UpdateRequest extends AddRequest {\n id: string;\n }\n\n export interface DefaultConnectionStringRequest {\n id: string;\n defaultConnectionString: string;\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.tenant-management.js","sources":["ng://@abp/ng.tenant-management/lib/actions/tenant-management.actions.ts","ng://@abp/ng.tenant-management/lib/services/tenant-management.service.ts","ng://@abp/ng.tenant-management/lib/states/tenant-management.state.ts","ng://@abp/ng.tenant-management/lib/components/tenants/tenants.component.ts","ng://@abp/ng.tenant-management/lib/resolvers/tenants.resolver.ts","ng://@abp/ng.tenant-management/lib/tenant-management-routing.module.ts","ng://@abp/ng.tenant-management/lib/tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/constants/routes.ts","ng://@abp/ng.tenant-management/lib/models/tenant-management.ts"],"sourcesContent":["import { TenantManagement } from '../models/tenant-management';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetTenants {\n static readonly type = '[TenantManagement] Get Tenant';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetTenantById {\n static readonly type = '[TenantManagement] Get Tenant By Id';\n constructor(public payload: string) {}\n}\n\nexport class CreateTenant {\n static readonly type = '[TenantManagement] Create Tenant';\n constructor(public payload: TenantManagement.AddRequest) {}\n}\n\nexport class UpdateTenant {\n static readonly type = '[TenantManagement] Update Tenant';\n constructor(public payload: TenantManagement.UpdateRequest) {}\n}\n\nexport class DeleteTenant {\n static readonly type = '[TenantManagement] Delete Tenant';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { TenantManagement } from '../models/tenant-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantManagementService {\n constructor(private rest: RestService) {}\n\n getTenant(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/multi-tenancy/tenants',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getTenantById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteTenant(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createTenant(body: TenantManagement.AddRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/multi-tenancy/tenants`,\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateTenant(body: TenantManagement.UpdateRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'GET',\n responseType: Rest.ResponseType.Text,\n url,\n };\n return this.rest.request(request);\n }\n\n updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${payload.id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n params: { defaultConnectionString: payload.defaultConnectionString },\n };\n return this.rest.request(request);\n }\n\n deleteDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'DELETE',\n url,\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementService } from '../services/tenant-management.service';\nimport { ABP } from '@abp/ng.core';\n\n@State({\n name: 'TenantManagementState',\n defaults: { result: {}, selectedItem: {} } as TenantManagement.State,\n})\nexport class TenantManagementState {\n @Selector()\n static get({ result }: TenantManagement.State): ABP.BasicItem[] {\n return result.items || [];\n }\n\n @Selector()\n static getTenantsTotalCount({ result }: TenantManagement.State): number {\n return result.totalCount;\n }\n\n constructor(private tenantManagementService: TenantManagementService) {}\n\n @Action(GetTenants)\n get({ patchState }: StateContext, { payload }: GetTenants) {\n return this.tenantManagementService.getTenant(payload).pipe(\n tap(result =>\n patchState({\n result,\n }),\n ),\n );\n }\n\n @Action(GetTenantById)\n getById({ patchState }: StateContext, { payload }: GetTenantById) {\n return this.tenantManagementService.getTenantById(payload).pipe(\n tap(selectedItem =>\n patchState({\n selectedItem,\n }),\n ),\n );\n }\n\n @Action(DeleteTenant)\n delete({ dispatch }: StateContext, { payload }: DeleteTenant) {\n return this.tenantManagementService.deleteTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(CreateTenant)\n add({ dispatch }: StateContext, { payload }: CreateTenant) {\n return this.tenantManagementService.createTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(UpdateTenant)\n update({ dispatch, getState }: StateContext, { payload }: UpdateTenant) {\n return dispatch(new GetTenantById(payload.id)).pipe(\n switchMap(() => this.tenantManagementService.updateTenant({ ...getState().selectedItem, ...payload })),\n switchMap(() => dispatch(new GetTenants())),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../../actions/tenant-management.actions';\nimport { TenantManagementService } from '../../services/tenant-management.service';\nimport { TenantManagementState } from '../../states/tenant-management.state';\n\ntype SelectedModalContent = {\n type: string;\n title: string;\n template: TemplateRef;\n};\n\n@Component({\n selector: 'abp-tenants',\n templateUrl: './tenants.component.html',\n})\nexport class TenantsComponent {\n @Select(TenantManagementState.get)\n data$: Observable;\n\n @Select(TenantManagementState.getTenantsTotalCount)\n totalCount$: Observable;\n\n selected: ABP.BasicItem;\n\n tenantForm: FormGroup;\n\n defaultConnectionStringForm: FormGroup;\n\n defaultConnectionString: string;\n\n isModalVisible: boolean;\n\n selectedModalContent = {} as SelectedModalContent;\n\n visibleFeatures: boolean = false;\n\n providerKey: string;\n\n _useSharedDatabase: boolean;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n sortOrder: string = 'asc';\n\n get useSharedDatabase(): boolean {\n return this.defaultConnectionStringForm.get('useSharedDatabase').value;\n }\n\n get connectionString(): string {\n return this.defaultConnectionStringForm.get('defaultConnectionString').value;\n }\n\n @ViewChild('tenantModalTemplate', { static: false })\n tenantModalTemplate: TemplateRef;\n\n @ViewChild('connectionStringModalTemplate', { static: false })\n connectionStringModalTemplate: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private tenantService: TenantManagementService,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n private createTenantForm() {\n this.tenantForm = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n });\n }\n\n private createDefaultConnectionStringForm() {\n this.defaultConnectionStringForm = this.fb.group({\n useSharedDatabase: this._useSharedDatabase,\n defaultConnectionString: [this.defaultConnectionString || ''],\n });\n }\n\n openModal(title: string, template: TemplateRef, type: string) {\n this.selectedModalContent = {\n title,\n template,\n type,\n };\n\n this.isModalVisible = true;\n }\n\n onEditConnectionString(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(\n pluck('TenantManagementState', 'selectedItem'),\n switchMap(selected => {\n this.selected = selected;\n return this.tenantService.getDefaultConnectionString(id);\n }),\n )\n .subscribe(fetchedConnectionString => {\n this._useSharedDatabase = fetchedConnectionString ? false : true;\n this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : '';\n this.createDefaultConnectionStringForm();\n this.openModal('AbpTenantManagement::ConnectionStrings', this.connectionStringModalTemplate, 'saveConnStr');\n });\n }\n\n onAddTenant() {\n this.selected = {} as ABP.BasicItem;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::NewTenant', this.tenantModalTemplate, 'saveTenant');\n }\n\n onEditTenant(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(pluck('TenantManagementState', 'selectedItem'))\n .subscribe(selected => {\n this.selected = selected;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::Edit', this.tenantModalTemplate, 'saveTenant');\n });\n }\n\n save() {\n const { type } = this.selectedModalContent;\n if (!type) return;\n if (type === 'saveTenant') this.saveTenant();\n else if (type === 'saveConnStr') this.saveConnectionString();\n }\n\n saveConnectionString() {\n this.modalBusy = true;\n if (this.useSharedDatabase || (!this.useSharedDatabase && !this.connectionString)) {\n this.tenantService\n .deleteDefaultConnectionString(this.selected.id)\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n } else {\n this.tenantService\n .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n }\n }\n\n saveTenant() {\n if (!this.tenantForm.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateTenant({ ...this.tenantForm.value, id: this.selected.id })\n : new CreateTenant(this.tenantForm.value),\n )\n .pipe(finalize(()=> (this.modalBusy = false)))\n .subscribe(() => {\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteTenant(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetTenants(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n\n changeSortOrder() {\n this.sortOrder = this.sortOrder.toLowerCase() === \"asc\" ? \"desc\" : \"asc\";\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetTenants } from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementState } from '../states/tenant-management.state';\n\n@Injectable()\nexport class TenantsResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const data = this.store.selectSnapshot(TenantManagementState.get);\n return data && data.length ? null : this.store.dispatch(new GetTenants());\n }\n}\n","import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { TenantsResolver } from './resolvers/tenants.resolver';\nimport { TenantsComponent } from './components/tenants/tenants.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\n {\n path: 'tenants',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpTenantManagement.Tenants' },\n children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [TenantsResolver],\n})\nexport class TenantManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule, Provider } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxsModule } from '@ngxs/store';\nimport { TableModule } from 'primeng/table';\nimport { TenantsComponent } from './components/tenants/tenants.component';\nimport { TenantManagementState } from './states/tenant-management.state';\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\nimport { FeatureManagementModule } from '@abp/ng.feature-management';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [TenantsComponent],\n imports: [\n TenantManagementRoutingModule,\n NgxsModule.forFeature([TenantManagementState]),\n NgxValidateCoreModule,\n CoreModule,\n TableModule,\n ThemeSharedModule,\n NgbDropdownModule,\n FeatureManagementModule,\n ],\n})\nexport class TenantManagementModule {}\n\nexport function TenantManagementProviders(): Provider[] {\n return [];\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const TENANT_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'AbpTenantManagement::Menu:TenantManagement',\n path: 'tenant-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-users',\n children: [\n {\n path: 'tenants',\n name: 'AbpTenantManagement::Tenants',\n order: 1,\n requiredPolicy: 'AbpTenantManagement.Tenants',\n },\n ],\n },\n ] as ABP.FullRoute[],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace TenantManagement {\n export interface State {\n result: Response;\n selectedItem: Item;\n }\n\n export type Response = ABP.PagedResponse;\n\n export interface Item {\n id: string;\n name: string;\n }\n\n export interface AddRequest {\n name: string;\n }\n\n export interface UpdateRequest extends AddRequest {\n id: string;\n }\n\n export interface DefaultConnectionStringRequest {\n id: string;\n defaultConnectionString: string;\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/fesm5/abp-ng.tenant-management.js b/npm/ng-packs/dist/tenant-management/fesm5/abp-ng.tenant-management.js index dcf09963b5..881b483b44 100644 --- a/npm/ng-packs/dist/tenant-management/fesm5/abp-ng.tenant-management.js +++ b/npm/ng-packs/dist/tenant-management/fesm5/abp-ng.tenant-management.js @@ -1,6 +1,6 @@ -import { NgModule, Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild } from '@angular/core'; import { RestService, DynamicLayoutComponent, AuthGuard, PermissionGuard, CoreModule } from '@abp/ng.core'; import { ConfirmationService, ThemeSharedModule } from '@abp/ng.theme.shared'; +import { Injectable, ɵɵdefineInjectable, ɵɵinject, Component, ViewChild, NgModule } from '@angular/core'; import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; import { TableModule } from 'primeng/table'; @@ -12,31 +12,6 @@ import { RouterModule } from '@angular/router'; import { FeatureManagementModule } from '@abp/ng.feature-management'; import { NgxValidateCoreModule } from '@ngx-validate/core'; -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -var RootTenantManagementModule = /** @class */ (function () { - function RootTenantManagementModule() { - } - /** - * @return {?} - */ - RootTenantManagementModule.forRoot = /** - * @return {?} - */ - function () { - return { - ngModule: RootTenantManagementModule, - providers: [], - }; - }; - RootTenantManagementModule.decorators = [ - { type: NgModule, args: [{},] } - ]; - return RootTenantManagementModule; -}()); - /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -490,6 +465,7 @@ var TenantsComponent = /** @class */ (function () { }; this.loading = false; this.modalBusy = false; + this.sortOrder = 'asc'; } Object.defineProperty(TenantsComponent.prototype, "useSharedDatabase", { get: /** @@ -703,11 +679,14 @@ var TenantsComponent = /** @class */ (function () { .dispatch(this.selected.id ? new UpdateTenant(__assign({}, this.tenantForm.value, { id: this.selected.id })) : new CreateTenant(this.tenantForm.value)) + .pipe(finalize((/** + * @return {?} + */ + function () { return (_this.modalBusy = false); }))) .subscribe((/** * @return {?} */ function () { - _this.modalBusy = false; _this.isModalVisible = false; })); }; @@ -734,7 +713,6 @@ var TenantsComponent = /** @class */ (function () { function (status) { if (status === "confirm" /* confirm */) { _this.store.dispatch(new DeleteTenant(id)); - _this.modalBusy = false; } })); }; @@ -768,10 +746,19 @@ var TenantsComponent = /** @class */ (function () { function () { return (_this.loading = false); }))) .subscribe(); }; + /** + * @return {?} + */ + TenantsComponent.prototype.changeSortOrder = /** + * @return {?} + */ + function () { + this.sortOrder = this.sortOrder.toLowerCase() === "asc" ? "desc" : "asc"; + }; TenantsComponent.decorators = [ { type: Component, args: [{ selector: 'abp-tenants', - template: "
\n
\n
\n
\n
\n {{ 'AbpTenantManagement::Tenants' | abpLocalization }}\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n
\n
\n \n
\n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n" + template: "
\n
\n

{{ 'AbpTenantManagement::Tenants' | abpLocalization }}

\n
\n
\n
\n \n \n {{ 'AbpTenantManagement::NewTenant' | abpLocalization }}\n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n {{ 'AbpTenantManagement::TenantName' | abpLocalization }}\n \n \n \n \n \n \n \n
\n \n {{ 'AbpTenantManagement::Actions' | abpLocalization }}\n \n
\n \n {{ 'AbpTenantManagement::Edit' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageConnectionStrings' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}\n \n \n {{ 'AbpTenantManagement::Delete' | abpLocalization }}\n \n
\n
\n \n {{ data.name }}\n \n
\n \n
\n
\n\n\n \n

{{ selectedModalContent.title | abpLocalization }}

\n
\n\n \n \n \n\n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n \n
\n
\n\n\n" }] } ]; /** @nocollapse */ @@ -825,6 +812,8 @@ if (false) { /** @type {?} */ TenantsComponent.prototype.modalBusy; /** @type {?} */ + TenantsComponent.prototype.sortOrder; + /** @type {?} */ TenantsComponent.prototype.tenantModalTemplate; /** @type {?} */ TenantsComponent.prototype.connectionStringModalTemplate; @@ -939,6 +928,12 @@ var TenantManagementModule = /** @class */ (function () { ]; return TenantManagementModule; }()); +/** + * @return {?} + */ +function TenantManagementProviders() { + return []; +} /** * @fileoverview added by tsickle @@ -973,7 +968,6 @@ var TENANT_MANAGEMENT_ROUTES = { ], }, ])), - settings: [], }; /** @@ -1070,5 +1064,5 @@ var TenantManagement; * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { CreateTenant, DeleteTenant, GetTenantById, GetTenants, RootTenantManagementModule, TENANT_MANAGEMENT_ROUTES, TenantManagementModule, TenantManagementService, TenantManagementState, TenantsComponent, TenantsResolver, UpdateTenant, TenantsComponent as ɵa, TenantManagementState as ɵb, TenantManagementService as ɵc, GetTenants as ɵd, GetTenantById as ɵe, CreateTenant as ɵf, UpdateTenant as ɵg, DeleteTenant as ɵh, TenantManagementRoutingModule as ɵj, TenantsResolver as ɵk }; +export { CreateTenant, DeleteTenant, GetTenantById, GetTenants, TENANT_MANAGEMENT_ROUTES, TenantManagementModule, TenantManagementProviders, TenantManagementService, TenantManagementState, TenantsComponent, TenantsResolver, UpdateTenant, TenantsComponent as ɵa, TenantManagementState as ɵb, TenantManagementService as ɵc, GetTenants as ɵd, GetTenantById as ɵe, CreateTenant as ɵf, UpdateTenant as ɵg, DeleteTenant as ɵh, TenantManagementRoutingModule as ɵj, TenantsResolver as ɵk }; //# sourceMappingURL=abp-ng.tenant-management.js.map diff --git a/npm/ng-packs/dist/tenant-management/fesm5/abp-ng.tenant-management.js.map b/npm/ng-packs/dist/tenant-management/fesm5/abp-ng.tenant-management.js.map index 51183ee214..d7cff1f722 100644 --- a/npm/ng-packs/dist/tenant-management/fesm5/abp-ng.tenant-management.js.map +++ b/npm/ng-packs/dist/tenant-management/fesm5/abp-ng.tenant-management.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.tenant-management.js","sources":["ng://@abp/ng.tenant-management/lib/root-tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/actions/tenant-management.actions.ts","ng://@abp/ng.tenant-management/lib/services/tenant-management.service.ts","ng://@abp/ng.tenant-management/lib/states/tenant-management.state.ts","ng://@abp/ng.tenant-management/lib/components/tenants/tenants.component.ts","ng://@abp/ng.tenant-management/lib/resolvers/tenants.resolver.ts","ng://@abp/ng.tenant-management/lib/tenant-management-routing.module.ts","ng://@abp/ng.tenant-management/lib/tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/constants/routes.ts","ng://@abp/ng.tenant-management/lib/models/tenant-management.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\n\n@NgModule({})\nexport class RootTenantManagementModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RootTenantManagementModule,\n providers: [],\n };\n }\n}\n","import { TenantManagement } from '../models/tenant-management';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetTenants {\n static readonly type = '[TenantManagement] Get Tenant';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetTenantById {\n static readonly type = '[TenantManagement] Get Tenant By Id';\n constructor(public payload: string) {}\n}\n\nexport class CreateTenant {\n static readonly type = '[TenantManagement] Create Tenant';\n constructor(public payload: TenantManagement.AddRequest) {}\n}\n\nexport class UpdateTenant {\n static readonly type = '[TenantManagement] Update Tenant';\n constructor(public payload: TenantManagement.UpdateRequest) {}\n}\n\nexport class DeleteTenant {\n static readonly type = '[TenantManagement] Delete Tenant';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { TenantManagement } from '../models/tenant-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantManagementService {\n constructor(private rest: RestService) {}\n\n getTenant(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/multi-tenancy/tenants',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getTenantById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteTenant(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createTenant(body: TenantManagement.AddRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/multi-tenancy/tenants`,\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateTenant(body: TenantManagement.UpdateRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'GET',\n responseType: Rest.ResponseType.Text,\n url,\n };\n return this.rest.request(request);\n }\n\n updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${payload.id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n params: { defaultConnectionString: payload.defaultConnectionString },\n };\n return this.rest.request(request);\n }\n\n deleteDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'DELETE',\n url,\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementService } from '../services/tenant-management.service';\nimport { ABP } from '@abp/ng.core';\n\n@State({\n name: 'TenantManagementState',\n defaults: { result: {}, selectedItem: {} } as TenantManagement.State,\n})\nexport class TenantManagementState {\n @Selector()\n static get({ result }: TenantManagement.State): ABP.BasicItem[] {\n return result.items || [];\n }\n\n @Selector()\n static getTenantsTotalCount({ result }: TenantManagement.State): number {\n return result.totalCount;\n }\n\n constructor(private tenantManagementService: TenantManagementService) {}\n\n @Action(GetTenants)\n get({ patchState }: StateContext, { payload }: GetTenants) {\n return this.tenantManagementService.getTenant(payload).pipe(\n tap(result =>\n patchState({\n result,\n }),\n ),\n );\n }\n\n @Action(GetTenantById)\n getById({ patchState }: StateContext, { payload }: GetTenantById) {\n return this.tenantManagementService.getTenantById(payload).pipe(\n tap(selectedItem =>\n patchState({\n selectedItem,\n }),\n ),\n );\n }\n\n @Action(DeleteTenant)\n delete({ dispatch }: StateContext, { payload }: DeleteTenant) {\n return this.tenantManagementService.deleteTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(CreateTenant)\n add({ dispatch }: StateContext, { payload }: CreateTenant) {\n return this.tenantManagementService.createTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(UpdateTenant)\n update({ dispatch, getState }: StateContext, { payload }: UpdateTenant) {\n return dispatch(new GetTenantById(payload.id)).pipe(\n switchMap(() => this.tenantManagementService.updateTenant({ ...getState().selectedItem, ...payload })),\n switchMap(() => dispatch(new GetTenants())),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../../actions/tenant-management.actions';\nimport { TenantManagementService } from '../../services/tenant-management.service';\nimport { TenantManagementState } from '../../states/tenant-management.state';\n\ntype SelectedModalContent = {\n type: string;\n title: string;\n template: TemplateRef;\n};\n\n@Component({\n selector: 'abp-tenants',\n templateUrl: './tenants.component.html',\n})\nexport class TenantsComponent {\n @Select(TenantManagementState.get)\n data$: Observable;\n\n @Select(TenantManagementState.getTenantsTotalCount)\n totalCount$: Observable;\n\n selected: ABP.BasicItem;\n\n tenantForm: FormGroup;\n\n defaultConnectionStringForm: FormGroup;\n\n defaultConnectionString: string;\n\n isModalVisible: boolean;\n\n selectedModalContent = {} as SelectedModalContent;\n\n visibleFeatures: boolean = false;\n\n providerKey: string;\n\n _useSharedDatabase: boolean;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n get useSharedDatabase(): boolean {\n return this.defaultConnectionStringForm.get('useSharedDatabase').value;\n }\n\n get connectionString(): string {\n return this.defaultConnectionStringForm.get('defaultConnectionString').value;\n }\n\n @ViewChild('tenantModalTemplate', { static: false })\n tenantModalTemplate: TemplateRef;\n\n @ViewChild('connectionStringModalTemplate', { static: false })\n connectionStringModalTemplate: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private tenantService: TenantManagementService,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n private createTenantForm() {\n this.tenantForm = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n });\n }\n\n private createDefaultConnectionStringForm() {\n this.defaultConnectionStringForm = this.fb.group({\n useSharedDatabase: this._useSharedDatabase,\n defaultConnectionString: [this.defaultConnectionString || ''],\n });\n }\n\n openModal(title: string, template: TemplateRef, type: string) {\n this.selectedModalContent = {\n title,\n template,\n type,\n };\n\n this.isModalVisible = true;\n }\n\n onEditConnectionString(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(\n pluck('TenantManagementState', 'selectedItem'),\n switchMap(selected => {\n this.selected = selected;\n return this.tenantService.getDefaultConnectionString(id);\n }),\n )\n .subscribe(fetchedConnectionString => {\n this._useSharedDatabase = fetchedConnectionString ? false : true;\n this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : '';\n this.createDefaultConnectionStringForm();\n this.openModal('AbpTenantManagement::ConnectionStrings', this.connectionStringModalTemplate, 'saveConnStr');\n });\n }\n\n onAddTenant() {\n this.selected = {} as ABP.BasicItem;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::NewTenant', this.tenantModalTemplate, 'saveTenant');\n }\n\n onEditTenant(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(pluck('TenantManagementState', 'selectedItem'))\n .subscribe(selected => {\n this.selected = selected;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::Edit', this.tenantModalTemplate, 'saveTenant');\n });\n }\n\n save() {\n const { type } = this.selectedModalContent;\n if (!type) return;\n if (type === 'saveTenant') this.saveTenant();\n else if (type === 'saveConnStr') this.saveConnectionString();\n }\n\n saveConnectionString() {\n this.modalBusy = true;\n if (this.useSharedDatabase || (!this.useSharedDatabase && !this.connectionString)) {\n this.tenantService\n .deleteDefaultConnectionString(this.selected.id)\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n } else {\n this.tenantService\n .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n }\n }\n\n saveTenant() {\n if (!this.tenantForm.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateTenant({ ...this.tenantForm.value, id: this.selected.id })\n : new CreateTenant(this.tenantForm.value),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteTenant(id));\n this.modalBusy = false;\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetTenants(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetTenants } from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementState } from '../states/tenant-management.state';\n\n@Injectable()\nexport class TenantsResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const data = this.store.selectSnapshot(TenantManagementState.get);\n return data && data.length ? null : this.store.dispatch(new GetTenants());\n }\n}\n","import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { TenantsResolver } from './resolvers/tenants.resolver';\nimport { TenantsComponent } from './components/tenants/tenants.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\n {\n path: 'tenants',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpTenantManagement.Tenants' },\n children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [TenantsResolver],\n})\nexport class TenantManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxsModule } from '@ngxs/store';\nimport { TableModule } from 'primeng/table';\nimport { TenantsComponent } from './components/tenants/tenants.component';\nimport { TenantManagementState } from './states/tenant-management.state';\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\nimport { FeatureManagementModule } from '@abp/ng.feature-management';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [TenantsComponent],\n imports: [\n TenantManagementRoutingModule,\n NgxsModule.forFeature([TenantManagementState]),\n NgxValidateCoreModule,\n CoreModule,\n TableModule,\n ThemeSharedModule,\n NgbDropdownModule,\n FeatureManagementModule,\n ],\n})\nexport class TenantManagementModule {}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const TENANT_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'AbpTenantManagement::Menu:TenantManagement',\n path: 'tenant-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-users',\n children: [\n {\n path: 'tenants',\n name: 'AbpTenantManagement::Tenants',\n order: 1,\n requiredPolicy: 'AbpTenantManagement.Tenants',\n },\n ],\n },\n ] as ABP.FullRoute[],\n settings: [],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace TenantManagement {\n export interface State {\n result: Response;\n selectedItem: Item;\n }\n\n export type Response = ABP.PagedResponse;\n\n export interface Item {\n id: string;\n name: string;\n }\n\n export interface AddRequest {\n name: string;\n }\n\n export interface UpdateRequest extends AddRequest {\n id: string;\n }\n\n export interface DefaultConnectionStringRequest {\n id: string;\n defaultConnectionString: string;\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.tenant-management.js","sources":["ng://@abp/ng.tenant-management/lib/actions/tenant-management.actions.ts","ng://@abp/ng.tenant-management/lib/services/tenant-management.service.ts","ng://@abp/ng.tenant-management/lib/states/tenant-management.state.ts","ng://@abp/ng.tenant-management/lib/components/tenants/tenants.component.ts","ng://@abp/ng.tenant-management/lib/resolvers/tenants.resolver.ts","ng://@abp/ng.tenant-management/lib/tenant-management-routing.module.ts","ng://@abp/ng.tenant-management/lib/tenant-management.module.ts","ng://@abp/ng.tenant-management/lib/constants/routes.ts","ng://@abp/ng.tenant-management/lib/models/tenant-management.ts"],"sourcesContent":["import { TenantManagement } from '../models/tenant-management';\nimport { ABP } from '@abp/ng.core';\n\nexport class GetTenants {\n static readonly type = '[TenantManagement] Get Tenant';\n constructor(public payload?: ABP.PageQueryParams) {}\n}\n\nexport class GetTenantById {\n static readonly type = '[TenantManagement] Get Tenant By Id';\n constructor(public payload: string) {}\n}\n\nexport class CreateTenant {\n static readonly type = '[TenantManagement] Create Tenant';\n constructor(public payload: TenantManagement.AddRequest) {}\n}\n\nexport class UpdateTenant {\n static readonly type = '[TenantManagement] Update Tenant';\n constructor(public payload: TenantManagement.UpdateRequest) {}\n}\n\nexport class DeleteTenant {\n static readonly type = '[TenantManagement] Delete Tenant';\n constructor(public payload: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { RestService, Rest, ABP } from '@abp/ng.core';\nimport { TenantManagement } from '../models/tenant-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TenantManagementService {\n constructor(private rest: RestService) {}\n\n getTenant(params = {} as ABP.PageQueryParams): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/multi-tenancy/tenants',\n params,\n };\n\n return this.rest.request(request);\n }\n\n getTenantById(id: string): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n deleteTenant(id: string): Observable {\n const request: Rest.Request = {\n method: 'DELETE',\n url: `/api/multi-tenancy/tenants/${id}`,\n };\n\n return this.rest.request(request);\n }\n\n createTenant(body: TenantManagement.AddRequest): Observable {\n const request: Rest.Request = {\n method: 'POST',\n url: `/api/multi-tenancy/tenants`,\n body,\n };\n\n return this.rest.request(request);\n }\n\n updateTenant(body: TenantManagement.UpdateRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${body.id}`;\n delete body.id;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n body,\n };\n\n return this.rest.request(request);\n }\n\n getDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'GET',\n responseType: Rest.ResponseType.Text,\n url,\n };\n return this.rest.request(request);\n }\n\n updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable {\n const url = `/api/multi-tenancy/tenants/${payload.id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'PUT',\n url,\n params: { defaultConnectionString: payload.defaultConnectionString },\n };\n return this.rest.request(request);\n }\n\n deleteDefaultConnectionString(id: string): Observable {\n const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;\n\n const request: Rest.Request = {\n method: 'DELETE',\n url,\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementService } from '../services/tenant-management.service';\nimport { ABP } from '@abp/ng.core';\n\n@State({\n name: 'TenantManagementState',\n defaults: { result: {}, selectedItem: {} } as TenantManagement.State,\n})\nexport class TenantManagementState {\n @Selector()\n static get({ result }: TenantManagement.State): ABP.BasicItem[] {\n return result.items || [];\n }\n\n @Selector()\n static getTenantsTotalCount({ result }: TenantManagement.State): number {\n return result.totalCount;\n }\n\n constructor(private tenantManagementService: TenantManagementService) {}\n\n @Action(GetTenants)\n get({ patchState }: StateContext, { payload }: GetTenants) {\n return this.tenantManagementService.getTenant(payload).pipe(\n tap(result =>\n patchState({\n result,\n }),\n ),\n );\n }\n\n @Action(GetTenantById)\n getById({ patchState }: StateContext, { payload }: GetTenantById) {\n return this.tenantManagementService.getTenantById(payload).pipe(\n tap(selectedItem =>\n patchState({\n selectedItem,\n }),\n ),\n );\n }\n\n @Action(DeleteTenant)\n delete({ dispatch }: StateContext, { payload }: DeleteTenant) {\n return this.tenantManagementService.deleteTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(CreateTenant)\n add({ dispatch }: StateContext, { payload }: CreateTenant) {\n return this.tenantManagementService.createTenant(payload).pipe(switchMap(() => dispatch(new GetTenants())));\n }\n\n @Action(UpdateTenant)\n update({ dispatch, getState }: StateContext, { payload }: UpdateTenant) {\n return dispatch(new GetTenantById(payload.id)).pipe(\n switchMap(() => this.tenantManagementService.updateTenant({ ...getState().selectedItem, ...payload })),\n switchMap(() => dispatch(new GetTenants())),\n );\n }\n}\n","import { ABP } from '@abp/ng.core';\nimport { ConfirmationService, Toaster } from '@abp/ng.theme.shared';\nimport { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, finalize, pluck, switchMap, take } from 'rxjs/operators';\nimport {\n CreateTenant,\n DeleteTenant,\n GetTenants,\n GetTenantById,\n UpdateTenant,\n} from '../../actions/tenant-management.actions';\nimport { TenantManagementService } from '../../services/tenant-management.service';\nimport { TenantManagementState } from '../../states/tenant-management.state';\n\ntype SelectedModalContent = {\n type: string;\n title: string;\n template: TemplateRef;\n};\n\n@Component({\n selector: 'abp-tenants',\n templateUrl: './tenants.component.html',\n})\nexport class TenantsComponent {\n @Select(TenantManagementState.get)\n data$: Observable;\n\n @Select(TenantManagementState.getTenantsTotalCount)\n totalCount$: Observable;\n\n selected: ABP.BasicItem;\n\n tenantForm: FormGroup;\n\n defaultConnectionStringForm: FormGroup;\n\n defaultConnectionString: string;\n\n isModalVisible: boolean;\n\n selectedModalContent = {} as SelectedModalContent;\n\n visibleFeatures: boolean = false;\n\n providerKey: string;\n\n _useSharedDatabase: boolean;\n\n pageQuery: ABP.PageQueryParams = {\n sorting: 'name',\n };\n\n loading: boolean = false;\n\n modalBusy: boolean = false;\n\n sortOrder: string = 'asc';\n\n get useSharedDatabase(): boolean {\n return this.defaultConnectionStringForm.get('useSharedDatabase').value;\n }\n\n get connectionString(): string {\n return this.defaultConnectionStringForm.get('defaultConnectionString').value;\n }\n\n @ViewChild('tenantModalTemplate', { static: false })\n tenantModalTemplate: TemplateRef;\n\n @ViewChild('connectionStringModalTemplate', { static: false })\n connectionStringModalTemplate: TemplateRef;\n\n constructor(\n private confirmationService: ConfirmationService,\n private tenantService: TenantManagementService,\n private fb: FormBuilder,\n private store: Store,\n ) {}\n\n onSearch(value) {\n this.pageQuery.filter = value;\n this.get();\n }\n\n private createTenantForm() {\n this.tenantForm = this.fb.group({\n name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]],\n });\n }\n\n private createDefaultConnectionStringForm() {\n this.defaultConnectionStringForm = this.fb.group({\n useSharedDatabase: this._useSharedDatabase,\n defaultConnectionString: [this.defaultConnectionString || ''],\n });\n }\n\n openModal(title: string, template: TemplateRef, type: string) {\n this.selectedModalContent = {\n title,\n template,\n type,\n };\n\n this.isModalVisible = true;\n }\n\n onEditConnectionString(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(\n pluck('TenantManagementState', 'selectedItem'),\n switchMap(selected => {\n this.selected = selected;\n return this.tenantService.getDefaultConnectionString(id);\n }),\n )\n .subscribe(fetchedConnectionString => {\n this._useSharedDatabase = fetchedConnectionString ? false : true;\n this.defaultConnectionString = fetchedConnectionString ? fetchedConnectionString : '';\n this.createDefaultConnectionStringForm();\n this.openModal('AbpTenantManagement::ConnectionStrings', this.connectionStringModalTemplate, 'saveConnStr');\n });\n }\n\n onAddTenant() {\n this.selected = {} as ABP.BasicItem;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::NewTenant', this.tenantModalTemplate, 'saveTenant');\n }\n\n onEditTenant(id: string) {\n this.store\n .dispatch(new GetTenantById(id))\n .pipe(pluck('TenantManagementState', 'selectedItem'))\n .subscribe(selected => {\n this.selected = selected;\n this.createTenantForm();\n this.openModal('AbpTenantManagement::Edit', this.tenantModalTemplate, 'saveTenant');\n });\n }\n\n save() {\n const { type } = this.selectedModalContent;\n if (!type) return;\n if (type === 'saveTenant') this.saveTenant();\n else if (type === 'saveConnStr') this.saveConnectionString();\n }\n\n saveConnectionString() {\n this.modalBusy = true;\n if (this.useSharedDatabase || (!this.useSharedDatabase && !this.connectionString)) {\n this.tenantService\n .deleteDefaultConnectionString(this.selected.id)\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n } else {\n this.tenantService\n .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })\n .pipe(\n take(1),\n finalize(() => (this.modalBusy = false)),\n )\n .subscribe(() => {\n this.isModalVisible = false;\n });\n }\n }\n\n saveTenant() {\n if (!this.tenantForm.valid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n this.selected.id\n ? new UpdateTenant({ ...this.tenantForm.value, id: this.selected.id })\n : new CreateTenant(this.tenantForm.value),\n )\n .pipe(finalize(()=> (this.modalBusy = false)))\n .subscribe(() => {\n this.isModalVisible = false;\n });\n }\n\n delete(id: string, name: string) {\n this.confirmationService\n .warn('AbpTenantManagement::TenantDeletionConfirmationMessage', 'AbpTenantManagement::AreYouSure', {\n messageLocalizationParams: [name],\n })\n .subscribe((status: Toaster.Status) => {\n if (status === Toaster.Status.confirm) {\n this.store.dispatch(new DeleteTenant(id));\n }\n });\n }\n\n onPageChange(data) {\n this.pageQuery.skipCount = data.first;\n this.pageQuery.maxResultCount = data.rows;\n\n this.get();\n }\n\n get() {\n this.loading = true;\n this.store\n .dispatch(new GetTenants(this.pageQuery))\n .pipe(finalize(() => (this.loading = false)))\n .subscribe();\n }\n\n changeSortOrder() {\n this.sortOrder = this.sortOrder.toLowerCase() === \"asc\" ? \"desc\" : \"asc\";\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { GetTenants } from '../actions/tenant-management.actions';\nimport { TenantManagement } from '../models/tenant-management';\nimport { TenantManagementState } from '../states/tenant-management.state';\n\n@Injectable()\nexport class TenantsResolver implements Resolve {\n constructor(private store: Store) {}\n\n resolve() {\n const data = this.store.selectSnapshot(TenantManagementState.get);\n return data && data.length ? null : this.store.dispatch(new GetTenants());\n }\n}\n","import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { TenantsResolver } from './resolvers/tenants.resolver';\nimport { TenantsComponent } from './components/tenants/tenants.component';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'tenants', pathMatch: 'full' },\n {\n path: 'tenants',\n component: DynamicLayoutComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: { requiredPolicy: 'AbpTenantManagement.Tenants' },\n children: [{ path: '', component: TenantsComponent, resolve: [TenantsResolver] }],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [TenantsResolver],\n})\nexport class TenantManagementRoutingModule {}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule, Provider } from '@angular/core';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxsModule } from '@ngxs/store';\nimport { TableModule } from 'primeng/table';\nimport { TenantsComponent } from './components/tenants/tenants.component';\nimport { TenantManagementState } from './states/tenant-management.state';\nimport { TenantManagementRoutingModule } from './tenant-management-routing.module';\nimport { FeatureManagementModule } from '@abp/ng.feature-management';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\n\n@NgModule({\n declarations: [TenantsComponent],\n imports: [\n TenantManagementRoutingModule,\n NgxsModule.forFeature([TenantManagementState]),\n NgxValidateCoreModule,\n CoreModule,\n TableModule,\n ThemeSharedModule,\n NgbDropdownModule,\n FeatureManagementModule,\n ],\n})\nexport class TenantManagementModule {}\n\nexport function TenantManagementProviders(): Provider[] {\n return [];\n}\n","import { ABP, eLayoutType } from '@abp/ng.core';\n\nexport const TENANT_MANAGEMENT_ROUTES = {\n routes: [\n {\n name: 'AbpTenantManagement::Menu:TenantManagement',\n path: 'tenant-management',\n parentName: 'AbpUiNavigation::Menu:Administration',\n layout: eLayoutType.application,\n iconClass: 'fa fa-users',\n children: [\n {\n path: 'tenants',\n name: 'AbpTenantManagement::Tenants',\n order: 1,\n requiredPolicy: 'AbpTenantManagement.Tenants',\n },\n ],\n },\n ] as ABP.FullRoute[],\n};\n","import { ABP } from '@abp/ng.core';\n\nexport namespace TenantManagement {\n export interface State {\n result: Response;\n selectedItem: Item;\n }\n\n export type Response = ABP.PagedResponse;\n\n export interface Item {\n id: string;\n name: string;\n }\n\n export interface AddRequest {\n name: string;\n }\n\n export interface UpdateRequest extends AddRequest {\n id: string;\n }\n\n export interface DefaultConnectionStringRequest {\n id: string;\n defaultConnectionString: string;\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/tenant-management/lib/components/tenants/tenants.component.d.ts b/npm/ng-packs/dist/tenant-management/lib/components/tenants/tenants.component.d.ts index 498828f978..eb77716869 100644 --- a/npm/ng-packs/dist/tenant-management/lib/components/tenants/tenants.component.d.ts +++ b/npm/ng-packs/dist/tenant-management/lib/components/tenants/tenants.component.d.ts @@ -29,6 +29,7 @@ export declare class TenantsComponent { pageQuery: ABP.PageQueryParams; loading: boolean; modalBusy: boolean; + sortOrder: string; readonly useSharedDatabase: boolean; readonly connectionString: string; tenantModalTemplate: TemplateRef; @@ -47,5 +48,6 @@ export declare class TenantsComponent { delete(id: string, name: string): void; onPageChange(data: any): void; get(): void; + changeSortOrder(): void; } export {}; diff --git a/npm/ng-packs/dist/tenant-management/lib/constants/routes.d.ts b/npm/ng-packs/dist/tenant-management/lib/constants/routes.d.ts index 00066258ca..f24bc22dc1 100644 --- a/npm/ng-packs/dist/tenant-management/lib/constants/routes.d.ts +++ b/npm/ng-packs/dist/tenant-management/lib/constants/routes.d.ts @@ -1,5 +1,4 @@ import { ABP } from '@abp/ng.core'; export declare const TENANT_MANAGEMENT_ROUTES: { routes: ABP.FullRoute[]; - settings: any[]; }; diff --git a/npm/ng-packs/dist/tenant-management/lib/root-tenant-management.module.d.ts b/npm/ng-packs/dist/tenant-management/lib/root-tenant-management.module.d.ts deleted file mode 100644 index 8f90a784a8..0000000000 --- a/npm/ng-packs/dist/tenant-management/lib/root-tenant-management.module.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { ModuleWithProviders } from '@angular/core'; -export declare class RootTenantManagementModule { - static forRoot(): ModuleWithProviders; -} diff --git a/npm/ng-packs/dist/tenant-management/lib/tenant-management.module.d.ts b/npm/ng-packs/dist/tenant-management/lib/tenant-management.module.d.ts index 07e1370976..e58a5a9c57 100644 --- a/npm/ng-packs/dist/tenant-management/lib/tenant-management.module.d.ts +++ b/npm/ng-packs/dist/tenant-management/lib/tenant-management.module.d.ts @@ -1,2 +1,4 @@ +import { Provider } from '@angular/core'; export declare class TenantManagementModule { } +export declare function TenantManagementProviders(): Provider[]; diff --git a/npm/ng-packs/dist/tenant-management/package.json b/npm/ng-packs/dist/tenant-management/package.json index 69fc8fcc7e..28d1ced4c4 100644 --- a/npm/ng-packs/dist/tenant-management/package.json +++ b/npm/ng-packs/dist/tenant-management/package.json @@ -1,9 +1,9 @@ { "name": "@abp/ng.tenant-management", - "version": "0.8.3", + "version": "0.9.0", "dependencies": { - "@abp/ng.theme.shared": "^0.8.3", - "@abp/ng.feature-management": "^0.8.3", + "@abp/ng.feature-management": "^0.9.0", + "@abp/ng.theme.shared": "^0.9.0", "tslib": "^1.9.0" }, "publishConfig": { diff --git a/npm/ng-packs/dist/tenant-management/public-api.d.ts b/npm/ng-packs/dist/tenant-management/public-api.d.ts index 6b2ae2d388..9bae9a9edb 100644 --- a/npm/ng-packs/dist/tenant-management/public-api.d.ts +++ b/npm/ng-packs/dist/tenant-management/public-api.d.ts @@ -1,4 +1,3 @@ -export * from './lib/root-tenant-management.module'; export * from './lib/tenant-management.module'; export * from './lib/actions'; export * from './lib/components'; diff --git a/npm/ng-packs/dist/theme-basic/abp-ng.theme.basic.d.ts b/npm/ng-packs/dist/theme-basic/abp-ng.theme.basic.d.ts index ba277e59d0..d64ba0e6ff 100644 --- a/npm/ng-packs/dist/theme-basic/abp-ng.theme.basic.d.ts +++ b/npm/ng-packs/dist/theme-basic/abp-ng.theme.basic.d.ts @@ -2,11 +2,13 @@ * Generated bundle index. Do not edit. */ export * from './public-api'; -export { AddNavigationElement as ɵg, RemoveNavigationElementByName as ɵh } from './lib/actions/layout.actions'; +export { AddNavigationElement as ɵh, RemoveNavigationElementByName as ɵi } from './lib/actions/layout.actions'; export { AccountLayoutComponent as ɵc } from './lib/components/account-layout/account-layout.component'; export { ApplicationLayoutComponent as ɵa } from './lib/components/application-layout/application-layout.component'; export { EmptyLayoutComponent as ɵd } from './lib/components/empty-layout/empty-layout.component'; export { LayoutComponent as ɵe } from './lib/components/layout/layout.component'; -export { Layout as ɵi } from './lib/models/layout'; +export { ValidationErrorComponent as ɵf } from './lib/components/validation-error/validation-error.component'; +export { Layout as ɵj } from './lib/models/layout'; +export { InitialService as ɵk } from './lib/services/initial.service'; export { LayoutState as ɵb } from './lib/states'; -export { LayoutState as ɵf } from './lib/states/layout.state'; +export { LayoutState as ɵg } from './lib/states/layout.state'; diff --git a/npm/ng-packs/dist/theme-basic/abp-ng.theme.basic.metadata.json b/npm/ng-packs/dist/theme-basic/abp-ng.theme.basic.metadata.json index d6b2402cd2..e7bd923353 100644 --- a/npm/ng-packs/dist/theme-basic/abp-ng.theme.basic.metadata.json +++ b/npm/ng-packs/dist/theme-basic/abp-ng.theme.basic.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"exports":[{"from":"./lib/layout.state"},{"from":"./lib/application-layout/application-layout.component"},{"from":"./lib/empty-layout/empty-layout.component"}],"metadata":{"LAYOUTS":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"}],"ThemeBasicModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"LAYOUTS"}},{"__symbolic":"reference","name":"ɵe"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":18,"character":4},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":19,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbCollapseModule","line":20,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":21,"character":4},{"__symbolic":"reference","module":"primeng/toast","name":"ToastModule","line":22,"character":4},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":23,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":24,"character":4},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵf"}]]}],"exports":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"LAYOUTS"}}],"entryComponents":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"LAYOUTS"}}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":32,"character":1},"arguments":[{"selector":"abp-layout-application","template":"\n \n\n
    \n \n
\n\n\n\n
  • \n \n {{ defaultLanguage$ | async }}\n \n
    \n {{ lang?.displayName }}\n
    \n
  • \n
    \n\n\n
  • \n \n {{ (currentUser$ | async)?.userName }}\n \n \n
  • \n\n \n\n \n
    \n"}]}],"members":{"routes$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":40,"character":3},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigState","line":40,"character":10},"member":"getOne"},"arguments":["routes"]}]}]}],"currentUser$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":43,"character":3},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigState","line":43,"character":10},"member":"getOne"},"arguments":["currentUser"]}]}]}],"languages$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":46,"character":3},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigState","line":46,"character":10},"member":"getDeep"},"arguments":["localization.languages"]}]}]}],"navElements$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":49,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getNavigationElements"}]}]}],"currentUserRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":52,"character":3},"arguments":["currentUser",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":52,"character":51}}]}]}],"languageRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":55,"character":3},"arguments":["language",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":55,"character":48}}]}]}],"navbarRootDropdowns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":58,"character":3},"arguments":["navbarRootDropdown",{"read":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdown","line":58,"character":46}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":96,"character":29},{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":96,"character":58}]}],"checkWindowWidth":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onChangeLang":[{"__symbolic":"method"}],"logout":[{"__symbolic":"method"}]},"statics":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":38,"character":16},"member":"application"}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"abp-layout-account","template":"\n"}]}],"members":{},"statics":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":9,"character":16},"member":"account"}}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"abp-layout-empty","template":"\n Layout-empty\n \n "}]}],"members":{},"statics":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":11,"character":16},"member":"empty"}}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":" abp-layout","animations":[{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"slideFromBottom","line":8,"character":15}],"template":"\n\n\n \n\n\n\n\n\n\n {{ appInfo.name }}\n\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":17,"character":29}]}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":6,"character":1},"arguments":[{"name":"LayoutState","defaults":{"navigationElements":[]}}]}],"members":{"layoutAddAction":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":16,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵg"}]}]}],"layoutRemoveAction":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":45,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵh"}]}]}]},"statics":{"getNavigationElements":{"__symbolic":"function","parameters":["navigationElements"],"value":{"__symbolic":"reference","name":"navigationElements"}}}},"ɵg":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵi"},"member":"NavigationElement"}]}]},"statics":{"type":"[Layout] Add Navigation Element"}},"ɵh":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Layout] Remove Navigation ElementByName"}}},"origins":{"LAYOUTS":"./lib/theme-basic.module","ThemeBasicModule":"./lib/theme-basic.module","ɵa":"./lib/components/application-layout/application-layout.component","ɵb":"./lib/states","ɵc":"./lib/components/account-layout/account-layout.component","ɵd":"./lib/components/empty-layout/empty-layout.component","ɵe":"./lib/components/layout/layout.component","ɵf":"./lib/states/layout.state","ɵg":"./lib/actions/layout.actions","ɵh":"./lib/actions/layout.actions","ɵi":"./lib/models/layout"},"importAs":"@abp/ng.theme.basic"} \ No newline at end of file +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/layout.state"},{"from":"./lib/application-layout/application-layout.component"},{"from":"./lib/empty-layout/empty-layout.component"},{"from":"./lib/validation-error/validation-error.component"}],"metadata":{"LAYOUTS":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"}],"ThemeBasicModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"declarations":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"LAYOUTS"}},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":20,"character":4},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":21,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbCollapseModule","line":22,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":23,"character":4},{"__symbolic":"reference","module":"primeng/toast","name":"ToastModule","line":24,"character":4},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":25,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":26,"character":4},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵg"}]]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":27,"character":4},"member":"forRoot"},"arguments":[{"targetSelector":".form-group","blueprints":{"email":"AbpAccount::ThisFieldIsNotAValidEmailAddress.","max":"AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]","maxlength":"AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]","min":"AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]","minlength":"AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]","required":"AbpAccount::ThisFieldIsRequired.","passwordMismatch":"AbpIdentity::Identity.PasswordConfirmationFailed"},"errorTemplate":{"__symbolic":"reference","name":"ɵf"}}]}],"exports":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"LAYOUTS"}}],"entryComponents":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"LAYOUTS"}},{"__symbolic":"reference","name":"ɵf"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵk"}]}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":32,"character":1},"arguments":[{"selector":"abp-layout-application","template":"\n \n\n
      \n \n
    \n
    \n\n\n
  • \n \n {{ defaultLanguage$ | async }}\n \n
    \n {{ lang?.displayName }}\n
    \n
  • \n
    \n\n\n
  • \n \n {{ (currentUser$ | async)?.userName }}\n \n \n
  • \n\n \n\n \n
    \n"}]}],"members":{"routes$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":40,"character":3},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigState","line":40,"character":10},"member":"getOne"},"arguments":["routes"]}]}]}],"currentUser$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":43,"character":3},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigState","line":43,"character":10},"member":"getOne"},"arguments":["currentUser"]}]}]}],"languages$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":46,"character":3},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigState","line":46,"character":10},"member":"getDeep"},"arguments":["localization.languages"]}]}]}],"navElements$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":49,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getNavigationElements"}]}]}],"currentUserRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":52,"character":3},"arguments":["currentUser",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":52,"character":51}}]}]}],"languageRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":55,"character":3},"arguments":["language",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":55,"character":48}}]}]}],"navbarRootDropdowns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":58,"character":3},"arguments":["navbarRootDropdown",{"read":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdown","line":58,"character":46}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":96,"character":29},{"__symbolic":"reference","module":"angular-oauth2-oidc","name":"OAuthService","line":96,"character":58}]}],"checkWindowWidth":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onChangeLang":[{"__symbolic":"method"}],"logout":[{"__symbolic":"method"}]},"statics":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":38,"character":16},"member":"application"}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"abp-layout-account","template":"\n"}]}],"members":{},"statics":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":9,"character":16},"member":"account"}}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"abp-layout-empty","template":"\n Layout-empty\n \n "}]}],"members":{},"statics":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"eLayoutType","line":11,"character":16},"member":"empty"}}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":" abp-layout","animations":[{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"slideFromBottom","line":8,"character":15}],"template":"\n\n\n \n\n\n\n\n\n\n {{ appInfo.name }}\n\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":17,"character":29}]}]}},"ɵf":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-validate/core","name":"ValidationErrorComponent","line":13,"character":46},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"abp-validation-error","template":"\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n ","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":10,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":11,"character":17},"member":"None"}}]}],"members":{}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":6,"character":1},"arguments":[{"name":"LayoutState","defaults":{"navigationElements":[]}}]}],"members":{"layoutAddAction":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":16,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵh"}]}]}],"layoutRemoveAction":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":45,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵi"}]}]}]},"statics":{"getNavigationElements":{"__symbolic":"function","parameters":["navigationElements"],"value":{"__symbolic":"reference","name":"navigationElements"}}}},"ɵh":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵj"},"member":"NavigationElement"}]}]},"statics":{"type":"[Layout] Add Navigation Element"}},"ɵi":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}]},"statics":{"type":"[Layout] Remove Navigation ElementByName"}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"LazyLoadService","line":7,"character":39}]}],"appendStyle":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}}},"origins":{"LAYOUTS":"./lib/theme-basic.module","ThemeBasicModule":"./lib/theme-basic.module","ɵa":"./lib/components/application-layout/application-layout.component","ɵb":"./lib/states","ɵc":"./lib/components/account-layout/account-layout.component","ɵd":"./lib/components/empty-layout/empty-layout.component","ɵe":"./lib/components/layout/layout.component","ɵf":"./lib/components/validation-error/validation-error.component","ɵg":"./lib/states/layout.state","ɵh":"./lib/actions/layout.actions","ɵi":"./lib/actions/layout.actions","ɵj":"./lib/models/layout","ɵk":"./lib/services/initial.service"},"importAs":"@abp/ng.theme.basic"} \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js b/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js index ebfb6926d8..f1a1f5c8c4 100644 --- a/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js +++ b/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js @@ -764,6 +764,93 @@ LayoutComponent.prototype.store; } + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ValidationErrorComponent = /** @class */ (function (_super) { + __extends(ValidationErrorComponent, _super); + function ValidationErrorComponent() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(ValidationErrorComponent.prototype, "abpErrors", { + get: /** + * @return {?} + */ + function () { + if (!this.errors || !this.errors.length) + return []; + return this.errors.map((/** + * @param {?} error + * @return {?} + */ + function (error) { + if (!error.message) + return error; + /** @type {?} */ + var index = error.message.indexOf('['); + if (index > -1) { + return __assign({}, error, { message: error.message.slice(0, index), interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(',') }); + } + return error; + })); + }, + enumerable: true, + configurable: true + }); + ValidationErrorComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-validation-error', + template: "\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n ", + changeDetection: core.ChangeDetectionStrategy.OnPush, + encapsulation: core.ViewEncapsulation.None + }] } + ]; + return ValidationErrorComponent; + }(core$1.ValidationErrorComponent)); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var styles = "\n.content-header-title {\n font-size: 24px;\n}\n\n.entry-row {\n margin-bottom: 15px;\n}\n"; + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var InitialService = /** @class */ (function () { + function InitialService(lazyLoadService) { + this.lazyLoadService = lazyLoadService; + this.appendStyle().subscribe(); + } + /** + * @return {?} + */ + InitialService.prototype.appendStyle = /** + * @return {?} + */ + function () { + return this.lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin'); + }; + InitialService.decorators = [ + { type: core.Injectable, args: [{ providedIn: 'root' },] } + ]; + /** @nocollapse */ + InitialService.ctorParameters = function () { return [ + { type: ng_core.LazyLoadService } + ]; }; + /** @nocollapse */ InitialService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function InitialService_Factory() { return new InitialService(core.ɵɵinject(ng_core.LazyLoadService)); }, token: InitialService, providedIn: "root" }); + return InitialService; + }()); + if (false) { + /** + * @type {?} + * @private + */ + InitialService.prototype.lazyLoadService; + } + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -771,11 +858,12 @@ /** @type {?} */ var LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent]; var ThemeBasicModule = /** @class */ (function () { - function ThemeBasicModule() { + function ThemeBasicModule(initialService) { + this.initialService = initialService; } ThemeBasicModule.decorators = [ { type: core.NgModule, args: [{ - declarations: __spread(LAYOUTS, [LayoutComponent]), + declarations: __spread(LAYOUTS, [LayoutComponent, ValidationErrorComponent]), imports: [ ng_core.CoreModule, ng_theme_shared.ThemeSharedModule, @@ -784,13 +872,37 @@ toast.ToastModule, core$1.NgxValidateCoreModule, store.NgxsModule.forFeature([LayoutState]), + core$1.NgxValidateCoreModule.forRoot({ + targetSelector: '.form-group', + blueprints: { + email: "AbpAccount::ThisFieldIsNotAValidEmailAddress.", + max: "AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]", + maxlength: "AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]", + min: "AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]", + minlength: "AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]", + required: "AbpAccount::ThisFieldIsRequired.", + passwordMismatch: "AbpIdentity::Identity.PasswordConfirmationFailed", + }, + errorTemplate: ValidationErrorComponent, + }), ], exports: __spread(LAYOUTS), - entryComponents: __spread(LAYOUTS), + entryComponents: __spread(LAYOUTS, [ValidationErrorComponent]), },] } ]; + /** @nocollapse */ + ThemeBasicModule.ctorParameters = function () { return [ + { type: InitialService } + ]; }; return ThemeBasicModule; }()); + if (false) { + /** + * @type {?} + * @private + */ + ThemeBasicModule.prototype.initialService; + } /** * @fileoverview added by tsickle @@ -835,14 +947,17 @@ exports.LayoutState = LayoutState; exports.RemoveNavigationElementByName = RemoveNavigationElementByName; exports.ThemeBasicModule = ThemeBasicModule; + exports.ValidationErrorComponent = ValidationErrorComponent; exports.ɵa = ApplicationLayoutComponent; exports.ɵb = LayoutState; exports.ɵc = AccountLayoutComponent; exports.ɵd = EmptyLayoutComponent; exports.ɵe = LayoutComponent; - exports.ɵf = LayoutState; - exports.ɵg = AddNavigationElement; - exports.ɵh = RemoveNavigationElementByName; + exports.ɵf = ValidationErrorComponent; + exports.ɵg = LayoutState; + exports.ɵh = AddNavigationElement; + exports.ɵi = RemoveNavigationElementByName; + exports.ɵk = InitialService; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js.map b/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js.map index 95866c6981..9762888351 100644 --- a/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js.map +++ b/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.theme.basic.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.theme.basic/lib/components/account-layout/account-layout.component.ts","ng://@abp/ng.theme.basic/lib/actions/layout.actions.ts","ng://@abp/ng.theme.basic/lib/states/layout.state.ts","ng://@abp/ng.theme.basic/lib/components/application-layout/application-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/empty-layout/empty-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/layout/layout.component.ts","ng://@abp/ng.theme.basic/lib/theme-basic.module.ts","ng://@abp/ng.theme.basic/lib/models/layout.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './account-layout.component.html',\n})\nexport class AccountLayoutComponent {\n // required for dynamic component\n static type = eLayoutType.account;\n}\n","import { Layout } from '../models/layout';\n\nexport class AddNavigationElement {\n static readonly type = '[Layout] Add Navigation Element';\n constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {}\n}\n\nexport class RemoveNavigationElementByName {\n static readonly type = '[Layout] Remove Navigation ElementByName';\n constructor(public name: string) {}\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { AddNavigationElement, RemoveNavigationElementByName } from '../actions/layout.actions';\nimport { Layout } from '../models/layout';\nimport { TemplateRef } from '@angular/core';\nimport snq from 'snq';\n\n@State({\n name: 'LayoutState',\n defaults: { navigationElements: [] } as Layout.State,\n})\nexport class LayoutState {\n @Selector()\n static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] {\n return navigationElements;\n }\n\n @Action(AddNavigationElement)\n layoutAddAction({ getState, patchState }: StateContext, { payload = [] }: AddNavigationElement) {\n let { navigationElements } = getState();\n\n if (!Array.isArray(payload)) {\n payload = [payload];\n }\n\n if (navigationElements.length) {\n payload = snq(\n () =>\n (payload as Layout.NavigationElement[]).filter(\n ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0,\n ),\n [],\n );\n }\n\n if (!payload.length) return;\n\n navigationElements = [...navigationElements, ...payload]\n .map(element => ({ ...element, order: element.order || 99 }))\n .sort((a, b) => a.order - b.order);\n\n return patchState({\n navigationElements,\n });\n }\n\n @Action(RemoveNavigationElementByName)\n layoutRemoveAction({ getState, patchState }: StateContext, { name }: RemoveNavigationElementByName) {\n let { navigationElements } = getState();\n\n const index = navigationElements.findIndex(element => element.name === name);\n\n if (index > -1) {\n navigationElements = navigationElements.splice(index, 1);\n }\n\n return patchState({\n navigationElements,\n });\n }\n}\n","import {\n ABP,\n ApplicationConfiguration,\n GetAppConfiguration,\n ConfigState,\n eLayoutType,\n SetLanguage,\n SessionState,\n takeUntilDestroy,\n} from '@abp/ng.core';\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n QueryList,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\nimport { Navigate, RouterState } from '@ngxs/router-plugin';\nimport { Select, Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport compare from 'just-compare';\nimport { fromEvent, Observable } from 'rxjs';\nimport { debounceTime, filter, map } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AddNavigationElement } from '../../actions';\nimport { Layout } from '../../models/layout';\nimport { LayoutState } from '../../states';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './application-layout.component.html',\n})\nexport class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {\n // required for dynamic component\n static type = eLayoutType.application;\n\n @Select(ConfigState.getOne('routes'))\n routes$: Observable;\n\n @Select(ConfigState.getOne('currentUser'))\n currentUser$: Observable;\n\n @Select(ConfigState.getDeep('localization.languages'))\n languages$: Observable;\n\n @Select(LayoutState.getNavigationElements)\n navElements$: Observable;\n\n @ViewChild('currentUser', { static: false, read: TemplateRef })\n currentUserRef: TemplateRef;\n\n @ViewChild('language', { static: false, read: TemplateRef })\n languageRef: TemplateRef;\n\n @ViewChildren('navbarRootDropdown', { read: NgbDropdown })\n navbarRootDropdowns: QueryList;\n\n isOpenChangePassword: boolean = false;\n\n isOpenProfile: boolean = false;\n\n isDropdownChildDynamic: boolean;\n\n get visibleRoutes$(): Observable {\n return this.routes$.pipe(map(routes => getVisibleRoutes(routes)));\n }\n\n get defaultLanguage$(): Observable {\n return this.languages$.pipe(\n map(\n languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable {\n return this.languages$.pipe(\n map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []),\n );\n }\n\n get selectedLangCulture(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n rightPartElements: TemplateRef[] = [];\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n trackElementByFn: TrackByFunction = (_, element) => element;\n\n constructor(private store: Store, private oauthService: OAuthService) {}\n\n private checkWindowWidth() {\n setTimeout(() => {\n this.navbarRootDropdowns.forEach(item => {\n item.close();\n });\n if (window.innerWidth < 768) {\n this.isDropdownChildDynamic = false;\n } else {\n this.isDropdownChildDynamic = true;\n }\n }, 0);\n }\n\n ngAfterViewInit() {\n const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name);\n\n if (navigations.indexOf('LanguageRef') < 0) {\n this.store.dispatch(\n new AddNavigationElement([\n { element: this.languageRef, order: 4, name: 'LanguageRef' },\n { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' },\n ]),\n );\n }\n\n this.navElements$\n .pipe(\n map(elements => elements.map(({ element }) => element)),\n filter(elements => !compare(elements, this.rightPartElements)),\n takeUntilDestroy(this),\n )\n .subscribe(elements => {\n setTimeout(() => (this.rightPartElements = elements), 0);\n });\n\n this.checkWindowWidth();\n\n fromEvent(window, 'resize')\n .pipe(\n takeUntilDestroy(this),\n debounceTime(250),\n )\n .subscribe(() => {\n this.checkWindowWidth();\n });\n }\n\n ngOnDestroy() {}\n\n onChangeLang(cultureName: string) {\n this.store.dispatch(new SetLanguage(cultureName));\n }\n\n logout() {\n this.oauthService.logOut();\n this.store.dispatch(\n new Navigate(['/'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n this.store.dispatch(new GetAppConfiguration());\n }\n}\n\nfunction getVisibleRoutes(routes: ABP.FullRoute[]) {\n return routes.reduce((acc, val) => {\n if (val.invisible) return acc;\n\n if (val.children && val.children.length) {\n val.children = getVisibleRoutes(val.children);\n }\n\n return [...acc, val];\n }, []);\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-empty',\n template: `\n Layout-empty\n \n `,\n})\nexport class EmptyLayoutComponent {\n static type = eLayoutType.empty;\n}\n","import { Config, ConfigState } from '@abp/ng.core';\nimport { slideFromBottom } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngxs/store';\n\n@Component({\n selector: ' abp-layout',\n templateUrl: './layout.component.html',\n animations: [slideFromBottom],\n})\nexport class LayoutComponent {\n isCollapsed: boolean = true;\n\n get appInfo(): Config.Application {\n return this.store.selectSnapshot(ConfigState.getApplicationInfo);\n }\n\n constructor(private store: Store) {}\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { ToastModule } from 'primeng/toast';\nimport { AccountLayoutComponent } from './components/account-layout/account-layout.component';\nimport { ApplicationLayoutComponent } from './components/application-layout/application-layout.component';\nimport { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { LayoutState } from './states/layout.state';\n\nexport const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];\n\n@NgModule({\n declarations: [...LAYOUTS, LayoutComponent],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n ToastModule,\n NgxValidateCoreModule,\n NgxsModule.forFeature([LayoutState]),\n ],\n exports: [...LAYOUTS],\n entryComponents: [...LAYOUTS],\n})\nexport class ThemeBasicModule {}\n","import { TemplateRef } from '@angular/core';\n\nexport namespace Layout {\n export interface State {\n navigationElements: NavigationElement[];\n }\n\n export interface NavigationElement {\n name: string;\n element: TemplateRef;\n order?: number;\n }\n}\n"],"names":["Component","tslib_1.__spread","tslib_1.__decorate","Action","Selector","State","map","SessionState","filter","takeUntilDestroy","fromEvent","debounceTime","SetLanguage","Navigate","RouterState","GetAppConfiguration","Store","OAuthService","ViewChild","TemplateRef","ViewChildren","NgbDropdown","Select","ConfigState","Observable","slideFromBottom","NgModule","CoreModule","ThemeSharedModule","NgbCollapseModule","NgbDropdownModule","ToastModule","NgxValidateCoreModule","NgxsModule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.theme.basic.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.theme.basic/lib/components/account-layout/account-layout.component.ts","ng://@abp/ng.theme.basic/lib/actions/layout.actions.ts","ng://@abp/ng.theme.basic/lib/states/layout.state.ts","ng://@abp/ng.theme.basic/lib/components/application-layout/application-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/empty-layout/empty-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/layout/layout.component.ts","ng://@abp/ng.theme.basic/lib/components/validation-error/validation-error.component.ts","ng://@abp/ng.theme.basic/lib/constants/styles.ts","ng://@abp/ng.theme.basic/lib/services/initial.service.ts","ng://@abp/ng.theme.basic/lib/theme-basic.module.ts","ng://@abp/ng.theme.basic/lib/models/layout.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './account-layout.component.html',\n})\nexport class AccountLayoutComponent {\n // required for dynamic component\n static type = eLayoutType.account;\n}\n","import { Layout } from '../models/layout';\n\nexport class AddNavigationElement {\n static readonly type = '[Layout] Add Navigation Element';\n constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {}\n}\n\nexport class RemoveNavigationElementByName {\n static readonly type = '[Layout] Remove Navigation ElementByName';\n constructor(public name: string) {}\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { AddNavigationElement, RemoveNavigationElementByName } from '../actions/layout.actions';\nimport { Layout } from '../models/layout';\nimport { TemplateRef } from '@angular/core';\nimport snq from 'snq';\n\n@State({\n name: 'LayoutState',\n defaults: { navigationElements: [] } as Layout.State,\n})\nexport class LayoutState {\n @Selector()\n static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] {\n return navigationElements;\n }\n\n @Action(AddNavigationElement)\n layoutAddAction({ getState, patchState }: StateContext, { payload = [] }: AddNavigationElement) {\n let { navigationElements } = getState();\n\n if (!Array.isArray(payload)) {\n payload = [payload];\n }\n\n if (navigationElements.length) {\n payload = snq(\n () =>\n (payload as Layout.NavigationElement[]).filter(\n ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0,\n ),\n [],\n );\n }\n\n if (!payload.length) return;\n\n navigationElements = [...navigationElements, ...payload]\n .map(element => ({ ...element, order: element.order || 99 }))\n .sort((a, b) => a.order - b.order);\n\n return patchState({\n navigationElements,\n });\n }\n\n @Action(RemoveNavigationElementByName)\n layoutRemoveAction({ getState, patchState }: StateContext, { name }: RemoveNavigationElementByName) {\n let { navigationElements } = getState();\n\n const index = navigationElements.findIndex(element => element.name === name);\n\n if (index > -1) {\n navigationElements = navigationElements.splice(index, 1);\n }\n\n return patchState({\n navigationElements,\n });\n }\n}\n","import {\n ABP,\n ApplicationConfiguration,\n GetAppConfiguration,\n ConfigState,\n eLayoutType,\n SetLanguage,\n SessionState,\n takeUntilDestroy,\n} from '@abp/ng.core';\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n QueryList,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\nimport { Navigate, RouterState } from '@ngxs/router-plugin';\nimport { Select, Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport compare from 'just-compare';\nimport { fromEvent, Observable } from 'rxjs';\nimport { debounceTime, filter, map } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AddNavigationElement } from '../../actions';\nimport { Layout } from '../../models/layout';\nimport { LayoutState } from '../../states';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './application-layout.component.html',\n})\nexport class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {\n // required for dynamic component\n static type = eLayoutType.application;\n\n @Select(ConfigState.getOne('routes'))\n routes$: Observable;\n\n @Select(ConfigState.getOne('currentUser'))\n currentUser$: Observable;\n\n @Select(ConfigState.getDeep('localization.languages'))\n languages$: Observable;\n\n @Select(LayoutState.getNavigationElements)\n navElements$: Observable;\n\n @ViewChild('currentUser', { static: false, read: TemplateRef })\n currentUserRef: TemplateRef;\n\n @ViewChild('language', { static: false, read: TemplateRef })\n languageRef: TemplateRef;\n\n @ViewChildren('navbarRootDropdown', { read: NgbDropdown })\n navbarRootDropdowns: QueryList;\n\n isOpenChangePassword: boolean = false;\n\n isOpenProfile: boolean = false;\n\n isDropdownChildDynamic: boolean;\n\n get visibleRoutes$(): Observable {\n return this.routes$.pipe(map(routes => getVisibleRoutes(routes)));\n }\n\n get defaultLanguage$(): Observable {\n return this.languages$.pipe(\n map(\n languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable {\n return this.languages$.pipe(\n map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []),\n );\n }\n\n get selectedLangCulture(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n rightPartElements: TemplateRef[] = [];\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n trackElementByFn: TrackByFunction = (_, element) => element;\n\n constructor(private store: Store, private oauthService: OAuthService) {}\n\n private checkWindowWidth() {\n setTimeout(() => {\n this.navbarRootDropdowns.forEach(item => {\n item.close();\n });\n if (window.innerWidth < 768) {\n this.isDropdownChildDynamic = false;\n } else {\n this.isDropdownChildDynamic = true;\n }\n }, 0);\n }\n\n ngAfterViewInit() {\n const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name);\n\n if (navigations.indexOf('LanguageRef') < 0) {\n this.store.dispatch(\n new AddNavigationElement([\n { element: this.languageRef, order: 4, name: 'LanguageRef' },\n { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' },\n ]),\n );\n }\n\n this.navElements$\n .pipe(\n map(elements => elements.map(({ element }) => element)),\n filter(elements => !compare(elements, this.rightPartElements)),\n takeUntilDestroy(this),\n )\n .subscribe(elements => {\n setTimeout(() => (this.rightPartElements = elements), 0);\n });\n\n this.checkWindowWidth();\n\n fromEvent(window, 'resize')\n .pipe(\n takeUntilDestroy(this),\n debounceTime(250),\n )\n .subscribe(() => {\n this.checkWindowWidth();\n });\n }\n\n ngOnDestroy() {}\n\n onChangeLang(cultureName: string) {\n this.store.dispatch(new SetLanguage(cultureName));\n }\n\n logout() {\n this.oauthService.logOut();\n this.store.dispatch(\n new Navigate(['/'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n this.store.dispatch(new GetAppConfiguration());\n }\n}\n\nfunction getVisibleRoutes(routes: ABP.FullRoute[]) {\n return routes.reduce((acc, val) => {\n if (val.invisible) return acc;\n\n if (val.children && val.children.length) {\n val.children = getVisibleRoutes(val.children);\n }\n\n return [...acc, val];\n }, []);\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-empty',\n template: `\n Layout-empty\n \n `,\n})\nexport class EmptyLayoutComponent {\n static type = eLayoutType.empty;\n}\n","import { Config, ConfigState } from '@abp/ng.core';\nimport { slideFromBottom } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngxs/store';\n\n@Component({\n selector: ' abp-layout',\n templateUrl: './layout.component.html',\n animations: [slideFromBottom],\n})\nexport class LayoutComponent {\n isCollapsed: boolean = true;\n\n get appInfo(): Config.Application {\n return this.store.selectSnapshot(ConfigState.getApplicationInfo);\n }\n\n constructor(private store: Store) {}\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { Validation, ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core';\n\n@Component({\n selector: 'abp-validation-error',\n template: `\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ValidationErrorComponent extends ErrorComponent {\n get abpErrors(): Validation.Error[] & { interpoliteParams?: string[] } {\n if (!this.errors || !this.errors.length) return [];\n\n return this.errors.map(error => {\n if (!error.message) return error;\n\n const index = error.message.indexOf('[');\n\n if (index > -1) {\n return {\n ...error,\n message: error.message.slice(0, index),\n interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(','),\n };\n }\n\n return error;\n });\n }\n}\n","export default `\n.content-header-title {\n font-size: 24px;\n}\n\n.entry-row {\n margin-bottom: 15px;\n}\n`;","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LazyLoadService } from '@abp/ng.core';\nimport styles from '../constants/styles';\n\n@Injectable({ providedIn: 'root' })\nexport class InitialService {\n constructor(private lazyLoadService: LazyLoadService) {\n this.appendStyle().subscribe();\n }\n\n appendStyle() {\n return this.lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin');\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { ToastModule } from 'primeng/toast';\nimport { AccountLayoutComponent } from './components/account-layout/account-layout.component';\nimport { ApplicationLayoutComponent } from './components/application-layout/application-layout.component';\nimport { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { LayoutState } from './states/layout.state';\nimport { ValidationErrorComponent } from './components/validation-error/validation-error.component';\nimport { InitialService } from './services/initial.service';\n\nexport const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];\n\n@NgModule({\n declarations: [...LAYOUTS, LayoutComponent, ValidationErrorComponent],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n ToastModule,\n NgxValidateCoreModule,\n NgxsModule.forFeature([LayoutState]),\n NgxValidateCoreModule.forRoot({\n targetSelector: '.form-group',\n blueprints: {\n email: `AbpAccount::ThisFieldIsNotAValidEmailAddress.`,\n max: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`,\n maxlength: `AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]`,\n min: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`,\n minlength: `AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]`,\n required: `AbpAccount::ThisFieldIsRequired.`,\n passwordMismatch: `AbpIdentity::Identity.PasswordConfirmationFailed`,\n },\n errorTemplate: ValidationErrorComponent,\n }),\n ],\n exports: [...LAYOUTS],\n entryComponents: [...LAYOUTS, ValidationErrorComponent],\n})\nexport class ThemeBasicModule {\n constructor(private initialService: InitialService) {}\n}\n","import { TemplateRef } from '@angular/core';\n\nexport namespace Layout {\n export interface State {\n navigationElements: NavigationElement[];\n }\n\n export interface NavigationElement {\n name: string;\n element: TemplateRef;\n order?: number;\n }\n}\n"],"names":["Component","tslib_1.__spread","tslib_1.__decorate","Action","Selector","State","map","SessionState","filter","takeUntilDestroy","fromEvent","debounceTime","SetLanguage","Navigate","RouterState","GetAppConfiguration","Store","OAuthService","ViewChild","TemplateRef","ViewChildren","NgbDropdown","Select","ConfigState","Observable","slideFromBottom","tslib_1.__extends","ChangeDetectionStrategy","ViewEncapsulation","ErrorComponent","Injectable","LazyLoadService","NgModule","CoreModule","ThemeSharedModule","NgbCollapseModule","NgbDropdownModule","ToastModule","NgxValidateCoreModule","NgxsModule"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js b/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js index 2f2950d264..c2ce83d4a7 100644 --- a/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js +++ b/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js @@ -1,2 +1,2 @@ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@angular/core"),require("@ng-bootstrap/ng-bootstrap"),require("@ngx-validate/core"),require("@ngxs/store"),require("primeng/toast"),require("@ngxs/router-plugin"),require("angular-oauth2-oidc"),require("just-compare"),require("rxjs"),require("rxjs/operators"),require("snq")):"function"==typeof define&&define.amd?define("@abp/ng.theme.basic",["exports","@abp/ng.core","@abp/ng.theme.shared","@angular/core","@ng-bootstrap/ng-bootstrap","@ngx-validate/core","@ngxs/store","primeng/toast","@ngxs/router-plugin","angular-oauth2-oidc","just-compare","rxjs","rxjs/operators","snq"],n):n(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng.theme=e.abp.ng.theme||{},e.abp.ng.theme.basic={}),e.ng_core,e.ng_theme_shared,e.ng.core,e.ngBootstrap,e.core$1,e.store,e.toast,e.routerPlugin,e.angularOauth2Oidc,e.compare,e.rxjs,e.rxjs.operators,e.snq)}(this,function(e,n,t,o,r,a,i,l,p,s,u,c,d,g){"use strict";u=u&&u.hasOwnProperty("default")?u.default:u,g=g&&g.hasOwnProperty("default")?g.default:g;var m=function(){return(m=Object.assign||function(e){for(var n,t=1,o=arguments.length;t=0;l--)(r=e[l])&&(i=(a<3?r(i):a>3?r(n,t,i):r(n,t))||i);return a>3&&i&&Object.defineProperty(n,t,i),i}function h(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)}function b(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var o,r,a=t.call(e),i=[];try{for(;(void 0===n||n-- >0)&&!(o=a.next()).done;)i.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(t=a.return)&&t.call(a)}finally{if(r)throw r.error}}return i}function y(){for(var e=[],n=0;n\n"}]}],e}();var w=function(){function e(e){this.payload=e}return e.type="[Layout] Add Navigation Element",e}();var C=function(){function e(e){this.name=e}return e.type="[Layout] Remove Navigation ElementByName",e}();var O=function(){function e(){}return e.getNavigationElements=function(e){return e.navigationElements},e.prototype.layoutAddAction=function(e,n){var t=e.getState,o=e.patchState,r=n.payload,a=void 0===r?[]:r,i=t().navigationElements;if(Array.isArray(a)||(a=[a]),i.length&&(a=g(function(){return a.filter(function(e){var n=e.name;return i.findIndex(function(e){return e.name===n})<0})},[])),a.length)return o({navigationElements:i=y(i,a).map(function(e){return m({},e,{order:e.order||99})}).sort(function(e,n){return e.order-n.order})})},e.prototype.layoutRemoveAction=function(e,n){var t=e.getState,o=e.patchState,r=n.name,a=t().navigationElements,i=a.findIndex(function(e){return e.name===r});return i>-1&&(a=a.splice(i,1)),o({navigationElements:a})},f([i.Action(w),h("design:type",Function),h("design:paramtypes",[Object,w]),h("design:returntype",void 0)],e.prototype,"layoutAddAction",null),f([i.Action(C),h("design:type",Function),h("design:paramtypes",[Object,C]),h("design:returntype",void 0)],e.prototype,"layoutRemoveAction",null),f([i.Selector(),h("design:type",Function),h("design:paramtypes",[Object]),h("design:returntype",Array)],e,"getNavigationElements",null),e=f([i.State({name:"LayoutState",defaults:{navigationElements:[]}})],e)}(),L=function(){function e(e,n){this.store=e,this.oauthService=n,this.isOpenChangePassword=!1,this.isOpenProfile=!1,this.rightPartElements=[],this.trackByFn=function(e,n){return n.name},this.trackElementByFn=function(e,n){return n}}return Object.defineProperty(e.prototype,"visibleRoutes$",{get:function(){return this.routes$.pipe(d.map(function(e){return function e(n){return n.reduce(function(n,t){return t.invisible?n:(t.children&&t.children.length&&(t.children=e(t.children)),y(n,[t]))},[])}(e)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"defaultLanguage$",{get:function(){var e=this;return this.languages$.pipe(d.map(function(n){return g(function(){return n.find(function(n){return n.cultureName===e.selectedLangCulture}).displayName})},""))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dropdownLanguages$",{get:function(){var e=this;return this.languages$.pipe(d.map(function(n){return g(function(){return n.filter(function(n){return n.cultureName!==e.selectedLangCulture})})},[]))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedLangCulture",{get:function(){return this.store.selectSnapshot(n.SessionState.getLanguage)},enumerable:!0,configurable:!0}),e.prototype.checkWindowWidth=function(){var e=this;setTimeout(function(){e.navbarRootDropdowns.forEach(function(e){e.close()}),window.innerWidth<768?e.isDropdownChildDynamic=!1:e.isDropdownChildDynamic=!0},0)},e.prototype.ngAfterViewInit=function(){var e=this;this.store.selectSnapshot(O.getNavigationElements).map(function(e){return e.name}).indexOf("LanguageRef")<0&&this.store.dispatch(new w([{element:this.languageRef,order:4,name:"LanguageRef"},{element:this.currentUserRef,order:5,name:"CurrentUserRef"}])),this.navElements$.pipe(d.map(function(e){return e.map(function(e){return e.element})}),d.filter(function(n){return!u(n,e.rightPartElements)}),n.takeUntilDestroy(this)).subscribe(function(n){setTimeout(function(){return e.rightPartElements=n},0)}),this.checkWindowWidth(),c.fromEvent(window,"resize").pipe(n.takeUntilDestroy(this),d.debounceTime(250)).subscribe(function(){e.checkWindowWidth()})},e.prototype.ngOnDestroy=function(){},e.prototype.onChangeLang=function(e){this.store.dispatch(new n.SetLanguage(e))},e.prototype.logout=function(){this.oauthService.logOut(),this.store.dispatch(new p.Navigate(["/"],null,{state:{redirectUrl:this.store.selectSnapshot(p.RouterState).state.url}})),this.store.dispatch(new n.GetAppConfiguration)},e.type="application",e.decorators=[{type:o.Component,args:[{selector:"abp-layout-application",template:'\n \n\n \n\n\n\n \n\n\n\n \n\n \n\n \n\n'}]}],e.ctorParameters=function(){return[{type:i.Store},{type:s.OAuthService}]},e.propDecorators={currentUserRef:[{type:o.ViewChild,args:["currentUser",{static:!1,read:o.TemplateRef}]}],languageRef:[{type:o.ViewChild,args:["language",{static:!1,read:o.TemplateRef}]}],navbarRootDropdowns:[{type:o.ViewChildren,args:["navbarRootDropdown",{read:r.NgbDropdown}]}]},f([i.Select(n.ConfigState.getOne("routes")),h("design:type",c.Observable)],e.prototype,"routes$",void 0),f([i.Select(n.ConfigState.getOne("currentUser")),h("design:type",c.Observable)],e.prototype,"currentUser$",void 0),f([i.Select(n.ConfigState.getDeep("localization.languages")),h("design:type",c.Observable)],e.prototype,"languages$",void 0),f([i.Select(O.getNavigationElements),h("design:type",c.Observable)],e.prototype,"navElements$",void 0),e}();var k=function(){function e(){}return e.type="empty",e.decorators=[{type:o.Component,args:[{selector:"abp-layout-empty",template:"\n Layout-empty\n \n "}]}],e}();var P=function(){function e(e){this.store=e,this.isCollapsed=!0}return Object.defineProperty(e.prototype,"appInfo",{get:function(){return this.store.selectSnapshot(n.ConfigState.getApplicationInfo)},enumerable:!0,configurable:!0}),e.decorators=[{type:o.Component,args:[{selector:" abp-layout",template:'\n\n\n \n\n\n\n\n\n\n {{ appInfo.name }}\n\n',animations:[t.slideFromBottom]}]}],e.ctorParameters=function(){return[{type:i.Store}]},e}();var S,x=[L,v,k],D=function(){function e(){}return e.decorators=[{type:o.NgModule,args:[{declarations:y(x,[P]),imports:[n.CoreModule,t.ThemeSharedModule,r.NgbCollapseModule,r.NgbDropdownModule,l.ToastModule,a.NgxValidateCoreModule,i.NgxsModule.forFeature([O])],exports:y(x),entryComponents:y(x)}]}],e}();!function(e){function n(){}function t(){}e.State=n,e.NavigationElement=t}(S||(S={})),e.AccountLayoutComponent=v,e.AddNavigationElement=w,e.ApplicationLayoutComponent=L,e.EmptyLayoutComponent=k,e.LAYOUTS=x,e.LayoutState=O,e.RemoveNavigationElementByName=C,e.ThemeBasicModule=D,e.ɵa=L,e.ɵb=O,e.ɵc=v,e.ɵd=k,e.ɵe=P,e.ɵf=O,e.ɵg=w,e.ɵh=C,Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@angular/core"),require("@ng-bootstrap/ng-bootstrap"),require("@ngx-validate/core"),require("@ngxs/store"),require("primeng/toast"),require("@ngxs/router-plugin"),require("angular-oauth2-oidc"),require("just-compare"),require("rxjs"),require("rxjs/operators"),require("snq")):"function"==typeof define&&define.amd?define("@abp/ng.theme.basic",["exports","@abp/ng.core","@abp/ng.theme.shared","@angular/core","@ng-bootstrap/ng-bootstrap","@ngx-validate/core","@ngxs/store","primeng/toast","@ngxs/router-plugin","angular-oauth2-oidc","just-compare","rxjs","rxjs/operators","snq"],n):n(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng.theme=e.abp.ng.theme||{},e.abp.ng.theme.basic={}),e.ng_core,e.ng_theme_shared,e.ng.core,e.ngBootstrap,e.core$1,e.store,e.toast,e.routerPlugin,e.angularOauth2Oidc,e.compare,e.rxjs,e.rxjs.operators,e.snq)}(this,function(e,n,t,o,r,a,i,l,s,p,u,c,d,g){"use strict";u=u&&u.hasOwnProperty("default")?u.default:u,g=g&&g.hasOwnProperty("default")?g.default:g;var m=function(e,n){return(m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])})(e,n)};var f=function(){return(f=Object.assign||function(e){for(var n,t=1,o=arguments.length;t=0;l--)(r=e[l])&&(i=(a<3?r(i):a>3?r(n,t,i):r(n,t))||i);return a>3&&i&&Object.defineProperty(n,t,i),i}function y(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)}function b(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var o,r,a=t.call(e),i=[];try{for(;(void 0===n||n-- >0)&&!(o=a.next()).done;)i.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(t=a.return)&&t.call(a)}finally{if(r)throw r.error}}return i}function v(){for(var e=[],n=0;n\n"}]}],e}();var C=function(){function e(e){this.payload=e}return e.type="[Layout] Add Navigation Element",e}();var O=function(){function e(e){this.name=e}return e.type="[Layout] Remove Navigation ElementByName",e}();var A=function(){function e(){}return e.getNavigationElements=function(e){return e.navigationElements},e.prototype.layoutAddAction=function(e,n){var t=e.getState,o=e.patchState,r=n.payload,a=void 0===r?[]:r,i=t().navigationElements;if(Array.isArray(a)||(a=[a]),i.length&&(a=g(function(){return a.filter(function(e){var n=e.name;return i.findIndex(function(e){return e.name===n})<0})},[])),a.length)return o({navigationElements:i=v(i,a).map(function(e){return f({},e,{order:e.order||99})}).sort(function(e,n){return e.order-n.order})})},e.prototype.layoutRemoveAction=function(e,n){var t=e.getState,o=e.patchState,r=n.name,a=t().navigationElements,i=a.findIndex(function(e){return e.name===r});return i>-1&&(a=a.splice(i,1)),o({navigationElements:a})},h([i.Action(C),y("design:type",Function),y("design:paramtypes",[Object,C]),y("design:returntype",void 0)],e.prototype,"layoutAddAction",null),h([i.Action(O),y("design:type",Function),y("design:paramtypes",[Object,O]),y("design:returntype",void 0)],e.prototype,"layoutRemoveAction",null),h([i.Selector(),y("design:type",Function),y("design:paramtypes",[Object]),y("design:returntype",Array)],e,"getNavigationElements",null),e=h([i.State({name:"LayoutState",defaults:{navigationElements:[]}})],e)}(),L=function(){function e(e,n){this.store=e,this.oauthService=n,this.isOpenChangePassword=!1,this.isOpenProfile=!1,this.rightPartElements=[],this.trackByFn=function(e,n){return n.name},this.trackElementByFn=function(e,n){return n}}return Object.defineProperty(e.prototype,"visibleRoutes$",{get:function(){return this.routes$.pipe(d.map(function(e){return function e(n){return n.reduce(function(n,t){return t.invisible?n:(t.children&&t.children.length&&(t.children=e(t.children)),v(n,[t]))},[])}(e)}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"defaultLanguage$",{get:function(){var e=this;return this.languages$.pipe(d.map(function(n){return g(function(){return n.find(function(n){return n.cultureName===e.selectedLangCulture}).displayName})},""))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dropdownLanguages$",{get:function(){var e=this;return this.languages$.pipe(d.map(function(n){return g(function(){return n.filter(function(n){return n.cultureName!==e.selectedLangCulture})})},[]))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedLangCulture",{get:function(){return this.store.selectSnapshot(n.SessionState.getLanguage)},enumerable:!0,configurable:!0}),e.prototype.checkWindowWidth=function(){var e=this;setTimeout(function(){e.navbarRootDropdowns.forEach(function(e){e.close()}),window.innerWidth<768?e.isDropdownChildDynamic=!1:e.isDropdownChildDynamic=!0},0)},e.prototype.ngAfterViewInit=function(){var e=this;this.store.selectSnapshot(A.getNavigationElements).map(function(e){return e.name}).indexOf("LanguageRef")<0&&this.store.dispatch(new C([{element:this.languageRef,order:4,name:"LanguageRef"},{element:this.currentUserRef,order:5,name:"CurrentUserRef"}])),this.navElements$.pipe(d.map(function(e){return e.map(function(e){return e.element})}),d.filter(function(n){return!u(n,e.rightPartElements)}),n.takeUntilDestroy(this)).subscribe(function(n){setTimeout(function(){return e.rightPartElements=n},0)}),this.checkWindowWidth(),c.fromEvent(window,"resize").pipe(n.takeUntilDestroy(this),d.debounceTime(250)).subscribe(function(){e.checkWindowWidth()})},e.prototype.ngOnDestroy=function(){},e.prototype.onChangeLang=function(e){this.store.dispatch(new n.SetLanguage(e))},e.prototype.logout=function(){this.oauthService.logOut(),this.store.dispatch(new s.Navigate(["/"],null,{state:{redirectUrl:this.store.selectSnapshot(s.RouterState).state.url}})),this.store.dispatch(new n.GetAppConfiguration)},e.type="application",e.decorators=[{type:o.Component,args:[{selector:"abp-layout-application",template:'\n \n\n \n\n\n\n \n\n\n\n \n\n \n\n \n\n'}]}],e.ctorParameters=function(){return[{type:i.Store},{type:p.OAuthService}]},e.propDecorators={currentUserRef:[{type:o.ViewChild,args:["currentUser",{static:!1,read:o.TemplateRef}]}],languageRef:[{type:o.ViewChild,args:["language",{static:!1,read:o.TemplateRef}]}],navbarRootDropdowns:[{type:o.ViewChildren,args:["navbarRootDropdown",{read:r.NgbDropdown}]}]},h([i.Select(n.ConfigState.getOne("routes")),y("design:type",c.Observable)],e.prototype,"routes$",void 0),h([i.Select(n.ConfigState.getOne("currentUser")),y("design:type",c.Observable)],e.prototype,"currentUser$",void 0),h([i.Select(n.ConfigState.getDeep("localization.languages")),y("design:type",c.Observable)],e.prototype,"languages$",void 0),h([i.Select(A.getNavigationElements),y("design:type",c.Observable)],e.prototype,"navElements$",void 0),e}();var S=function(){function e(){}return e.type="empty",e.decorators=[{type:o.Component,args:[{selector:"abp-layout-empty",template:"\n Layout-empty\n \n "}]}],e}();var x=function(){function e(e){this.store=e,this.isCollapsed=!0}return Object.defineProperty(e.prototype,"appInfo",{get:function(){return this.store.selectSnapshot(n.ConfigState.getApplicationInfo)},enumerable:!0,configurable:!0}),e.decorators=[{type:o.Component,args:[{selector:" abp-layout",template:'\n\n\n \n\n\n\n\n\n\n {{ appInfo.name }}\n\n',animations:[t.slideFromBottom]}]}],e.ctorParameters=function(){return[{type:i.Store}]},e}();var P=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return function(e,n){function t(){this.constructor=e}m(e,n),e.prototype=null===n?Object.create(n):(t.prototype=n.prototype,new t)}(n,e),Object.defineProperty(n.prototype,"abpErrors",{get:function(){return this.errors&&this.errors.length?this.errors.map(function(e){if(!e.message)return e;var n=e.message.indexOf("[");return n>-1?f({},e,{message:e.message.slice(0,n),interpoliteParams:e.message.slice(n+1,e.message.length-1).split(",")}):e}):[]},enumerable:!0,configurable:!0}),n.decorators=[{type:o.Component,args:[{selector:"abp-validation-error",template:'\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n ',changeDetection:o.ChangeDetectionStrategy.OnPush,encapsulation:o.ViewEncapsulation.None}]}],n}(a.ValidationErrorComponent),k=function(){function e(e){this.lazyLoadService=e,this.appendStyle().subscribe()}return e.prototype.appendStyle=function(){return this.lazyLoadService.load(null,"style","\n.content-header-title {\n font-size: 24px;\n}\n\n.entry-row {\n margin-bottom: 15px;\n}\n","head","afterbegin")},e.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:n.LazyLoadService}]},e.ngInjectableDef=o.ɵɵdefineInjectable({factory:function(){return new e(o.ɵɵinject(n.LazyLoadService))},token:e,providedIn:"root"}),e}();var D,E=[L,w,S],j=function(){function e(e){this.initialService=e}return e.decorators=[{type:o.NgModule,args:[{declarations:v(E,[x,P]),imports:[n.CoreModule,t.ThemeSharedModule,r.NgbCollapseModule,r.NgbDropdownModule,l.ToastModule,a.NgxValidateCoreModule,i.NgxsModule.forFeature([A]),a.NgxValidateCoreModule.forRoot({targetSelector:".form-group",blueprints:{email:"AbpAccount::ThisFieldIsNotAValidEmailAddress.",max:"AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]",maxlength:"AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]",min:"AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]",minlength:"AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]",required:"AbpAccount::ThisFieldIsRequired.",passwordMismatch:"AbpIdentity::Identity.PasswordConfirmationFailed"},errorTemplate:P})],exports:v(E),entryComponents:v(E,[P])}]}],e.ctorParameters=function(){return[{type:k}]},e}();(function(e){function n(){}function t(){}e.State=n,e.NavigationElement=t})(D||(D={})),e.AccountLayoutComponent=w,e.AddNavigationElement=C,e.ApplicationLayoutComponent=L,e.EmptyLayoutComponent=S,e.LAYOUTS=E,e.LayoutState=A,e.RemoveNavigationElementByName=O,e.ThemeBasicModule=j,e.ValidationErrorComponent=P,e.ɵa=L,e.ɵb=A,e.ɵc=w,e.ɵd=S,e.ɵe=x,e.ɵf=P,e.ɵg=A,e.ɵh=C,e.ɵi=O,e.ɵk=k,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=abp-ng.theme.basic.umd.min.js.map \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js.map b/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js.map index e55c34dc28..63fbf9a0fa 100644 --- a/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js.map +++ b/npm/ng-packs/dist/theme-basic/bundles/abp-ng.theme.basic.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.theme.basic/lib/components/account-layout/account-layout.component.ts","ng://@abp/ng.theme.basic/lib/actions/layout.actions.ts","ng://@abp/ng.theme.basic/lib/states/layout.state.ts","ng://@abp/ng.theme.basic/lib/components/application-layout/application-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/empty-layout/empty-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/layout/layout.component.ts","ng://@abp/ng.theme.basic/lib/theme-basic.module.ts","ng://@abp/ng.theme.basic/lib/models/layout.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","__spread","concat","AccountLayoutComponent","type","Component","args","selector","template","AddNavigationElement","payload","RemoveNavigationElementByName","name","LayoutState","getNavigationElements","_a","navigationElements","layoutAddAction","_b","getState","patchState","_c","Array","isArray","snq","filter","findIndex","nav","tslib_1.__spread","map","element","order","sort","a","b","layoutRemoveAction","index","splice","tslib_1.__decorate","Action","Selector","State","defaults","ApplicationLayoutComponent","store","oauthService","isOpenChangePassword","isOpenProfile","rightPartElements","trackByFn","_","item","trackElementByFn","routes$","pipe","routes","getVisibleRoutes","reduce","acc","val","invisible","children","_this","languages$","languages","find","lang","cultureName","selectedLangCulture","displayName","selectSnapshot","SessionState","getLanguage","checkWindowWidth","setTimeout","navbarRootDropdowns","forEach","close","window","innerWidth","isDropdownChildDynamic","ngAfterViewInit","indexOf","dispatch","languageRef","currentUserRef","navElements$","elements","compare","takeUntilDestroy","subscribe","fromEvent","debounceTime","ngOnDestroy","onChangeLang","SetLanguage","logout","logOut","Navigate","state","redirectUrl","RouterState","url","GetAppConfiguration","Store","OAuthService","ViewChild","static","read","TemplateRef","ViewChildren","NgbDropdown","Select","ConfigState","getOne","Observable","getDeep","EmptyLayoutComponent","LayoutComponent","isCollapsed","getApplicationInfo","animations","slideFromBottom","Layout","LAYOUTS","ThemeBasicModule","NgModule","declarations","imports","CoreModule","ThemeSharedModule","NgbCollapseModule","NgbDropdownModule","ToastModule","NgxValidateCoreModule","NgxsModule","forFeature","exports","entryComponents","NavigationElement"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './account-layout.component.html',\n})\nexport class AccountLayoutComponent {\n // required for dynamic component\n static type = eLayoutType.account;\n}\n","import { Layout } from '../models/layout';\n\nexport class AddNavigationElement {\n static readonly type = '[Layout] Add Navigation Element';\n constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {}\n}\n\nexport class RemoveNavigationElementByName {\n static readonly type = '[Layout] Remove Navigation ElementByName';\n constructor(public name: string) {}\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { AddNavigationElement, RemoveNavigationElementByName } from '../actions/layout.actions';\nimport { Layout } from '../models/layout';\nimport { TemplateRef } from '@angular/core';\nimport snq from 'snq';\n\n@State({\n name: 'LayoutState',\n defaults: { navigationElements: [] } as Layout.State,\n})\nexport class LayoutState {\n @Selector()\n static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] {\n return navigationElements;\n }\n\n @Action(AddNavigationElement)\n layoutAddAction({ getState, patchState }: StateContext, { payload = [] }: AddNavigationElement) {\n let { navigationElements } = getState();\n\n if (!Array.isArray(payload)) {\n payload = [payload];\n }\n\n if (navigationElements.length) {\n payload = snq(\n () =>\n (payload as Layout.NavigationElement[]).filter(\n ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0,\n ),\n [],\n );\n }\n\n if (!payload.length) return;\n\n navigationElements = [...navigationElements, ...payload]\n .map(element => ({ ...element, order: element.order || 99 }))\n .sort((a, b) => a.order - b.order);\n\n return patchState({\n navigationElements,\n });\n }\n\n @Action(RemoveNavigationElementByName)\n layoutRemoveAction({ getState, patchState }: StateContext, { name }: RemoveNavigationElementByName) {\n let { navigationElements } = getState();\n\n const index = navigationElements.findIndex(element => element.name === name);\n\n if (index > -1) {\n navigationElements = navigationElements.splice(index, 1);\n }\n\n return patchState({\n navigationElements,\n });\n }\n}\n","import {\n ABP,\n ApplicationConfiguration,\n GetAppConfiguration,\n ConfigState,\n eLayoutType,\n SetLanguage,\n SessionState,\n takeUntilDestroy,\n} from '@abp/ng.core';\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n QueryList,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\nimport { Navigate, RouterState } from '@ngxs/router-plugin';\nimport { Select, Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport compare from 'just-compare';\nimport { fromEvent, Observable } from 'rxjs';\nimport { debounceTime, filter, map } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AddNavigationElement } from '../../actions';\nimport { Layout } from '../../models/layout';\nimport { LayoutState } from '../../states';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './application-layout.component.html',\n})\nexport class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {\n // required for dynamic component\n static type = eLayoutType.application;\n\n @Select(ConfigState.getOne('routes'))\n routes$: Observable;\n\n @Select(ConfigState.getOne('currentUser'))\n currentUser$: Observable;\n\n @Select(ConfigState.getDeep('localization.languages'))\n languages$: Observable;\n\n @Select(LayoutState.getNavigationElements)\n navElements$: Observable;\n\n @ViewChild('currentUser', { static: false, read: TemplateRef })\n currentUserRef: TemplateRef;\n\n @ViewChild('language', { static: false, read: TemplateRef })\n languageRef: TemplateRef;\n\n @ViewChildren('navbarRootDropdown', { read: NgbDropdown })\n navbarRootDropdowns: QueryList;\n\n isOpenChangePassword: boolean = false;\n\n isOpenProfile: boolean = false;\n\n isDropdownChildDynamic: boolean;\n\n get visibleRoutes$(): Observable {\n return this.routes$.pipe(map(routes => getVisibleRoutes(routes)));\n }\n\n get defaultLanguage$(): Observable {\n return this.languages$.pipe(\n map(\n languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable {\n return this.languages$.pipe(\n map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []),\n );\n }\n\n get selectedLangCulture(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n rightPartElements: TemplateRef[] = [];\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n trackElementByFn: TrackByFunction = (_, element) => element;\n\n constructor(private store: Store, private oauthService: OAuthService) {}\n\n private checkWindowWidth() {\n setTimeout(() => {\n this.navbarRootDropdowns.forEach(item => {\n item.close();\n });\n if (window.innerWidth < 768) {\n this.isDropdownChildDynamic = false;\n } else {\n this.isDropdownChildDynamic = true;\n }\n }, 0);\n }\n\n ngAfterViewInit() {\n const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name);\n\n if (navigations.indexOf('LanguageRef') < 0) {\n this.store.dispatch(\n new AddNavigationElement([\n { element: this.languageRef, order: 4, name: 'LanguageRef' },\n { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' },\n ]),\n );\n }\n\n this.navElements$\n .pipe(\n map(elements => elements.map(({ element }) => element)),\n filter(elements => !compare(elements, this.rightPartElements)),\n takeUntilDestroy(this),\n )\n .subscribe(elements => {\n setTimeout(() => (this.rightPartElements = elements), 0);\n });\n\n this.checkWindowWidth();\n\n fromEvent(window, 'resize')\n .pipe(\n takeUntilDestroy(this),\n debounceTime(250),\n )\n .subscribe(() => {\n this.checkWindowWidth();\n });\n }\n\n ngOnDestroy() {}\n\n onChangeLang(cultureName: string) {\n this.store.dispatch(new SetLanguage(cultureName));\n }\n\n logout() {\n this.oauthService.logOut();\n this.store.dispatch(\n new Navigate(['/'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n this.store.dispatch(new GetAppConfiguration());\n }\n}\n\nfunction getVisibleRoutes(routes: ABP.FullRoute[]) {\n return routes.reduce((acc, val) => {\n if (val.invisible) return acc;\n\n if (val.children && val.children.length) {\n val.children = getVisibleRoutes(val.children);\n }\n\n return [...acc, val];\n }, []);\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-empty',\n template: `\n Layout-empty\n \n `,\n})\nexport class EmptyLayoutComponent {\n static type = eLayoutType.empty;\n}\n","import { Config, ConfigState } from '@abp/ng.core';\nimport { slideFromBottom } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngxs/store';\n\n@Component({\n selector: ' abp-layout',\n templateUrl: './layout.component.html',\n animations: [slideFromBottom],\n})\nexport class LayoutComponent {\n isCollapsed: boolean = true;\n\n get appInfo(): Config.Application {\n return this.store.selectSnapshot(ConfigState.getApplicationInfo);\n }\n\n constructor(private store: Store) {}\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { ToastModule } from 'primeng/toast';\nimport { AccountLayoutComponent } from './components/account-layout/account-layout.component';\nimport { ApplicationLayoutComponent } from './components/application-layout/application-layout.component';\nimport { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { LayoutState } from './states/layout.state';\n\nexport const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];\n\n@NgModule({\n declarations: [...LAYOUTS, LayoutComponent],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n ToastModule,\n NgxValidateCoreModule,\n NgxsModule.forFeature([LayoutState]),\n ],\n exports: [...LAYOUTS],\n entryComponents: [...LAYOUTS],\n})\nexport class ThemeBasicModule {}\n","import { TemplateRef } from '@angular/core';\n\nexport namespace Layout {\n export interface State {\n navigationElements: NavigationElement[];\n }\n\n export interface NavigationElement {\n name: string;\n element: TemplateRef;\n order?: number;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.theme.basic/lib/components/account-layout/account-layout.component.ts","ng://@abp/ng.theme.basic/lib/actions/layout.actions.ts","ng://@abp/ng.theme.basic/lib/states/layout.state.ts","ng://@abp/ng.theme.basic/lib/components/application-layout/application-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/empty-layout/empty-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/layout/layout.component.ts","ng://@abp/ng.theme.basic/lib/components/validation-error/validation-error.component.ts","ng://@abp/ng.theme.basic/lib/services/initial.service.ts","ng://@abp/ng.theme.basic/lib/constants/styles.ts","ng://@abp/ng.theme.basic/lib/theme-basic.module.ts","ng://@abp/ng.theme.basic/lib/models/layout.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__assign","assign","t","s","i","n","arguments","length","prototype","call","apply","this","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","__spread","concat","AccountLayoutComponent","type","Component","args","selector","template","AddNavigationElement","payload","RemoveNavigationElementByName","name","LayoutState","getNavigationElements","_a","navigationElements","layoutAddAction","_b","getState","patchState","_c","isArray","snq","filter","findIndex","nav","tslib_1.__spread","map","element","order","sort","a","layoutRemoveAction","index","splice","tslib_1.__decorate","Action","Selector","State","defaults","ApplicationLayoutComponent","store","oauthService","isOpenChangePassword","isOpenProfile","rightPartElements","trackByFn","_","item","trackElementByFn","routes$","pipe","routes","getVisibleRoutes","reduce","acc","val","invisible","children","_this","languages$","languages","find","lang","cultureName","selectedLangCulture","displayName","selectSnapshot","SessionState","getLanguage","checkWindowWidth","setTimeout","navbarRootDropdowns","forEach","close","window","innerWidth","isDropdownChildDynamic","ngAfterViewInit","indexOf","dispatch","languageRef","currentUserRef","navElements$","elements","compare","takeUntilDestroy","subscribe","fromEvent","debounceTime","ngOnDestroy","onChangeLang","SetLanguage","logout","logOut","Navigate","state","redirectUrl","RouterState","url","GetAppConfiguration","Store","OAuthService","ViewChild","static","read","TemplateRef","ViewChildren","NgbDropdown","Select","ConfigState","getOne","Observable","getDeep","EmptyLayoutComponent","LayoutComponent","isCollapsed","getApplicationInfo","animations","slideFromBottom","ValidationErrorComponent","__","constructor","create","tslib_1.__extends","errors","message","slice","interpoliteParams","split","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","ErrorComponent","InitialService","lazyLoadService","appendStyle","load","Injectable","providedIn","LazyLoadService","Layout","LAYOUTS","ThemeBasicModule","initialService","NgModule","declarations","imports","CoreModule","ThemeSharedModule","NgbCollapseModule","NgbDropdownModule","ToastModule","NgxValidateCoreModule","NgxsModule","forFeature","forRoot","targetSelector","blueprints","email","max","maxlength","min","minlength","required","passwordMismatch","errorTemplate","exports","entryComponents","NavigationElement"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './account-layout.component.html',\n})\nexport class AccountLayoutComponent {\n // required for dynamic component\n static type = eLayoutType.account;\n}\n","import { Layout } from '../models/layout';\n\nexport class AddNavigationElement {\n static readonly type = '[Layout] Add Navigation Element';\n constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {}\n}\n\nexport class RemoveNavigationElementByName {\n static readonly type = '[Layout] Remove Navigation ElementByName';\n constructor(public name: string) {}\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { AddNavigationElement, RemoveNavigationElementByName } from '../actions/layout.actions';\nimport { Layout } from '../models/layout';\nimport { TemplateRef } from '@angular/core';\nimport snq from 'snq';\n\n@State({\n name: 'LayoutState',\n defaults: { navigationElements: [] } as Layout.State,\n})\nexport class LayoutState {\n @Selector()\n static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] {\n return navigationElements;\n }\n\n @Action(AddNavigationElement)\n layoutAddAction({ getState, patchState }: StateContext, { payload = [] }: AddNavigationElement) {\n let { navigationElements } = getState();\n\n if (!Array.isArray(payload)) {\n payload = [payload];\n }\n\n if (navigationElements.length) {\n payload = snq(\n () =>\n (payload as Layout.NavigationElement[]).filter(\n ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0,\n ),\n [],\n );\n }\n\n if (!payload.length) return;\n\n navigationElements = [...navigationElements, ...payload]\n .map(element => ({ ...element, order: element.order || 99 }))\n .sort((a, b) => a.order - b.order);\n\n return patchState({\n navigationElements,\n });\n }\n\n @Action(RemoveNavigationElementByName)\n layoutRemoveAction({ getState, patchState }: StateContext, { name }: RemoveNavigationElementByName) {\n let { navigationElements } = getState();\n\n const index = navigationElements.findIndex(element => element.name === name);\n\n if (index > -1) {\n navigationElements = navigationElements.splice(index, 1);\n }\n\n return patchState({\n navigationElements,\n });\n }\n}\n","import {\n ABP,\n ApplicationConfiguration,\n GetAppConfiguration,\n ConfigState,\n eLayoutType,\n SetLanguage,\n SessionState,\n takeUntilDestroy,\n} from '@abp/ng.core';\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n QueryList,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\nimport { Navigate, RouterState } from '@ngxs/router-plugin';\nimport { Select, Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport compare from 'just-compare';\nimport { fromEvent, Observable } from 'rxjs';\nimport { debounceTime, filter, map } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AddNavigationElement } from '../../actions';\nimport { Layout } from '../../models/layout';\nimport { LayoutState } from '../../states';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './application-layout.component.html',\n})\nexport class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {\n // required for dynamic component\n static type = eLayoutType.application;\n\n @Select(ConfigState.getOne('routes'))\n routes$: Observable;\n\n @Select(ConfigState.getOne('currentUser'))\n currentUser$: Observable;\n\n @Select(ConfigState.getDeep('localization.languages'))\n languages$: Observable;\n\n @Select(LayoutState.getNavigationElements)\n navElements$: Observable;\n\n @ViewChild('currentUser', { static: false, read: TemplateRef })\n currentUserRef: TemplateRef;\n\n @ViewChild('language', { static: false, read: TemplateRef })\n languageRef: TemplateRef;\n\n @ViewChildren('navbarRootDropdown', { read: NgbDropdown })\n navbarRootDropdowns: QueryList;\n\n isOpenChangePassword: boolean = false;\n\n isOpenProfile: boolean = false;\n\n isDropdownChildDynamic: boolean;\n\n get visibleRoutes$(): Observable {\n return this.routes$.pipe(map(routes => getVisibleRoutes(routes)));\n }\n\n get defaultLanguage$(): Observable {\n return this.languages$.pipe(\n map(\n languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable {\n return this.languages$.pipe(\n map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []),\n );\n }\n\n get selectedLangCulture(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n rightPartElements: TemplateRef[] = [];\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n trackElementByFn: TrackByFunction = (_, element) => element;\n\n constructor(private store: Store, private oauthService: OAuthService) {}\n\n private checkWindowWidth() {\n setTimeout(() => {\n this.navbarRootDropdowns.forEach(item => {\n item.close();\n });\n if (window.innerWidth < 768) {\n this.isDropdownChildDynamic = false;\n } else {\n this.isDropdownChildDynamic = true;\n }\n }, 0);\n }\n\n ngAfterViewInit() {\n const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name);\n\n if (navigations.indexOf('LanguageRef') < 0) {\n this.store.dispatch(\n new AddNavigationElement([\n { element: this.languageRef, order: 4, name: 'LanguageRef' },\n { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' },\n ]),\n );\n }\n\n this.navElements$\n .pipe(\n map(elements => elements.map(({ element }) => element)),\n filter(elements => !compare(elements, this.rightPartElements)),\n takeUntilDestroy(this),\n )\n .subscribe(elements => {\n setTimeout(() => (this.rightPartElements = elements), 0);\n });\n\n this.checkWindowWidth();\n\n fromEvent(window, 'resize')\n .pipe(\n takeUntilDestroy(this),\n debounceTime(250),\n )\n .subscribe(() => {\n this.checkWindowWidth();\n });\n }\n\n ngOnDestroy() {}\n\n onChangeLang(cultureName: string) {\n this.store.dispatch(new SetLanguage(cultureName));\n }\n\n logout() {\n this.oauthService.logOut();\n this.store.dispatch(\n new Navigate(['/'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n this.store.dispatch(new GetAppConfiguration());\n }\n}\n\nfunction getVisibleRoutes(routes: ABP.FullRoute[]) {\n return routes.reduce((acc, val) => {\n if (val.invisible) return acc;\n\n if (val.children && val.children.length) {\n val.children = getVisibleRoutes(val.children);\n }\n\n return [...acc, val];\n }, []);\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-empty',\n template: `\n Layout-empty\n \n `,\n})\nexport class EmptyLayoutComponent {\n static type = eLayoutType.empty;\n}\n","import { Config, ConfigState } from '@abp/ng.core';\nimport { slideFromBottom } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngxs/store';\n\n@Component({\n selector: ' abp-layout',\n templateUrl: './layout.component.html',\n animations: [slideFromBottom],\n})\nexport class LayoutComponent {\n isCollapsed: boolean = true;\n\n get appInfo(): Config.Application {\n return this.store.selectSnapshot(ConfigState.getApplicationInfo);\n }\n\n constructor(private store: Store) {}\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { Validation, ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core';\n\n@Component({\n selector: 'abp-validation-error',\n template: `\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ValidationErrorComponent extends ErrorComponent {\n get abpErrors(): Validation.Error[] & { interpoliteParams?: string[] } {\n if (!this.errors || !this.errors.length) return [];\n\n return this.errors.map(error => {\n if (!error.message) return error;\n\n const index = error.message.indexOf('[');\n\n if (index > -1) {\n return {\n ...error,\n message: error.message.slice(0, index),\n interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(','),\n };\n }\n\n return error;\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LazyLoadService } from '@abp/ng.core';\nimport styles from '../constants/styles';\n\n@Injectable({ providedIn: 'root' })\nexport class InitialService {\n constructor(private lazyLoadService: LazyLoadService) {\n this.appendStyle().subscribe();\n }\n\n appendStyle() {\n return this.lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin');\n }\n}\n","export default `\n.content-header-title {\n font-size: 24px;\n}\n\n.entry-row {\n margin-bottom: 15px;\n}\n`;","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { ToastModule } from 'primeng/toast';\nimport { AccountLayoutComponent } from './components/account-layout/account-layout.component';\nimport { ApplicationLayoutComponent } from './components/application-layout/application-layout.component';\nimport { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { LayoutState } from './states/layout.state';\nimport { ValidationErrorComponent } from './components/validation-error/validation-error.component';\nimport { InitialService } from './services/initial.service';\n\nexport const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];\n\n@NgModule({\n declarations: [...LAYOUTS, LayoutComponent, ValidationErrorComponent],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n ToastModule,\n NgxValidateCoreModule,\n NgxsModule.forFeature([LayoutState]),\n NgxValidateCoreModule.forRoot({\n targetSelector: '.form-group',\n blueprints: {\n email: `AbpAccount::ThisFieldIsNotAValidEmailAddress.`,\n max: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`,\n maxlength: `AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]`,\n min: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`,\n minlength: `AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]`,\n required: `AbpAccount::ThisFieldIsRequired.`,\n passwordMismatch: `AbpIdentity::Identity.PasswordConfirmationFailed`,\n },\n errorTemplate: ValidationErrorComponent,\n }),\n ],\n exports: [...LAYOUTS],\n entryComponents: [...LAYOUTS, ValidationErrorComponent],\n})\nexport class ThemeBasicModule {\n constructor(private initialService: InitialService) {}\n}\n","import { TemplateRef } from '@angular/core';\n\nexport namespace Layout {\n export interface State {\n navigationElements: NavigationElement[];\n }\n\n export interface NavigationElement {\n name: string;\n element: TemplateRef;\n order?: number;\n }\n}\n"]} \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm2015/abp-ng.theme.basic.js b/npm/ng-packs/dist/theme-basic/esm2015/abp-ng.theme.basic.js index cf2d483fbb..d2b143cce5 100644 --- a/npm/ng-packs/dist/theme-basic/esm2015/abp-ng.theme.basic.js +++ b/npm/ng-packs/dist/theme-basic/esm2015/abp-ng.theme.basic.js @@ -5,12 +5,14 @@ /** * Generated bundle index. Do not edit. */ -export { LAYOUTS, ThemeBasicModule, AddNavigationElement, RemoveNavigationElementByName, AccountLayoutComponent, ApplicationLayoutComponent, EmptyLayoutComponent, LayoutState } from './public-api'; -export { AddNavigationElement as ɵg, RemoveNavigationElementByName as ɵh } from './lib/actions/layout.actions'; +export { LAYOUTS, ThemeBasicModule, AddNavigationElement, RemoveNavigationElementByName, AccountLayoutComponent, ApplicationLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent, LayoutState } from './public-api'; +export { AddNavigationElement as ɵh, RemoveNavigationElementByName as ɵi } from './lib/actions/layout.actions'; export { AccountLayoutComponent as ɵc } from './lib/components/account-layout/account-layout.component'; export { ApplicationLayoutComponent as ɵa } from './lib/components/application-layout/application-layout.component'; export { EmptyLayoutComponent as ɵd } from './lib/components/empty-layout/empty-layout.component'; export { LayoutComponent as ɵe } from './lib/components/layout/layout.component'; +export { ValidationErrorComponent as ɵf } from './lib/components/validation-error/validation-error.component'; +export { InitialService as ɵk } from './lib/services/initial.service'; export { LayoutState as ɵb } from './lib/states'; -export { LayoutState as ɵf } from './lib/states/layout.state'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLmJhc2ljLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImFicC1uZy50aGVtZS5iYXNpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsc0xBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsNkJBQTZCLElBQUksRUFBRSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUcsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ3RHLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUNsSCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUUvRSxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0FkZE5hdmlnYXRpb25FbGVtZW50IGFzIMm1ZyxSZW1vdmVOYXZpZ2F0aW9uRWxlbWVudEJ5TmFtZSBhcyDJtWh9IGZyb20gJy4vbGliL2FjdGlvbnMvbGF5b3V0LmFjdGlvbnMnO1xuZXhwb3J0IHtBY2NvdW50TGF5b3V0Q29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0IHtBcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXBwbGljYXRpb24tbGF5b3V0L2FwcGxpY2F0aW9uLWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0IHtFbXB0eUxheW91dENvbXBvbmVudCBhcyDJtWR9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZW1wdHktbGF5b3V0L2VtcHR5LWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0IHtMYXlvdXRDb21wb25lbnQgYXMgybVlfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCB7TGF5b3V0IGFzIMm1aX0gZnJvbSAnLi9saWIvbW9kZWxzL2xheW91dCc7XG5leHBvcnQge0xheW91dFN0YXRlIGFzIMm1Yn0gZnJvbSAnLi9saWIvc3RhdGVzJztcbmV4cG9ydCB7TGF5b3V0U3RhdGUgYXMgybVmfSBmcm9tICcuL2xpYi9zdGF0ZXMvbGF5b3V0LnN0YXRlJzsiXX0= \ No newline at end of file +export { LayoutState as ɵg } from './lib/states/layout.state'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLmJhc2ljLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImFicC1uZy50aGVtZS5iYXNpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsZ05BQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsNkJBQTZCLElBQUksRUFBRSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUcsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ3RHLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUNsSCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsd0JBQXdCLElBQUksRUFBRSxFQUFDLE1BQU0sOERBQThELENBQUM7QUFFNUcsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0FkZE5hdmlnYXRpb25FbGVtZW50IGFzIMm1aCxSZW1vdmVOYXZpZ2F0aW9uRWxlbWVudEJ5TmFtZSBhcyDJtWl9IGZyb20gJy4vbGliL2FjdGlvbnMvbGF5b3V0LmFjdGlvbnMnO1xuZXhwb3J0IHtBY2NvdW50TGF5b3V0Q29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0IHtBcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXBwbGljYXRpb24tbGF5b3V0L2FwcGxpY2F0aW9uLWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0IHtFbXB0eUxheW91dENvbXBvbmVudCBhcyDJtWR9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZW1wdHktbGF5b3V0L2VtcHR5LWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0IHtMYXlvdXRDb21wb25lbnQgYXMgybVlfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCB7VmFsaWRhdGlvbkVycm9yQ29tcG9uZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy92YWxpZGF0aW9uLWVycm9yL3ZhbGlkYXRpb24tZXJyb3IuY29tcG9uZW50JztcbmV4cG9ydCB7TGF5b3V0IGFzIMm1an0gZnJvbSAnLi9saWIvbW9kZWxzL2xheW91dCc7XG5leHBvcnQge0luaXRpYWxTZXJ2aWNlIGFzIMm1a30gZnJvbSAnLi9saWIvc2VydmljZXMvaW5pdGlhbC5zZXJ2aWNlJztcbmV4cG9ydCB7TGF5b3V0U3RhdGUgYXMgybVifSBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuZXhwb3J0IHtMYXlvdXRTdGF0ZSBhcyDJtWd9IGZyb20gJy4vbGliL3N0YXRlcy9sYXlvdXQuc3RhdGUnOyJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm2015/lib/components/index.js b/npm/ng-packs/dist/theme-basic/esm2015/lib/components/index.js index e64ecf3cbd..f42d19323d 100644 --- a/npm/ng-packs/dist/theme-basic/esm2015/lib/components/index.js +++ b/npm/ng-packs/dist/theme-basic/esm2015/lib/components/index.js @@ -5,4 +5,5 @@ export { AccountLayoutComponent } from './account-layout/account-layout.component'; export { ApplicationLayoutComponent } from './application-layout/application-layout.component'; export { EmptyLayoutComponent } from './empty-layout/empty-layout.component'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVDQUFjLDJDQUEyQyxDQUFDO0FBQzFELDJDQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLHFDQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2VtcHR5LWxheW91dC9lbXB0eS1sYXlvdXQuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file +export { ValidationErrorComponent } from './validation-error/validation-error.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVDQUFjLDJDQUEyQyxDQUFDO0FBQzFELDJDQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLHFDQUFjLHVDQUF1QyxDQUFDO0FBQ3RELHlDQUFjLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2VtcHR5LWxheW91dC9lbXB0eS1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm2015/lib/components/validation-error/validation-error.component.js b/npm/ng-packs/dist/theme-basic/esm2015/lib/components/validation-error/validation-error.component.js new file mode 100644 index 0000000000..a9a84cf4b8 --- /dev/null +++ b/npm/ng-packs/dist/theme-basic/esm2015/lib/components/validation-error/validation-error.component.js @@ -0,0 +1,42 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; +import { ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core'; +export class ValidationErrorComponent extends ErrorComponent { + /** + * @return {?} + */ + get abpErrors() { + if (!this.errors || !this.errors.length) + return []; + return this.errors.map((/** + * @param {?} error + * @return {?} + */ + error => { + if (!error.message) + return error; + /** @type {?} */ + const index = error.message.indexOf('['); + if (index > -1) { + return Object.assign({}, error, { message: error.message.slice(0, index), interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(',') }); + } + return error; + })); + } +} +ValidationErrorComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-validation-error', + template: ` +
    + {{ error.message | abpLocalization: error.interpoliteParams }} +
    + `, + changeDetection: ChangeDetectionStrategy.OnPush, + encapsulation: ViewEncapsulation.None + }] } +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQWMsd0JBQXdCLElBQUksY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFZNUYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGNBQWM7Ozs7SUFDMUQsSUFBSSxTQUFTO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUVuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRzs7OztRQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTztnQkFBRSxPQUFPLEtBQUssQ0FBQzs7a0JBRTNCLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFFeEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QseUJBQ0ssS0FBSyxJQUNSLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQ3RDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUN0RjthQUNIO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7OztZQTdCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsUUFBUSxFQUFFOzs7O0dBSVQ7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRpb24sIFZhbGlkYXRpb25FcnJvckNvbXBvbmVudCBhcyBFcnJvckNvbXBvbmVudCB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC12YWxpZGF0aW9uLWVycm9yJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0Zvcj1cImxldCBlcnJvciBvZiBhYnBFcnJvcnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAge3sgZXJyb3IubWVzc2FnZSB8IGFicExvY2FsaXphdGlvbjogZXJyb3IuaW50ZXJwb2xpdGVQYXJhbXMgfX1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvckNvbXBvbmVudCBleHRlbmRzIEVycm9yQ29tcG9uZW50IHtcbiAgZ2V0IGFicEVycm9ycygpOiBWYWxpZGF0aW9uLkVycm9yW10gJiB7IGludGVycG9saXRlUGFyYW1zPzogc3RyaW5nW10gfSB7XG4gICAgaWYgKCF0aGlzLmVycm9ycyB8fCAhdGhpcy5lcnJvcnMubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgICByZXR1cm4gdGhpcy5lcnJvcnMubWFwKGVycm9yID0+IHtcbiAgICAgIGlmICghZXJyb3IubWVzc2FnZSkgcmV0dXJuIGVycm9yO1xuXG4gICAgICBjb25zdCBpbmRleCA9IGVycm9yLm1lc3NhZ2UuaW5kZXhPZignWycpO1xuXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmVycm9yLFxuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2Uuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgICAgIGludGVycG9saXRlUGFyYW1zOiBlcnJvci5tZXNzYWdlLnNsaWNlKGluZGV4ICsgMSwgZXJyb3IubWVzc2FnZS5sZW5ndGggLSAxKS5zcGxpdCgnLCcpLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZXJyb3I7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm2015/lib/constants/styles.js b/npm/ng-packs/dist/theme-basic/esm2015/lib/constants/styles.js new file mode 100644 index 0000000000..2237450fa2 --- /dev/null +++ b/npm/ng-packs/dist/theme-basic/esm2015/lib/constants/styles.js @@ -0,0 +1,14 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export default ` +.content-header-title { + font-size: 24px; +} + +.entry-row { + margin-bottom: 15px; +} +`; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxlQUFlOzs7Ozs7OztDQVFkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBgXG4uY29udGVudC1oZWFkZXItdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbn1cblxuLmVudHJ5LXJvdyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cbmA7Il19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm2015/lib/services/initial.service.js b/npm/ng-packs/dist/theme-basic/esm2015/lib/services/initial.service.js new file mode 100644 index 0000000000..8320bb4189 --- /dev/null +++ b/npm/ng-packs/dist/theme-basic/esm2015/lib/services/initial.service.js @@ -0,0 +1,40 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { LazyLoadService } from '@abp/ng.core'; +import styles from '../constants/styles'; +import * as i0 from "@angular/core"; +import * as i1 from "@abp/ng.core"; +export class InitialService { + /** + * @param {?} lazyLoadService + */ + constructor(lazyLoadService) { + this.lazyLoadService = lazyLoadService; + this.appendStyle().subscribe(); + } + /** + * @return {?} + */ + appendStyle() { + return this.lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin'); + } +} +InitialService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } +]; +/** @nocollapse */ +InitialService.ctorParameters = () => [ + { type: LazyLoadService } +]; +/** @nocollapse */ InitialService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function InitialService_Factory() { return new InitialService(i0.ɵɵinject(i1.LazyLoadService)); }, token: InitialService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + InitialService.prototype.lazyLoadService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9pbml0aWFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQzs7O0FBR3pDLE1BQU0sT0FBTyxjQUFjOzs7O0lBQ3pCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNsRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakMsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNoRixDQUFDOzs7WUFSRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7O1lBSHpCLGVBQWU7Ozs7Ozs7O0lBS1YseUNBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExhenlMb2FkU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4uL2NvbnN0YW50cy9zdHlsZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEluaXRpYWxTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYXp5TG9hZFNlcnZpY2U6IExhenlMb2FkU2VydmljZSkge1xuICAgIHRoaXMuYXBwZW5kU3R5bGUoKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGFwcGVuZFN0eWxlKCkge1xuICAgIHJldHVybiB0aGlzLmxhenlMb2FkU2VydmljZS5sb2FkKG51bGwsICdzdHlsZScsIHN0eWxlcywgJ2hlYWQnLCAnYWZ0ZXJiZWdpbicpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm2015/lib/theme-basic.module.js b/npm/ng-packs/dist/theme-basic/esm2015/lib/theme-basic.module.js index ad646507dc..547db4adbc 100644 --- a/npm/ng-packs/dist/theme-basic/esm2015/lib/theme-basic.module.js +++ b/npm/ng-packs/dist/theme-basic/esm2015/lib/theme-basic.module.js @@ -14,13 +14,21 @@ import { ApplicationLayoutComponent } from './components/application-layout/appl import { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component'; import { LayoutComponent } from './components/layout/layout.component'; import { LayoutState } from './states/layout.state'; +import { ValidationErrorComponent } from './components/validation-error/validation-error.component'; +import { InitialService } from './services/initial.service'; /** @type {?} */ export const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent]; export class ThemeBasicModule { + /** + * @param {?} initialService + */ + constructor(initialService) { + this.initialService = initialService; + } } ThemeBasicModule.decorators = [ { type: NgModule, args: [{ - declarations: [...LAYOUTS, LayoutComponent], + declarations: [...LAYOUTS, LayoutComponent, ValidationErrorComponent], imports: [ CoreModule, ThemeSharedModule, @@ -29,9 +37,33 @@ ThemeBasicModule.decorators = [ ToastModule, NgxValidateCoreModule, NgxsModule.forFeature([LayoutState]), + NgxValidateCoreModule.forRoot({ + targetSelector: '.form-group', + blueprints: { + email: `AbpAccount::ThisFieldIsNotAValidEmailAddress.`, + max: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`, + maxlength: `AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]`, + min: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`, + minlength: `AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]`, + required: `AbpAccount::ThisFieldIsRequired.`, + passwordMismatch: `AbpIdentity::Identity.PasswordConfirmationFailed`, + }, + errorTemplate: ValidationErrorComponent, + }), ], exports: [...LAYOUTS], - entryComponents: [...LAYOUTS], + entryComponents: [...LAYOUTS, ValidationErrorComponent], },] } ]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtYmFzaWMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi90aGVtZS1iYXNpYy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDOUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDMUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFcEQsTUFBTSxPQUFPLE9BQU8sR0FBRyxDQUFDLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixDQUFDO0FBZ0JqRyxNQUFNLE9BQU8sZ0JBQWdCOzs7WUFkNUIsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLGVBQWUsQ0FBQztnQkFDM0MsT0FBTyxFQUFFO29CQUNQLFVBQVU7b0JBQ1YsaUJBQWlCO29CQUNqQixpQkFBaUI7b0JBQ2pCLGlCQUFpQjtvQkFDakIsV0FBVztvQkFDWCxxQkFBcUI7b0JBQ3JCLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDckM7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7Z0JBQ3JCLGVBQWUsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO2FBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JDb2xsYXBzZU1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5pbXBvcnQgeyBBY2NvdW50TGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FjY291bnQtbGF5b3V0L2FjY291bnQtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbXB0eS1sYXlvdXQvZW1wdHktbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0L2xheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0U3RhdGUgfSBmcm9tICcuL3N0YXRlcy9sYXlvdXQuc3RhdGUnO1xuXG5leHBvcnQgY29uc3QgTEFZT1VUUyA9IFtBcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCwgQWNjb3VudExheW91dENvbXBvbmVudCwgRW1wdHlMYXlvdXRDb21wb25lbnRdO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsuLi5MQVlPVVRTLCBMYXlvdXRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29yZU1vZHVsZSxcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcbiAgICBOZ2JDb2xsYXBzZU1vZHVsZSxcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcbiAgICBUb2FzdE1vZHVsZSxcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXG4gICAgTmd4c01vZHVsZS5mb3JGZWF0dXJlKFtMYXlvdXRTdGF0ZV0pLFxuICBdLFxuICBleHBvcnRzOiBbLi4uTEFZT1VUU10sXG4gIGVudHJ5Q29tcG9uZW50czogWy4uLkxBWU9VVFNdLFxufSlcbmV4cG9ydCBjbGFzcyBUaGVtZUJhc2ljTW9kdWxlIHt9XG4iXX0= \ No newline at end of file +/** @nocollapse */ +ThemeBasicModule.ctorParameters = () => [ + { type: InitialService } +]; +if (false) { + /** + * @type {?} + * @private + */ + ThemeBasicModule.prototype.initialService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtYmFzaWMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi90aGVtZS1iYXNpYy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDOUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDMUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRTVELE1BQU0sT0FBTyxPQUFPLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsQ0FBQztBQTZCakcsTUFBTSxPQUFPLGdCQUFnQjs7OztJQUMzQixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDOzs7WUE1QnZELFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxlQUFlLEVBQUUsd0JBQXdCLENBQUM7Z0JBQ3JFLE9BQU8sRUFBRTtvQkFDUCxVQUFVO29CQUNWLGlCQUFpQjtvQkFDakIsaUJBQWlCO29CQUNqQixpQkFBaUI7b0JBQ2pCLFdBQVc7b0JBQ1gscUJBQXFCO29CQUNyQixVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ3BDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQzt3QkFDNUIsY0FBYyxFQUFFLGFBQWE7d0JBQzdCLFVBQVUsRUFBRTs0QkFDVixLQUFLLEVBQUUsK0NBQStDOzRCQUN0RCxHQUFHLEVBQUUsa0VBQWtFOzRCQUN2RSxTQUFTLEVBQUUsaUZBQWlGOzRCQUM1RixHQUFHLEVBQUUsa0VBQWtFOzRCQUN2RSxTQUFTLEVBQUUsd0ZBQXdGOzRCQUNuRyxRQUFRLEVBQUUsa0NBQWtDOzRCQUM1QyxnQkFBZ0IsRUFBRSxrREFBa0Q7eUJBQ3JFO3dCQUNELGFBQWEsRUFBRSx3QkFBd0I7cUJBQ3hDLENBQUM7aUJBQ0g7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7Z0JBQ3JCLGVBQWUsRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLHdCQUF3QixDQUFDO2FBQ3hEOzs7O1lBOUJRLGNBQWM7Ozs7Ozs7SUFnQ1QsMENBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JDb2xsYXBzZU1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5pbXBvcnQgeyBBY2NvdW50TGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FjY291bnQtbGF5b3V0L2FjY291bnQtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbXB0eS1sYXlvdXQvZW1wdHktbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0L2xheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0U3RhdGUgfSBmcm9tICcuL3N0YXRlcy9sYXlvdXQuc3RhdGUnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ZhbGlkYXRpb24tZXJyb3IvdmFsaWRhdGlvbi1lcnJvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5pdGlhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2luaXRpYWwuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBMQVlPVVRTID0gW0FwcGxpY2F0aW9uTGF5b3V0Q29tcG9uZW50LCBBY2NvdW50TGF5b3V0Q29tcG9uZW50LCBFbXB0eUxheW91dENvbXBvbmVudF07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogWy4uLkxBWU9VVFMsIExheW91dENvbXBvbmVudCwgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvcmVNb2R1bGUsXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXG4gICAgTmdiQ29sbGFwc2VNb2R1bGUsXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXG4gICAgVG9hc3RNb2R1bGUsXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxuICAgIE5neHNNb2R1bGUuZm9yRmVhdHVyZShbTGF5b3V0U3RhdGVdKSxcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUuZm9yUm9vdCh7XG4gICAgICB0YXJnZXRTZWxlY3RvcjogJy5mb3JtLWdyb3VwJyxcbiAgICAgIGJsdWVwcmludHM6IHtcbiAgICAgICAgZW1haWw6IGBBYnBBY2NvdW50OjpUaGlzRmllbGRJc05vdEFWYWxpZEVtYWlsQWRkcmVzcy5gLFxuICAgICAgICBtYXg6IGBBYnBBY2NvdW50OjpUaGlzRmllbGRNdXN0QmVCZXR3ZWVuezB9QW5kezF9W3t7IG1pbiB9fSx7eyBtYXggfX1dYCxcbiAgICAgICAgbWF4bGVuZ3RoOiBgQWJwQWNjb3VudDo6VGhpc0ZpZWxkTXVzdEJlQVN0cmluZ1dpdGhBTWF4aW11bUxlbmd0aE9mezF9W3t7IHJlcXVpcmVkTGVuZ3RoIH19XWAsXG4gICAgICAgIG1pbjogYEFicEFjY291bnQ6OlRoaXNGaWVsZE11c3RCZUJldHdlZW57MH1BbmR7MX1be3sgbWluIH19LHt7IG1heCB9fV1gLFxuICAgICAgICBtaW5sZW5ndGg6IGBBYnBBY2NvdW50OjpUaGlzRmllbGRNdXN0QmVBU3RyaW5nT3JBcnJheVR5cGVXaXRoQU1pbmltdW1MZW5ndGhPZlt7eyBtaW4gfX0se3sgbWF4IH19XWAsXG4gICAgICAgIHJlcXVpcmVkOiBgQWJwQWNjb3VudDo6VGhpc0ZpZWxkSXNSZXF1aXJlZC5gLFxuICAgICAgICBwYXNzd29yZE1pc21hdGNoOiBgQWJwSWRlbnRpdHk6OklkZW50aXR5LlBhc3N3b3JkQ29uZmlybWF0aW9uRmFpbGVkYCxcbiAgICAgIH0sXG4gICAgICBlcnJvclRlbXBsYXRlOiBWYWxpZGF0aW9uRXJyb3JDb21wb25lbnQsXG4gICAgfSksXG4gIF0sXG4gIGV4cG9ydHM6IFsuLi5MQVlPVVRTXSxcbiAgZW50cnlDb21wb25lbnRzOiBbLi4uTEFZT1VUUywgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVGhlbWVCYXNpY01vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5pdGlhbFNlcnZpY2U6IEluaXRpYWxTZXJ2aWNlKSB7fVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm2015/public-api.js b/npm/ng-packs/dist/theme-basic/esm2015/public-api.js index 42fd1f4364..9ea6984db2 100644 --- a/npm/ng-packs/dist/theme-basic/esm2015/public-api.js +++ b/npm/ng-packs/dist/theme-basic/esm2015/public-api.js @@ -7,7 +7,7 @@ */ export { LAYOUTS, ThemeBasicModule } from './lib/theme-basic.module'; export { AddNavigationElement, RemoveNavigationElementByName } from './lib/actions'; -export { AccountLayoutComponent, ApplicationLayoutComponent, EmptyLayoutComponent } from './lib/components'; +export { AccountLayoutComponent, ApplicationLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent } from './lib/components'; export {} from './lib/models'; export { LayoutState } from './lib/states'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwwQ0FBYywwQkFBMEIsQ0FBQztBQUN6QyxvRUFBYyxlQUFlLENBQUM7QUFDOUIseUZBQWMsa0JBQWtCLENBQUM7QUFDakMsZUFBYyxjQUFjLENBQUM7QUFDN0IsNEJBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0aGVtZS1iYXNpY1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RoZW1lLWJhc2ljLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlcyc7XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwwQ0FBYywwQkFBMEIsQ0FBQztBQUN6QyxvRUFBYyxlQUFlLENBQUM7QUFDOUIsbUhBQWMsa0JBQWtCLENBQUM7QUFDakMsZUFBYyxjQUFjLENBQUM7QUFDN0IsNEJBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0aGVtZS1iYXNpY1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RoZW1lLWJhc2ljLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlcyc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm5/abp-ng.theme.basic.js b/npm/ng-packs/dist/theme-basic/esm5/abp-ng.theme.basic.js index cf2d483fbb..d2b143cce5 100644 --- a/npm/ng-packs/dist/theme-basic/esm5/abp-ng.theme.basic.js +++ b/npm/ng-packs/dist/theme-basic/esm5/abp-ng.theme.basic.js @@ -5,12 +5,14 @@ /** * Generated bundle index. Do not edit. */ -export { LAYOUTS, ThemeBasicModule, AddNavigationElement, RemoveNavigationElementByName, AccountLayoutComponent, ApplicationLayoutComponent, EmptyLayoutComponent, LayoutState } from './public-api'; -export { AddNavigationElement as ɵg, RemoveNavigationElementByName as ɵh } from './lib/actions/layout.actions'; +export { LAYOUTS, ThemeBasicModule, AddNavigationElement, RemoveNavigationElementByName, AccountLayoutComponent, ApplicationLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent, LayoutState } from './public-api'; +export { AddNavigationElement as ɵh, RemoveNavigationElementByName as ɵi } from './lib/actions/layout.actions'; export { AccountLayoutComponent as ɵc } from './lib/components/account-layout/account-layout.component'; export { ApplicationLayoutComponent as ɵa } from './lib/components/application-layout/application-layout.component'; export { EmptyLayoutComponent as ɵd } from './lib/components/empty-layout/empty-layout.component'; export { LayoutComponent as ɵe } from './lib/components/layout/layout.component'; +export { ValidationErrorComponent as ɵf } from './lib/components/validation-error/validation-error.component'; +export { InitialService as ɵk } from './lib/services/initial.service'; export { LayoutState as ɵb } from './lib/states'; -export { LayoutState as ɵf } from './lib/states/layout.state'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLmJhc2ljLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImFicC1uZy50aGVtZS5iYXNpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsc0xBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsNkJBQTZCLElBQUksRUFBRSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUcsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ3RHLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUNsSCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUUvRSxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0FkZE5hdmlnYXRpb25FbGVtZW50IGFzIMm1ZyxSZW1vdmVOYXZpZ2F0aW9uRWxlbWVudEJ5TmFtZSBhcyDJtWh9IGZyb20gJy4vbGliL2FjdGlvbnMvbGF5b3V0LmFjdGlvbnMnO1xuZXhwb3J0IHtBY2NvdW50TGF5b3V0Q29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0IHtBcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXBwbGljYXRpb24tbGF5b3V0L2FwcGxpY2F0aW9uLWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0IHtFbXB0eUxheW91dENvbXBvbmVudCBhcyDJtWR9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZW1wdHktbGF5b3V0L2VtcHR5LWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0IHtMYXlvdXRDb21wb25lbnQgYXMgybVlfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCB7TGF5b3V0IGFzIMm1aX0gZnJvbSAnLi9saWIvbW9kZWxzL2xheW91dCc7XG5leHBvcnQge0xheW91dFN0YXRlIGFzIMm1Yn0gZnJvbSAnLi9saWIvc3RhdGVzJztcbmV4cG9ydCB7TGF5b3V0U3RhdGUgYXMgybVmfSBmcm9tICcuL2xpYi9zdGF0ZXMvbGF5b3V0LnN0YXRlJzsiXX0= \ No newline at end of file +export { LayoutState as ɵg } from './lib/states/layout.state'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLmJhc2ljLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImFicC1uZy50aGVtZS5iYXNpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsZ05BQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsNkJBQTZCLElBQUksRUFBRSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUcsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ3RHLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUNsSCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsd0JBQXdCLElBQUksRUFBRSxFQUFDLE1BQU0sOERBQThELENBQUM7QUFFNUcsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0FkZE5hdmlnYXRpb25FbGVtZW50IGFzIMm1aCxSZW1vdmVOYXZpZ2F0aW9uRWxlbWVudEJ5TmFtZSBhcyDJtWl9IGZyb20gJy4vbGliL2FjdGlvbnMvbGF5b3V0LmFjdGlvbnMnO1xuZXhwb3J0IHtBY2NvdW50TGF5b3V0Q29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0IHtBcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXBwbGljYXRpb24tbGF5b3V0L2FwcGxpY2F0aW9uLWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0IHtFbXB0eUxheW91dENvbXBvbmVudCBhcyDJtWR9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZW1wdHktbGF5b3V0L2VtcHR5LWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0IHtMYXlvdXRDb21wb25lbnQgYXMgybVlfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCB7VmFsaWRhdGlvbkVycm9yQ29tcG9uZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy92YWxpZGF0aW9uLWVycm9yL3ZhbGlkYXRpb24tZXJyb3IuY29tcG9uZW50JztcbmV4cG9ydCB7TGF5b3V0IGFzIMm1an0gZnJvbSAnLi9saWIvbW9kZWxzL2xheW91dCc7XG5leHBvcnQge0luaXRpYWxTZXJ2aWNlIGFzIMm1a30gZnJvbSAnLi9saWIvc2VydmljZXMvaW5pdGlhbC5zZXJ2aWNlJztcbmV4cG9ydCB7TGF5b3V0U3RhdGUgYXMgybVifSBmcm9tICcuL2xpYi9zdGF0ZXMnO1xuZXhwb3J0IHtMYXlvdXRTdGF0ZSBhcyDJtWd9IGZyb20gJy4vbGliL3N0YXRlcy9sYXlvdXQuc3RhdGUnOyJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm5/lib/components/index.js b/npm/ng-packs/dist/theme-basic/esm5/lib/components/index.js index e64ecf3cbd..f42d19323d 100644 --- a/npm/ng-packs/dist/theme-basic/esm5/lib/components/index.js +++ b/npm/ng-packs/dist/theme-basic/esm5/lib/components/index.js @@ -5,4 +5,5 @@ export { AccountLayoutComponent } from './account-layout/account-layout.component'; export { ApplicationLayoutComponent } from './application-layout/application-layout.component'; export { EmptyLayoutComponent } from './empty-layout/empty-layout.component'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVDQUFjLDJDQUEyQyxDQUFDO0FBQzFELDJDQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLHFDQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2VtcHR5LWxheW91dC9lbXB0eS1sYXlvdXQuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file +export { ValidationErrorComponent } from './validation-error/validation-error.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVDQUFjLDJDQUEyQyxDQUFDO0FBQzFELDJDQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLHFDQUFjLHVDQUF1QyxDQUFDO0FBQ3RELHlDQUFjLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2VtcHR5LWxheW91dC9lbXB0eS1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm5/lib/components/validation-error/validation-error.component.js b/npm/ng-packs/dist/theme-basic/esm5/lib/components/validation-error/validation-error.component.js new file mode 100644 index 0000000000..8dc91a364e --- /dev/null +++ b/npm/ng-packs/dist/theme-basic/esm5/lib/components/validation-error/validation-error.component.js @@ -0,0 +1,49 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; +import { ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core'; +var ValidationErrorComponent = /** @class */ (function (_super) { + tslib_1.__extends(ValidationErrorComponent, _super); + function ValidationErrorComponent() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(ValidationErrorComponent.prototype, "abpErrors", { + get: /** + * @return {?} + */ + function () { + if (!this.errors || !this.errors.length) + return []; + return this.errors.map((/** + * @param {?} error + * @return {?} + */ + function (error) { + if (!error.message) + return error; + /** @type {?} */ + var index = error.message.indexOf('['); + if (index > -1) { + return tslib_1.__assign({}, error, { message: error.message.slice(0, index), interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(',') }); + } + return error; + })); + }, + enumerable: true, + configurable: true + }); + ValidationErrorComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-validation-error', + template: "\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n ", + changeDetection: ChangeDetectionStrategy.OnPush, + encapsulation: ViewEncapsulation.None + }] } + ]; + return ValidationErrorComponent; +}(ErrorComponent)); +export { ValidationErrorComponent }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLmJhc2ljLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFjLHdCQUF3QixJQUFJLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTVGO0lBVThDLG9EQUFjO0lBVjVEOztJQThCQSxDQUFDO0lBbkJDLHNCQUFJLCtDQUFTOzs7O1FBQWI7WUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUVuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRzs7OztZQUFDLFVBQUEsS0FBSztnQkFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO29CQUFFLE9BQU8sS0FBSyxDQUFDOztvQkFFM0IsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFFeEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ2QsNEJBQ0ssS0FBSyxJQUNSLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQ3RDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUN0RjtpQkFDSDtnQkFFRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUMsRUFBQyxDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7O2dCQTdCRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLG9MQUlUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7O0lBcUJELCtCQUFDO0NBQUEsQUE5QkQsQ0FVOEMsY0FBYyxHQW9CM0Q7U0FwQlksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRpb24sIFZhbGlkYXRpb25FcnJvckNvbXBvbmVudCBhcyBFcnJvckNvbXBvbmVudCB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC12YWxpZGF0aW9uLWVycm9yJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0Zvcj1cImxldCBlcnJvciBvZiBhYnBFcnJvcnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAge3sgZXJyb3IubWVzc2FnZSB8IGFicExvY2FsaXphdGlvbjogZXJyb3IuaW50ZXJwb2xpdGVQYXJhbXMgfX1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvckNvbXBvbmVudCBleHRlbmRzIEVycm9yQ29tcG9uZW50IHtcbiAgZ2V0IGFicEVycm9ycygpOiBWYWxpZGF0aW9uLkVycm9yW10gJiB7IGludGVycG9saXRlUGFyYW1zPzogc3RyaW5nW10gfSB7XG4gICAgaWYgKCF0aGlzLmVycm9ycyB8fCAhdGhpcy5lcnJvcnMubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgICByZXR1cm4gdGhpcy5lcnJvcnMubWFwKGVycm9yID0+IHtcbiAgICAgIGlmICghZXJyb3IubWVzc2FnZSkgcmV0dXJuIGVycm9yO1xuXG4gICAgICBjb25zdCBpbmRleCA9IGVycm9yLm1lc3NhZ2UuaW5kZXhPZignWycpO1xuXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmVycm9yLFxuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2Uuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgICAgIGludGVycG9saXRlUGFyYW1zOiBlcnJvci5tZXNzYWdlLnNsaWNlKGluZGV4ICsgMSwgZXJyb3IubWVzc2FnZS5sZW5ndGggLSAxKS5zcGxpdCgnLCcpLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZXJyb3I7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm5/lib/constants/styles.js b/npm/ng-packs/dist/theme-basic/esm5/lib/constants/styles.js new file mode 100644 index 0000000000..726da6f361 --- /dev/null +++ b/npm/ng-packs/dist/theme-basic/esm5/lib/constants/styles.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export default "\n.content-header-title {\n font-size: 24px;\n}\n\n.entry-row {\n margin-bottom: 15px;\n}\n"; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi9jb25zdGFudHMvc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxlQUFlLG1HQVFkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBgXG4uY29udGVudC1oZWFkZXItdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbn1cblxuLmVudHJ5LXJvdyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cbmA7Il19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm5/lib/services/initial.service.js b/npm/ng-packs/dist/theme-basic/esm5/lib/services/initial.service.js new file mode 100644 index 0000000000..9d6fb4c1e8 --- /dev/null +++ b/npm/ng-packs/dist/theme-basic/esm5/lib/services/initial.service.js @@ -0,0 +1,42 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Injectable } from '@angular/core'; +import { LazyLoadService } from '@abp/ng.core'; +import styles from '../constants/styles'; +import * as i0 from "@angular/core"; +import * as i1 from "@abp/ng.core"; +var InitialService = /** @class */ (function () { + function InitialService(lazyLoadService) { + this.lazyLoadService = lazyLoadService; + this.appendStyle().subscribe(); + } + /** + * @return {?} + */ + InitialService.prototype.appendStyle = /** + * @return {?} + */ + function () { + return this.lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin'); + }; + InitialService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } + ]; + /** @nocollapse */ + InitialService.ctorParameters = function () { return [ + { type: LazyLoadService } + ]; }; + /** @nocollapse */ InitialService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function InitialService_Factory() { return new InitialService(i0.ɵɵinject(i1.LazyLoadService)); }, token: InitialService, providedIn: "root" }); + return InitialService; +}()); +export { InitialService }; +if (false) { + /** + * @type {?} + * @private + */ + InitialService.prototype.lazyLoadService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9pbml0aWFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRXpDO0lBRUUsd0JBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNsRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakMsQ0FBQzs7OztJQUVELG9DQUFXOzs7SUFBWDtRQUNFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2hGLENBQUM7O2dCQVJGLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7Ozs7Z0JBSHpCLGVBQWU7Ozt5QkFGeEI7Q0FjQyxBQVRELElBU0M7U0FSWSxjQUFjOzs7Ozs7SUFDYix5Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTGF6eUxvYWRTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi4vY29uc3RhbnRzL3N0eWxlcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSW5pdGlhbFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhenlMb2FkU2VydmljZTogTGF6eUxvYWRTZXJ2aWNlKSB7XG4gICAgdGhpcy5hcHBlbmRTdHlsZSgpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgYXBwZW5kU3R5bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubGF6eUxvYWRTZXJ2aWNlLmxvYWQobnVsbCwgJ3N0eWxlJywgc3R5bGVzLCAnaGVhZCcsICdhZnRlcmJlZ2luJyk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm5/lib/theme-basic.module.js b/npm/ng-packs/dist/theme-basic/esm5/lib/theme-basic.module.js index f378add9db..f92d4ba83c 100644 --- a/npm/ng-packs/dist/theme-basic/esm5/lib/theme-basic.module.js +++ b/npm/ng-packs/dist/theme-basic/esm5/lib/theme-basic.module.js @@ -15,14 +15,17 @@ import { ApplicationLayoutComponent } from './components/application-layout/appl import { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component'; import { LayoutComponent } from './components/layout/layout.component'; import { LayoutState } from './states/layout.state'; +import { ValidationErrorComponent } from './components/validation-error/validation-error.component'; +import { InitialService } from './services/initial.service'; /** @type {?} */ export var LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent]; var ThemeBasicModule = /** @class */ (function () { - function ThemeBasicModule() { + function ThemeBasicModule(initialService) { + this.initialService = initialService; } ThemeBasicModule.decorators = [ { type: NgModule, args: [{ - declarations: tslib_1.__spread(LAYOUTS, [LayoutComponent]), + declarations: tslib_1.__spread(LAYOUTS, [LayoutComponent, ValidationErrorComponent]), imports: [ CoreModule, ThemeSharedModule, @@ -31,12 +34,36 @@ var ThemeBasicModule = /** @class */ (function () { ToastModule, NgxValidateCoreModule, NgxsModule.forFeature([LayoutState]), + NgxValidateCoreModule.forRoot({ + targetSelector: '.form-group', + blueprints: { + email: "AbpAccount::ThisFieldIsNotAValidEmailAddress.", + max: "AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]", + maxlength: "AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]", + min: "AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]", + minlength: "AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]", + required: "AbpAccount::ThisFieldIsRequired.", + passwordMismatch: "AbpIdentity::Identity.PasswordConfirmationFailed", + }, + errorTemplate: ValidationErrorComponent, + }), ], exports: tslib_1.__spread(LAYOUTS), - entryComponents: tslib_1.__spread(LAYOUTS), + entryComponents: tslib_1.__spread(LAYOUTS, [ValidationErrorComponent]), },] } ]; + /** @nocollapse */ + ThemeBasicModule.ctorParameters = function () { return [ + { type: InitialService } + ]; }; return ThemeBasicModule; }()); export { ThemeBasicModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtYmFzaWMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi90aGVtZS1iYXNpYy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRXBELE1BQU0sS0FBTyxPQUFPLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsQ0FBQztBQUVqRztJQUFBO0lBYytCLENBQUM7O2dCQWQvQixRQUFRLFNBQUM7b0JBQ1IsWUFBWSxtQkFBTSxPQUFPLEdBQUUsZUFBZSxFQUFDO29CQUMzQyxPQUFPLEVBQUU7d0JBQ1AsVUFBVTt3QkFDVixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixXQUFXO3dCQUNYLHFCQUFxQjt3QkFDckIsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO3FCQUNyQztvQkFDRCxPQUFPLG1CQUFNLE9BQU8sQ0FBQztvQkFDckIsZUFBZSxtQkFBTSxPQUFPLENBQUM7aUJBQzlCOztJQUM4Qix1QkFBQztDQUFBLEFBZGhDLElBY2dDO1NBQW5CLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdiQ29sbGFwc2VNb2R1bGUsIE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IE5neHNNb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xuaW1wb3J0IHsgQWNjb3VudExheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY2NvdW50LWxheW91dC9hY2NvdW50LWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25MYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwbGljYXRpb24tbGF5b3V0L2FwcGxpY2F0aW9uLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1wdHktbGF5b3V0L2VtcHR5LWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dFN0YXRlIH0gZnJvbSAnLi9zdGF0ZXMvbGF5b3V0LnN0YXRlJztcblxuZXhwb3J0IGNvbnN0IExBWU9VVFMgPSBbQXBwbGljYXRpb25MYXlvdXRDb21wb25lbnQsIEFjY291bnRMYXlvdXRDb21wb25lbnQsIEVtcHR5TGF5b3V0Q29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbLi4uTEFZT1VUUywgTGF5b3V0Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvcmVNb2R1bGUsXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXG4gICAgTmdiQ29sbGFwc2VNb2R1bGUsXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXG4gICAgVG9hc3RNb2R1bGUsXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxuICAgIE5neHNNb2R1bGUuZm9yRmVhdHVyZShbTGF5b3V0U3RhdGVdKSxcbiAgXSxcbiAgZXhwb3J0czogWy4uLkxBWU9VVFNdLFxuICBlbnRyeUNvbXBvbmVudHM6IFsuLi5MQVlPVVRTXSxcbn0pXG5leHBvcnQgY2xhc3MgVGhlbWVCYXNpY01vZHVsZSB7fVxuIl19 \ No newline at end of file +if (false) { + /** + * @type {?} + * @private + */ + ThemeBasicModule.prototype.initialService; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtYmFzaWMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5iYXNpYy8iLCJzb3VyY2VzIjpbImxpYi90aGVtZS1iYXNpYy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUU1RCxNQUFNLEtBQU8sT0FBTyxHQUFHLENBQUMsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUM7QUFFakc7SUE0QkUsMEJBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7O2dCQTVCdkQsUUFBUSxTQUFDO29CQUNSLFlBQVksbUJBQU0sT0FBTyxHQUFFLGVBQWUsRUFBRSx3QkFBd0IsRUFBQztvQkFDckUsT0FBTyxFQUFFO3dCQUNQLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsV0FBVzt3QkFDWCxxQkFBcUI7d0JBQ3JCLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQzt3QkFDcEMscUJBQXFCLENBQUMsT0FBTyxDQUFDOzRCQUM1QixjQUFjLEVBQUUsYUFBYTs0QkFDN0IsVUFBVSxFQUFFO2dDQUNWLEtBQUssRUFBRSwrQ0FBK0M7Z0NBQ3RELEdBQUcsRUFBRSxrRUFBa0U7Z0NBQ3ZFLFNBQVMsRUFBRSxpRkFBaUY7Z0NBQzVGLEdBQUcsRUFBRSxrRUFBa0U7Z0NBQ3ZFLFNBQVMsRUFBRSx3RkFBd0Y7Z0NBQ25HLFFBQVEsRUFBRSxrQ0FBa0M7Z0NBQzVDLGdCQUFnQixFQUFFLGtEQUFrRDs2QkFDckU7NEJBQ0QsYUFBYSxFQUFFLHdCQUF3Qjt5QkFDeEMsQ0FBQztxQkFDSDtvQkFDRCxPQUFPLG1CQUFNLE9BQU8sQ0FBQztvQkFDckIsZUFBZSxtQkFBTSxPQUFPLEdBQUUsd0JBQXdCLEVBQUM7aUJBQ3hEOzs7O2dCQTlCUSxjQUFjOztJQWlDdkIsdUJBQUM7Q0FBQSxBQTdCRCxJQTZCQztTQUZZLGdCQUFnQjs7Ozs7O0lBQ2YsMENBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JDb2xsYXBzZU1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5pbXBvcnQgeyBBY2NvdW50TGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FjY291bnQtbGF5b3V0L2FjY291bnQtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hcHBsaWNhdGlvbi1sYXlvdXQvYXBwbGljYXRpb24tbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbXB0eS1sYXlvdXQvZW1wdHktbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0L2xheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0U3RhdGUgfSBmcm9tICcuL3N0YXRlcy9sYXlvdXQuc3RhdGUnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ZhbGlkYXRpb24tZXJyb3IvdmFsaWRhdGlvbi1lcnJvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5pdGlhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2luaXRpYWwuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBMQVlPVVRTID0gW0FwcGxpY2F0aW9uTGF5b3V0Q29tcG9uZW50LCBBY2NvdW50TGF5b3V0Q29tcG9uZW50LCBFbXB0eUxheW91dENvbXBvbmVudF07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogWy4uLkxBWU9VVFMsIExheW91dENvbXBvbmVudCwgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvcmVNb2R1bGUsXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXG4gICAgTmdiQ29sbGFwc2VNb2R1bGUsXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXG4gICAgVG9hc3RNb2R1bGUsXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxuICAgIE5neHNNb2R1bGUuZm9yRmVhdHVyZShbTGF5b3V0U3RhdGVdKSxcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUuZm9yUm9vdCh7XG4gICAgICB0YXJnZXRTZWxlY3RvcjogJy5mb3JtLWdyb3VwJyxcbiAgICAgIGJsdWVwcmludHM6IHtcbiAgICAgICAgZW1haWw6IGBBYnBBY2NvdW50OjpUaGlzRmllbGRJc05vdEFWYWxpZEVtYWlsQWRkcmVzcy5gLFxuICAgICAgICBtYXg6IGBBYnBBY2NvdW50OjpUaGlzRmllbGRNdXN0QmVCZXR3ZWVuezB9QW5kezF9W3t7IG1pbiB9fSx7eyBtYXggfX1dYCxcbiAgICAgICAgbWF4bGVuZ3RoOiBgQWJwQWNjb3VudDo6VGhpc0ZpZWxkTXVzdEJlQVN0cmluZ1dpdGhBTWF4aW11bUxlbmd0aE9mezF9W3t7IHJlcXVpcmVkTGVuZ3RoIH19XWAsXG4gICAgICAgIG1pbjogYEFicEFjY291bnQ6OlRoaXNGaWVsZE11c3RCZUJldHdlZW57MH1BbmR7MX1be3sgbWluIH19LHt7IG1heCB9fV1gLFxuICAgICAgICBtaW5sZW5ndGg6IGBBYnBBY2NvdW50OjpUaGlzRmllbGRNdXN0QmVBU3RyaW5nT3JBcnJheVR5cGVXaXRoQU1pbmltdW1MZW5ndGhPZlt7eyBtaW4gfX0se3sgbWF4IH19XWAsXG4gICAgICAgIHJlcXVpcmVkOiBgQWJwQWNjb3VudDo6VGhpc0ZpZWxkSXNSZXF1aXJlZC5gLFxuICAgICAgICBwYXNzd29yZE1pc21hdGNoOiBgQWJwSWRlbnRpdHk6OklkZW50aXR5LlBhc3N3b3JkQ29uZmlybWF0aW9uRmFpbGVkYCxcbiAgICAgIH0sXG4gICAgICBlcnJvclRlbXBsYXRlOiBWYWxpZGF0aW9uRXJyb3JDb21wb25lbnQsXG4gICAgfSksXG4gIF0sXG4gIGV4cG9ydHM6IFsuLi5MQVlPVVRTXSxcbiAgZW50cnlDb21wb25lbnRzOiBbLi4uTEFZT1VUUywgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVGhlbWVCYXNpY01vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5pdGlhbFNlcnZpY2U6IEluaXRpYWxTZXJ2aWNlKSB7fVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/esm5/public-api.js b/npm/ng-packs/dist/theme-basic/esm5/public-api.js index 42fd1f4364..9ea6984db2 100644 --- a/npm/ng-packs/dist/theme-basic/esm5/public-api.js +++ b/npm/ng-packs/dist/theme-basic/esm5/public-api.js @@ -7,7 +7,7 @@ */ export { LAYOUTS, ThemeBasicModule } from './lib/theme-basic.module'; export { AddNavigationElement, RemoveNavigationElementByName } from './lib/actions'; -export { AccountLayoutComponent, ApplicationLayoutComponent, EmptyLayoutComponent } from './lib/components'; +export { AccountLayoutComponent, ApplicationLayoutComponent, EmptyLayoutComponent, ValidationErrorComponent } from './lib/components'; export {} from './lib/models'; export { LayoutState } from './lib/states'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwwQ0FBYywwQkFBMEIsQ0FBQztBQUN6QyxvRUFBYyxlQUFlLENBQUM7QUFDOUIseUZBQWMsa0JBQWtCLENBQUM7QUFDakMsZUFBYyxjQUFjLENBQUM7QUFDN0IsNEJBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0aGVtZS1iYXNpY1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RoZW1lLWJhc2ljLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlcyc7XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuYmFzaWMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwwQ0FBYywwQkFBMEIsQ0FBQztBQUN6QyxvRUFBYyxlQUFlLENBQUM7QUFDOUIsbUhBQWMsa0JBQWtCLENBQUM7QUFDakMsZUFBYyxjQUFjLENBQUM7QUFDN0IsNEJBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0aGVtZS1iYXNpY1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RoZW1lLWJhc2ljLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlcyc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/fesm2015/abp-ng.theme.basic.js b/npm/ng-packs/dist/theme-basic/fesm2015/abp-ng.theme.basic.js index 95c06f77b4..1f6f3a9b7c 100644 --- a/npm/ng-packs/dist/theme-basic/fesm2015/abp-ng.theme.basic.js +++ b/npm/ng-packs/dist/theme-basic/fesm2015/abp-ng.theme.basic.js @@ -1,8 +1,8 @@ -import { SessionState, takeUntilDestroy, SetLanguage, GetAppConfiguration, ConfigState, CoreModule } from '@abp/ng.core'; +import { SessionState, takeUntilDestroy, SetLanguage, GetAppConfiguration, ConfigState, LazyLoadService, CoreModule } from '@abp/ng.core'; import { slideFromBottom, ThemeSharedModule } from '@abp/ng.theme.shared'; -import { Component, ViewChild, TemplateRef, ViewChildren, NgModule } from '@angular/core'; +import { Component, ViewChild, TemplateRef, ViewChildren, ChangeDetectionStrategy, ViewEncapsulation, Injectable, ɵɵdefineInjectable, ɵɵinject, NgModule } from '@angular/core'; import { NgbDropdown, NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; -import { NgxValidateCoreModule } from '@ngx-validate/core'; +import { ValidationErrorComponent as ValidationErrorComponent$1, NgxValidateCoreModule } from '@ngx-validate/core'; import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; import { ToastModule } from 'primeng/toast'; import { __decorate, __metadata } from 'tslib'; @@ -506,6 +506,95 @@ if (false) { LayoutComponent.prototype.store; } +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class ValidationErrorComponent extends ValidationErrorComponent$1 { + /** + * @return {?} + */ + get abpErrors() { + if (!this.errors || !this.errors.length) + return []; + return this.errors.map((/** + * @param {?} error + * @return {?} + */ + error => { + if (!error.message) + return error; + /** @type {?} */ + const index = error.message.indexOf('['); + if (index > -1) { + return Object.assign({}, error, { message: error.message.slice(0, index), interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(',') }); + } + return error; + })); + } +} +ValidationErrorComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-validation-error', + template: ` +
    + {{ error.message | abpLocalization: error.interpoliteParams }} +
    + `, + changeDetection: ChangeDetectionStrategy.OnPush, + encapsulation: ViewEncapsulation.None + }] } +]; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var styles = ` +.content-header-title { + font-size: 24px; +} + +.entry-row { + margin-bottom: 15px; +} +`; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class InitialService { + /** + * @param {?} lazyLoadService + */ + constructor(lazyLoadService) { + this.lazyLoadService = lazyLoadService; + this.appendStyle().subscribe(); + } + /** + * @return {?} + */ + appendStyle() { + return this.lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin'); + } +} +InitialService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } +]; +/** @nocollapse */ +InitialService.ctorParameters = () => [ + { type: LazyLoadService } +]; +/** @nocollapse */ InitialService.ngInjectableDef = ɵɵdefineInjectable({ factory: function InitialService_Factory() { return new InitialService(ɵɵinject(LazyLoadService)); }, token: InitialService, providedIn: "root" }); +if (false) { + /** + * @type {?} + * @private + */ + InitialService.prototype.lazyLoadService; +} + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -513,10 +602,16 @@ if (false) { /** @type {?} */ const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent]; class ThemeBasicModule { + /** + * @param {?} initialService + */ + constructor(initialService) { + this.initialService = initialService; + } } ThemeBasicModule.decorators = [ { type: NgModule, args: [{ - declarations: [...LAYOUTS, LayoutComponent], + declarations: [...LAYOUTS, LayoutComponent, ValidationErrorComponent], imports: [ CoreModule, ThemeSharedModule, @@ -525,11 +620,35 @@ ThemeBasicModule.decorators = [ ToastModule, NgxValidateCoreModule, NgxsModule.forFeature([LayoutState]), + NgxValidateCoreModule.forRoot({ + targetSelector: '.form-group', + blueprints: { + email: `AbpAccount::ThisFieldIsNotAValidEmailAddress.`, + max: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`, + maxlength: `AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]`, + min: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`, + minlength: `AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]`, + required: `AbpAccount::ThisFieldIsRequired.`, + passwordMismatch: `AbpIdentity::Identity.PasswordConfirmationFailed`, + }, + errorTemplate: ValidationErrorComponent, + }), ], exports: [...LAYOUTS], - entryComponents: [...LAYOUTS], + entryComponents: [...LAYOUTS, ValidationErrorComponent], },] } ]; +/** @nocollapse */ +ThemeBasicModule.ctorParameters = () => [ + { type: InitialService } +]; +if (false) { + /** + * @type {?} + * @private + */ + ThemeBasicModule.prototype.initialService; +} /** * @fileoverview added by tsickle @@ -581,5 +700,5 @@ var Layout; * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { AccountLayoutComponent, AddNavigationElement, ApplicationLayoutComponent, EmptyLayoutComponent, LAYOUTS, LayoutState, RemoveNavigationElementByName, ThemeBasicModule, ApplicationLayoutComponent as ɵa, LayoutState as ɵb, AccountLayoutComponent as ɵc, EmptyLayoutComponent as ɵd, LayoutComponent as ɵe, LayoutState as ɵf, AddNavigationElement as ɵg, RemoveNavigationElementByName as ɵh }; +export { AccountLayoutComponent, AddNavigationElement, ApplicationLayoutComponent, EmptyLayoutComponent, LAYOUTS, LayoutState, RemoveNavigationElementByName, ThemeBasicModule, ValidationErrorComponent, ApplicationLayoutComponent as ɵa, LayoutState as ɵb, AccountLayoutComponent as ɵc, EmptyLayoutComponent as ɵd, LayoutComponent as ɵe, ValidationErrorComponent as ɵf, LayoutState as ɵg, AddNavigationElement as ɵh, RemoveNavigationElementByName as ɵi, InitialService as ɵk }; //# sourceMappingURL=abp-ng.theme.basic.js.map diff --git a/npm/ng-packs/dist/theme-basic/fesm2015/abp-ng.theme.basic.js.map b/npm/ng-packs/dist/theme-basic/fesm2015/abp-ng.theme.basic.js.map index 5d44457e7c..343884ac48 100644 --- a/npm/ng-packs/dist/theme-basic/fesm2015/abp-ng.theme.basic.js.map +++ b/npm/ng-packs/dist/theme-basic/fesm2015/abp-ng.theme.basic.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.theme.basic.js","sources":["ng://@abp/ng.theme.basic/lib/components/account-layout/account-layout.component.ts","ng://@abp/ng.theme.basic/lib/actions/layout.actions.ts","ng://@abp/ng.theme.basic/lib/states/layout.state.ts","ng://@abp/ng.theme.basic/lib/components/application-layout/application-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/empty-layout/empty-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/layout/layout.component.ts","ng://@abp/ng.theme.basic/lib/theme-basic.module.ts","ng://@abp/ng.theme.basic/lib/models/layout.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './account-layout.component.html',\n})\nexport class AccountLayoutComponent {\n // required for dynamic component\n static type = eLayoutType.account;\n}\n","import { Layout } from '../models/layout';\n\nexport class AddNavigationElement {\n static readonly type = '[Layout] Add Navigation Element';\n constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {}\n}\n\nexport class RemoveNavigationElementByName {\n static readonly type = '[Layout] Remove Navigation ElementByName';\n constructor(public name: string) {}\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { AddNavigationElement, RemoveNavigationElementByName } from '../actions/layout.actions';\nimport { Layout } from '../models/layout';\nimport { TemplateRef } from '@angular/core';\nimport snq from 'snq';\n\n@State({\n name: 'LayoutState',\n defaults: { navigationElements: [] } as Layout.State,\n})\nexport class LayoutState {\n @Selector()\n static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] {\n return navigationElements;\n }\n\n @Action(AddNavigationElement)\n layoutAddAction({ getState, patchState }: StateContext, { payload = [] }: AddNavigationElement) {\n let { navigationElements } = getState();\n\n if (!Array.isArray(payload)) {\n payload = [payload];\n }\n\n if (navigationElements.length) {\n payload = snq(\n () =>\n (payload as Layout.NavigationElement[]).filter(\n ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0,\n ),\n [],\n );\n }\n\n if (!payload.length) return;\n\n navigationElements = [...navigationElements, ...payload]\n .map(element => ({ ...element, order: element.order || 99 }))\n .sort((a, b) => a.order - b.order);\n\n return patchState({\n navigationElements,\n });\n }\n\n @Action(RemoveNavigationElementByName)\n layoutRemoveAction({ getState, patchState }: StateContext, { name }: RemoveNavigationElementByName) {\n let { navigationElements } = getState();\n\n const index = navigationElements.findIndex(element => element.name === name);\n\n if (index > -1) {\n navigationElements = navigationElements.splice(index, 1);\n }\n\n return patchState({\n navigationElements,\n });\n }\n}\n","import {\n ABP,\n ApplicationConfiguration,\n GetAppConfiguration,\n ConfigState,\n eLayoutType,\n SetLanguage,\n SessionState,\n takeUntilDestroy,\n} from '@abp/ng.core';\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n QueryList,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\nimport { Navigate, RouterState } from '@ngxs/router-plugin';\nimport { Select, Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport compare from 'just-compare';\nimport { fromEvent, Observable } from 'rxjs';\nimport { debounceTime, filter, map } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AddNavigationElement } from '../../actions';\nimport { Layout } from '../../models/layout';\nimport { LayoutState } from '../../states';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './application-layout.component.html',\n})\nexport class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {\n // required for dynamic component\n static type = eLayoutType.application;\n\n @Select(ConfigState.getOne('routes'))\n routes$: Observable;\n\n @Select(ConfigState.getOne('currentUser'))\n currentUser$: Observable;\n\n @Select(ConfigState.getDeep('localization.languages'))\n languages$: Observable;\n\n @Select(LayoutState.getNavigationElements)\n navElements$: Observable;\n\n @ViewChild('currentUser', { static: false, read: TemplateRef })\n currentUserRef: TemplateRef;\n\n @ViewChild('language', { static: false, read: TemplateRef })\n languageRef: TemplateRef;\n\n @ViewChildren('navbarRootDropdown', { read: NgbDropdown })\n navbarRootDropdowns: QueryList;\n\n isOpenChangePassword: boolean = false;\n\n isOpenProfile: boolean = false;\n\n isDropdownChildDynamic: boolean;\n\n get visibleRoutes$(): Observable {\n return this.routes$.pipe(map(routes => getVisibleRoutes(routes)));\n }\n\n get defaultLanguage$(): Observable {\n return this.languages$.pipe(\n map(\n languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable {\n return this.languages$.pipe(\n map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []),\n );\n }\n\n get selectedLangCulture(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n rightPartElements: TemplateRef[] = [];\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n trackElementByFn: TrackByFunction = (_, element) => element;\n\n constructor(private store: Store, private oauthService: OAuthService) {}\n\n private checkWindowWidth() {\n setTimeout(() => {\n this.navbarRootDropdowns.forEach(item => {\n item.close();\n });\n if (window.innerWidth < 768) {\n this.isDropdownChildDynamic = false;\n } else {\n this.isDropdownChildDynamic = true;\n }\n }, 0);\n }\n\n ngAfterViewInit() {\n const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name);\n\n if (navigations.indexOf('LanguageRef') < 0) {\n this.store.dispatch(\n new AddNavigationElement([\n { element: this.languageRef, order: 4, name: 'LanguageRef' },\n { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' },\n ]),\n );\n }\n\n this.navElements$\n .pipe(\n map(elements => elements.map(({ element }) => element)),\n filter(elements => !compare(elements, this.rightPartElements)),\n takeUntilDestroy(this),\n )\n .subscribe(elements => {\n setTimeout(() => (this.rightPartElements = elements), 0);\n });\n\n this.checkWindowWidth();\n\n fromEvent(window, 'resize')\n .pipe(\n takeUntilDestroy(this),\n debounceTime(250),\n )\n .subscribe(() => {\n this.checkWindowWidth();\n });\n }\n\n ngOnDestroy() {}\n\n onChangeLang(cultureName: string) {\n this.store.dispatch(new SetLanguage(cultureName));\n }\n\n logout() {\n this.oauthService.logOut();\n this.store.dispatch(\n new Navigate(['/'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n this.store.dispatch(new GetAppConfiguration());\n }\n}\n\nfunction getVisibleRoutes(routes: ABP.FullRoute[]) {\n return routes.reduce((acc, val) => {\n if (val.invisible) return acc;\n\n if (val.children && val.children.length) {\n val.children = getVisibleRoutes(val.children);\n }\n\n return [...acc, val];\n }, []);\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-empty',\n template: `\n Layout-empty\n \n `,\n})\nexport class EmptyLayoutComponent {\n static type = eLayoutType.empty;\n}\n","import { Config, ConfigState } from '@abp/ng.core';\nimport { slideFromBottom } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngxs/store';\n\n@Component({\n selector: ' abp-layout',\n templateUrl: './layout.component.html',\n animations: [slideFromBottom],\n})\nexport class LayoutComponent {\n isCollapsed: boolean = true;\n\n get appInfo(): Config.Application {\n return this.store.selectSnapshot(ConfigState.getApplicationInfo);\n }\n\n constructor(private store: Store) {}\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { ToastModule } from 'primeng/toast';\nimport { AccountLayoutComponent } from './components/account-layout/account-layout.component';\nimport { ApplicationLayoutComponent } from './components/application-layout/application-layout.component';\nimport { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { LayoutState } from './states/layout.state';\n\nexport const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];\n\n@NgModule({\n declarations: [...LAYOUTS, LayoutComponent],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n ToastModule,\n NgxValidateCoreModule,\n NgxsModule.forFeature([LayoutState]),\n ],\n exports: [...LAYOUTS],\n entryComponents: [...LAYOUTS],\n})\nexport class ThemeBasicModule {}\n","import { TemplateRef } from '@angular/core';\n\nexport namespace Layout {\n export interface State {\n navigationElements: NavigationElement[];\n }\n\n export interface NavigationElement {\n name: string;\n element: TemplateRef;\n order?: number;\n }\n}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.theme.basic.js","sources":["ng://@abp/ng.theme.basic/lib/components/account-layout/account-layout.component.ts","ng://@abp/ng.theme.basic/lib/actions/layout.actions.ts","ng://@abp/ng.theme.basic/lib/states/layout.state.ts","ng://@abp/ng.theme.basic/lib/components/application-layout/application-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/empty-layout/empty-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/layout/layout.component.ts","ng://@abp/ng.theme.basic/lib/components/validation-error/validation-error.component.ts","ng://@abp/ng.theme.basic/lib/constants/styles.ts","ng://@abp/ng.theme.basic/lib/services/initial.service.ts","ng://@abp/ng.theme.basic/lib/theme-basic.module.ts","ng://@abp/ng.theme.basic/lib/models/layout.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './account-layout.component.html',\n})\nexport class AccountLayoutComponent {\n // required for dynamic component\n static type = eLayoutType.account;\n}\n","import { Layout } from '../models/layout';\n\nexport class AddNavigationElement {\n static readonly type = '[Layout] Add Navigation Element';\n constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {}\n}\n\nexport class RemoveNavigationElementByName {\n static readonly type = '[Layout] Remove Navigation ElementByName';\n constructor(public name: string) {}\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { AddNavigationElement, RemoveNavigationElementByName } from '../actions/layout.actions';\nimport { Layout } from '../models/layout';\nimport { TemplateRef } from '@angular/core';\nimport snq from 'snq';\n\n@State({\n name: 'LayoutState',\n defaults: { navigationElements: [] } as Layout.State,\n})\nexport class LayoutState {\n @Selector()\n static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] {\n return navigationElements;\n }\n\n @Action(AddNavigationElement)\n layoutAddAction({ getState, patchState }: StateContext, { payload = [] }: AddNavigationElement) {\n let { navigationElements } = getState();\n\n if (!Array.isArray(payload)) {\n payload = [payload];\n }\n\n if (navigationElements.length) {\n payload = snq(\n () =>\n (payload as Layout.NavigationElement[]).filter(\n ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0,\n ),\n [],\n );\n }\n\n if (!payload.length) return;\n\n navigationElements = [...navigationElements, ...payload]\n .map(element => ({ ...element, order: element.order || 99 }))\n .sort((a, b) => a.order - b.order);\n\n return patchState({\n navigationElements,\n });\n }\n\n @Action(RemoveNavigationElementByName)\n layoutRemoveAction({ getState, patchState }: StateContext, { name }: RemoveNavigationElementByName) {\n let { navigationElements } = getState();\n\n const index = navigationElements.findIndex(element => element.name === name);\n\n if (index > -1) {\n navigationElements = navigationElements.splice(index, 1);\n }\n\n return patchState({\n navigationElements,\n });\n }\n}\n","import {\n ABP,\n ApplicationConfiguration,\n GetAppConfiguration,\n ConfigState,\n eLayoutType,\n SetLanguage,\n SessionState,\n takeUntilDestroy,\n} from '@abp/ng.core';\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n QueryList,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\nimport { Navigate, RouterState } from '@ngxs/router-plugin';\nimport { Select, Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport compare from 'just-compare';\nimport { fromEvent, Observable } from 'rxjs';\nimport { debounceTime, filter, map } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AddNavigationElement } from '../../actions';\nimport { Layout } from '../../models/layout';\nimport { LayoutState } from '../../states';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './application-layout.component.html',\n})\nexport class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {\n // required for dynamic component\n static type = eLayoutType.application;\n\n @Select(ConfigState.getOne('routes'))\n routes$: Observable;\n\n @Select(ConfigState.getOne('currentUser'))\n currentUser$: Observable;\n\n @Select(ConfigState.getDeep('localization.languages'))\n languages$: Observable;\n\n @Select(LayoutState.getNavigationElements)\n navElements$: Observable;\n\n @ViewChild('currentUser', { static: false, read: TemplateRef })\n currentUserRef: TemplateRef;\n\n @ViewChild('language', { static: false, read: TemplateRef })\n languageRef: TemplateRef;\n\n @ViewChildren('navbarRootDropdown', { read: NgbDropdown })\n navbarRootDropdowns: QueryList;\n\n isOpenChangePassword: boolean = false;\n\n isOpenProfile: boolean = false;\n\n isDropdownChildDynamic: boolean;\n\n get visibleRoutes$(): Observable {\n return this.routes$.pipe(map(routes => getVisibleRoutes(routes)));\n }\n\n get defaultLanguage$(): Observable {\n return this.languages$.pipe(\n map(\n languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable {\n return this.languages$.pipe(\n map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []),\n );\n }\n\n get selectedLangCulture(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n rightPartElements: TemplateRef[] = [];\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n trackElementByFn: TrackByFunction = (_, element) => element;\n\n constructor(private store: Store, private oauthService: OAuthService) {}\n\n private checkWindowWidth() {\n setTimeout(() => {\n this.navbarRootDropdowns.forEach(item => {\n item.close();\n });\n if (window.innerWidth < 768) {\n this.isDropdownChildDynamic = false;\n } else {\n this.isDropdownChildDynamic = true;\n }\n }, 0);\n }\n\n ngAfterViewInit() {\n const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name);\n\n if (navigations.indexOf('LanguageRef') < 0) {\n this.store.dispatch(\n new AddNavigationElement([\n { element: this.languageRef, order: 4, name: 'LanguageRef' },\n { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' },\n ]),\n );\n }\n\n this.navElements$\n .pipe(\n map(elements => elements.map(({ element }) => element)),\n filter(elements => !compare(elements, this.rightPartElements)),\n takeUntilDestroy(this),\n )\n .subscribe(elements => {\n setTimeout(() => (this.rightPartElements = elements), 0);\n });\n\n this.checkWindowWidth();\n\n fromEvent(window, 'resize')\n .pipe(\n takeUntilDestroy(this),\n debounceTime(250),\n )\n .subscribe(() => {\n this.checkWindowWidth();\n });\n }\n\n ngOnDestroy() {}\n\n onChangeLang(cultureName: string) {\n this.store.dispatch(new SetLanguage(cultureName));\n }\n\n logout() {\n this.oauthService.logOut();\n this.store.dispatch(\n new Navigate(['/'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n this.store.dispatch(new GetAppConfiguration());\n }\n}\n\nfunction getVisibleRoutes(routes: ABP.FullRoute[]) {\n return routes.reduce((acc, val) => {\n if (val.invisible) return acc;\n\n if (val.children && val.children.length) {\n val.children = getVisibleRoutes(val.children);\n }\n\n return [...acc, val];\n }, []);\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-empty',\n template: `\n Layout-empty\n \n `,\n})\nexport class EmptyLayoutComponent {\n static type = eLayoutType.empty;\n}\n","import { Config, ConfigState } from '@abp/ng.core';\nimport { slideFromBottom } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngxs/store';\n\n@Component({\n selector: ' abp-layout',\n templateUrl: './layout.component.html',\n animations: [slideFromBottom],\n})\nexport class LayoutComponent {\n isCollapsed: boolean = true;\n\n get appInfo(): Config.Application {\n return this.store.selectSnapshot(ConfigState.getApplicationInfo);\n }\n\n constructor(private store: Store) {}\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { Validation, ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core';\n\n@Component({\n selector: 'abp-validation-error',\n template: `\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ValidationErrorComponent extends ErrorComponent {\n get abpErrors(): Validation.Error[] & { interpoliteParams?: string[] } {\n if (!this.errors || !this.errors.length) return [];\n\n return this.errors.map(error => {\n if (!error.message) return error;\n\n const index = error.message.indexOf('[');\n\n if (index > -1) {\n return {\n ...error,\n message: error.message.slice(0, index),\n interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(','),\n };\n }\n\n return error;\n });\n }\n}\n","export default `\n.content-header-title {\n font-size: 24px;\n}\n\n.entry-row {\n margin-bottom: 15px;\n}\n`;","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LazyLoadService } from '@abp/ng.core';\nimport styles from '../constants/styles';\n\n@Injectable({ providedIn: 'root' })\nexport class InitialService {\n constructor(private lazyLoadService: LazyLoadService) {\n this.appendStyle().subscribe();\n }\n\n appendStyle() {\n return this.lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin');\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { ToastModule } from 'primeng/toast';\nimport { AccountLayoutComponent } from './components/account-layout/account-layout.component';\nimport { ApplicationLayoutComponent } from './components/application-layout/application-layout.component';\nimport { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { LayoutState } from './states/layout.state';\nimport { ValidationErrorComponent } from './components/validation-error/validation-error.component';\nimport { InitialService } from './services/initial.service';\n\nexport const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];\n\n@NgModule({\n declarations: [...LAYOUTS, LayoutComponent, ValidationErrorComponent],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n ToastModule,\n NgxValidateCoreModule,\n NgxsModule.forFeature([LayoutState]),\n NgxValidateCoreModule.forRoot({\n targetSelector: '.form-group',\n blueprints: {\n email: `AbpAccount::ThisFieldIsNotAValidEmailAddress.`,\n max: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`,\n maxlength: `AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]`,\n min: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`,\n minlength: `AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]`,\n required: `AbpAccount::ThisFieldIsRequired.`,\n passwordMismatch: `AbpIdentity::Identity.PasswordConfirmationFailed`,\n },\n errorTemplate: ValidationErrorComponent,\n }),\n ],\n exports: [...LAYOUTS],\n entryComponents: [...LAYOUTS, ValidationErrorComponent],\n})\nexport class ThemeBasicModule {\n constructor(private initialService: InitialService) {}\n}\n","import { TemplateRef } from '@angular/core';\n\nexport namespace Layout {\n export interface State {\n navigationElements: NavigationElement[];\n }\n\n export interface NavigationElement {\n name: string;\n element: TemplateRef;\n order?: number;\n }\n}\n"],"names":["tslib_1.__decorate","ErrorComponent"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/fesm5/abp-ng.theme.basic.js b/npm/ng-packs/dist/theme-basic/fesm5/abp-ng.theme.basic.js index 7e3bed552d..9ccc0b41e5 100644 --- a/npm/ng-packs/dist/theme-basic/fesm5/abp-ng.theme.basic.js +++ b/npm/ng-packs/dist/theme-basic/fesm5/abp-ng.theme.basic.js @@ -1,9 +1,9 @@ -import { __spread, __assign, __decorate, __metadata } from 'tslib'; -import { SessionState, takeUntilDestroy, SetLanguage, GetAppConfiguration, ConfigState, CoreModule } from '@abp/ng.core'; +import { __spread, __assign, __decorate, __metadata, __extends } from 'tslib'; +import { SessionState, takeUntilDestroy, SetLanguage, GetAppConfiguration, ConfigState, LazyLoadService, CoreModule } from '@abp/ng.core'; import { slideFromBottom, ThemeSharedModule } from '@abp/ng.theme.shared'; -import { Component, ViewChild, TemplateRef, ViewChildren, NgModule } from '@angular/core'; +import { Component, ViewChild, TemplateRef, ViewChildren, ChangeDetectionStrategy, ViewEncapsulation, Injectable, ɵɵdefineInjectable, ɵɵinject, NgModule } from '@angular/core'; import { NgbDropdown, NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; -import { NgxValidateCoreModule } from '@ngx-validate/core'; +import { ValidationErrorComponent as ValidationErrorComponent$1, NgxValidateCoreModule } from '@ngx-validate/core'; import { Action, Selector, State, Store, Select, NgxsModule } from '@ngxs/store'; import { ToastModule } from 'primeng/toast'; import { Navigate, RouterState } from '@ngxs/router-plugin'; @@ -573,6 +573,93 @@ if (false) { LayoutComponent.prototype.store; } +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var ValidationErrorComponent = /** @class */ (function (_super) { + __extends(ValidationErrorComponent, _super); + function ValidationErrorComponent() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(ValidationErrorComponent.prototype, "abpErrors", { + get: /** + * @return {?} + */ + function () { + if (!this.errors || !this.errors.length) + return []; + return this.errors.map((/** + * @param {?} error + * @return {?} + */ + function (error) { + if (!error.message) + return error; + /** @type {?} */ + var index = error.message.indexOf('['); + if (index > -1) { + return __assign({}, error, { message: error.message.slice(0, index), interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(',') }); + } + return error; + })); + }, + enumerable: true, + configurable: true + }); + ValidationErrorComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-validation-error', + template: "\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n ", + changeDetection: ChangeDetectionStrategy.OnPush, + encapsulation: ViewEncapsulation.None + }] } + ]; + return ValidationErrorComponent; +}(ValidationErrorComponent$1)); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var styles = "\n.content-header-title {\n font-size: 24px;\n}\n\n.entry-row {\n margin-bottom: 15px;\n}\n"; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var InitialService = /** @class */ (function () { + function InitialService(lazyLoadService) { + this.lazyLoadService = lazyLoadService; + this.appendStyle().subscribe(); + } + /** + * @return {?} + */ + InitialService.prototype.appendStyle = /** + * @return {?} + */ + function () { + return this.lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin'); + }; + InitialService.decorators = [ + { type: Injectable, args: [{ providedIn: 'root' },] } + ]; + /** @nocollapse */ + InitialService.ctorParameters = function () { return [ + { type: LazyLoadService } + ]; }; + /** @nocollapse */ InitialService.ngInjectableDef = ɵɵdefineInjectable({ factory: function InitialService_Factory() { return new InitialService(ɵɵinject(LazyLoadService)); }, token: InitialService, providedIn: "root" }); + return InitialService; +}()); +if (false) { + /** + * @type {?} + * @private + */ + InitialService.prototype.lazyLoadService; +} + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -580,11 +667,12 @@ if (false) { /** @type {?} */ var LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent]; var ThemeBasicModule = /** @class */ (function () { - function ThemeBasicModule() { + function ThemeBasicModule(initialService) { + this.initialService = initialService; } ThemeBasicModule.decorators = [ { type: NgModule, args: [{ - declarations: __spread(LAYOUTS, [LayoutComponent]), + declarations: __spread(LAYOUTS, [LayoutComponent, ValidationErrorComponent]), imports: [ CoreModule, ThemeSharedModule, @@ -593,13 +681,37 @@ var ThemeBasicModule = /** @class */ (function () { ToastModule, NgxValidateCoreModule, NgxsModule.forFeature([LayoutState]), + NgxValidateCoreModule.forRoot({ + targetSelector: '.form-group', + blueprints: { + email: "AbpAccount::ThisFieldIsNotAValidEmailAddress.", + max: "AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]", + maxlength: "AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]", + min: "AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]", + minlength: "AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]", + required: "AbpAccount::ThisFieldIsRequired.", + passwordMismatch: "AbpIdentity::Identity.PasswordConfirmationFailed", + }, + errorTemplate: ValidationErrorComponent, + }), ], exports: __spread(LAYOUTS), - entryComponents: __spread(LAYOUTS), + entryComponents: __spread(LAYOUTS, [ValidationErrorComponent]), },] } ]; + /** @nocollapse */ + ThemeBasicModule.ctorParameters = function () { return [ + { type: InitialService } + ]; }; return ThemeBasicModule; }()); +if (false) { + /** + * @type {?} + * @private + */ + ThemeBasicModule.prototype.initialService; +} /** * @fileoverview added by tsickle @@ -651,5 +763,5 @@ var Layout; * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { AccountLayoutComponent, AddNavigationElement, ApplicationLayoutComponent, EmptyLayoutComponent, LAYOUTS, LayoutState, RemoveNavigationElementByName, ThemeBasicModule, ApplicationLayoutComponent as ɵa, LayoutState as ɵb, AccountLayoutComponent as ɵc, EmptyLayoutComponent as ɵd, LayoutComponent as ɵe, LayoutState as ɵf, AddNavigationElement as ɵg, RemoveNavigationElementByName as ɵh }; +export { AccountLayoutComponent, AddNavigationElement, ApplicationLayoutComponent, EmptyLayoutComponent, LAYOUTS, LayoutState, RemoveNavigationElementByName, ThemeBasicModule, ValidationErrorComponent, ApplicationLayoutComponent as ɵa, LayoutState as ɵb, AccountLayoutComponent as ɵc, EmptyLayoutComponent as ɵd, LayoutComponent as ɵe, ValidationErrorComponent as ɵf, LayoutState as ɵg, AddNavigationElement as ɵh, RemoveNavigationElementByName as ɵi, InitialService as ɵk }; //# sourceMappingURL=abp-ng.theme.basic.js.map diff --git a/npm/ng-packs/dist/theme-basic/fesm5/abp-ng.theme.basic.js.map b/npm/ng-packs/dist/theme-basic/fesm5/abp-ng.theme.basic.js.map index 8a1ffbbd31..6948b82818 100644 --- a/npm/ng-packs/dist/theme-basic/fesm5/abp-ng.theme.basic.js.map +++ b/npm/ng-packs/dist/theme-basic/fesm5/abp-ng.theme.basic.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.theme.basic.js","sources":["ng://@abp/ng.theme.basic/lib/components/account-layout/account-layout.component.ts","ng://@abp/ng.theme.basic/lib/actions/layout.actions.ts","ng://@abp/ng.theme.basic/lib/states/layout.state.ts","ng://@abp/ng.theme.basic/lib/components/application-layout/application-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/empty-layout/empty-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/layout/layout.component.ts","ng://@abp/ng.theme.basic/lib/theme-basic.module.ts","ng://@abp/ng.theme.basic/lib/models/layout.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './account-layout.component.html',\n})\nexport class AccountLayoutComponent {\n // required for dynamic component\n static type = eLayoutType.account;\n}\n","import { Layout } from '../models/layout';\n\nexport class AddNavigationElement {\n static readonly type = '[Layout] Add Navigation Element';\n constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {}\n}\n\nexport class RemoveNavigationElementByName {\n static readonly type = '[Layout] Remove Navigation ElementByName';\n constructor(public name: string) {}\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { AddNavigationElement, RemoveNavigationElementByName } from '../actions/layout.actions';\nimport { Layout } from '../models/layout';\nimport { TemplateRef } from '@angular/core';\nimport snq from 'snq';\n\n@State({\n name: 'LayoutState',\n defaults: { navigationElements: [] } as Layout.State,\n})\nexport class LayoutState {\n @Selector()\n static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] {\n return navigationElements;\n }\n\n @Action(AddNavigationElement)\n layoutAddAction({ getState, patchState }: StateContext, { payload = [] }: AddNavigationElement) {\n let { navigationElements } = getState();\n\n if (!Array.isArray(payload)) {\n payload = [payload];\n }\n\n if (navigationElements.length) {\n payload = snq(\n () =>\n (payload as Layout.NavigationElement[]).filter(\n ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0,\n ),\n [],\n );\n }\n\n if (!payload.length) return;\n\n navigationElements = [...navigationElements, ...payload]\n .map(element => ({ ...element, order: element.order || 99 }))\n .sort((a, b) => a.order - b.order);\n\n return patchState({\n navigationElements,\n });\n }\n\n @Action(RemoveNavigationElementByName)\n layoutRemoveAction({ getState, patchState }: StateContext, { name }: RemoveNavigationElementByName) {\n let { navigationElements } = getState();\n\n const index = navigationElements.findIndex(element => element.name === name);\n\n if (index > -1) {\n navigationElements = navigationElements.splice(index, 1);\n }\n\n return patchState({\n navigationElements,\n });\n }\n}\n","import {\n ABP,\n ApplicationConfiguration,\n GetAppConfiguration,\n ConfigState,\n eLayoutType,\n SetLanguage,\n SessionState,\n takeUntilDestroy,\n} from '@abp/ng.core';\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n QueryList,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\nimport { Navigate, RouterState } from '@ngxs/router-plugin';\nimport { Select, Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport compare from 'just-compare';\nimport { fromEvent, Observable } from 'rxjs';\nimport { debounceTime, filter, map } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AddNavigationElement } from '../../actions';\nimport { Layout } from '../../models/layout';\nimport { LayoutState } from '../../states';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './application-layout.component.html',\n})\nexport class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {\n // required for dynamic component\n static type = eLayoutType.application;\n\n @Select(ConfigState.getOne('routes'))\n routes$: Observable;\n\n @Select(ConfigState.getOne('currentUser'))\n currentUser$: Observable;\n\n @Select(ConfigState.getDeep('localization.languages'))\n languages$: Observable;\n\n @Select(LayoutState.getNavigationElements)\n navElements$: Observable;\n\n @ViewChild('currentUser', { static: false, read: TemplateRef })\n currentUserRef: TemplateRef;\n\n @ViewChild('language', { static: false, read: TemplateRef })\n languageRef: TemplateRef;\n\n @ViewChildren('navbarRootDropdown', { read: NgbDropdown })\n navbarRootDropdowns: QueryList;\n\n isOpenChangePassword: boolean = false;\n\n isOpenProfile: boolean = false;\n\n isDropdownChildDynamic: boolean;\n\n get visibleRoutes$(): Observable {\n return this.routes$.pipe(map(routes => getVisibleRoutes(routes)));\n }\n\n get defaultLanguage$(): Observable {\n return this.languages$.pipe(\n map(\n languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable {\n return this.languages$.pipe(\n map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []),\n );\n }\n\n get selectedLangCulture(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n rightPartElements: TemplateRef[] = [];\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n trackElementByFn: TrackByFunction = (_, element) => element;\n\n constructor(private store: Store, private oauthService: OAuthService) {}\n\n private checkWindowWidth() {\n setTimeout(() => {\n this.navbarRootDropdowns.forEach(item => {\n item.close();\n });\n if (window.innerWidth < 768) {\n this.isDropdownChildDynamic = false;\n } else {\n this.isDropdownChildDynamic = true;\n }\n }, 0);\n }\n\n ngAfterViewInit() {\n const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name);\n\n if (navigations.indexOf('LanguageRef') < 0) {\n this.store.dispatch(\n new AddNavigationElement([\n { element: this.languageRef, order: 4, name: 'LanguageRef' },\n { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' },\n ]),\n );\n }\n\n this.navElements$\n .pipe(\n map(elements => elements.map(({ element }) => element)),\n filter(elements => !compare(elements, this.rightPartElements)),\n takeUntilDestroy(this),\n )\n .subscribe(elements => {\n setTimeout(() => (this.rightPartElements = elements), 0);\n });\n\n this.checkWindowWidth();\n\n fromEvent(window, 'resize')\n .pipe(\n takeUntilDestroy(this),\n debounceTime(250),\n )\n .subscribe(() => {\n this.checkWindowWidth();\n });\n }\n\n ngOnDestroy() {}\n\n onChangeLang(cultureName: string) {\n this.store.dispatch(new SetLanguage(cultureName));\n }\n\n logout() {\n this.oauthService.logOut();\n this.store.dispatch(\n new Navigate(['/'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n this.store.dispatch(new GetAppConfiguration());\n }\n}\n\nfunction getVisibleRoutes(routes: ABP.FullRoute[]) {\n return routes.reduce((acc, val) => {\n if (val.invisible) return acc;\n\n if (val.children && val.children.length) {\n val.children = getVisibleRoutes(val.children);\n }\n\n return [...acc, val];\n }, []);\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-empty',\n template: `\n Layout-empty\n \n `,\n})\nexport class EmptyLayoutComponent {\n static type = eLayoutType.empty;\n}\n","import { Config, ConfigState } from '@abp/ng.core';\nimport { slideFromBottom } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngxs/store';\n\n@Component({\n selector: ' abp-layout',\n templateUrl: './layout.component.html',\n animations: [slideFromBottom],\n})\nexport class LayoutComponent {\n isCollapsed: boolean = true;\n\n get appInfo(): Config.Application {\n return this.store.selectSnapshot(ConfigState.getApplicationInfo);\n }\n\n constructor(private store: Store) {}\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { ToastModule } from 'primeng/toast';\nimport { AccountLayoutComponent } from './components/account-layout/account-layout.component';\nimport { ApplicationLayoutComponent } from './components/application-layout/application-layout.component';\nimport { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { LayoutState } from './states/layout.state';\n\nexport const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];\n\n@NgModule({\n declarations: [...LAYOUTS, LayoutComponent],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n ToastModule,\n NgxValidateCoreModule,\n NgxsModule.forFeature([LayoutState]),\n ],\n exports: [...LAYOUTS],\n entryComponents: [...LAYOUTS],\n})\nexport class ThemeBasicModule {}\n","import { TemplateRef } from '@angular/core';\n\nexport namespace Layout {\n export interface State {\n navigationElements: NavigationElement[];\n }\n\n export interface NavigationElement {\n name: string;\n element: TemplateRef;\n order?: number;\n }\n}\n"],"names":["tslib_1.__spread","tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.theme.basic.js","sources":["ng://@abp/ng.theme.basic/lib/components/account-layout/account-layout.component.ts","ng://@abp/ng.theme.basic/lib/actions/layout.actions.ts","ng://@abp/ng.theme.basic/lib/states/layout.state.ts","ng://@abp/ng.theme.basic/lib/components/application-layout/application-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/empty-layout/empty-layout.component.ts","ng://@abp/ng.theme.basic/lib/components/layout/layout.component.ts","ng://@abp/ng.theme.basic/lib/components/validation-error/validation-error.component.ts","ng://@abp/ng.theme.basic/lib/constants/styles.ts","ng://@abp/ng.theme.basic/lib/services/initial.service.ts","ng://@abp/ng.theme.basic/lib/theme-basic.module.ts","ng://@abp/ng.theme.basic/lib/models/layout.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-account',\n templateUrl: './account-layout.component.html',\n})\nexport class AccountLayoutComponent {\n // required for dynamic component\n static type = eLayoutType.account;\n}\n","import { Layout } from '../models/layout';\n\nexport class AddNavigationElement {\n static readonly type = '[Layout] Add Navigation Element';\n constructor(public payload: Layout.NavigationElement | Layout.NavigationElement[]) {}\n}\n\nexport class RemoveNavigationElementByName {\n static readonly type = '[Layout] Remove Navigation ElementByName';\n constructor(public name: string) {}\n}\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport { AddNavigationElement, RemoveNavigationElementByName } from '../actions/layout.actions';\nimport { Layout } from '../models/layout';\nimport { TemplateRef } from '@angular/core';\nimport snq from 'snq';\n\n@State({\n name: 'LayoutState',\n defaults: { navigationElements: [] } as Layout.State,\n})\nexport class LayoutState {\n @Selector()\n static getNavigationElements({ navigationElements }: Layout.State): Layout.NavigationElement[] {\n return navigationElements;\n }\n\n @Action(AddNavigationElement)\n layoutAddAction({ getState, patchState }: StateContext, { payload = [] }: AddNavigationElement) {\n let { navigationElements } = getState();\n\n if (!Array.isArray(payload)) {\n payload = [payload];\n }\n\n if (navigationElements.length) {\n payload = snq(\n () =>\n (payload as Layout.NavigationElement[]).filter(\n ({ name }) => navigationElements.findIndex(nav => nav.name === name) < 0,\n ),\n [],\n );\n }\n\n if (!payload.length) return;\n\n navigationElements = [...navigationElements, ...payload]\n .map(element => ({ ...element, order: element.order || 99 }))\n .sort((a, b) => a.order - b.order);\n\n return patchState({\n navigationElements,\n });\n }\n\n @Action(RemoveNavigationElementByName)\n layoutRemoveAction({ getState, patchState }: StateContext, { name }: RemoveNavigationElementByName) {\n let { navigationElements } = getState();\n\n const index = navigationElements.findIndex(element => element.name === name);\n\n if (index > -1) {\n navigationElements = navigationElements.splice(index, 1);\n }\n\n return patchState({\n navigationElements,\n });\n }\n}\n","import {\n ABP,\n ApplicationConfiguration,\n GetAppConfiguration,\n ConfigState,\n eLayoutType,\n SetLanguage,\n SessionState,\n takeUntilDestroy,\n} from '@abp/ng.core';\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n QueryList,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\nimport { Navigate, RouterState } from '@ngxs/router-plugin';\nimport { Select, Store } from '@ngxs/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport compare from 'just-compare';\nimport { fromEvent, Observable } from 'rxjs';\nimport { debounceTime, filter, map } from 'rxjs/operators';\nimport snq from 'snq';\nimport { AddNavigationElement } from '../../actions';\nimport { Layout } from '../../models/layout';\nimport { LayoutState } from '../../states';\n\n@Component({\n selector: 'abp-layout-application',\n templateUrl: './application-layout.component.html',\n})\nexport class ApplicationLayoutComponent implements AfterViewInit, OnDestroy {\n // required for dynamic component\n static type = eLayoutType.application;\n\n @Select(ConfigState.getOne('routes'))\n routes$: Observable;\n\n @Select(ConfigState.getOne('currentUser'))\n currentUser$: Observable;\n\n @Select(ConfigState.getDeep('localization.languages'))\n languages$: Observable;\n\n @Select(LayoutState.getNavigationElements)\n navElements$: Observable;\n\n @ViewChild('currentUser', { static: false, read: TemplateRef })\n currentUserRef: TemplateRef;\n\n @ViewChild('language', { static: false, read: TemplateRef })\n languageRef: TemplateRef;\n\n @ViewChildren('navbarRootDropdown', { read: NgbDropdown })\n navbarRootDropdowns: QueryList;\n\n isOpenChangePassword: boolean = false;\n\n isOpenProfile: boolean = false;\n\n isDropdownChildDynamic: boolean;\n\n get visibleRoutes$(): Observable {\n return this.routes$.pipe(map(routes => getVisibleRoutes(routes)));\n }\n\n get defaultLanguage$(): Observable {\n return this.languages$.pipe(\n map(\n languages => snq(() => languages.find(lang => lang.cultureName === this.selectedLangCulture).displayName),\n '',\n ),\n );\n }\n\n get dropdownLanguages$(): Observable {\n return this.languages$.pipe(\n map(languages => snq(() => languages.filter(lang => lang.cultureName !== this.selectedLangCulture)), []),\n );\n }\n\n get selectedLangCulture(): string {\n return this.store.selectSnapshot(SessionState.getLanguage);\n }\n\n rightPartElements: TemplateRef[] = [];\n\n trackByFn: TrackByFunction = (_, item) => item.name;\n\n trackElementByFn: TrackByFunction = (_, element) => element;\n\n constructor(private store: Store, private oauthService: OAuthService) {}\n\n private checkWindowWidth() {\n setTimeout(() => {\n this.navbarRootDropdowns.forEach(item => {\n item.close();\n });\n if (window.innerWidth < 768) {\n this.isDropdownChildDynamic = false;\n } else {\n this.isDropdownChildDynamic = true;\n }\n }, 0);\n }\n\n ngAfterViewInit() {\n const navigations = this.store.selectSnapshot(LayoutState.getNavigationElements).map(({ name }) => name);\n\n if (navigations.indexOf('LanguageRef') < 0) {\n this.store.dispatch(\n new AddNavigationElement([\n { element: this.languageRef, order: 4, name: 'LanguageRef' },\n { element: this.currentUserRef, order: 5, name: 'CurrentUserRef' },\n ]),\n );\n }\n\n this.navElements$\n .pipe(\n map(elements => elements.map(({ element }) => element)),\n filter(elements => !compare(elements, this.rightPartElements)),\n takeUntilDestroy(this),\n )\n .subscribe(elements => {\n setTimeout(() => (this.rightPartElements = elements), 0);\n });\n\n this.checkWindowWidth();\n\n fromEvent(window, 'resize')\n .pipe(\n takeUntilDestroy(this),\n debounceTime(250),\n )\n .subscribe(() => {\n this.checkWindowWidth();\n });\n }\n\n ngOnDestroy() {}\n\n onChangeLang(cultureName: string) {\n this.store.dispatch(new SetLanguage(cultureName));\n }\n\n logout() {\n this.oauthService.logOut();\n this.store.dispatch(\n new Navigate(['/'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n this.store.dispatch(new GetAppConfiguration());\n }\n}\n\nfunction getVisibleRoutes(routes: ABP.FullRoute[]) {\n return routes.reduce((acc, val) => {\n if (val.invisible) return acc;\n\n if (val.children && val.children.length) {\n val.children = getVisibleRoutes(val.children);\n }\n\n return [...acc, val];\n }, []);\n}\n","import { Component } from '@angular/core';\nimport { eLayoutType } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-layout-empty',\n template: `\n Layout-empty\n \n `,\n})\nexport class EmptyLayoutComponent {\n static type = eLayoutType.empty;\n}\n","import { Config, ConfigState } from '@abp/ng.core';\nimport { slideFromBottom } from '@abp/ng.theme.shared';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngxs/store';\n\n@Component({\n selector: ' abp-layout',\n templateUrl: './layout.component.html',\n animations: [slideFromBottom],\n})\nexport class LayoutComponent {\n isCollapsed: boolean = true;\n\n get appInfo(): Config.Application {\n return this.store.selectSnapshot(ConfigState.getApplicationInfo);\n }\n\n constructor(private store: Store) {}\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { Validation, ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core';\n\n@Component({\n selector: 'abp-validation-error',\n template: `\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ValidationErrorComponent extends ErrorComponent {\n get abpErrors(): Validation.Error[] & { interpoliteParams?: string[] } {\n if (!this.errors || !this.errors.length) return [];\n\n return this.errors.map(error => {\n if (!error.message) return error;\n\n const index = error.message.indexOf('[');\n\n if (index > -1) {\n return {\n ...error,\n message: error.message.slice(0, index),\n interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(','),\n };\n }\n\n return error;\n });\n }\n}\n","export default `\n.content-header-title {\n font-size: 24px;\n}\n\n.entry-row {\n margin-bottom: 15px;\n}\n`;","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LazyLoadService } from '@abp/ng.core';\nimport styles from '../constants/styles';\n\n@Injectable({ providedIn: 'root' })\nexport class InitialService {\n constructor(private lazyLoadService: LazyLoadService) {\n this.appendStyle().subscribe();\n }\n\n appendStyle() {\n return this.lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin');\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgxsModule } from '@ngxs/store';\nimport { ToastModule } from 'primeng/toast';\nimport { AccountLayoutComponent } from './components/account-layout/account-layout.component';\nimport { ApplicationLayoutComponent } from './components/application-layout/application-layout.component';\nimport { EmptyLayoutComponent } from './components/empty-layout/empty-layout.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { LayoutState } from './states/layout.state';\nimport { ValidationErrorComponent } from './components/validation-error/validation-error.component';\nimport { InitialService } from './services/initial.service';\n\nexport const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];\n\n@NgModule({\n declarations: [...LAYOUTS, LayoutComponent, ValidationErrorComponent],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgbCollapseModule,\n NgbDropdownModule,\n ToastModule,\n NgxValidateCoreModule,\n NgxsModule.forFeature([LayoutState]),\n NgxValidateCoreModule.forRoot({\n targetSelector: '.form-group',\n blueprints: {\n email: `AbpAccount::ThisFieldIsNotAValidEmailAddress.`,\n max: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`,\n maxlength: `AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]`,\n min: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`,\n minlength: `AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]`,\n required: `AbpAccount::ThisFieldIsRequired.`,\n passwordMismatch: `AbpIdentity::Identity.PasswordConfirmationFailed`,\n },\n errorTemplate: ValidationErrorComponent,\n }),\n ],\n exports: [...LAYOUTS],\n entryComponents: [...LAYOUTS, ValidationErrorComponent],\n})\nexport class ThemeBasicModule {\n constructor(private initialService: InitialService) {}\n}\n","import { TemplateRef } from '@angular/core';\n\nexport namespace Layout {\n export interface State {\n navigationElements: NavigationElement[];\n }\n\n export interface NavigationElement {\n name: string;\n element: TemplateRef;\n order?: number;\n }\n}\n"],"names":["tslib_1.__spread","tslib_1.__decorate","tslib_1.__extends","ErrorComponent"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-basic/lib/components/index.d.ts b/npm/ng-packs/dist/theme-basic/lib/components/index.d.ts index ca8f7982bc..cd1e7e8757 100644 --- a/npm/ng-packs/dist/theme-basic/lib/components/index.d.ts +++ b/npm/ng-packs/dist/theme-basic/lib/components/index.d.ts @@ -1,3 +1,4 @@ export * from './account-layout/account-layout.component'; export * from './application-layout/application-layout.component'; export * from './empty-layout/empty-layout.component'; +export * from './validation-error/validation-error.component'; diff --git a/npm/ng-packs/dist/theme-shared/lib/components/errors/validation-error.component.d.ts b/npm/ng-packs/dist/theme-basic/lib/components/validation-error/validation-error.component.d.ts similarity index 100% rename from npm/ng-packs/dist/theme-shared/lib/components/errors/validation-error.component.d.ts rename to npm/ng-packs/dist/theme-basic/lib/components/validation-error/validation-error.component.d.ts diff --git a/npm/ng-packs/dist/theme-basic/lib/constants/styles.d.ts b/npm/ng-packs/dist/theme-basic/lib/constants/styles.d.ts new file mode 100644 index 0000000000..6edac7eb9d --- /dev/null +++ b/npm/ng-packs/dist/theme-basic/lib/constants/styles.d.ts @@ -0,0 +1,2 @@ +declare const _default: "\n.content-header-title {\n font-size: 24px;\n}\n\n.entry-row {\n margin-bottom: 15px;\n}\n"; +export default _default; diff --git a/npm/ng-packs/dist/theme-basic/lib/services/initial.service.d.ts b/npm/ng-packs/dist/theme-basic/lib/services/initial.service.d.ts new file mode 100644 index 0000000000..3f43341ff0 --- /dev/null +++ b/npm/ng-packs/dist/theme-basic/lib/services/initial.service.d.ts @@ -0,0 +1,6 @@ +import { LazyLoadService } from '@abp/ng.core'; +export declare class InitialService { + private lazyLoadService; + constructor(lazyLoadService: LazyLoadService); + appendStyle(): import("rxjs").Observable; +} diff --git a/npm/ng-packs/dist/theme-basic/lib/theme-basic.module.d.ts b/npm/ng-packs/dist/theme-basic/lib/theme-basic.module.d.ts index 0cf31961cb..d94623c419 100644 --- a/npm/ng-packs/dist/theme-basic/lib/theme-basic.module.d.ts +++ b/npm/ng-packs/dist/theme-basic/lib/theme-basic.module.d.ts @@ -1,5 +1,8 @@ import { AccountLayoutComponent } from './components/account-layout/account-layout.component'; import { ApplicationLayoutComponent } from './components/application-layout/application-layout.component'; +import { InitialService } from './services/initial.service'; export declare const LAYOUTS: (typeof ApplicationLayoutComponent | typeof AccountLayoutComponent)[]; export declare class ThemeBasicModule { + private initialService; + constructor(initialService: InitialService); } diff --git a/npm/ng-packs/dist/theme-basic/package.json b/npm/ng-packs/dist/theme-basic/package.json index b816bf17e7..4174ba1f79 100644 --- a/npm/ng-packs/dist/theme-basic/package.json +++ b/npm/ng-packs/dist/theme-basic/package.json @@ -1,8 +1,8 @@ { "name": "@abp/ng.theme.basic", - "version": "0.8.3", + "version": "0.9.0", "dependencies": { - "@abp/ng.theme.shared": "^0.8.3", + "@abp/ng.theme.shared": "^0.9.0", "tslib": "^1.9.0" }, "publishConfig": { diff --git a/npm/ng-packs/dist/theme-shared/abp-ng.theme.shared.d.ts b/npm/ng-packs/dist/theme-shared/abp-ng.theme.shared.d.ts index 6c76bd406f..d8594a36ab 100644 --- a/npm/ng-packs/dist/theme-shared/abp-ng.theme.shared.d.ts +++ b/npm/ng-packs/dist/theme-shared/abp-ng.theme.shared.d.ts @@ -3,16 +3,17 @@ */ export * from './public-api'; export { AbstractToaster as ɵe } from './lib/abstracts/toaster'; -export { BreadcrumbComponent as ɵm } from './lib/components/breadcrumb/breadcrumb.component'; +export { BreadcrumbComponent as ɵa } from './lib/components/breadcrumb/breadcrumb.component'; export { ButtonComponent as ɵb } from './lib/components/button/button.component'; -export { ChangePasswordComponent as ɵj } from './lib/components/change-password/change-password.component'; -export { ConfirmationComponent as ɵc } from './lib/components/confirmation/confirmation.component'; -export { ErrorComponent as ɵh } from './lib/components/errors/error.component'; -export { ValidationErrorComponent as ɵa } from './lib/components/errors/validation-error.component'; -export { LoaderBarComponent as ɵi } from './lib/components/loader-bar/loader-bar.component'; -export { ModalComponent as ɵg } from './lib/components/modal/modal.component'; +export { ChangePasswordComponent as ɵc } from './lib/components/change-password/change-password.component'; +export { ChartComponent as ɵf } from './lib/components/chart/chart.component'; +export { ConfirmationComponent as ɵg } from './lib/components/confirmation/confirmation.component'; +export { ErrorComponent as ɵi } from './lib/components/errors/error.component'; +export { LoaderBarComponent as ɵj } from './lib/components/loader-bar/loader-bar.component'; +export { ModalComponent as ɵk } from './lib/components/modal/modal.component'; export { ProfileComponent as ɵl } from './lib/components/profile/profile.component'; -export { ToastComponent as ɵf } from './lib/components/toast/toast.component'; -export { ErrorHandler as ɵn } from './lib/handlers/error.handler'; -export { ConfirmationService as ɵd } from './lib/services/confirmation.service'; -export { ToasterService as ɵk } from './lib/services/toaster.service'; +export { TableEmptyMessageComponent as ɵm } from './lib/components/table-empty-message/table-empty-message.component'; +export { ToastComponent as ɵn } from './lib/components/toast/toast.component'; +export { ErrorHandler as ɵo } from './lib/handlers/error.handler'; +export { ConfirmationService as ɵh } from './lib/services/confirmation.service'; +export { ToasterService as ɵd } from './lib/services/toaster.service'; diff --git a/npm/ng-packs/dist/theme-shared/abp-ng.theme.shared.metadata.json b/npm/ng-packs/dist/theme-shared/abp-ng.theme.shared.metadata.json index 023e254454..b32cd5ffd6 100644 --- a/npm/ng-packs/dist/theme-shared/abp-ng.theme.shared.metadata.json +++ b/npm/ng-packs/dist/theme-shared/abp-ng.theme.shared.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"exports":[{"from":"./lib/confirmation.service"},{"from":"./lib/toaster.service"},{"from":"./lib/setting-management"},{"from":"./lib/confirmation/confirmation.component"},{"from":"./lib/loader-bar/loader-bar.component"},{"from":"./lib/modal/modal.component"},{"from":"./lib/profile/profile.component"},{"from":"./lib/toast/toast.component"}],"metadata":{"appendScript":{"__symbolic":"function"},"ThemeSharedModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":38,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":40,"character":4},{"__symbolic":"reference","module":"primeng/toast","name":"ToastModule","line":41,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":42,"character":4},"member":"forRoot"},"arguments":[{"targetSelector":".form-group","blueprints":{"email":"AbpAccount::ThisFieldIsNotAValidEmailAddress.","max":"AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]","maxlength":"AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]","min":"AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]","minlength":"AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]","required":"AbpAccount::ThisFieldIsRequired.","passwordMismatch":"AbpIdentity::Identity.PasswordConfirmationFailed"},"errorTemplate":{"__symbolic":"reference","name":"ɵa"}}]}],"declarations":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"}],"exports":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"}],"entryComponents":[{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"ThemeSharedModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":86,"character":19},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":88,"character":17},{"__symbolic":"reference","name":"ɵn"}],"useFactory":{"__symbolic":"reference","name":"appendScript"}},{"provide":{"__symbolic":"reference","module":"primeng/components/common/messageservice","name":"MessageService","line":91,"character":19},"useClass":{"__symbolic":"reference","module":"primeng/components/common/messageservice","name":"MessageService","line":91,"character":45}}]}}}},"ɵa":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-validate/core","name":"ValidationErrorComponent","line":13,"character":46},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"abp-validation-error","template":"\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n ","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":10,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":11,"character":17},"member":"None"}}]}],"members":{}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"abp-button","template":"\n \n "}]}],"members":{"buttonClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"iconClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"abp-confirmation","template":"\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"}]}],"close":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{},"statics":{"ngInjectableDef":{}}},"ɵe":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"primeng/components/common/messageservice","name":"MessageService","line":11,"character":40}]}],"info":[{"__symbolic":"method"}],"success":[{"__symbolic":"method"}],"warn":[{"__symbolic":"method"}],"error":[{"__symbolic":"method"}],"show":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"abp-toast","template":"\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n "}]}],"members":{}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"abp-modal","template":"\n \n
    \n
    \n \n\n \n
    \n \n \n\n
    \n \n
    \n
    \n \n \n\n \n\n"}]}],"members":{"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"busy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"centered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}],"modalClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":74,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":3}}]}],"minHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":80,"character":3}}]}],"init":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":82,"character":3}}]}],"abpHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":84,"character":3},"arguments":["abpHeader",{"static":false}]}]}],"abpBody":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":86,"character":3},"arguments":["abpBody",{"static":false}]}]}],"abpFooter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":88,"character":3},"arguments":["abpFooter",{"static":false}]}]}],"abpClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":90,"character":3},"arguments":["abpClose",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":90,"character":51}}]}]}],"abpSubmit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":92,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵb"},{"static":false,"read":{"__symbolic":"reference","name":"ɵb"}}]}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":94,"character":3},"arguments":["abpModalContent",{"static":false}]}]}],"abpButtons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":96,"character":3},"arguments":["abp-button"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":110,"character":32},{"__symbolic":"reference","name":"ɵd"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"setVisible":[{"__symbolic":"method"}],"listen":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"abp-error","template":"\n
    \n \n
    \n
    \n
    \n

    \n {{ title | abpLocalization }}\n

    \n
    \n {{ details | abpLocalization }}\n
    \n \n
    \n
    \n
    \n
    \n ","styles":[".error{position:fixed;top:0;background-color:#fff;width:100vw;height:100vh;z-index:999999}.centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}"]}]}],"members":{"destroy":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"abp-loader-bar","template":"\n
    \n
    \n
    \n ","styles":[".abp-loader-bar{left:0;opacity:0;position:fixed;top:0;transition:opacity .4s linear .4s;z-index:99999}.abp-loader-bar.is-loading{opacity:1;transition:none}.abp-loader-bar .abp-progress{background:#77b6ff;box-shadow:0 0 10px rgba(119,182,255,.7);height:2px;left:0;position:fixed;top:0;transition:width .4s}"]}]}],"members":{"containerClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"progressClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"isLoading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"filter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Actions","line":33,"character":31},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":33,"character":56}]}],"ngOnDestroy":[{"__symbolic":"method"}],"startLoading":[{"__symbolic":"method"}],"stopLoading":[{"__symbolic":"method"}]}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"abp-change-password","template":"\n \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n"}]}],"members":{"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"character":3}}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":41,"character":3},"arguments":["modalContent",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":48,"character":26},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":48,"character":54},{"__symbolic":"reference","name":"ɵk"}]}],"ngOnInit":[{"__symbolic":"method"}],"onSubmit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"addAll":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"abp-profile","template":"\n \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n"}]}],"members":{"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"profile$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":29,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ProfileState","line":29,"character":10},"member":"getProfile"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":36,"character":26},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":36,"character":54}]}],"buildForm":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"abp-breadcrumb","template":"\n
      \n
    1. \n \n
    2. \n \n {{ segment | abpLocalization }}\n \n
    \n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":28,"character":30},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":28,"character":53}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":40,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Actions","line":43,"character":21},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":44,"character":19},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","module":"@angular/core","name":"ApplicationRef","line":46,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":47,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"RendererFactory2","line":48,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":49,"character":22}]}],"showError":[{"__symbolic":"method"}],"navigateToLogin":[{"__symbolic":"method"}],"createErrorComponent":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}}},"origins":{"appendScript":"./lib/theme-shared.module","ThemeSharedModule":"./lib/theme-shared.module","ɵa":"./lib/components/errors/validation-error.component","ɵb":"./lib/components/button/button.component","ɵc":"./lib/components/confirmation/confirmation.component","ɵd":"./lib/services/confirmation.service","ɵe":"./lib/abstracts/toaster","ɵf":"./lib/components/toast/toast.component","ɵg":"./lib/components/modal/modal.component","ɵh":"./lib/components/errors/error.component","ɵi":"./lib/components/loader-bar/loader-bar.component","ɵj":"./lib/components/change-password/change-password.component","ɵk":"./lib/services/toaster.service","ɵl":"./lib/components/profile/profile.component","ɵm":"./lib/components/breadcrumb/breadcrumb.component","ɵn":"./lib/handlers/error.handler"},"importAs":"@abp/ng.theme.shared"} \ No newline at end of file +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/widget-utils"},{"from":"./lib/toaster.service"},{"from":"./lib/statistics"},{"from":"./lib/toaster"},{"from":"./lib/confirmation/confirmation.component"},{"from":"./lib/loader-bar/loader-bar.component"},{"from":"./lib/modal/modal.component"},{"from":"./lib/profile/profile.component"},{"from":"./lib/table-empty-message/table-empty-message.component"},{"from":"./lib/toast/toast.component"}],"metadata":{"appendScript":{"__symbolic":"function"},"ThemeSharedModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":41,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":42,"character":12},{"__symbolic":"reference","module":"primeng/toast","name":"ToastModule","line":42,"character":24}],"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"ɵn"}],"exports":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"ɵn"}],"entryComponents":[{"__symbolic":"reference","name":"ɵi"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"ThemeSharedModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":76,"character":19},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":78,"character":17},{"__symbolic":"reference","name":"ɵo"}],"useFactory":{"__symbolic":"reference","name":"appendScript"}},{"provide":{"__symbolic":"reference","module":"primeng/components/common/messageservice","name":"MessageService","line":81,"character":19},"useClass":{"__symbolic":"reference","module":"primeng/components/common/messageservice","name":"MessageService","line":81,"character":45}}]}}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"abp-breadcrumb","template":"\n
      \n
    1. \n \n
    2. \n \n {{ segment | abpLocalization }}\n \n
    \n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":28,"character":30},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":28,"character":53}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"abp-button","template":"\n \n "}]}],"members":{"buttonClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"iconClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"abp-change-password","template":"\n \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n"}]}],"members":{"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"character":3}}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":41,"character":3},"arguments":["modalContent",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":48,"character":26},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":48,"character":54},{"__symbolic":"reference","name":"ɵd"}]}],"ngOnInit":[{"__symbolic":"method"}],"onSubmit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"addAll":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵe":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"primeng/components/common/messageservice","name":"MessageService","line":11,"character":40}]}],"info":[{"__symbolic":"method"}],"success":[{"__symbolic":"method"}],"warn":[{"__symbolic":"method"}],"error":[{"__symbolic":"method"}],"show":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"abp-chart","template":"\n \n\n"}]}],"members":{"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"plugins":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"responsive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"onDataSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":31,"character":3}}]}],"initialized":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":33,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":41,"character":25},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":41,"character":52}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"abp-confirmation","template":"\n \n \n \n
    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵh"}]}],"close":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"primeng/components/common/messageservice","name":"MessageService","line":16,"character":40}]}],"show":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"listenToEscape":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"abp-error","template":"\n
    \n \n
    \n
    \n
    \n

    \n {{ title | abpLocalization }}\n

    \n
    \n {{ details | abpLocalization }}\n
    \n \n
    \n
    \n
    \n
    \n ","styles":[".error{position:fixed;top:0;background-color:#fff;width:100vw;height:100vh;z-index:999999}.centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}"]}]}],"members":{"destroy":[{"__symbolic":"method"}]}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"abp-loader-bar","template":"\n
    \n
    \n \n ","styles":[".abp-loader-bar{left:0;opacity:0;position:fixed;top:0;transition:opacity .4s linear .4s;z-index:99999}.abp-loader-bar.is-loading{opacity:1;transition:none}.abp-loader-bar .abp-progress{height:3px;left:0;position:fixed;top:0;transition:width .4s}"]}]}],"members":{"containerClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"isLoading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"filter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Actions","line":47,"character":31},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":47,"character":56},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":47,"character":79}]}],"ngOnDestroy":[{"__symbolic":"method"}],"startLoading":[{"__symbolic":"method"}],"stopLoading":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"abp-modal","template":"\n \n
    \n
    \n \n\n \n
    \n \n \n
    \n
    \n \n
    \n \n \n\n \n\n"}]}],"members":{"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"busy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"centered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}],"modalClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":74,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":3}}]}],"minHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":80,"character":3}}]}],"init":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":82,"character":3}}]}],"abpHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":84,"character":3},"arguments":["abpHeader",{"static":false}]}]}],"abpBody":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":86,"character":3},"arguments":["abpBody",{"static":false}]}]}],"abpFooter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":88,"character":3},"arguments":["abpFooter",{"static":false}]}]}],"abpClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":90,"character":3},"arguments":["abpClose",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":90,"character":51}}]}]}],"abpSubmit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":92,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵb"},{"static":false,"read":{"__symbolic":"reference","name":"ɵb"}}]}]}],"modalContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":94,"character":3},"arguments":["abpModalContent",{"static":false}]}]}],"abpButtons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":96,"character":3},"arguments":["abp-button"]}]}],"show":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":98,"character":3}}]}],"hide":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":101,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":116,"character":32},{"__symbolic":"reference","name":"ɵh"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"setVisible":[{"__symbolic":"method"}],"listen":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"abp-profile","template":"\n \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n"}]}],"members":{"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"profile$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":29,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@abp/ng.core","name":"ProfileState","line":29,"character":10},"member":"getProfile"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":36,"character":26},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":36,"character":54}]}],"buildForm":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"[abp-table-empty-message]","template":"\n \n {{ emptyMessage | abpLocalization }}\n \n "}]}],"members":{"colspan":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"localizationResource":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"localizationProp":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}]}},"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"abp-toast","template":"\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n "}]}],"members":{}},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":40,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Actions","line":43,"character":21},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":44,"character":19},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","module":"@angular/core","name":"ApplicationRef","line":46,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":47,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"RendererFactory2","line":48,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":49,"character":22}]}],"showError":[{"__symbolic":"method"}],"navigateToLogin":[{"__symbolic":"method"}],"createErrorComponent":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}}},"origins":{"appendScript":"./lib/theme-shared.module","ThemeSharedModule":"./lib/theme-shared.module","ɵa":"./lib/components/breadcrumb/breadcrumb.component","ɵb":"./lib/components/button/button.component","ɵc":"./lib/components/change-password/change-password.component","ɵd":"./lib/services/toaster.service","ɵe":"./lib/abstracts/toaster","ɵf":"./lib/components/chart/chart.component","ɵg":"./lib/components/confirmation/confirmation.component","ɵh":"./lib/services/confirmation.service","ɵi":"./lib/components/errors/error.component","ɵj":"./lib/components/loader-bar/loader-bar.component","ɵk":"./lib/components/modal/modal.component","ɵl":"./lib/components/profile/profile.component","ɵm":"./lib/components/table-empty-message/table-empty-message.component","ɵn":"./lib/components/toast/toast.component","ɵo":"./lib/handlers/error.handler"},"importAs":"@abp/ng.theme.shared"} \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/bundles/abp-ng.theme.shared.umd.js b/npm/ng-packs/dist/theme-shared/bundles/abp-ng.theme.shared.umd.js index 05df2930a2..932bbedbb1 100644 --- a/npm/ng-packs/dist/theme-shared/bundles/abp-ng.theme.shared.umd.js +++ b/npm/ng-packs/dist/theme-shared/bundles/abp-ng.theme.shared.umd.js @@ -1,8 +1,8 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@angular/core'), require('@ngx-validate/core'), require('primeng/components/common/messageservice'), require('primeng/toast'), require('rxjs'), require('rxjs/operators'), require('@angular/router'), require('@ngxs/store'), require('@angular/common/http'), require('@ngxs/router-plugin'), require('snq'), require('@angular/forms'), require('@angular/animations')) : - typeof define === 'function' && define.amd ? define('@abp/ng.theme.shared', ['exports', '@abp/ng.core', '@angular/core', '@ngx-validate/core', 'primeng/components/common/messageservice', 'primeng/toast', 'rxjs', 'rxjs/operators', '@angular/router', '@ngxs/store', '@angular/common/http', '@ngxs/router-plugin', 'snq', '@angular/forms', '@angular/animations'], factory) : - (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.theme = global.abp.ng.theme || {}, global.abp.ng.theme.shared = {}), global.ng_core, global.ng.core, global.core$1, global.messageservice, global.toast, global.rxjs, global.rxjs.operators, global.ng.router, global.store, global.ng.common.http, global.routerPlugin, global.snq, global.ng.forms, global.ng.animations)); -}(this, function (exports, ng_core, core, core$1, messageservice, toast, rxjs, operators, router, store, http, routerPlugin, snq, forms, animations) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@angular/core'), require('primeng/components/common/messageservice'), require('primeng/toast'), require('rxjs'), require('rxjs/operators'), require('@angular/router'), require('@ngxs/store'), require('@angular/forms'), require('@ngx-validate/core'), require('snq'), require('@angular/common/http'), require('@ngxs/router-plugin'), require('@angular/animations')) : + typeof define === 'function' && define.amd ? define('@abp/ng.theme.shared', ['exports', '@abp/ng.core', '@angular/core', 'primeng/components/common/messageservice', 'primeng/toast', 'rxjs', 'rxjs/operators', '@angular/router', '@ngxs/store', '@angular/forms', '@ngx-validate/core', 'snq', '@angular/common/http', '@ngxs/router-plugin', '@angular/animations'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng.theme = global.abp.ng.theme || {}, global.abp.ng.theme.shared = {}), global.ng_core, global.ng.core, global.messageservice, global.toast, global.rxjs, global.rxjs.operators, global.ng.router, global.store, global.ng.forms, global.core$1, global.snq, global.ng.common.http, global.routerPlugin, global.ng.animations)); +}(this, function (exports, ng_core, core, messageservice, toast, rxjs, operators, router, store, forms, core$1, snq, http, routerPlugin, animations) { 'use strict'; snq = snq && snq.hasOwnProperty('default') ? snq['default'] : snq; @@ -203,6 +203,136 @@ return (mod && mod.__esModule) ? mod : { default: mod }; } + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var BreadcrumbComponent = /** @class */ (function () { + function BreadcrumbComponent(router, store) { + this.router = router; + this.store = store; + this.segments = []; + this.show = !!this.store.selectSnapshot((/** + * @param {?} state + * @return {?} + */ + function (state) { return state.LeptonLayoutState; })); + } + /** + * @return {?} + */ + BreadcrumbComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + /** @type {?} */ + var splittedUrl = this.router.url.split('/').filter((/** + * @param {?} chunk + * @return {?} + */ + function (chunk) { return chunk; })); + /** @type {?} */ + var currentUrl = this.store.selectSnapshot(ng_core.ConfigState.getRoute(splittedUrl[0])); + this.segments.push(currentUrl.name); + if (splittedUrl.length > 1) { + var _a = __read(splittedUrl), arr = _a.slice(1); + /** @type {?} */ + var childRoute = currentUrl; + var _loop_1 = function (i) { + /** @type {?} */ + var element = arr[i]; + childRoute = childRoute.children.find((/** + * @param {?} child + * @return {?} + */ + function (child) { return child.path === element; })); + this_1.segments.push(childRoute.name); + }; + var this_1 = this; + for (var i = 0; i < arr.length; i++) { + _loop_1(i); + } + } + }; + BreadcrumbComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-breadcrumb', + template: "\n
      \n
    1. \n \n
    2. \n \n {{ segment | abpLocalization }}\n \n
    \n " + }] } + ]; + /** @nocollapse */ + BreadcrumbComponent.ctorParameters = function () { return [ + { type: router.Router }, + { type: store.Store } + ]; }; + return BreadcrumbComponent; + }()); + if (false) { + /** @type {?} */ + BreadcrumbComponent.prototype.show; + /** @type {?} */ + BreadcrumbComponent.prototype.segments; + /** + * @type {?} + * @private + */ + BreadcrumbComponent.prototype.router; + /** + * @type {?} + * @private + */ + BreadcrumbComponent.prototype.store; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ButtonComponent = /** @class */ (function () { + function ButtonComponent() { + this.buttonClass = 'btn btn-primary'; + this.type = 'button'; + this.loading = false; + this.disabled = false; + } + Object.defineProperty(ButtonComponent.prototype, "icon", { + get: /** + * @return {?} + */ + function () { + return "" + (this.loading ? 'fa fa-pulse fa-spinner' : this.iconClass || 'd-none'); + }, + enumerable: true, + configurable: true + }); + ButtonComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-button', + template: "\n \n " + }] } + ]; + ButtonComponent.propDecorators = { + buttonClass: [{ type: core.Input }], + type: [{ type: core.Input }], + iconClass: [{ type: core.Input }], + loading: [{ type: core.Input }], + disabled: [{ type: core.Input }] + }; + return ButtonComponent; + }()); + if (false) { + /** @type {?} */ + ButtonComponent.prototype.buttonClass; + /** @type {?} */ + ButtonComponent.prototype.type; + /** @type {?} */ + ButtonComponent.prototype.iconClass; + /** @type {?} */ + ButtonComponent.prototype.loading; + /** @type {?} */ + ButtonComponent.prototype.disabled; + } + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -334,436 +464,493 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ - var ConfirmationService = /** @class */ (function (_super) { - __extends(ConfirmationService, _super); - function ConfirmationService() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.key = 'abpConfirmation'; - _this.sticky = true; - return _this; + var ToasterService = /** @class */ (function (_super) { + __extends(ToasterService, _super); + function ToasterService() { + return _super !== null && _super.apply(this, arguments) || this; } - ConfirmationService.decorators = [ + /** + * @param {?} messages + * @return {?} + */ + ToasterService.prototype.addAll = /** + * @param {?} messages + * @return {?} + */ + function (messages) { + var _this = this; + this.messageService.addAll(messages.map((/** + * @param {?} message + * @return {?} + */ + function (message) { return (__assign({ key: _this.key }, message)); }))); + }; + ToasterService.decorators = [ { type: core.Injectable, args: [{ providedIn: 'root' },] } ]; - /** @nocollapse */ ConfirmationService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ConfirmationService_Factory() { return new ConfirmationService(core.ɵɵinject(messageservice.MessageService)); }, token: ConfirmationService, providedIn: "root" }); - return ConfirmationService; + /** @nocollapse */ ToasterService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ToasterService_Factory() { return new ToasterService(core.ɵɵinject(messageservice.MessageService)); }, token: ToasterService, providedIn: "root" }); + return ToasterService; }(AbstractToaster)); - if (false) { - /** @type {?} */ - ConfirmationService.prototype.key; - /** @type {?} */ - ConfirmationService.prototype.sticky; - } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ - var ConfirmationComponent = /** @class */ (function () { - function ConfirmationComponent(confirmationService) { - this.confirmationService = confirmationService; - this.confirm = "confirm" /* confirm */; - this.reject = "reject" /* reject */; - this.dismiss = "dismiss" /* dismiss */; + var minLength = forms.Validators.minLength, required = forms.Validators.required; + var ChangePasswordComponent = /** @class */ (function () { + function ChangePasswordComponent(fb, store, toasterService) { + this.fb = fb; + this.store = store; + this.toasterService = toasterService; + this.visibleChange = new core.EventEmitter(); + this.modalBusy = false; } + Object.defineProperty(ChangePasswordComponent.prototype, "visible", { + get: /** + * @return {?} + */ + function () { + return this._visible; + }, + set: /** + * @param {?} value + * @return {?} + */ + function (value) { + this._visible = value; + this.visibleChange.emit(value); + }, + enumerable: true, + configurable: true + }); /** - * @param {?} status * @return {?} */ - ConfirmationComponent.prototype.close = /** - * @param {?} status + ChangePasswordComponent.prototype.ngOnInit = /** * @return {?} */ - function (status) { - this.confirmationService.clear(status); + function () { + this.form = this.fb.group({ + password: ['', required], + newPassword: ['', required], + repeatNewPassword: ['', required], + }, { + validators: [core$1.comparePasswords(['newPassword', 'repeatNewPassword'])], + }); }; - ConfirmationComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'abp-confirmation', - template: "\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n " - }] } - ]; - /** @nocollapse */ - ConfirmationComponent.ctorParameters = function () { return [ - { type: ConfirmationService } - ]; }; - return ConfirmationComponent; - }()); - if (false) { - /** @type {?} */ - ConfirmationComponent.prototype.confirm; - /** @type {?} */ - ConfirmationComponent.prototype.reject; - /** @type {?} */ - ConfirmationComponent.prototype.dismiss; - /** - * @type {?} - * @private - */ - ConfirmationComponent.prototype.confirmationService; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var ErrorComponent = /** @class */ (function () { - function ErrorComponent() { - this.title = 'Oops!'; - this.details = 'Sorry, an error has occured.'; - } /** * @return {?} */ - ErrorComponent.prototype.destroy = /** + ChangePasswordComponent.prototype.onSubmit = /** * @return {?} */ function () { - this.renderer.removeChild(this.host, this.elementRef.nativeElement); - }; - ErrorComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'abp-error', - template: "\n
    \n \n
    \n
    \n
    \n

    \n {{ title | abpLocalization }}\n

    \n
    \n {{ details | abpLocalization }}\n
    \n \n
    \n
    \n
    \n
    \n ", - styles: [".error{position:fixed;top:0;background-color:#fff;width:100vw;height:100vh;z-index:999999}.centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}"] - }] } + var _this = this; + if (this.form.invalid) + return; + this.modalBusy = true; + this.store + .dispatch(new ng_core.ChangePassword({ + currentPassword: this.form.get('password').value, + newPassword: this.form.get('newPassword').value, + })) + .pipe(operators.finalize((/** + * @return {?} + */ + function () { + _this.modalBusy = false; + }))) + .subscribe({ + next: (/** + * @return {?} + */ + function () { + _this.visible = false; + _this.form.reset(); + }), + error: (/** + * @param {?} err + * @return {?} + */ + function (err) { + _this.toasterService.error(snq((/** + * @return {?} + */ + function () { return err.error.error.message; }), 'AbpAccount::DefaultErrorMessage'), 'Error', { + life: 7000, + }); + }), + }); + }; + /** + * @return {?} + */ + ChangePasswordComponent.prototype.openModal = /** + * @return {?} + */ + function () { + this.visible = true; + }; + /** + * @param {?} __0 + * @return {?} + */ + ChangePasswordComponent.prototype.ngOnChanges = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var visible = _a.visible; + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.visible) { + this.visible = false; + } + }; + ChangePasswordComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-change-password', + template: "\n \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n" + }] } ]; - return ErrorComponent; + /** @nocollapse */ + ChangePasswordComponent.ctorParameters = function () { return [ + { type: forms.FormBuilder }, + { type: store.Store }, + { type: ToasterService } + ]; }; + ChangePasswordComponent.propDecorators = { + visible: [{ type: core.Input }], + visibleChange: [{ type: core.Output }], + modalContent: [{ type: core.ViewChild, args: ['modalContent', { static: false },] }] + }; + return ChangePasswordComponent; }()); if (false) { + /** + * @type {?} + * @protected + */ + ChangePasswordComponent.prototype._visible; /** @type {?} */ - ErrorComponent.prototype.title; + ChangePasswordComponent.prototype.visibleChange; /** @type {?} */ - ErrorComponent.prototype.details; + ChangePasswordComponent.prototype.modalContent; /** @type {?} */ - ErrorComponent.prototype.renderer; + ChangePasswordComponent.prototype.form; /** @type {?} */ - ErrorComponent.prototype.elementRef; + ChangePasswordComponent.prototype.modalBusy; + /** + * @type {?} + * @private + */ + ChangePasswordComponent.prototype.fb; + /** + * @type {?} + * @private + */ + ChangePasswordComponent.prototype.store; + /** + * @type {?} + * @private + */ + ChangePasswordComponent.prototype.toasterService; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @param {?} count + * @return {?} + */ + function getRandomBackgroundColor(count) { /** @type {?} */ - ErrorComponent.prototype.host; + var colors = []; + for (var i = 0; i < count; i++) { + /** @type {?} */ + var r = ((i + 5) * (i + 5) * 474) % 255; + /** @type {?} */ + var g = ((i + 5) * (i + 5) * 1600) % 255; + /** @type {?} */ + var b = ((i + 5) * (i + 5) * 84065) % 255; + colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)'); + } + return colors; } + /** @type {?} */ + var chartJsLoaded$ = new rxjs.ReplaySubject(1); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ - var LoaderBarComponent = /** @class */ (function () { - function LoaderBarComponent(actions, router$1) { + var ChartComponent = /** @class */ (function () { + function ChartComponent(el, cdRef) { var _this = this; - this.actions = actions; - this.router = router$1; - this.containerClass = 'abp-loader-bar'; - this.progressClass = 'abp-progress'; - this.isLoading = false; - this.filter = (/** - * @param {?} action + this.el = el; + this.cdRef = cdRef; + this.options = {}; + this.plugins = []; + this.responsive = true; + this.onDataSelect = new core.EventEmitter(); + this.initialized = new rxjs.BehaviorSubject(this); + this.onCanvasClick = (/** + * @param {?} event * @return {?} */ - function (action) { return action.payload.url.indexOf('openid-configuration') < 0; }); - this.progressLevel = 0; - actions - .pipe(store.ofActionSuccessful(ng_core.StartLoader, ng_core.StopLoader), operators.filter(this.filter), core$1.takeUntilDestroy(this)) - .subscribe((/** - * @param {?} action + function (event) { + if (_this.chart) { + /** @type {?} */ + var element = _this.chart.getElementAtEvent(event); + /** @type {?} */ + var dataset = _this.chart.getDatasetAtEvent(event); + if (element && element[0] && dataset) { + _this.onDataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset }); + } + } + }); + this.initChart = (/** * @return {?} */ - function (action) { - if (action instanceof ng_core.StartLoader) - _this.startLoading(); - else - _this.stopLoading(); - })); - router$1.events - .pipe(operators.filter((/** - * @param {?} event + function () { + /** @type {?} */ + var opts = _this.options || {}; + opts.responsive = _this.responsive; + // allows chart to resize in responsive mode + if (opts.responsive && (_this.height || _this.width)) { + opts.maintainAspectRatio = false; + } + _this.chart = new Chart(_this.el.nativeElement.children[0].children[0], { + type: _this.type, + data: _this.data, + options: _this.options, + plugins: _this.plugins, + }); + _this.cdRef.detectChanges(); + }); + this.generateLegend = (/** * @return {?} */ - function (event) { - return event instanceof router.NavigationStart || event instanceof router.NavigationEnd || event instanceof router.NavigationError; - })), core$1.takeUntilDestroy(this)) - .subscribe((/** - * @param {?} event + function () { + if (_this.chart) { + return _this.chart.generateLegend(); + } + }); + this.refresh = (/** * @return {?} */ - function (event) { - if (event instanceof router.NavigationStart) - _this.startLoading(); - else - _this.stopLoading(); - })); + function () { + if (_this.chart) { + _this.chart.update(); + _this.cdRef.detectChanges(); + } + }); + this.reinit = (/** + * @return {?} + */ + function () { + if (_this.chart) { + _this.chart.destroy(); + _this.initChart(); + } + }); } + Object.defineProperty(ChartComponent.prototype, "data", { + get: /** + * @return {?} + */ + function () { + return this._data; + }, + set: /** + * @param {?} val + * @return {?} + */ + function (val) { + this._data = val; + this.reinit(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ChartComponent.prototype, "canvas", { + get: /** + * @return {?} + */ + function () { + return this.el.nativeElement.children[0].children[0]; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ChartComponent.prototype, "base64Image", { + get: /** + * @return {?} + */ + function () { + return this.chart.toBase64Image(); + }, + enumerable: true, + configurable: true + }); /** * @return {?} */ - LoaderBarComponent.prototype.ngOnDestroy = /** - * @return {?} - */ - function () { }; - /** - * @return {?} - */ - LoaderBarComponent.prototype.startLoading = /** + ChartComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { var _this = this; - this.isLoading = true; - /** @type {?} */ - var interval = setInterval((/** + chartJsLoaded$.subscribe((/** * @return {?} */ function () { - if (_this.progressLevel < 75) { - _this.progressLevel += Math.random() * 10; - } - else if (_this.progressLevel < 90) { - _this.progressLevel += 0.4; - } - else if (_this.progressLevel < 100) { - _this.progressLevel += 0.1; + try { + Chart; } - else { - clearInterval(interval); + catch (error) { + console.error("Chart is not found. Import the Chart from app.module like shown below:\n import('chart.js');\n "); + return; } - }), 300); - this.interval = interval; + _this.initChart(); + _this._initialized = true; + })); }; /** * @return {?} */ - LoaderBarComponent.prototype.stopLoading = /** + ChartComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { - var _this = this; - clearInterval(this.interval); - this.progressLevel = 100; - this.isLoading = false; - setTimeout((/** - * @return {?} - */ - function () { - _this.progressLevel = 0; - }), 800); + if (this.chart) { + this.chart.destroy(); + this._initialized = false; + this.chart = null; + } }; - LoaderBarComponent.decorators = [ + ChartComponent.decorators = [ { type: core.Component, args: [{ - selector: 'abp-loader-bar', - template: "\n
    \n
    \n
    \n ", - styles: [".abp-loader-bar{left:0;opacity:0;position:fixed;top:0;transition:opacity .4s linear .4s;z-index:99999}.abp-loader-bar.is-loading{opacity:1;transition:none}.abp-loader-bar .abp-progress{background:#77b6ff;box-shadow:0 0 10px rgba(119,182,255,.7);height:2px;left:0;position:fixed;top:0;transition:width .4s}"] + selector: 'abp-chart', + template: "\n \n\n" }] } ]; /** @nocollapse */ - LoaderBarComponent.ctorParameters = function () { return [ - { type: store.Actions }, - { type: router.Router } + ChartComponent.ctorParameters = function () { return [ + { type: core.ElementRef }, + { type: core.ChangeDetectorRef } ]; }; - LoaderBarComponent.propDecorators = { - containerClass: [{ type: core.Input }], - progressClass: [{ type: core.Input }], - isLoading: [{ type: core.Input }], - filter: [{ type: core.Input }] + ChartComponent.propDecorators = { + type: [{ type: core.Input }], + options: [{ type: core.Input }], + plugins: [{ type: core.Input }], + width: [{ type: core.Input }], + height: [{ type: core.Input }], + responsive: [{ type: core.Input }], + onDataSelect: [{ type: core.Output }], + initialized: [{ type: core.Output }], + data: [{ type: core.Input }] }; - return LoaderBarComponent; + return ChartComponent; }()); if (false) { /** @type {?} */ - LoaderBarComponent.prototype.containerClass; + ChartComponent.prototype.type; /** @type {?} */ - LoaderBarComponent.prototype.progressClass; + ChartComponent.prototype.options; /** @type {?} */ - LoaderBarComponent.prototype.isLoading; + ChartComponent.prototype.plugins; /** @type {?} */ - LoaderBarComponent.prototype.filter; + ChartComponent.prototype.width; /** @type {?} */ - LoaderBarComponent.prototype.progressLevel; + ChartComponent.prototype.height; /** @type {?} */ - LoaderBarComponent.prototype.interval; - /** - * @type {?} - * @private - */ - LoaderBarComponent.prototype.actions; + ChartComponent.prototype.responsive; + /** @type {?} */ + ChartComponent.prototype.onDataSelect; + /** @type {?} */ + ChartComponent.prototype.initialized; /** * @type {?} * @private */ - LoaderBarComponent.prototype.router; - } - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var ButtonComponent = /** @class */ (function () { - function ButtonComponent() { - this.buttonClass = 'btn btn-primary'; - this.type = 'button'; - this.loading = false; - this.disabled = false; - } - Object.defineProperty(ButtonComponent.prototype, "icon", { - get: /** - * @return {?} - */ - function () { - return "" + (this.loading ? 'fa fa-spin fa-spinner' : this.iconClass || 'd-none'); - }, - enumerable: true, - configurable: true - }); - ButtonComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'abp-button', - template: "\n \n " - }] } - ]; - ButtonComponent.propDecorators = { - buttonClass: [{ type: core.Input }], - type: [{ type: core.Input }], - iconClass: [{ type: core.Input }], - loading: [{ type: core.Input }], - disabled: [{ type: core.Input }] - }; - return ButtonComponent; - }()); - if (false) { + ChartComponent.prototype._initialized; /** @type {?} */ - ButtonComponent.prototype.buttonClass; + ChartComponent.prototype._data; /** @type {?} */ - ButtonComponent.prototype.type; + ChartComponent.prototype.chart; /** @type {?} */ - ButtonComponent.prototype.iconClass; + ChartComponent.prototype.onCanvasClick; /** @type {?} */ - ButtonComponent.prototype.loading; + ChartComponent.prototype.initChart; /** @type {?} */ - ButtonComponent.prototype.disabled; + ChartComponent.prototype.generateLegend; + /** @type {?} */ + ChartComponent.prototype.refresh; + /** @type {?} */ + ChartComponent.prototype.reinit; + /** @type {?} */ + ChartComponent.prototype.el; + /** + * @type {?} + * @private + */ + ChartComponent.prototype.cdRef; } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ - /** @type {?} */ - var ANIMATION_TIMEOUT = 200; - var ModalComponent = /** @class */ (function () { - function ModalComponent(renderer, confirmationService) { - this.renderer = renderer; - this.confirmationService = confirmationService; - this.centered = false; - this.modalClass = ''; - this.size = 'lg'; - this.visibleChange = new core.EventEmitter(); - this.init = new core.EventEmitter(); - this._visible = false; - this._busy = false; - this.showModal = false; - this.isOpenConfirmation = false; - this.closable = false; - this.destroy$ = new rxjs.Subject(); + var ConfirmationService = /** @class */ (function (_super) { + __extends(ConfirmationService, _super); + function ConfirmationService(messageService) { + var _this = _super.call(this, messageService) || this; + _this.messageService = messageService; + _this.key = 'abpConfirmation'; + _this.sticky = true; + _this.destroy$ = new rxjs.Subject(); + return _this; } - Object.defineProperty(ModalComponent.prototype, "visible", { - get: /** - * @return {?} - */ - function () { - return this._visible; - }, - set: /** - * @param {?} value - * @return {?} - */ - function (value) { - var _this = this; - if (typeof value !== 'boolean') - return; - if (!this.modalContent) { - if (value) { - setTimeout((/** - * @return {?} - */ - function () { - _this.showModal = value; - _this.visible = value; - }), 0); - } - return; - } - if (value) { - this.setVisible(value); - this.listen(); - } - else { - this.closable = false; - this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top'); - setTimeout((/** - * @return {?} - */ - function () { - _this.setVisible(value); - _this.ngOnDestroy(); - }), ANIMATION_TIMEOUT - 10); - } - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ModalComponent.prototype, "busy", { - get: /** - * @return {?} - */ - function () { - return this._busy; - }, - set: /** - * @param {?} value - * @return {?} - */ - function (value) { - if (this.abpSubmit && this.abpSubmit instanceof ButtonComponent) { - this.abpSubmit.loading = value; - } - this._busy = value; - }, - enumerable: true, - configurable: true - }); /** + * @param {?} message + * @param {?} title + * @param {?} severity + * @param {?=} options * @return {?} */ - ModalComponent.prototype.ngOnDestroy = /** + ConfirmationService.prototype.show = /** + * @param {?} message + * @param {?} title + * @param {?} severity + * @param {?=} options * @return {?} */ - function () { - this.destroy$.next(); + function (message, title, severity, options) { + this.listenToEscape(); + return _super.prototype.show.call(this, message, title, severity, options); }; /** - * @param {?} value + * @param {?=} status * @return {?} */ - ModalComponent.prototype.setVisible = /** - * @param {?} value + ConfirmationService.prototype.clear = /** + * @param {?=} status * @return {?} */ - function (value) { - var _this = this; - this._visible = value; - this.visibleChange.emit(value); - this.showModal = value; - value - ? rxjs.timer(ANIMATION_TIMEOUT + 100) - .pipe(operators.take(1)) - .subscribe((/** - * @param {?} _ - * @return {?} - */ - function (_) { return (_this.closable = true); })) - : (this.closable = false); + function (status) { + _super.prototype.clear.call(this, status); + this.destroy$.next(); }; /** * @return {?} */ - ModalComponent.prototype.listen = /** + ConfirmationService.prototype.listenToEscape = /** * @return {?} */ function () { @@ -773,508 +960,325 @@ * @param {?} key * @return {?} */ - function (key) { return key && key.code === 'Escape' && _this.closable; }))) + function (key) { return key && key.code === 'Escape'; }))) .subscribe((/** * @param {?} _ * @return {?} */ function (_) { - _this.close(); + _this.clear(); })); - setTimeout((/** - * @return {?} - */ - function () { - if (!_this.abpClose) - return; - rxjs.fromEvent(_this.abpClose.nativeElement, 'click') - .pipe(operators.takeUntil(_this.destroy$), operators.filter((/** - * @return {?} - */ - function () { return !!(_this.closable && _this.modalContent); }))) - .subscribe((/** - * @return {?} - */ - function () { return _this.close(); })); - }), 0); - this.init.emit(); }; + ConfirmationService.decorators = [ + { type: core.Injectable, args: [{ providedIn: 'root' },] } + ]; + /** @nocollapse */ + ConfirmationService.ctorParameters = function () { return [ + { type: messageservice.MessageService } + ]; }; + /** @nocollapse */ ConfirmationService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ConfirmationService_Factory() { return new ConfirmationService(core.ɵɵinject(messageservice.MessageService)); }, token: ConfirmationService, providedIn: "root" }); + return ConfirmationService; + }(AbstractToaster)); + if (false) { + /** @type {?} */ + ConfirmationService.prototype.key; + /** @type {?} */ + ConfirmationService.prototype.sticky; + /** @type {?} */ + ConfirmationService.prototype.destroy$; + /** + * @type {?} + * @protected + */ + ConfirmationService.prototype.messageService; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ConfirmationComponent = /** @class */ (function () { + function ConfirmationComponent(confirmationService) { + this.confirmationService = confirmationService; + this.confirm = "confirm" /* confirm */; + this.reject = "reject" /* reject */; + this.dismiss = "dismiss" /* dismiss */; + } /** + * @param {?} status * @return {?} */ - ModalComponent.prototype.close = /** + ConfirmationComponent.prototype.close = /** + * @param {?} status * @return {?} */ - function () { - var _this = this; - if (!this.closable || this.busy) - return; - /** @type {?} */ - var nodes = getFlatNodes(((/** @type {?} */ (this.modalContent.nativeElement.querySelector('#abp-modal-body')))).childNodes); - if (hasNgDirty(nodes)) { - if (this.isOpenConfirmation) - return; - this.isOpenConfirmation = true; - this.confirmationService - .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure') - .subscribe((/** - * @param {?} status - * @return {?} - */ - function (status) { - rxjs.timer(ANIMATION_TIMEOUT).subscribe((/** - * @return {?} - */ - function () { - _this.isOpenConfirmation = false; - })); - if (status === "confirm" /* confirm */) { - _this.visible = false; - } - })); - } - else { - this.visible = false; - } + function (status) { + this.confirmationService.clear(status); }; - ModalComponent.decorators = [ + ConfirmationComponent.decorators = [ { type: core.Component, args: [{ - selector: 'abp-modal', - template: "\n \n
    \n
    \n \n\n \n
    \n \n \n\n
    \n \n
    \n
    \n \n \n\n \n\n" + selector: 'abp-confirmation', + template: "\n \n \n \n
    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n " }] } ]; /** @nocollapse */ - ModalComponent.ctorParameters = function () { return [ - { type: core.Renderer2 }, + ConfirmationComponent.ctorParameters = function () { return [ { type: ConfirmationService } ]; }; - ModalComponent.propDecorators = { - visible: [{ type: core.Input }], - busy: [{ type: core.Input }], - centered: [{ type: core.Input }], - modalClass: [{ type: core.Input }], - size: [{ type: core.Input }], - height: [{ type: core.Input }], - minHeight: [{ type: core.Input }], - visibleChange: [{ type: core.Output }], - init: [{ type: core.Output }], - abpHeader: [{ type: core.ContentChild, args: ['abpHeader', { static: false },] }], - abpBody: [{ type: core.ContentChild, args: ['abpBody', { static: false },] }], - abpFooter: [{ type: core.ContentChild, args: ['abpFooter', { static: false },] }], - abpClose: [{ type: core.ContentChild, args: ['abpClose', { static: false, read: core.ElementRef },] }], - abpSubmit: [{ type: core.ContentChild, args: [ButtonComponent, { static: false, read: ButtonComponent },] }], - modalContent: [{ type: core.ViewChild, args: ['abpModalContent', { static: false },] }], - abpButtons: [{ type: core.ViewChildren, args: ['abp-button',] }] - }; - return ModalComponent; + return ConfirmationComponent; }()); if (false) { /** @type {?} */ - ModalComponent.prototype.centered; - /** @type {?} */ - ModalComponent.prototype.modalClass; - /** @type {?} */ - ModalComponent.prototype.size; - /** @type {?} */ - ModalComponent.prototype.height; - /** @type {?} */ - ModalComponent.prototype.minHeight; - /** @type {?} */ - ModalComponent.prototype.visibleChange; - /** @type {?} */ - ModalComponent.prototype.init; - /** @type {?} */ - ModalComponent.prototype.abpHeader; - /** @type {?} */ - ModalComponent.prototype.abpBody; - /** @type {?} */ - ModalComponent.prototype.abpFooter; - /** @type {?} */ - ModalComponent.prototype.abpClose; - /** @type {?} */ - ModalComponent.prototype.abpSubmit; - /** @type {?} */ - ModalComponent.prototype.modalContent; - /** @type {?} */ - ModalComponent.prototype.abpButtons; - /** @type {?} */ - ModalComponent.prototype._visible; - /** @type {?} */ - ModalComponent.prototype._busy; - /** @type {?} */ - ModalComponent.prototype.showModal; - /** @type {?} */ - ModalComponent.prototype.isOpenConfirmation; + ConfirmationComponent.prototype.confirm; /** @type {?} */ - ModalComponent.prototype.closable; + ConfirmationComponent.prototype.reject; /** @type {?} */ - ModalComponent.prototype.destroy$; - /** - * @type {?} - * @private - */ - ModalComponent.prototype.renderer; + ConfirmationComponent.prototype.dismiss; /** * @type {?} * @private */ - ModalComponent.prototype.confirmationService; - } - /** - * @param {?} nodes - * @return {?} - */ - function getFlatNodes(nodes) { - return Array.from(nodes).reduce((/** - * @param {?} acc - * @param {?} val - * @return {?} - */ - function (acc, val) { return __spread(acc, (val.childNodes && val.childNodes.length ? getFlatNodes(val.childNodes) : [val])); }), []); - } - /** - * @param {?} nodes - * @return {?} - */ - function hasNgDirty(nodes) { - return nodes.findIndex((/** - * @param {?} node - * @return {?} - */ - function (node) { return (node.className || '').indexOf('ng-dirty') > -1; })) > -1; + ConfirmationComponent.prototype.confirmationService; } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ - var ToastComponent = /** @class */ (function () { - function ToastComponent() { + var ErrorComponent = /** @class */ (function () { + function ErrorComponent() { + this.title = 'Oops!'; + this.details = 'Sorry, an error has occured.'; } - ToastComponent.decorators = [ + /** + * @return {?} + */ + ErrorComponent.prototype.destroy = /** + * @return {?} + */ + function () { + this.renderer.removeChild(this.host, this.elementRef.nativeElement); + }; + ErrorComponent.decorators = [ { type: core.Component, args: [{ - selector: 'abp-toast', - template: "\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n " + selector: 'abp-error', + template: "\n
    \n \n
    \n
    \n
    \n

    \n {{ title | abpLocalization }}\n

    \n
    \n {{ details | abpLocalization }}\n
    \n \n
    \n
    \n
    \n
    \n ", + styles: [".error{position:fixed;top:0;background-color:#fff;width:100vw;height:100vh;z-index:999999}.centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}"] }] } ]; - return ToastComponent; + return ErrorComponent; }()); + if (false) { + /** @type {?} */ + ErrorComponent.prototype.title; + /** @type {?} */ + ErrorComponent.prototype.details; + /** @type {?} */ + ErrorComponent.prototype.renderer; + /** @type {?} */ + ErrorComponent.prototype.elementRef; + /** @type {?} */ + ErrorComponent.prototype.host; + } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ - var styles = "\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.modal {\n background-color: rgba(0, 0, 0, .6);\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* \n \n \n ", + styles: [".abp-loader-bar{left:0;opacity:0;position:fixed;top:0;transition:opacity .4s linear .4s;z-index:99999}.abp-loader-bar.is-loading{opacity:1;transition:none}.abp-loader-bar .abp-progress{height:3px;left:0;position:fixed;top:0;transition:width .4s}"] + }] } ]; /** @nocollapse */ - ErrorHandler.ctorParameters = function () { return [ + LoaderBarComponent.ctorParameters = function () { return [ { type: store.Actions }, - { type: store.Store }, - { type: ConfirmationService }, - { type: core.ApplicationRef }, - { type: core.ComponentFactoryResolver }, - { type: core.RendererFactory2 }, - { type: core.Injector } + { type: router.Router }, + { type: core.ChangeDetectorRef } ]; }; - /** @nocollapse */ ErrorHandler.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ErrorHandler_Factory() { return new ErrorHandler(core.ɵɵinject(store.Actions), core.ɵɵinject(store.Store), core.ɵɵinject(ConfirmationService), core.ɵɵinject(core.ApplicationRef), core.ɵɵinject(core.ComponentFactoryResolver), core.ɵɵinject(core.RendererFactory2), core.ɵɵinject(core.INJECTOR)); }, token: ErrorHandler, providedIn: "root" }); - return ErrorHandler; + LoaderBarComponent.propDecorators = { + containerClass: [{ type: core.Input }], + color: [{ type: core.Input }], + isLoading: [{ type: core.Input }], + filter: [{ type: core.Input }] + }; + return LoaderBarComponent; }()); if (false) { + /** @type {?} */ + LoaderBarComponent.prototype.containerClass; + /** @type {?} */ + LoaderBarComponent.prototype.color; + /** @type {?} */ + LoaderBarComponent.prototype.isLoading; + /** @type {?} */ + LoaderBarComponent.prototype.filter; + /** @type {?} */ + LoaderBarComponent.prototype.progressLevel; + /** @type {?} */ + LoaderBarComponent.prototype.interval; + /** @type {?} */ + LoaderBarComponent.prototype.timer; /** * @type {?} * @private */ - ErrorHandler.prototype.actions; - /** - * @type {?} - * @private - */ - ErrorHandler.prototype.store; - /** - * @type {?} - * @private - */ - ErrorHandler.prototype.confirmationService; - /** - * @type {?} - * @private - */ - ErrorHandler.prototype.appRef; - /** - * @type {?} - * @private - */ - ErrorHandler.prototype.cfRes; + LoaderBarComponent.prototype.actions; /** * @type {?} * @private */ - ErrorHandler.prototype.rendererFactory; + LoaderBarComponent.prototype.router; /** * @type {?} * @private */ - ErrorHandler.prototype.injector; + LoaderBarComponent.prototype.cdRef; } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ - var ValidationErrorComponent = /** @class */ (function (_super) { - __extends(ValidationErrorComponent, _super); - function ValidationErrorComponent() { - return _super !== null && _super.apply(this, arguments) || this; - } - Object.defineProperty(ValidationErrorComponent.prototype, "abpErrors", { - get: /** - * @return {?} - */ - function () { - if (!this.errors || !this.errors.length) - return []; - return this.errors.map((/** - * @param {?} error - * @return {?} - */ - function (error) { - if (!error.message) - return error; - /** @type {?} */ - var index = error.message.indexOf('['); - if (index > -1) { - return __assign({}, error, { message: error.message.slice(0, index), interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(',') }); - } - return error; - })); - }, - enumerable: true, - configurable: true - }); - ValidationErrorComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'abp-validation-error', - template: "\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n ", - changeDetection: core.ChangeDetectionStrategy.OnPush, - encapsulation: core.ViewEncapsulation.None - }] } - ]; - return ValidationErrorComponent; - }(core$1.ValidationErrorComponent)); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var ToasterService = /** @class */ (function (_super) { - __extends(ToasterService, _super); - function ToasterService() { - return _super !== null && _super.apply(this, arguments) || this; - } - /** - * @param {?} messages - * @return {?} - */ - ToasterService.prototype.addAll = /** - * @param {?} messages - * @return {?} - */ - function (messages) { - var _this = this; - this.messageService.addAll(messages.map((/** - * @param {?} message - * @return {?} - */ - function (message) { return (__assign({ key: _this.key }, message)); }))); - }; - ToasterService.decorators = [ - { type: core.Injectable, args: [{ providedIn: 'root' },] } - ]; - /** @nocollapse */ ToasterService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ToasterService_Factory() { return new ToasterService(core.ɵɵinject(messageservice.MessageService)); }, token: ToasterService, providedIn: "root" }); - return ToasterService; - }(AbstractToaster)); - - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var minLength = forms.Validators.minLength, required = forms.Validators.required; - var ChangePasswordComponent = /** @class */ (function () { - function ChangePasswordComponent(fb, store, toasterService) { - this.fb = fb; - this.store = store; - this.toasterService = toasterService; + /** @type {?} */ + var ANIMATION_TIMEOUT = 200; + var ModalComponent = /** @class */ (function () { + function ModalComponent(renderer, confirmationService) { + this.renderer = renderer; + this.confirmationService = confirmationService; + this.centered = false; + this.modalClass = ''; + this.size = 'lg'; this.visibleChange = new core.EventEmitter(); - this.modalBusy = false; + this.init = new core.EventEmitter(); + this.show = new core.EventEmitter(); + this.hide = new core.EventEmitter(); + this._visible = false; + this._busy = false; + this.showModal = false; + this.isOpenConfirmation = false; + this.closable = false; + this.destroy$ = new rxjs.Subject(); } - Object.defineProperty(ChangePasswordComponent.prototype, "visible", { + Object.defineProperty(ModalComponent.prototype, "visible", { get: /** * @return {?} */ @@ -1286,8 +1290,56 @@ * @return {?} */ function (value) { - this._visible = value; - this.visibleChange.emit(value); + var _this = this; + if (typeof value !== 'boolean') + return; + if (!this.modalContent) { + if (value) { + setTimeout((/** + * @return {?} + */ + function () { + _this.showModal = value; + _this.visible = value; + }), 0); + } + return; + } + if (value) { + this.setVisible(value); + this.listen(); + } + else { + this.closable = false; + this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top'); + setTimeout((/** + * @return {?} + */ + function () { + _this.setVisible(value); + _this.ngOnDestroy(); + }), ANIMATION_TIMEOUT - 10); + } + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ModalComponent.prototype, "busy", { + get: /** + * @return {?} + */ + function () { + return this._busy; + }, + set: /** + * @param {?} value + * @return {?} + */ + function (value) { + if (this.abpSubmit && this.abpSubmit instanceof ButtonComponent) { + this.abpSubmit.loading = value; + } + this._busy = value; }, enumerable: true, configurable: true @@ -1295,138 +1347,230 @@ /** * @return {?} */ - ChangePasswordComponent.prototype.ngOnInit = /** + ModalComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { - this.form = this.fb.group({ - password: ['', required], - newPassword: ['', required], - repeatNewPassword: ['', required], - }, { - validators: [core$1.comparePasswords(['newPassword', 'repeatNewPassword'])], - }); + this.destroy$.next(); }; /** + * @param {?} value * @return {?} */ - ChangePasswordComponent.prototype.onSubmit = /** + ModalComponent.prototype.setVisible = /** + * @param {?} value * @return {?} */ - function () { + function (value) { var _this = this; - if (this.form.invalid) - return; - this.modalBusy = true; - this.store - .dispatch(new ng_core.ChangePassword({ - currentPassword: this.form.get('password').value, - newPassword: this.form.get('newPassword').value, - })) - .pipe(operators.finalize((/** - * @return {?} - */ - function () { - _this.modalBusy = false; - }))) - .subscribe({ - next: (/** - * @return {?} - */ - function () { - _this.visible = false; - _this.form.reset(); - }), - error: (/** - * @param {?} err + this._visible = value; + this.visibleChange.emit(value); + this.showModal = value; + if (value) { + rxjs.timer(ANIMATION_TIMEOUT + 100) + .pipe(operators.take(1)) + .subscribe((/** + * @param {?} _ * @return {?} */ - function (err) { - _this.toasterService.error(snq((/** - * @return {?} - */ - function () { return err.error.error.message; }), 'AbpAccount::DefaultErrorMessage'), 'Error', { - life: 7000, - }); - }), - }); + function (_) { return (_this.closable = true); })); + this.renderer.addClass(document.body, 'modal-open'); + this.show.emit(); + } + else { + this.closable = false; + this.renderer.removeClass(document.body, 'modal-open'); + this.hide.emit(); + } }; /** * @return {?} */ - ChangePasswordComponent.prototype.openModal = /** + ModalComponent.prototype.listen = /** * @return {?} */ function () { - this.visible = true; + var _this = this; + rxjs.fromEvent(document, 'keyup') + .pipe(operators.takeUntil(this.destroy$), operators.debounceTime(150), operators.filter((/** + * @param {?} key + * @return {?} + */ + function (key) { return key && key.code === 'Escape' && _this.closable; }))) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + function (_) { + _this.close(); + })); + setTimeout((/** + * @return {?} + */ + function () { + if (!_this.abpClose) + return; + rxjs.fromEvent(_this.abpClose.nativeElement, 'click') + .pipe(operators.takeUntil(_this.destroy$), operators.filter((/** + * @return {?} + */ + function () { return !!(_this.closable && _this.modalContent); }))) + .subscribe((/** + * @return {?} + */ + function () { return _this.close(); })); + }), 0); + this.init.emit(); }; /** - * @param {?} __0 * @return {?} */ - ChangePasswordComponent.prototype.ngOnChanges = /** - * @param {?} __0 + ModalComponent.prototype.close = /** * @return {?} */ - function (_a) { - var visible = _a.visible; - if (!visible) + function () { + var _this = this; + if (!this.closable || this.busy) return; - if (visible.currentValue) { - this.openModal(); + /** @type {?} */ + var nodes = getFlatNodes(((/** @type {?} */ (this.modalContent.nativeElement.querySelector('#abp-modal-body')))).childNodes); + if (hasNgDirty(nodes)) { + if (this.isOpenConfirmation) + return; + this.isOpenConfirmation = true; + this.confirmationService + .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure') + .subscribe((/** + * @param {?} status + * @return {?} + */ + function (status) { + rxjs.timer(ANIMATION_TIMEOUT).subscribe((/** + * @return {?} + */ + function () { + _this.isOpenConfirmation = false; + })); + if (status === "confirm" /* confirm */) { + _this.visible = false; + } + })); } - else if (visible.currentValue === false && this.visible) { + else { this.visible = false; } }; - ChangePasswordComponent.decorators = [ + ModalComponent.decorators = [ { type: core.Component, args: [{ - selector: 'abp-change-password', - template: "\n \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n" + selector: 'abp-modal', + template: "\n \n
    \n
    \n \n\n \n
    \n \n \n
    \n
    \n \n
    \n \n \n\n \n\n" }] } ]; /** @nocollapse */ - ChangePasswordComponent.ctorParameters = function () { return [ - { type: forms.FormBuilder }, - { type: store.Store }, - { type: ToasterService } + ModalComponent.ctorParameters = function () { return [ + { type: core.Renderer2 }, + { type: ConfirmationService } ]; }; - ChangePasswordComponent.propDecorators = { + ModalComponent.propDecorators = { visible: [{ type: core.Input }], + busy: [{ type: core.Input }], + centered: [{ type: core.Input }], + modalClass: [{ type: core.Input }], + size: [{ type: core.Input }], + height: [{ type: core.Input }], + minHeight: [{ type: core.Input }], visibleChange: [{ type: core.Output }], - modalContent: [{ type: core.ViewChild, args: ['modalContent', { static: false },] }] + init: [{ type: core.Output }], + abpHeader: [{ type: core.ContentChild, args: ['abpHeader', { static: false },] }], + abpBody: [{ type: core.ContentChild, args: ['abpBody', { static: false },] }], + abpFooter: [{ type: core.ContentChild, args: ['abpFooter', { static: false },] }], + abpClose: [{ type: core.ContentChild, args: ['abpClose', { static: false, read: core.ElementRef },] }], + abpSubmit: [{ type: core.ContentChild, args: [ButtonComponent, { static: false, read: ButtonComponent },] }], + modalContent: [{ type: core.ViewChild, args: ['abpModalContent', { static: false },] }], + abpButtons: [{ type: core.ViewChildren, args: ['abp-button',] }], + show: [{ type: core.Output }], + hide: [{ type: core.Output }] }; - return ChangePasswordComponent; + return ModalComponent; }()); if (false) { - /** - * @type {?} - * @protected - */ - ChangePasswordComponent.prototype._visible; /** @type {?} */ - ChangePasswordComponent.prototype.visibleChange; + ModalComponent.prototype.centered; /** @type {?} */ - ChangePasswordComponent.prototype.modalContent; + ModalComponent.prototype.modalClass; + /** @type {?} */ + ModalComponent.prototype.size; + /** @type {?} */ + ModalComponent.prototype.height; + /** @type {?} */ + ModalComponent.prototype.minHeight; + /** @type {?} */ + ModalComponent.prototype.visibleChange; + /** @type {?} */ + ModalComponent.prototype.init; + /** @type {?} */ + ModalComponent.prototype.abpHeader; + /** @type {?} */ + ModalComponent.prototype.abpBody; + /** @type {?} */ + ModalComponent.prototype.abpFooter; + /** @type {?} */ + ModalComponent.prototype.abpClose; + /** @type {?} */ + ModalComponent.prototype.abpSubmit; + /** @type {?} */ + ModalComponent.prototype.modalContent; + /** @type {?} */ + ModalComponent.prototype.abpButtons; + /** @type {?} */ + ModalComponent.prototype.show; + /** @type {?} */ + ModalComponent.prototype.hide; + /** @type {?} */ + ModalComponent.prototype._visible; + /** @type {?} */ + ModalComponent.prototype._busy; + /** @type {?} */ + ModalComponent.prototype.showModal; + /** @type {?} */ + ModalComponent.prototype.isOpenConfirmation; /** @type {?} */ - ChangePasswordComponent.prototype.form; + ModalComponent.prototype.closable; /** @type {?} */ - ChangePasswordComponent.prototype.modalBusy; + ModalComponent.prototype.destroy$; /** * @type {?} * @private */ - ChangePasswordComponent.prototype.fb; + ModalComponent.prototype.renderer; /** * @type {?} * @private */ - ChangePasswordComponent.prototype.store; - /** - * @type {?} - * @private + ModalComponent.prototype.confirmationService; + } + /** + * @param {?} nodes + * @return {?} + */ + function getFlatNodes(nodes) { + return Array.from(nodes).reduce((/** + * @param {?} acc + * @param {?} val + * @return {?} */ - ChangePasswordComponent.prototype.toasterService; + function (acc, val) { return __spread(acc, (val.childNodes && val.childNodes.length ? getFlatNodes(val.childNodes) : [val])); }), []); + } + /** + * @param {?} nodes + * @return {?} + */ + function hasNgDirty(nodes) { + return nodes.findIndex((/** + * @param {?} node + * @return {?} + */ + function (node) { return (node.className || '').indexOf('ng-dirty') > -1; })) > -1; } /** @@ -1519,147 +1663,351 @@ * @param {?} __0 * @return {?} */ - ProfileComponent.prototype.ngOnChanges = /** - * @param {?} __0 + ProfileComponent.prototype.ngOnChanges = /** + * @param {?} __0 + * @return {?} + */ + function (_a) { + var visible = _a.visible; + if (!visible) + return; + if (visible.currentValue) { + this.openModal(); + } + else if (visible.currentValue === false && this.visible) { + this.visible = false; + } + }; + ProfileComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-profile', + template: "\n \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n" + }] } + ]; + /** @nocollapse */ + ProfileComponent.ctorParameters = function () { return [ + { type: forms.FormBuilder }, + { type: store.Store } + ]; }; + ProfileComponent.propDecorators = { + visible: [{ type: core.Input }], + visibleChange: [{ type: core.Output }] + }; + __decorate([ + store.Select(ng_core.ProfileState.getProfile), + __metadata("design:type", rxjs.Observable) + ], ProfileComponent.prototype, "profile$", void 0); + return ProfileComponent; + }()); + if (false) { + /** + * @type {?} + * @protected + */ + ProfileComponent.prototype._visible; + /** @type {?} */ + ProfileComponent.prototype.visibleChange; + /** @type {?} */ + ProfileComponent.prototype.profile$; + /** @type {?} */ + ProfileComponent.prototype.form; + /** @type {?} */ + ProfileComponent.prototype.modalBusy; + /** + * @type {?} + * @private + */ + ProfileComponent.prototype.fb; + /** + * @type {?} + * @private + */ + ProfileComponent.prototype.store; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ToastComponent = /** @class */ (function () { + function ToastComponent() { + } + ToastComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'abp-toast', + template: "\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n " + }] } + ]; + return ToastComponent; + }()); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var styles = "\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.modal {\n background-color: rgba(0, 0, 0, .6);\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-toast .ui-toast-message {\n box-sizing: border-box !important;\n border: 2px solid transparent !important;\n border-radius: 4px !important;\n background-color: #f4f4f7 !important;\n color: #1b1d29 !important;\n}\n\n.abp-toast .ui-toast-message-content {\n padding: 10px !important;\n}\n\n.abp-toast .ui-toast-message-content .ui-toast-icon {\n top: 0 !important;\n left: 0 !important;\n padding: 10px !important;\n}\n\n.abp-toast .ui-toast-summary {\n margin: 0 !important;\n font-weight: 700 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-error {\n border-color: #ba1659 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-error .ui-toast-message-content .ui-toast-icon {\n color: #ba1659 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-warning {\n border-color: #ed5d98 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-warning .ui-toast-message-content .ui-toast-icon {\n color: #ed5d98 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-success {\n border-color: #1c9174 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-success .ui-toast-message-content .ui-toast-icon {\n color: #1c9174 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-info {\n border-color: #fccb31 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-info .ui-toast-message-content .ui-toast-icon {\n color: #fccb31 !important;\n}\n\n.abp-confirm .ui-toast-message {\n box-sizing: border-box !important;\n padding: 0px !important;\n border:0 none !important;\n border-radius: 4px !important;\n background-color: #fff !important;\n color: rgba(0, 0, 0, .65) !important;\n font-family: \"Poppins\", sans-serif;\n text-align: center !important;\n}\n\n.abp-confirm .ui-toast-message-content {\n padding: 0px !important;\n}\n\n.abp-confirm .abp-confirm-icon {\n margin: 32px 50px 5px !important;\n color: #f8bb86 !important;\n font-size: 52px !important;\n}\n\n.abp-confirm .ui-toast-close-icon {\n display: none !important;\n}\n\n.abp-confirm .abp-confirm-summary {\n display: block !important;\n margin-bottom: 13px !important;\n padding: 13px 16px 0px !important;\n font-weight: 600 !important;\n font-size: 18px !important;\n}\n\n.abp-confirm .abp-confirm-body {\n display: inline-block !important;\n padding: 0px 10px !important;\n}\n\n.abp-confirm .abp-confirm-footer {\n display: block !important;\n margin-top: 30px !important;\n padding: 16px !important;\n background-color: #f4f4f7 !important;\n text-align: right !important;\n}\n\n.abp-confirm .abp-confirm-footer .btn {\n margin-left: 10px !important;\n}\n\n.ui-widget-overlay {\n z-index: 1000;\n}\n\n/* \n \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n\n" - }] } + ErrorHandler.decorators = [ + { type: core.Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ - ProfileComponent.ctorParameters = function () { return [ - { type: forms.FormBuilder }, - { type: store.Store } + ErrorHandler.ctorParameters = function () { return [ + { type: store.Actions }, + { type: store.Store }, + { type: ConfirmationService }, + { type: core.ApplicationRef }, + { type: core.ComponentFactoryResolver }, + { type: core.RendererFactory2 }, + { type: core.Injector } ]; }; - ProfileComponent.propDecorators = { - visible: [{ type: core.Input }], - visibleChange: [{ type: core.Output }] - }; - __decorate([ - store.Select(ng_core.ProfileState.getProfile), - __metadata("design:type", rxjs.Observable) - ], ProfileComponent.prototype, "profile$", void 0); - return ProfileComponent; + /** @nocollapse */ ErrorHandler.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ErrorHandler_Factory() { return new ErrorHandler(core.ɵɵinject(store.Actions), core.ɵɵinject(store.Store), core.ɵɵinject(ConfirmationService), core.ɵɵinject(core.ApplicationRef), core.ɵɵinject(core.ComponentFactoryResolver), core.ɵɵinject(core.RendererFactory2), core.ɵɵinject(core.INJECTOR)); }, token: ErrorHandler, providedIn: "root" }); + return ErrorHandler; }()); if (false) { /** * @type {?} - * @protected + * @private */ - ProfileComponent.prototype._visible; - /** @type {?} */ - ProfileComponent.prototype.visibleChange; - /** @type {?} */ - ProfileComponent.prototype.profile$; - /** @type {?} */ - ProfileComponent.prototype.form; - /** @type {?} */ - ProfileComponent.prototype.modalBusy; + ErrorHandler.prototype.actions; /** * @type {?} * @private */ - ProfileComponent.prototype.fb; + ErrorHandler.prototype.store; /** * @type {?} * @private */ - ProfileComponent.prototype.store; + ErrorHandler.prototype.confirmationService; + /** + * @type {?} + * @private + */ + ErrorHandler.prototype.appRef; + /** + * @type {?} + * @private + */ + ErrorHandler.prototype.cfRes; + /** + * @type {?} + * @private + */ + ErrorHandler.prototype.rendererFactory; + /** + * @type {?} + * @private + */ + ErrorHandler.prototype.injector; } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ - var BreadcrumbComponent = /** @class */ (function () { - function BreadcrumbComponent(router, store) { - this.router = router; - this.store = store; - this.segments = []; - this.show = !!this.store.selectSnapshot((/** - * @param {?} state - * @return {?} - */ - function (state) { return state.LeptonLayoutState; })); + var TableEmptyMessageComponent = /** @class */ (function () { + function TableEmptyMessageComponent() { + this.colspan = 2; + this.localizationResource = 'AbpAccount'; + this.localizationProp = 'NoDataAvailableInDatatable'; } - /** - * @return {?} - */ - BreadcrumbComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - /** @type {?} */ - var splittedUrl = this.router.url.split('/').filter((/** - * @param {?} chunk + Object.defineProperty(TableEmptyMessageComponent.prototype, "emptyMessage", { + get: /** * @return {?} */ - function (chunk) { return chunk; })); - /** @type {?} */ - var currentUrl = this.store.selectSnapshot(ng_core.ConfigState.getRoute(splittedUrl[0])); - this.segments.push(currentUrl.name); - if (splittedUrl.length > 1) { - var _a = __read(splittedUrl), arr = _a.slice(1); - /** @type {?} */ - var childRoute = currentUrl; - var _loop_1 = function (i) { - /** @type {?} */ - var element = arr[i]; - childRoute = childRoute.children.find((/** - * @param {?} child - * @return {?} - */ - function (child) { return child.path === element; })); - this_1.segments.push(childRoute.name); - }; - var this_1 = this; - for (var i = 0; i < arr.length; i++) { - _loop_1(i); - } - } - }; - BreadcrumbComponent.decorators = [ + function () { + return this.message || this.localizationResource + "::" + this.localizationProp; + }, + enumerable: true, + configurable: true + }); + TableEmptyMessageComponent.decorators = [ { type: core.Component, args: [{ - selector: 'abp-breadcrumb', - template: "\n
      \n
    1. \n \n
    2. \n \n {{ segment | abpLocalization }}\n \n
    \n " + selector: '[abp-table-empty-message]', + template: "\n \n {{ emptyMessage | abpLocalization }}\n \n " }] } ]; - /** @nocollapse */ - BreadcrumbComponent.ctorParameters = function () { return [ - { type: router.Router }, - { type: store.Store } - ]; }; - return BreadcrumbComponent; + TableEmptyMessageComponent.propDecorators = { + colspan: [{ type: core.Input }], + message: [{ type: core.Input }], + localizationResource: [{ type: core.Input }], + localizationProp: [{ type: core.Input }] + }; + return TableEmptyMessageComponent; }()); if (false) { /** @type {?} */ - BreadcrumbComponent.prototype.show; + TableEmptyMessageComponent.prototype.colspan; /** @type {?} */ - BreadcrumbComponent.prototype.segments; - /** - * @type {?} - * @private - */ - BreadcrumbComponent.prototype.router; - /** - * @type {?} - * @private - */ - BreadcrumbComponent.prototype.store; + TableEmptyMessageComponent.prototype.message; + /** @type {?} */ + TableEmptyMessageComponent.prototype.localizationResource; + /** @type {?} */ + TableEmptyMessageComponent.prototype.localizationProp; } /** @@ -1676,6 +2024,10 @@ * @return {?} */ function () { + import('chart.js').then((/** + * @return {?} + */ + function () { return chartJsLoaded$.next(true); })); /** @type {?} */ var lazyLoadService = injector.get(ng_core.LazyLoadService); return rxjs.forkJoin(lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin') /* lazyLoadService.load(null, 'script', scripts) */).pipe(operators.take(1)); @@ -1707,51 +2059,55 @@ }; ThemeSharedModule.decorators = [ { type: core.NgModule, args: [{ - imports: [ - ng_core.CoreModule, - toast.ToastModule, - core$1.NgxValidateCoreModule.forRoot({ - targetSelector: '.form-group', - blueprints: { - email: "AbpAccount::ThisFieldIsNotAValidEmailAddress.", - max: "AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]", - maxlength: "AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]", - min: "AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]", - minlength: "AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]", - required: "AbpAccount::ThisFieldIsRequired.", - passwordMismatch: "AbpIdentity::Identity.PasswordConfirmationFailed", - }, - errorTemplate: ValidationErrorComponent, - }), - ], + imports: [ng_core.CoreModule, toast.ToastModule], declarations: [ + BreadcrumbComponent, ButtonComponent, + ChangePasswordComponent, + ChartComponent, ConfirmationComponent, - ToastComponent, - ModalComponent, ErrorComponent, LoaderBarComponent, - ValidationErrorComponent, - ChangePasswordComponent, + ModalComponent, ProfileComponent, - BreadcrumbComponent, + TableEmptyMessageComponent, + ToastComponent, ], exports: [ + BreadcrumbComponent, ButtonComponent, + ChangePasswordComponent, + ChartComponent, ConfirmationComponent, - ToastComponent, - ModalComponent, LoaderBarComponent, - ChangePasswordComponent, + ModalComponent, ProfileComponent, - BreadcrumbComponent, + TableEmptyMessageComponent, + ToastComponent, ], - entryComponents: [ErrorComponent, ValidationErrorComponent], + entryComponents: [ErrorComponent], },] } ]; return ThemeSharedModule; }()); + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var collapse = animations.trigger('collapse', [ + animations.state('open', animations.style({ + height: '*', + overflow: 'hidden', + })), + animations.state('close', animations.style({ + height: '0px', + overflow: 'hidden', + })), + animations.transition("open <=> close", animations.animate('{{duration}}ms'), { params: { duration: '350' } }), + ]); + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -1762,6 +2118,18 @@ animations.transition(':enter', [animations.style({ opacity: 0 }), animations.animate(250)]), animations.transition(':leave', animations.animate(250, animations.style({ opacity: 0 }))), ]); + /** @type {?} */ + var fadeWithStates = animations.trigger('fadeInOut', [ + animations.state('out', animations.style({ opacity: 0 })), + animations.state('in', animations.style({ opacity: 1 })), + animations.transition('in <=> out', [animations.animate(250)]), + ]); + /** @type {?} */ + var fadeIn = animations.trigger('fadeIn', [ + animations.state('*', animations.style({ opacity: 1 })), + animations.transition('* => *', [animations.style({ opacity: 0 }), animations.animate(250)]), + animations.transition(':enter', [animations.style({ opacity: 0 }), animations.animate(250)]), + ]); /** * @fileoverview added by tsickle @@ -1807,6 +2175,58 @@ } })(Confirmation || (Confirmation = {})); + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** + * @record + */ + function SettingTab() { } + if (false) { + /** @type {?} */ + SettingTab.prototype.name; + /** @type {?} */ + SettingTab.prototype.order; + /** @type {?|undefined} */ + SettingTab.prototype.requiredPolicy; + /** @type {?|undefined} */ + SettingTab.prototype.url; + } + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var Statistics; + (function (Statistics) { + /** + * @record + */ + function Response() { } + Statistics.Response = Response; + if (false) { + /** @type {?} */ + Response.prototype.data; + } + /** + * @record + */ + function Data() { } + Statistics.Data = Data; + /** + * @record + */ + function Filter() { } + Statistics.Filter = Filter; + if (false) { + /** @type {?} */ + Filter.prototype.startDate; + /** @type {?} */ + Filter.prototype.endDate; + } + })(Statistics || (Statistics = {})); + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -1836,53 +2256,42 @@ } })(exports.Toaster || (exports.Toaster = {})); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** - * @record - */ - function SettingTab() { } - if (false) { - /** @type {?} */ - SettingTab.prototype.name; - /** @type {?} */ - SettingTab.prototype.order; - /** @type {?} */ - SettingTab.prototype.component; - /** @type {?|undefined} */ - SettingTab.prototype.requiredPolicy; - } - exports.BreadcrumbComponent = BreadcrumbComponent; exports.ButtonComponent = ButtonComponent; exports.ChangePasswordComponent = ChangePasswordComponent; + exports.ChartComponent = ChartComponent; exports.ConfirmationComponent = ConfirmationComponent; exports.ConfirmationService = ConfirmationService; exports.LoaderBarComponent = LoaderBarComponent; exports.ModalComponent = ModalComponent; exports.ProfileComponent = ProfileComponent; + exports.TableEmptyMessageComponent = TableEmptyMessageComponent; exports.ThemeSharedModule = ThemeSharedModule; exports.ToastComponent = ToastComponent; exports.ToasterService = ToasterService; exports.appendScript = appendScript; + exports.chartJsLoaded$ = chartJsLoaded$; + exports.collapse = collapse; exports.fade = fade; + exports.fadeIn = fadeIn; + exports.fadeWithStates = fadeWithStates; + exports.getRandomBackgroundColor = getRandomBackgroundColor; exports.slideFromBottom = slideFromBottom; - exports.ɵa = ValidationErrorComponent; + exports.ɵa = BreadcrumbComponent; exports.ɵb = ButtonComponent; - exports.ɵc = ConfirmationComponent; - exports.ɵd = ConfirmationService; + exports.ɵc = ChangePasswordComponent; + exports.ɵd = ToasterService; exports.ɵe = AbstractToaster; - exports.ɵf = ToastComponent; - exports.ɵg = ModalComponent; - exports.ɵh = ErrorComponent; - exports.ɵi = LoaderBarComponent; - exports.ɵj = ChangePasswordComponent; - exports.ɵk = ToasterService; + exports.ɵf = ChartComponent; + exports.ɵg = ConfirmationComponent; + exports.ɵh = ConfirmationService; + exports.ɵi = ErrorComponent; + exports.ɵj = LoaderBarComponent; + exports.ɵk = ModalComponent; exports.ɵl = ProfileComponent; - exports.ɵm = BreadcrumbComponent; - exports.ɵn = ErrorHandler; + exports.ɵm = TableEmptyMessageComponent; + exports.ɵn = ToastComponent; + exports.ɵo = ErrorHandler; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/npm/ng-packs/dist/theme-shared/bundles/abp-ng.theme.shared.umd.js.map b/npm/ng-packs/dist/theme-shared/bundles/abp-ng.theme.shared.umd.js.map index e77b970b56..37a2186205 100644 --- a/npm/ng-packs/dist/theme-shared/bundles/abp-ng.theme.shared.umd.js.map +++ b/npm/ng-packs/dist/theme-shared/bundles/abp-ng.theme.shared.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-ng.theme.shared.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.theme.shared/lib/abstracts/toaster.ts","ng://@abp/ng.theme.shared/lib/services/confirmation.service.ts","ng://@abp/ng.theme.shared/lib/components/confirmation/confirmation.component.ts","ng://@abp/ng.theme.shared/lib/components/errors/error.component.ts","ng://@abp/ng.theme.shared/lib/components/loader-bar/loader-bar.component.ts","ng://@abp/ng.theme.shared/lib/components/button/button.component.ts","ng://@abp/ng.theme.shared/lib/components/modal/modal.component.ts","ng://@abp/ng.theme.shared/lib/components/toast/toast.component.ts","ng://@abp/ng.theme.shared/lib/contants/styles.ts","ng://@abp/ng.theme.shared/lib/handlers/error.handler.ts","ng://@abp/ng.theme.shared/lib/components/errors/validation-error.component.ts","ng://@abp/ng.theme.shared/lib/services/toaster.service.ts","ng://@abp/ng.theme.shared/lib/components/change-password/change-password.component.ts","ng://@abp/ng.theme.shared/lib/components/profile/profile.component.ts","ng://@abp/ng.theme.shared/lib/components/breadcrumb/breadcrumb.component.ts","ng://@abp/ng.theme.shared/lib/theme-shared.module.ts","ng://@abp/ng.theme.shared/lib/animations/fade.animations.ts","ng://@abp/ng.theme.shared/lib/animations/slide.animations.ts","ng://@abp/ng.theme.shared/lib/models/confirmation.ts","ng://@abp/ng.theme.shared/lib/models/toaster.ts","ng://@abp/ng.theme.shared/lib/models/setting-management.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { MessageService } from 'primeng/components/common/messageservice';\nimport { Observable, Subject } from 'rxjs';\nimport { Toaster } from '../models/toaster';\n\nexport class AbstractToaster {\n status$: Subject;\n\n key: string = 'abpToast';\n\n sticky: boolean = false;\n\n constructor(protected messageService: MessageService) {}\n info(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'info', options);\n }\n\n success(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'success', options);\n }\n\n warn(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'warn', options);\n }\n\n error(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'error', options);\n }\n\n protected show(message: string, title: string, severity: Toaster.Severity, options?: T): Observable {\n this.messageService.clear(this.key);\n\n this.messageService.add({\n severity,\n detail: message || '',\n summary: title || '',\n ...options,\n key: this.key,\n ...(typeof (options || ({} as any)).sticky === 'undefined' && { sticky: this.sticky }),\n });\n this.status$ = new Subject();\n return this.status$;\n }\n\n clear(status?: Toaster.Status) {\n this.messageService.clear(this.key);\n this.status$.next(status || Toaster.Status.dismiss);\n this.status$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToaster } from '../abstracts/toaster';\nimport { Confirmation } from '../models/confirmation';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmationService extends AbstractToaster {\n key: string = 'abpConfirmation';\n\n sticky: boolean = true;\n}\n","import { Component } from '@angular/core';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { Toaster } from '../../models/toaster';\n\n@Component({\n selector: 'abp-confirmation',\n template: `\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n `,\n})\nexport class ConfirmationComponent {\n confirm = Toaster.Status.confirm;\n reject = Toaster.Status.reject;\n dismiss = Toaster.Status.dismiss;\n\n constructor(private confirmationService: ConfirmationService) {}\n\n close(status: Toaster.Status) {\n this.confirmationService.clear(status);\n }\n}\n","import { Component, Renderer2, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'abp-error',\n template: `\n
    \n \n
    \n
    \n
    \n

    \n {{ title | abpLocalization }}\n

    \n
    \n {{ details | abpLocalization }}\n
    \n \n
    \n
    \n
    \n
    \n `,\n styleUrls: ['error.component.scss'],\n})\nexport class ErrorComponent {\n title = 'Oops!';\n\n details = 'Sorry, an error has occured.';\n\n renderer: Renderer2;\n\n elementRef: ElementRef;\n\n host: any;\n\n destroy() {\n this.renderer.removeChild(this.host, this.elementRef.nativeElement);\n }\n}\n","import { StartLoader, StopLoader } from '@abp/ng.core';\nimport { Component, Input, OnDestroy } from '@angular/core';\nimport { NavigationEnd, NavigationStart, Router, NavigationError } from '@angular/router';\nimport { takeUntilDestroy } from '@ngx-validate/core';\nimport { Actions, ofActionSuccessful } from '@ngxs/store';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-loader-bar',\n template: `\n
    \n
    \n
    \n `,\n styleUrls: ['./loader-bar.component.scss'],\n})\nexport class LoaderBarComponent implements OnDestroy {\n @Input()\n containerClass: string = 'abp-loader-bar';\n\n @Input()\n progressClass: string = 'abp-progress';\n\n @Input()\n isLoading: boolean = false;\n\n @Input()\n filter = (action: StartLoader | StopLoader) => action.payload.url.indexOf('openid-configuration') < 0;\n\n progressLevel: number = 0;\n\n interval: any;\n\n constructor(private actions: Actions, private router: Router) {\n actions\n .pipe(\n ofActionSuccessful(StartLoader, StopLoader),\n filter(this.filter),\n takeUntilDestroy(this),\n )\n .subscribe(action => {\n if (action instanceof StartLoader) this.startLoading();\n else this.stopLoading();\n });\n\n router.events\n .pipe(\n filter(\n event =>\n event instanceof NavigationStart || event instanceof NavigationEnd || event instanceof NavigationError,\n ),\n takeUntilDestroy(this),\n )\n .subscribe(event => {\n if (event instanceof NavigationStart) this.startLoading();\n else this.stopLoading();\n });\n }\n\n ngOnDestroy() {}\n\n startLoading() {\n this.isLoading = true;\n const interval = setInterval(() => {\n if (this.progressLevel < 75) {\n this.progressLevel += Math.random() * 10;\n } else if (this.progressLevel < 90) {\n this.progressLevel += 0.4;\n } else if (this.progressLevel < 100) {\n this.progressLevel += 0.1;\n } else {\n clearInterval(interval);\n }\n }, 300);\n\n this.interval = interval;\n }\n\n stopLoading() {\n clearInterval(this.interval);\n this.progressLevel = 100;\n this.isLoading = false;\n\n setTimeout(() => {\n this.progressLevel = 0;\n }, 800);\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'abp-button',\n template: `\n \n `,\n})\nexport class ButtonComponent {\n @Input()\n buttonClass: string = 'btn btn-primary';\n\n @Input()\n type: string = 'button';\n\n @Input()\n iconClass: string;\n\n @Input()\n loading: boolean = false;\n\n @Input()\n disabled: boolean = false;\n\n get icon(): string {\n return `${this.loading ? 'fa fa-spin fa-spinner' : this.iconClass || 'd-none'}`;\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { fromEvent, Subject, timer } from 'rxjs';\nimport { filter, take, takeUntil, debounceTime } from 'rxjs/operators';\nimport { Toaster } from '../../models/toaster';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { ButtonComponent } from '../button/button.component';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\n\nconst ANIMATION_TIMEOUT = 200;\n\n@Component({\n selector: 'abp-modal',\n templateUrl: './modal.component.html',\n})\nexport class ModalComponent implements OnDestroy {\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n set visible(value: boolean) {\n if (typeof value !== 'boolean') return;\n\n if (!this.modalContent) {\n if (value) {\n setTimeout(() => {\n this.showModal = value;\n this.visible = value;\n }, 0);\n }\n return;\n }\n\n if (value) {\n this.setVisible(value);\n this.listen();\n } else {\n this.closable = false;\n this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top');\n setTimeout(() => {\n this.setVisible(value);\n this.ngOnDestroy();\n }, ANIMATION_TIMEOUT - 10);\n }\n }\n\n @Input()\n get busy(): boolean {\n return this._busy;\n }\n set busy(value: boolean) {\n if (this.abpSubmit && this.abpSubmit instanceof ButtonComponent) {\n this.abpSubmit.loading = value;\n }\n\n this._busy = value;\n }\n\n @Input() centered: boolean = false;\n\n @Input() modalClass: string = '';\n\n @Input() size: ModalSize = 'lg';\n\n @Input() height: number;\n\n @Input() minHeight: number;\n\n @Output() visibleChange = new EventEmitter();\n\n @Output() init = new EventEmitter();\n\n @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef;\n\n @ContentChild('abpBody', { static: false }) abpBody: TemplateRef;\n\n @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef;\n\n @ContentChild('abpClose', { static: false, read: ElementRef }) abpClose: ElementRef;\n\n @ContentChild(ButtonComponent, { static: false, read: ButtonComponent }) abpSubmit: ButtonComponent;\n\n @ViewChild('abpModalContent', { static: false }) modalContent: ElementRef;\n\n @ViewChildren('abp-button') abpButtons;\n\n _visible: boolean = false;\n\n _busy: boolean = false;\n\n showModal: boolean = false;\n\n isOpenConfirmation: boolean = false;\n\n closable: boolean = false;\n\n destroy$ = new Subject();\n\n constructor(private renderer: Renderer2, private confirmationService: ConfirmationService) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n setVisible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n this.showModal = value;\n\n value\n ? timer(ANIMATION_TIMEOUT + 100)\n .pipe(take(1))\n .subscribe(_ => (this.closable = true))\n : (this.closable = false);\n }\n\n listen() {\n fromEvent(document, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.code === 'Escape' && this.closable),\n )\n .subscribe(_ => {\n this.close();\n });\n\n setTimeout(() => {\n if (!this.abpClose) return;\n fromEvent(this.abpClose.nativeElement, 'click')\n .pipe(\n takeUntil(this.destroy$),\n filter(() => !!(this.closable && this.modalContent)),\n )\n .subscribe(() => this.close());\n }, 0);\n\n this.init.emit();\n }\n\n close() {\n if (!this.closable || this.busy) return;\n\n const nodes = getFlatNodes(\n (this.modalContent.nativeElement.querySelector('#abp-modal-body') as HTMLElement).childNodes,\n );\n\n if (hasNgDirty(nodes)) {\n if (this.isOpenConfirmation) return;\n\n this.isOpenConfirmation = true;\n this.confirmationService\n .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure')\n .subscribe((status: Toaster.Status) => {\n timer(ANIMATION_TIMEOUT).subscribe(() => {\n this.isOpenConfirmation = false;\n });\n\n if (status === Toaster.Status.confirm) {\n this.visible = false;\n }\n });\n } else {\n this.visible = false;\n }\n }\n}\n\nfunction getFlatNodes(nodes: NodeList): HTMLElement[] {\n return Array.from(nodes).reduce(\n (acc, val) => [...acc, ...(val.childNodes && val.childNodes.length ? getFlatNodes(val.childNodes) : [val])],\n [],\n );\n}\n\nfunction hasNgDirty(nodes: HTMLElement[]) {\n return nodes.findIndex(node => (node.className || '').indexOf('ng-dirty') > -1) > -1;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-toast',\n template: `\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n `,\n})\nexport class ToastComponent {}\n","export default `\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.modal {\n background-color: rgba(0, 0, 0, .6);\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* {\n const { payload: err = {} as HttpErrorResponse | any } = res;\n const body = snq(() => (err as HttpErrorResponse).error.error, DEFAULTS.defaultError.message);\n\n if (err instanceof HttpErrorResponse && err.headers.get('_AbpErrorFormat')) {\n const confirmation$ = this.showError(null, null, body);\n\n if (err.status === 401) {\n confirmation$.subscribe(() => {\n this.navigateToLogin();\n });\n }\n } else {\n switch ((err as HttpErrorResponse).status) {\n case 401:\n this.showError(DEFAULTS.defaultError401.details, DEFAULTS.defaultError401.message).subscribe(() =>\n this.navigateToLogin(),\n );\n break;\n case 403:\n this.createErrorComponent({\n title: DEFAULTS.defaultError403.message,\n details: DEFAULTS.defaultError403.details,\n });\n break;\n case 404:\n this.showError(DEFAULTS.defaultError404.details, DEFAULTS.defaultError404.message);\n break;\n case 500:\n this.createErrorComponent({\n title: '500',\n details: 'AbpAccount::InternalServerErrorMessage',\n });\n break;\n case 0:\n if ((err as HttpErrorResponse).statusText === 'Unknown Error') {\n this.createErrorComponent({\n title: 'Unknown Error',\n details: 'AbpAccount::InternalServerErrorMessage',\n });\n }\n break;\n default:\n this.showError(DEFAULTS.defaultError.details, DEFAULTS.defaultError.message);\n break;\n }\n }\n });\n }\n\n private showError(message?: string, title?: string, body?: any): Observable {\n if (body) {\n if (body.details) {\n message = body.details;\n title = body.message;\n } else {\n message = body.message || DEFAULTS.defaultError.message;\n }\n }\n\n return this.confirmationService.error(message, title, {\n hideCancelBtn: true,\n yesCopy: 'OK',\n });\n }\n\n private navigateToLogin() {\n this.store.dispatch(\n new Navigate(['/account/login'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n }\n\n createErrorComponent(instance: Partial) {\n const renderer = this.rendererFactory.createRenderer(null, null);\n const host = renderer.selectRootElement('app-root', true);\n\n const componentRef = this.cfRes.resolveComponentFactory(ErrorComponent).create(this.injector);\n\n for (const key in componentRef.instance) {\n if (componentRef.instance.hasOwnProperty(key)) {\n componentRef.instance[key] = instance[key];\n }\n }\n\n this.appRef.attachView(componentRef.hostView);\n renderer.appendChild(host, (componentRef.hostView as EmbeddedViewRef).rootNodes[0]);\n\n componentRef.instance.renderer = renderer;\n componentRef.instance.elementRef = componentRef.location;\n componentRef.instance.host = host;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { Validation, ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core';\n\n@Component({\n selector: 'abp-validation-error',\n template: `\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ValidationErrorComponent extends ErrorComponent {\n get abpErrors(): Validation.Error[] & { interpoliteParams?: string[] } {\n if (!this.errors || !this.errors.length) return [];\n\n return this.errors.map(error => {\n if (!error.message) return error;\n\n const index = error.message.indexOf('[');\n\n if (index > -1) {\n return {\n ...error,\n message: error.message.slice(0, index),\n interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(','),\n };\n }\n\n return error;\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToaster } from '../abstracts/toaster';\nimport { Message } from 'primeng/components/common/message';\n\n@Injectable({ providedIn: 'root' })\nexport class ToasterService extends AbstractToaster {\n addAll(messages: Message[]): void {\n this.messageService.addAll(messages.map(message => ({ key: this.key, ...message })));\n }\n}\n","import { ChangePassword } from '@abp/ng.core';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { comparePasswords } from '@ngx-validate/core';\nimport { Store } from '@ngxs/store';\nimport snq from 'snq';\nimport { finalize } from 'rxjs/operators';\nimport { ToasterService } from '../../services/toaster.service';\n\nconst { minLength, required } = Validators;\n\n@Component({\n selector: 'abp-change-password',\n templateUrl: './change-password.component.html',\n})\nexport class ChangePasswordComponent implements OnInit, OnChanges {\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n modalBusy: boolean = false;\n\n constructor(private fb: FormBuilder, private store: Store, private toasterService: ToasterService) {}\n\n ngOnInit(): void {\n this.form = this.fb.group(\n {\n password: ['', required],\n newPassword: ['', required],\n repeatNewPassword: ['', required],\n },\n {\n validators: [comparePasswords(['newPassword', 'repeatNewPassword'])],\n },\n );\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n new ChangePassword({\n currentPassword: this.form.get('password').value,\n newPassword: this.form.get('newPassword').value,\n }),\n )\n .pipe(\n finalize(() => {\n this.modalBusy = false;\n }),\n )\n .subscribe({\n next: () => {\n this.visible = false;\n this.form.reset();\n },\n error: err => {\n this.toasterService.error(snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'), 'Error', {\n life: 7000,\n });\n },\n });\n }\n\n openModal() {\n this.visible = true;\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n","import { Profile, GetProfile, ProfileState, UpdateProfile } from '@abp/ng.core';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { take, withLatestFrom } from 'rxjs/operators';\n\nconst { maxLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-profile',\n templateUrl: './profile.component.html',\n})\nexport class ProfileComponent implements OnChanges {\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(ProfileState.getProfile)\n profile$: Observable;\n\n form: FormGroup;\n\n modalBusy: boolean = false;\n\n constructor(private fb: FormBuilder, private store: Store) {}\n\n buildForm() {\n this.store\n .dispatch(new GetProfile())\n .pipe(\n withLatestFrom(this.profile$),\n take(1),\n )\n .subscribe(([, profile]) => {\n this.form = this.fb.group({\n userName: [profile.userName, [required, maxLength(256)]],\n email: [profile.email, [required, email, maxLength(256)]],\n name: [profile.name || '', [maxLength(64)]],\n surname: [profile.surname || '', [maxLength(64)]],\n phoneNumber: [profile.phoneNumber || '', [maxLength(16)]],\n });\n });\n }\n\n submit() {\n if (this.form.invalid) return;\n this.modalBusy = true;\n\n this.store.dispatch(new UpdateProfile(this.form.value)).subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n this.form.reset();\n });\n }\n\n openModal() {\n this.buildForm();\n this.visible = true;\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { ConfigState, ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-breadcrumb',\n template: `\n
      \n
    1. \n \n
    2. \n \n {{ segment | abpLocalization }}\n \n
    \n `,\n})\nexport class BreadcrumbComponent implements OnInit {\n show: boolean;\n\n segments: string[] = [];\n\n constructor(private router: Router, private store: Store) {\n this.show = !!this.store.selectSnapshot(state => state.LeptonLayoutState);\n }\n\n ngOnInit(): void {\n const splittedUrl = this.router.url.split('/').filter(chunk => chunk);\n\n const currentUrl: ABP.FullRoute = this.store.selectSnapshot(ConfigState.getRoute(splittedUrl[0]));\n this.segments.push(currentUrl.name);\n\n if (splittedUrl.length > 1) {\n const [, ...arr] = splittedUrl;\n\n let childRoute: ABP.FullRoute = currentUrl;\n for (let i = 0; i < arr.length; i++) {\n const element = arr[i];\n childRoute = childRoute.children.find(child => child.path === element);\n\n this.segments.push(childRoute.name);\n }\n }\n }\n}\n","import { CoreModule, LazyLoadService } from '@abp/ng.core';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { MessageService } from 'primeng/components/common/messageservice';\nimport { ToastModule } from 'primeng/toast';\nimport { forkJoin } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { ConfirmationComponent } from './components/confirmation/confirmation.component';\nimport { ErrorComponent } from './components/errors/error.component';\nimport { LoaderBarComponent } from './components/loader-bar/loader-bar.component';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { ToastComponent } from './components/toast/toast.component';\nimport styles from './contants/styles';\nimport { ErrorHandler } from './handlers/error.handler';\nimport { ButtonComponent } from './components/button/button.component';\nimport { ValidationErrorComponent } from './components/errors/validation-error.component';\nimport { ChangePasswordComponent } from './components/change-password/change-password.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\n\nexport function appendScript(injector: Injector) {\n const fn = function() {\n const lazyLoadService: LazyLoadService = injector.get(LazyLoadService);\n\n return forkJoin(\n lazyLoadService.load(\n null,\n 'style',\n styles,\n 'head',\n 'afterbegin',\n ) /* lazyLoadService.load(null, 'script', scripts) */,\n ).pipe(take(1));\n };\n\n return fn;\n}\n\n@NgModule({\n imports: [\n CoreModule,\n ToastModule,\n NgxValidateCoreModule.forRoot({\n targetSelector: '.form-group',\n blueprints: {\n email: `AbpAccount::ThisFieldIsNotAValidEmailAddress.`,\n max: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`,\n maxlength: `AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]`,\n min: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`,\n minlength: `AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]`,\n required: `AbpAccount::ThisFieldIsRequired.`,\n passwordMismatch: `AbpIdentity::Identity.PasswordConfirmationFailed`,\n },\n errorTemplate: ValidationErrorComponent,\n }),\n ],\n declarations: [\n ButtonComponent,\n ConfirmationComponent,\n ToastComponent,\n ModalComponent,\n ErrorComponent,\n LoaderBarComponent,\n ValidationErrorComponent,\n ChangePasswordComponent,\n ProfileComponent,\n BreadcrumbComponent,\n ],\n exports: [\n ButtonComponent,\n ConfirmationComponent,\n ToastComponent,\n ModalComponent,\n LoaderBarComponent,\n ChangePasswordComponent,\n ProfileComponent,\n BreadcrumbComponent,\n ],\n entryComponents: [ErrorComponent, ValidationErrorComponent],\n})\nexport class ThemeSharedModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: ThemeSharedModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector, ErrorHandler],\n useFactory: appendScript,\n },\n { provide: MessageService, useClass: MessageService },\n ],\n };\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const fade = trigger('fade', [\n state('void', style({ opacity: 1 })),\n transition(':enter', [style({ opacity: 0 }), animate(250)]),\n transition(':leave', animate(250, style({ opacity: 0 }))),\n]);\n","import { animate, state, style, transition, trigger, query } from '@angular/animations';\nexport const slideFromBottom = trigger('routeAnimations', [\n state('void', style({ 'margin-top': '20px', opacity: '0' })),\n state('*', style({ 'margin-top': '0px', opacity: '1' })),\n transition(':enter', [animate('0.2s ease-out', style({ opacity: '1', 'margin-top': '0px' }))]),\n]);\n","import { Toaster } from './toaster';\n\nexport namespace Confirmation {\n export interface Options extends Toaster.Options {\n hideCancelBtn?: boolean;\n hideYesBtn?: boolean;\n cancelCopy?: string;\n yesCopy?: string;\n }\n}\n","export namespace Toaster {\n export interface Options {\n id?: any;\n closable?: boolean;\n life?: number;\n sticky?: boolean;\n data?: any;\n messageLocalizationParams?: string[];\n titleLocalizationParams?: string[];\n }\n\n export type Severity = 'success' | 'info' | 'warn' | 'error';\n\n export const enum Status {\n confirm = 'confirm',\n reject = 'reject',\n dismiss = 'dismiss',\n }\n}\n","import { Type } from '@angular/core';\n\nexport interface SettingTab {\n name: string;\n order: number;\n component: Type;\n requiredPolicy?: string;\n}\n"],"names":["Subject","tslib_1.__extends","Injectable","Component","router","ofActionSuccessful","StartLoader","StopLoader","filter","takeUntilDestroy","NavigationStart","NavigationEnd","NavigationError","Actions","Router","Input","EventEmitter","timer","take","fromEvent","takeUntil","debounceTime","Renderer2","Output","ContentChild","ElementRef","ViewChild","ViewChildren","store","RestOccurError","HttpErrorResponse","Navigate","RouterState","Store","ApplicationRef","ComponentFactoryResolver","RendererFactory2","Injector","ChangeDetectionStrategy","ViewEncapsulation","ErrorComponent","comparePasswords","ChangePassword","finalize","FormBuilder","required","GetProfile","withLatestFrom","UpdateProfile","tslib_1.__decorate","Select","ProfileState","Observable","ConfigState","LazyLoadService","forkJoin","APP_INITIALIZER","MessageService","NgModule","CoreModule","ToastModule","NgxValidateCoreModule","trigger","state","style","transition","animate","Toaster"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"abp-ng.theme.shared.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.theme.shared/lib/components/breadcrumb/breadcrumb.component.ts","ng://@abp/ng.theme.shared/lib/components/button/button.component.ts","ng://@abp/ng.theme.shared/lib/abstracts/toaster.ts","ng://@abp/ng.theme.shared/lib/services/toaster.service.ts","ng://@abp/ng.theme.shared/lib/components/change-password/change-password.component.ts","ng://@abp/ng.theme.shared/lib/utils/widget-utils.ts","ng://@abp/ng.theme.shared/lib/components/chart/chart.component.ts","ng://@abp/ng.theme.shared/lib/services/confirmation.service.ts","ng://@abp/ng.theme.shared/lib/components/confirmation/confirmation.component.ts","ng://@abp/ng.theme.shared/lib/components/errors/error.component.ts","ng://@abp/ng.theme.shared/lib/components/loader-bar/loader-bar.component.ts","ng://@abp/ng.theme.shared/lib/components/modal/modal.component.ts","ng://@abp/ng.theme.shared/lib/components/profile/profile.component.ts","ng://@abp/ng.theme.shared/lib/components/toast/toast.component.ts","ng://@abp/ng.theme.shared/lib/contants/styles.ts","ng://@abp/ng.theme.shared/lib/handlers/error.handler.ts","ng://@abp/ng.theme.shared/lib/components/table-empty-message/table-empty-message.component.ts","ng://@abp/ng.theme.shared/lib/theme-shared.module.ts","ng://@abp/ng.theme.shared/lib/animations/collapse.animations.ts","ng://@abp/ng.theme.shared/lib/animations/fade.animations.ts","ng://@abp/ng.theme.shared/lib/animations/slide.animations.ts","ng://@abp/ng.theme.shared/lib/models/confirmation.ts","ng://@abp/ng.theme.shared/lib/models/setting-management.ts","ng://@abp/ng.theme.shared/lib/models/statistics.ts","ng://@abp/ng.theme.shared/lib/models/toaster.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { ConfigState, ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-breadcrumb',\n template: `\n
      \n
    1. \n \n
    2. \n \n {{ segment | abpLocalization }}\n \n
    \n `,\n})\nexport class BreadcrumbComponent implements OnInit {\n show: boolean;\n\n segments: string[] = [];\n\n constructor(private router: Router, private store: Store) {\n this.show = !!this.store.selectSnapshot(state => state.LeptonLayoutState);\n }\n\n ngOnInit(): void {\n const splittedUrl = this.router.url.split('/').filter(chunk => chunk);\n\n const currentUrl: ABP.FullRoute = this.store.selectSnapshot(ConfigState.getRoute(splittedUrl[0]));\n this.segments.push(currentUrl.name);\n\n if (splittedUrl.length > 1) {\n const [, ...arr] = splittedUrl;\n\n let childRoute: ABP.FullRoute = currentUrl;\n for (let i = 0; i < arr.length; i++) {\n const element = arr[i];\n childRoute = childRoute.children.find(child => child.path === element);\n\n this.segments.push(childRoute.name);\n }\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'abp-button',\n template: `\n \n `,\n})\nexport class ButtonComponent {\n @Input()\n buttonClass: string = 'btn btn-primary';\n\n @Input()\n type: string = 'button';\n\n @Input()\n iconClass: string;\n\n @Input()\n loading: boolean = false;\n\n @Input()\n disabled: boolean = false;\n\n get icon(): string {\n return `${this.loading ? 'fa fa-pulse fa-spinner' : this.iconClass || 'd-none'}`;\n }\n}\n","import { MessageService } from 'primeng/components/common/messageservice';\nimport { Observable, Subject } from 'rxjs';\nimport { Toaster } from '../models/toaster';\n\nexport class AbstractToaster {\n status$: Subject;\n\n key: string = 'abpToast';\n\n sticky: boolean = false;\n\n constructor(protected messageService: MessageService) {}\n\n info(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'info', options);\n }\n\n success(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'success', options);\n }\n\n warn(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'warn', options);\n }\n\n error(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'error', options);\n }\n\n protected show(message: string, title: string, severity: Toaster.Severity, options?: T): Observable {\n this.messageService.clear(this.key);\n\n this.messageService.add({\n severity,\n detail: message || '',\n summary: title || '',\n ...options,\n key: this.key,\n ...(typeof (options || ({} as any)).sticky === 'undefined' && { sticky: this.sticky }),\n });\n this.status$ = new Subject();\n return this.status$;\n }\n\n clear(status?: Toaster.Status) {\n this.messageService.clear(this.key);\n this.status$.next(status || Toaster.Status.dismiss);\n this.status$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToaster } from '../abstracts/toaster';\nimport { Message } from 'primeng/components/common/message';\n\n@Injectable({ providedIn: 'root' })\nexport class ToasterService extends AbstractToaster {\n addAll(messages: Message[]): void {\n this.messageService.addAll(messages.map(message => ({ key: this.key, ...message })));\n }\n}\n","import { ChangePassword } from '@abp/ng.core';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { comparePasswords } from '@ngx-validate/core';\nimport { Store } from '@ngxs/store';\nimport snq from 'snq';\nimport { finalize } from 'rxjs/operators';\nimport { ToasterService } from '../../services/toaster.service';\n\nconst { minLength, required } = Validators;\n\n@Component({\n selector: 'abp-change-password',\n templateUrl: './change-password.component.html',\n})\nexport class ChangePasswordComponent implements OnInit, OnChanges {\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n modalBusy: boolean = false;\n\n constructor(private fb: FormBuilder, private store: Store, private toasterService: ToasterService) {}\n\n ngOnInit(): void {\n this.form = this.fb.group(\n {\n password: ['', required],\n newPassword: ['', required],\n repeatNewPassword: ['', required],\n },\n {\n validators: [comparePasswords(['newPassword', 'repeatNewPassword'])],\n },\n );\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n new ChangePassword({\n currentPassword: this.form.get('password').value,\n newPassword: this.form.get('newPassword').value,\n }),\n )\n .pipe(\n finalize(() => {\n this.modalBusy = false;\n }),\n )\n .subscribe({\n next: () => {\n this.visible = false;\n this.form.reset();\n },\n error: err => {\n this.toasterService.error(snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'), 'Error', {\n life: 7000,\n });\n },\n });\n }\n\n openModal() {\n this.visible = true;\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n","import { ReplaySubject } from 'rxjs';\n\nexport function getRandomBackgroundColor(count) {\n const colors = [];\n\n for (let i = 0; i < count; i++) {\n const r = ((i + 5) * (i + 5) * 474) % 255;\n const g = ((i + 5) * (i + 5) * 1600) % 255;\n const b = ((i + 5) * (i + 5) * 84065) % 255;\n colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');\n }\n\n return colors;\n}\n\nexport const chartJsLoaded$ = new ReplaySubject(1);\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { chartJsLoaded$ } from '../../utils/widget-utils';\ndeclare const Chart: any;\n\n@Component({\n selector: 'abp-chart',\n templateUrl: './chart.component.html',\n})\nexport class ChartComponent implements AfterViewInit, OnDestroy {\n @Input() type: string;\n\n @Input() options: any = {};\n\n @Input() plugins: any[] = [];\n\n @Input() width: string;\n\n @Input() height: string;\n\n @Input() responsive: boolean = true;\n\n @Output() onDataSelect: EventEmitter = new EventEmitter();\n\n @Output() initialized = new BehaviorSubject(this);\n\n private _initialized: boolean;\n\n _data: any;\n\n chart: any;\n\n constructor(public el: ElementRef, private cdRef: ChangeDetectorRef) {}\n\n @Input() get data(): any {\n return this._data;\n }\n\n set data(val: any) {\n this._data = val;\n this.reinit();\n }\n\n get canvas() {\n return this.el.nativeElement.children[0].children[0];\n }\n\n get base64Image() {\n return this.chart.toBase64Image();\n }\n\n ngAfterViewInit() {\n chartJsLoaded$.subscribe(() => {\n try {\n Chart;\n } catch (error) {\n console.error(`Chart is not found. Import the Chart from app.module like shown below:\n import('chart.js');\n `);\n return;\n }\n\n this.initChart();\n this._initialized = true;\n });\n }\n\n onCanvasClick = event => {\n if (this.chart) {\n let element = this.chart.getElementAtEvent(event);\n let dataset = this.chart.getDatasetAtEvent(event);\n if (element && element[0] && dataset) {\n this.onDataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset });\n }\n }\n };\n\n initChart = () => {\n let opts = this.options || {};\n opts.responsive = this.responsive;\n\n // allows chart to resize in responsive mode\n if (opts.responsive && (this.height || this.width)) {\n opts.maintainAspectRatio = false;\n }\n\n this.chart = new Chart(this.el.nativeElement.children[0].children[0], {\n type: this.type,\n data: this.data,\n options: this.options,\n plugins: this.plugins,\n });\n\n this.cdRef.detectChanges();\n };\n\n generateLegend = () => {\n if (this.chart) {\n return this.chart.generateLegend();\n }\n };\n\n refresh = () => {\n if (this.chart) {\n this.chart.update();\n this.cdRef.detectChanges();\n }\n };\n\n reinit = () => {\n if (this.chart) {\n this.chart.destroy();\n this.initChart();\n }\n };\n\n ngOnDestroy() {\n if (this.chart) {\n this.chart.destroy();\n this._initialized = false;\n this.chart = null;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToaster } from '../abstracts/toaster';\nimport { Confirmation } from '../models/confirmation';\nimport { MessageService } from 'primeng/components/common/messageservice';\nimport { fromEvent, Observable, Subject } from 'rxjs';\nimport { takeUntil, debounceTime, filter } from 'rxjs/operators';\nimport { Toaster } from '../models/toaster';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmationService extends AbstractToaster {\n key: string = 'abpConfirmation';\n\n sticky: boolean = true;\n\n destroy$ = new Subject();\n\n constructor(protected messageService: MessageService) {\n super(messageService);\n }\n\n show(\n message: string,\n title: string,\n severity: Toaster.Severity,\n options?: Confirmation.Options,\n ): Observable {\n this.listenToEscape();\n\n return super.show(message, title, severity, options);\n }\n\n clear(status?: Toaster.Status) {\n super.clear(status);\n\n this.destroy$.next();\n }\n\n listenToEscape() {\n fromEvent(document, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.code === 'Escape'),\n )\n .subscribe(_ => {\n this.clear();\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { Toaster } from '../../models/toaster';\n\n@Component({\n selector: 'abp-confirmation',\n template: `\n \n \n \n
    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n `,\n})\nexport class ConfirmationComponent {\n confirm = Toaster.Status.confirm;\n reject = Toaster.Status.reject;\n dismiss = Toaster.Status.dismiss;\n\n constructor(private confirmationService: ConfirmationService) {}\n\n close(status: Toaster.Status) {\n this.confirmationService.clear(status);\n }\n}\n","import { Component, Renderer2, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'abp-error',\n template: `\n
    \n \n
    \n
    \n
    \n

    \n {{ title | abpLocalization }}\n

    \n
    \n {{ details | abpLocalization }}\n
    \n \n
    \n
    \n
    \n
    \n `,\n styleUrls: ['error.component.scss'],\n})\nexport class ErrorComponent {\n title = 'Oops!';\n\n details = 'Sorry, an error has occured.';\n\n renderer: Renderer2;\n\n elementRef: ElementRef;\n\n host: any;\n\n destroy() {\n this.renderer.removeChild(this.host, this.elementRef.nativeElement);\n }\n}\n","import { StartLoader, StopLoader } from '@abp/ng.core';\nimport { ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\nimport { takeUntilDestroy } from '@ngx-validate/core';\nimport { Actions, ofActionSuccessful } from '@ngxs/store';\nimport { interval, Subscription, timer } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-loader-bar',\n template: `\n
    \n
    \n \n `,\n styleUrls: ['./loader-bar.component.scss'],\n})\nexport class LoaderBarComponent implements OnDestroy {\n @Input()\n containerClass: string = 'abp-loader-bar';\n\n @Input()\n color: string = '#77b6ff';\n\n @Input()\n isLoading: boolean = false;\n\n @Input()\n filter = (action: StartLoader | StopLoader) => action.payload.url.indexOf('openid-configuration') < 0;\n\n progressLevel: number = 0;\n\n interval: Subscription;\n\n timer: Subscription;\n\n get boxShadow(): string {\n return `0 0 10px rgba(${this.color}, 0.5)`;\n }\n\n constructor(private actions: Actions, private router: Router, private cdRef: ChangeDetectorRef) {\n actions\n .pipe(\n ofActionSuccessful(StartLoader, StopLoader),\n filter(this.filter),\n takeUntilDestroy(this),\n )\n .subscribe(action => {\n if (action instanceof StartLoader) this.startLoading();\n else this.stopLoading();\n });\n\n router.events\n .pipe(\n filter(\n event =>\n event instanceof NavigationStart || event instanceof NavigationEnd || event instanceof NavigationError,\n ),\n takeUntilDestroy(this),\n )\n .subscribe(event => {\n if (event instanceof NavigationStart) this.startLoading();\n else this.stopLoading();\n });\n }\n\n ngOnDestroy() {\n this.interval.unsubscribe();\n }\n\n startLoading() {\n if (this.isLoading || this.progressLevel !== 0) return;\n\n this.isLoading = true;\n this.interval = interval(350).subscribe(() => {\n if (this.progressLevel < 75) {\n this.progressLevel += Math.random() * 10;\n } else if (this.progressLevel < 90) {\n this.progressLevel += 0.4;\n } else if (this.progressLevel < 100) {\n this.progressLevel += 0.1;\n } else {\n this.interval.unsubscribe();\n }\n this.cdRef.detectChanges();\n });\n }\n\n stopLoading() {\n this.interval.unsubscribe();\n this.progressLevel = 100;\n this.isLoading = false;\n if (this.timer && !this.timer.closed) return;\n\n this.timer = timer(820).subscribe(() => {\n this.progressLevel = 0;\n this.cdRef.detectChanges();\n });\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { fromEvent, Subject, timer } from 'rxjs';\nimport { filter, take, takeUntil, debounceTime } from 'rxjs/operators';\nimport { Toaster } from '../../models/toaster';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { ButtonComponent } from '../button/button.component';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\n\nconst ANIMATION_TIMEOUT = 200;\n\n@Component({\n selector: 'abp-modal',\n templateUrl: './modal.component.html',\n})\nexport class ModalComponent implements OnDestroy {\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n set visible(value: boolean) {\n if (typeof value !== 'boolean') return;\n\n if (!this.modalContent) {\n if (value) {\n setTimeout(() => {\n this.showModal = value;\n this.visible = value;\n }, 0);\n }\n return;\n }\n\n if (value) {\n this.setVisible(value);\n this.listen();\n } else {\n this.closable = false;\n this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top');\n setTimeout(() => {\n this.setVisible(value);\n this.ngOnDestroy();\n }, ANIMATION_TIMEOUT - 10);\n }\n }\n\n @Input()\n get busy(): boolean {\n return this._busy;\n }\n set busy(value: boolean) {\n if (this.abpSubmit && this.abpSubmit instanceof ButtonComponent) {\n this.abpSubmit.loading = value;\n }\n\n this._busy = value;\n }\n\n @Input() centered: boolean = false;\n\n @Input() modalClass: string = '';\n\n @Input() size: ModalSize = 'lg';\n\n @Input() height: number;\n\n @Input() minHeight: number;\n\n @Output() visibleChange = new EventEmitter();\n\n @Output() init = new EventEmitter();\n\n @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef;\n\n @ContentChild('abpBody', { static: false }) abpBody: TemplateRef;\n\n @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef;\n\n @ContentChild('abpClose', { static: false, read: ElementRef }) abpClose: ElementRef;\n\n @ContentChild(ButtonComponent, { static: false, read: ButtonComponent }) abpSubmit: ButtonComponent;\n\n @ViewChild('abpModalContent', { static: false }) modalContent: ElementRef;\n\n @ViewChildren('abp-button') abpButtons;\n\n @Output()\n show = new EventEmitter();\n\n @Output()\n hide = new EventEmitter();\n\n _visible: boolean = false;\n\n _busy: boolean = false;\n\n showModal: boolean = false;\n\n isOpenConfirmation: boolean = false;\n\n closable: boolean = false;\n\n destroy$ = new Subject();\n\n constructor(private renderer: Renderer2, private confirmationService: ConfirmationService) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n setVisible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n this.showModal = value;\n\n if (value) {\n timer(ANIMATION_TIMEOUT + 100)\n .pipe(take(1))\n .subscribe(_ => (this.closable = true));\n\n this.renderer.addClass(document.body, 'modal-open');\n this.show.emit();\n } else {\n this.closable = false;\n this.renderer.removeClass(document.body, 'modal-open');\n this.hide.emit();\n }\n }\n\n listen() {\n fromEvent(document, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.code === 'Escape' && this.closable),\n )\n .subscribe(_ => {\n this.close();\n });\n\n setTimeout(() => {\n if (!this.abpClose) return;\n fromEvent(this.abpClose.nativeElement, 'click')\n .pipe(\n takeUntil(this.destroy$),\n filter(() => !!(this.closable && this.modalContent)),\n )\n .subscribe(() => this.close());\n }, 0);\n\n this.init.emit();\n }\n\n close() {\n if (!this.closable || this.busy) return;\n\n const nodes = getFlatNodes(\n (this.modalContent.nativeElement.querySelector('#abp-modal-body') as HTMLElement).childNodes,\n );\n\n if (hasNgDirty(nodes)) {\n if (this.isOpenConfirmation) return;\n\n this.isOpenConfirmation = true;\n this.confirmationService\n .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure')\n .subscribe((status: Toaster.Status) => {\n timer(ANIMATION_TIMEOUT).subscribe(() => {\n this.isOpenConfirmation = false;\n });\n\n if (status === Toaster.Status.confirm) {\n this.visible = false;\n }\n });\n } else {\n this.visible = false;\n }\n }\n}\n\nfunction getFlatNodes(nodes: NodeList): HTMLElement[] {\n return Array.from(nodes).reduce(\n (acc, val) => [...acc, ...(val.childNodes && val.childNodes.length ? getFlatNodes(val.childNodes) : [val])],\n [],\n );\n}\n\nfunction hasNgDirty(nodes: HTMLElement[]) {\n return nodes.findIndex(node => (node.className || '').indexOf('ng-dirty') > -1) > -1;\n}\n","import { Profile, GetProfile, ProfileState, UpdateProfile } from '@abp/ng.core';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { take, withLatestFrom } from 'rxjs/operators';\n\nconst { maxLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-profile',\n templateUrl: './profile.component.html',\n})\nexport class ProfileComponent implements OnChanges {\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(ProfileState.getProfile)\n profile$: Observable;\n\n form: FormGroup;\n\n modalBusy: boolean = false;\n\n constructor(private fb: FormBuilder, private store: Store) {}\n\n buildForm() {\n this.store\n .dispatch(new GetProfile())\n .pipe(\n withLatestFrom(this.profile$),\n take(1),\n )\n .subscribe(([, profile]) => {\n this.form = this.fb.group({\n userName: [profile.userName, [required, maxLength(256)]],\n email: [profile.email, [required, email, maxLength(256)]],\n name: [profile.name || '', [maxLength(64)]],\n surname: [profile.surname || '', [maxLength(64)]],\n phoneNumber: [profile.phoneNumber || '', [maxLength(16)]],\n });\n });\n }\n\n submit() {\n if (this.form.invalid) return;\n this.modalBusy = true;\n\n this.store.dispatch(new UpdateProfile(this.form.value)).subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n this.form.reset();\n });\n }\n\n openModal() {\n this.buildForm();\n this.visible = true;\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-toast',\n template: `\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n `,\n})\nexport class ToastComponent {}\n","export default `\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.modal {\n background-color: rgba(0, 0, 0, .6);\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-toast .ui-toast-message {\n box-sizing: border-box !important;\n border: 2px solid transparent !important;\n border-radius: 4px !important;\n background-color: #f4f4f7 !important;\n color: #1b1d29 !important;\n}\n\n.abp-toast .ui-toast-message-content {\n padding: 10px !important;\n}\n\n.abp-toast .ui-toast-message-content .ui-toast-icon {\n top: 0 !important;\n left: 0 !important;\n padding: 10px !important;\n}\n\n.abp-toast .ui-toast-summary {\n margin: 0 !important;\n font-weight: 700 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-error {\n border-color: #ba1659 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-error .ui-toast-message-content .ui-toast-icon {\n color: #ba1659 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-warning {\n border-color: #ed5d98 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-warning .ui-toast-message-content .ui-toast-icon {\n color: #ed5d98 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-success {\n border-color: #1c9174 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-success .ui-toast-message-content .ui-toast-icon {\n color: #1c9174 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-info {\n border-color: #fccb31 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-info .ui-toast-message-content .ui-toast-icon {\n color: #fccb31 !important;\n}\n\n.abp-confirm .ui-toast-message {\n box-sizing: border-box !important;\n padding: 0px !important;\n border:0 none !important;\n border-radius: 4px !important;\n background-color: #fff !important;\n color: rgba(0, 0, 0, .65) !important;\n font-family: \"Poppins\", sans-serif;\n text-align: center !important;\n}\n\n.abp-confirm .ui-toast-message-content {\n padding: 0px !important;\n}\n\n.abp-confirm .abp-confirm-icon {\n margin: 32px 50px 5px !important;\n color: #f8bb86 !important;\n font-size: 52px !important;\n}\n\n.abp-confirm .ui-toast-close-icon {\n display: none !important;\n}\n\n.abp-confirm .abp-confirm-summary {\n display: block !important;\n margin-bottom: 13px !important;\n padding: 13px 16px 0px !important;\n font-weight: 600 !important;\n font-size: 18px !important;\n}\n\n.abp-confirm .abp-confirm-body {\n display: inline-block !important;\n padding: 0px 10px !important;\n}\n\n.abp-confirm .abp-confirm-footer {\n display: block !important;\n margin-top: 30px !important;\n padding: 16px !important;\n background-color: #f4f4f7 !important;\n text-align: right !important;\n}\n\n.abp-confirm .abp-confirm-footer .btn {\n margin-left: 10px !important;\n}\n\n.ui-widget-overlay {\n z-index: 1000;\n}\n\n/* {\n const { payload: err = {} as HttpErrorResponse | any } = res;\n const body = snq(() => (err as HttpErrorResponse).error.error, DEFAULTS.defaultError.message);\n\n if (err instanceof HttpErrorResponse && err.headers.get('_AbpErrorFormat')) {\n const confirmation$ = this.showError(null, null, body);\n\n if (err.status === 401) {\n confirmation$.subscribe(() => {\n this.navigateToLogin();\n });\n }\n } else {\n switch ((err as HttpErrorResponse).status) {\n case 401:\n this.showError(DEFAULTS.defaultError401.details, DEFAULTS.defaultError401.message).subscribe(() =>\n this.navigateToLogin(),\n );\n break;\n case 403:\n this.createErrorComponent({\n title: DEFAULTS.defaultError403.message,\n details: DEFAULTS.defaultError403.details,\n });\n break;\n case 404:\n this.showError(DEFAULTS.defaultError404.details, DEFAULTS.defaultError404.message);\n break;\n case 500:\n this.createErrorComponent({\n title: '500',\n details: 'AbpAccount::InternalServerErrorMessage',\n });\n break;\n case 0:\n if ((err as HttpErrorResponse).statusText === 'Unknown Error') {\n this.createErrorComponent({\n title: 'Unknown Error',\n details: 'AbpAccount::InternalServerErrorMessage',\n });\n }\n break;\n default:\n this.showError(DEFAULTS.defaultError.details, DEFAULTS.defaultError.message);\n break;\n }\n }\n });\n }\n\n private showError(message?: string, title?: string, body?: any): Observable {\n if (body) {\n if (body.details) {\n message = body.details;\n title = body.message;\n } else {\n message = body.message || DEFAULTS.defaultError.message;\n }\n }\n\n return this.confirmationService.error(message, title, {\n hideCancelBtn: true,\n yesCopy: 'OK',\n });\n }\n\n private navigateToLogin() {\n this.store.dispatch(\n new Navigate(['/account/login'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n }\n\n createErrorComponent(instance: Partial) {\n const renderer = this.rendererFactory.createRenderer(null, null);\n const host = renderer.selectRootElement('app-root', true);\n\n const componentRef = this.cfRes.resolveComponentFactory(ErrorComponent).create(this.injector);\n\n for (const key in componentRef.instance) {\n if (componentRef.instance.hasOwnProperty(key)) {\n componentRef.instance[key] = instance[key];\n }\n }\n\n this.appRef.attachView(componentRef.hostView);\n renderer.appendChild(host, (componentRef.hostView as EmbeddedViewRef).rootNodes[0]);\n\n componentRef.instance.renderer = renderer;\n componentRef.instance.elementRef = componentRef.location;\n componentRef.instance.host = host;\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: '[abp-table-empty-message]',\n template: `\n \n {{ emptyMessage | abpLocalization }}\n \n `,\n})\nexport class TableEmptyMessageComponent {\n @Input()\n colspan = 2;\n\n @Input()\n message: string;\n\n @Input()\n localizationResource: string = 'AbpAccount';\n\n @Input()\n localizationProp: string = 'NoDataAvailableInDatatable';\n\n get emptyMessage(): string {\n return this.message || `${this.localizationResource}::${this.localizationProp}`;\n }\n}\n","import { CoreModule, LazyLoadService } from '@abp/ng.core';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { MessageService } from 'primeng/components/common/messageservice';\nimport { ToastModule } from 'primeng/toast';\nimport { forkJoin } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\nimport { ButtonComponent } from './components/button/button.component';\nimport { ChangePasswordComponent } from './components/change-password/change-password.component';\nimport { ChartComponent } from './components/chart/chart.component';\nimport { ConfirmationComponent } from './components/confirmation/confirmation.component';\nimport { ErrorComponent } from './components/errors/error.component';\nimport { LoaderBarComponent } from './components/loader-bar/loader-bar.component';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { ToastComponent } from './components/toast/toast.component';\nimport styles from './contants/styles';\nimport { ErrorHandler } from './handlers/error.handler';\nimport { chartJsLoaded$ } from './utils/widget-utils';\nimport { TableEmptyMessageComponent } from './components/table-empty-message/table-empty-message.component';\n\nexport function appendScript(injector: Injector) {\n const fn = function() {\n import('chart.js').then(() => chartJsLoaded$.next(true));\n\n const lazyLoadService: LazyLoadService = injector.get(LazyLoadService);\n\n return forkJoin(\n lazyLoadService.load(\n null,\n 'style',\n styles,\n 'head',\n 'afterbegin',\n ) /* lazyLoadService.load(null, 'script', scripts) */,\n ).pipe(take(1));\n };\n\n return fn;\n}\n\n@NgModule({\n imports: [CoreModule, ToastModule],\n declarations: [\n BreadcrumbComponent,\n ButtonComponent,\n ChangePasswordComponent,\n ChartComponent,\n ConfirmationComponent,\n ErrorComponent,\n LoaderBarComponent,\n ModalComponent,\n ProfileComponent,\n TableEmptyMessageComponent,\n ToastComponent,\n ],\n exports: [\n BreadcrumbComponent,\n ButtonComponent,\n ChangePasswordComponent,\n ChartComponent,\n ConfirmationComponent,\n LoaderBarComponent,\n ModalComponent,\n ProfileComponent,\n TableEmptyMessageComponent,\n ToastComponent,\n ],\n entryComponents: [ErrorComponent],\n})\nexport class ThemeSharedModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: ThemeSharedModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector, ErrorHandler],\n useFactory: appendScript,\n },\n { provide: MessageService, useClass: MessageService },\n ],\n };\n }\n}\n","import { trigger, state, style, transition, animate } from '@angular/animations';\n\nexport const collapse = trigger('collapse', [\n state(\n 'open',\n style({\n height: '*',\n overflow: 'hidden',\n }),\n ),\n state(\n 'close',\n style({\n height: '0px',\n overflow: 'hidden',\n }),\n ),\n transition(`open <=> close`, animate('{{duration}}ms'), { params: { duration: '350' } }),\n]);\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const fade = trigger('fade', [\n state('void', style({ opacity: 1 })),\n transition(':enter', [style({ opacity: 0 }), animate(250)]),\n transition(':leave', animate(250, style({ opacity: 0 }))),\n]);\n\nexport const fadeWithStates = trigger('fadeInOut', [\n state('out', style({ opacity: 0 })),\n state('in', style({ opacity: 1 })),\n transition('in <=> out', [animate(250)]),\n]);\n\nexport const fadeIn = trigger('fadeIn', [\n state('*', style({ opacity: 1 })),\n transition('* => *', [style({ opacity: 0 }), animate(250)]),\n transition(':enter', [style({ opacity: 0 }), animate(250)]),\n]);\n","import { animate, state, style, transition, trigger, query } from '@angular/animations';\nexport const slideFromBottom = trigger('routeAnimations', [\n state('void', style({ 'margin-top': '20px', opacity: '0' })),\n state('*', style({ 'margin-top': '0px', opacity: '1' })),\n transition(':enter', [animate('0.2s ease-out', style({ opacity: '1', 'margin-top': '0px' }))]),\n]);\n","import { Toaster } from './toaster';\n\nexport namespace Confirmation {\n export interface Options extends Toaster.Options {\n hideCancelBtn?: boolean;\n hideYesBtn?: boolean;\n cancelCopy?: string;\n yesCopy?: string;\n }\n}\n","export interface SettingTab {\n name: string;\n order: number;\n requiredPolicy?: string;\n url?: string;\n}\n","export namespace Statistics {\n export interface Response {\n data: Data;\n }\n\n export interface Data {\n [key: string]: number;\n }\n\n export interface Filter {\n startDate: string | Date;\n endDate: string | Date;\n }\n}\n","export namespace Toaster {\n export interface Options {\n id?: any;\n closable?: boolean;\n life?: number;\n sticky?: boolean;\n data?: any;\n messageLocalizationParams?: string[];\n titleLocalizationParams?: string[];\n }\n\n export type Severity = 'success' | 'info' | 'warn' | 'error';\n\n export const enum Status {\n confirm = 'confirm',\n reject = 'reject',\n dismiss = 'dismiss',\n }\n}\n"],"names":["ConfigState","Component","Router","Store","Input","Subject","tslib_1.__extends","Injectable","EventEmitter","comparePasswords","ChangePassword","finalize","FormBuilder","Output","ViewChild","ReplaySubject","BehaviorSubject","ElementRef","ChangeDetectorRef","fromEvent","takeUntil","debounceTime","filter","MessageService","router","ofActionSuccessful","StartLoader","StopLoader","takeUntilDestroy","NavigationStart","NavigationEnd","NavigationError","interval","timer","Actions","take","Renderer2","ContentChild","ViewChildren","required","GetProfile","withLatestFrom","UpdateProfile","tslib_1.__decorate","Select","ProfileState","Observable","store","RestOccurError","HttpErrorResponse","Navigate","RouterState","ApplicationRef","ComponentFactoryResolver","RendererFactory2","Injector","LazyLoadService","forkJoin","APP_INITIALIZER","NgModule","CoreModule","ToastModule","trigger","state","style","transition","animate","Toaster"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/bundles/abp-ng.theme.shared.umd.min.js b/npm/ng-packs/dist/theme-shared/bundles/abp-ng.theme.shared.umd.min.js index 430c584130..a57704246e 100644 --- a/npm/ng-packs/dist/theme-shared/bundles/abp-ng.theme.shared.umd.min.js +++ b/npm/ng-packs/dist/theme-shared/bundles/abp-ng.theme.shared.umd.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@abp/ng.core"),require("@angular/core"),require("@ngx-validate/core"),require("primeng/components/common/messageservice"),require("primeng/toast"),require("rxjs"),require("rxjs/operators"),require("@angular/router"),require("@ngxs/store"),require("@angular/common/http"),require("@ngxs/router-plugin"),require("snq"),require("@angular/forms"),require("@angular/animations")):"function"==typeof define&&define.amd?define("@abp/ng.theme.shared",["exports","@abp/ng.core","@angular/core","@ngx-validate/core","primeng/components/common/messageservice","primeng/toast","rxjs","rxjs/operators","@angular/router","@ngxs/store","@angular/common/http","@ngxs/router-plugin","snq","@angular/forms","@angular/animations"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng.theme=e.abp.ng.theme||{},e.abp.ng.theme.shared={}),e.ng_core,e.ng.core,e.core$1,e.messageservice,e.toast,e.rxjs,e.rxjs.operators,e.ng.router,e.store,e.ng.common.http,e.routerPlugin,e.snq,e.ng.forms,e.ng.animations)}(this,function(e,t,n,o,r,i,a,s,l,p,c,u,d,m,f){"use strict";d=d&&d.hasOwnProperty("default")?d.default:d;var b=function(e,t){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function h(e,t){function n(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var g=function(){return(g=Object.assign||function(e){for(var t,n=1,o=arguments.length;n0)&&!(o=i.next()).done;)a.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return a}var C=function(){function e(e){this.messageService=e,this.key="abpToast",this.sticky=!1}return e.prototype.info=function(e,t,n){return this.show(e,t,"info",n)},e.prototype.success=function(e,t,n){return this.show(e,t,"success",n)},e.prototype.warn=function(e,t,n){return this.show(e,t,"warn",n)},e.prototype.error=function(e,t,n){return this.show(e,t,"error",n)},e.prototype.show=function(e,t,n,o){return this.messageService.clear(this.key),this.messageService.add(g({severity:n,detail:e||"",summary:t||""},o,{key:this.key},void 0===(o||{}).sticky&&{sticky:this.sticky})),this.status$=new a.Subject,this.status$},e.prototype.clear=function(e){this.messageService.clear(this.key),this.status$.next(e||"dismiss"),this.status$.complete()},e}();var w=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.key="abpConfirmation",t.sticky=!0,t}return h(t,e),t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new t(n.ɵɵinject(r.MessageService))},token:t,providedIn:"root"}),t}(C);var I=function(){function e(e){this.confirmationService=e,this.confirm="confirm",this.reject="reject",this.dismiss="dismiss"}return e.prototype.close=function(e){this.confirmationService.clear(e)},e.decorators=[{type:n.Component,args:[{selector:"abp-confirmation",template:'\n \n \n \n \n\n \n \n \n '}]}],e.ctorParameters=function(){return[{type:w}]},e}();var L=function(){function e(){this.title="Oops!",this.details="Sorry, an error has occured."}return e.prototype.destroy=function(){this.renderer.removeChild(this.host,this.elementRef.nativeElement)},e.decorators=[{type:n.Component,args:[{selector:"abp-error",template:'\n
    \n \n
    \n
    \n
    \n

    \n {{ title | abpLocalization }}\n

    \n
    \n {{ details | abpLocalization }}\n
    \n \n
    \n
    \n
    \n
    \n ',styles:[".error{position:fixed;top:0;background-color:#fff;width:100vw;height:100vh;z-index:999999}.centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}"]}]}],e}();var S=function(){function e(e,n){var r=this;this.actions=e,this.router=n,this.containerClass="abp-loader-bar",this.progressClass="abp-progress",this.isLoading=!1,this.filter=function(e){return e.payload.url.indexOf("openid-configuration")<0},this.progressLevel=0,e.pipe(p.ofActionSuccessful(t.StartLoader,t.StopLoader),s.filter(this.filter),o.takeUntilDestroy(this)).subscribe(function(e){e instanceof t.StartLoader?r.startLoading():r.stopLoading()}),n.events.pipe(s.filter(function(e){return e instanceof l.NavigationStart||e instanceof l.NavigationEnd||e instanceof l.NavigationError}),o.takeUntilDestroy(this)).subscribe(function(e){e instanceof l.NavigationStart?r.startLoading():r.stopLoading()})}return e.prototype.ngOnDestroy=function(){},e.prototype.startLoading=function(){var e=this;this.isLoading=!0;var t=setInterval(function(){e.progressLevel<75?e.progressLevel+=10*Math.random():e.progressLevel<90?e.progressLevel+=.4:e.progressLevel<100?e.progressLevel+=.1:clearInterval(t)},300);this.interval=t},e.prototype.stopLoading=function(){var e=this;clearInterval(this.interval),this.progressLevel=100,this.isLoading=!1,setTimeout(function(){e.progressLevel=0},800)},e.decorators=[{type:n.Component,args:[{selector:"abp-loader-bar",template:'\n
    \n
    \n
    \n ',styles:[".abp-loader-bar{left:0;opacity:0;position:fixed;top:0;transition:opacity .4s linear .4s;z-index:99999}.abp-loader-bar.is-loading{opacity:1;transition:none}.abp-loader-bar .abp-progress{background:#77b6ff;box-shadow:0 0 10px rgba(119,182,255,.7);height:2px;left:0;position:fixed;top:0;transition:width .4s}"]}]}],e.ctorParameters=function(){return[{type:p.Actions},{type:l.Router}]},e.propDecorators={containerClass:[{type:n.Input}],progressClass:[{type:n.Input}],isLoading:[{type:n.Input}],filter:[{type:n.Input}]},e}();var A=function(){function e(){this.buttonClass="btn btn-primary",this.type="button",this.loading=!1,this.disabled=!1}return Object.defineProperty(e.prototype,"icon",{get:function(){return""+(this.loading?"fa fa-spin fa-spinner":this.iconClass||"d-none")},enumerable:!0,configurable:!0}),e.decorators=[{type:n.Component,args:[{selector:"abp-button",template:'\n \n '}]}],e.propDecorators={buttonClass:[{type:n.Input}],type:[{type:n.Input}],iconClass:[{type:n.Input}],loading:[{type:n.Input}],disabled:[{type:n.Input}]},e}();var x=function(){function e(e,t){this.renderer=e,this.confirmationService=t,this.centered=!1,this.modalClass="",this.size="lg",this.visibleChange=new n.EventEmitter,this.init=new n.EventEmitter,this._visible=!1,this._busy=!1,this.showModal=!1,this.isOpenConfirmation=!1,this.closable=!1,this.destroy$=new a.Subject}return Object.defineProperty(e.prototype,"visible",{get:function(){return this._visible},set:function(e){var t=this;"boolean"==typeof e&&(this.modalContent?e?(this.setVisible(e),this.listen()):(this.closable=!1,this.renderer.addClass(this.modalContent.nativeElement,"fade-out-top"),setTimeout(function(){t.setVisible(e),t.ngOnDestroy()},190)):e&&setTimeout(function(){t.showModal=e,t.visible=e},0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"busy",{get:function(){return this._busy},set:function(e){this.abpSubmit&&this.abpSubmit instanceof A&&(this.abpSubmit.loading=e),this._busy=e},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this.destroy$.next()},e.prototype.setVisible=function(e){var t=this;this._visible=e,this.visibleChange.emit(e),this.showModal=e,e?a.timer(300).pipe(s.take(1)).subscribe(function(e){return t.closable=!0}):this.closable=!1},e.prototype.listen=function(){var e=this;a.fromEvent(document,"keyup").pipe(s.takeUntil(this.destroy$),s.debounceTime(150),s.filter(function(t){return t&&"Escape"===t.code&&e.closable})).subscribe(function(t){e.close()}),setTimeout(function(){e.abpClose&&a.fromEvent(e.abpClose.nativeElement,"click").pipe(s.takeUntil(e.destroy$),s.filter(function(){return!(!e.closable||!e.modalContent)})).subscribe(function(){return e.close()})},0),this.init.emit()},e.prototype.close=function(){var e=this;if(this.closable&&!this.busy)if(function(e){return e.findIndex(function(e){return(e.className||"").indexOf("ng-dirty")>-1})>-1}(function e(t){return Array.from(t).reduce(function(t,n){return function(){for(var e=[],t=0;t\n \n \n \n \n\n \n\n'}]}],e.ctorParameters=function(){return[{type:n.Renderer2},{type:w}]},e.propDecorators={visible:[{type:n.Input}],busy:[{type:n.Input}],centered:[{type:n.Input}],modalClass:[{type:n.Input}],size:[{type:n.Input}],height:[{type:n.Input}],minHeight:[{type:n.Input}],visibleChange:[{type:n.Output}],init:[{type:n.Output}],abpHeader:[{type:n.ContentChild,args:["abpHeader",{static:!1}]}],abpBody:[{type:n.ContentChild,args:["abpBody",{static:!1}]}],abpFooter:[{type:n.ContentChild,args:["abpFooter",{static:!1}]}],abpClose:[{type:n.ContentChild,args:["abpClose",{static:!1,read:n.ElementRef}]}],abpSubmit:[{type:n.ContentChild,args:[A,{static:!1,read:A}]}],modalContent:[{type:n.ViewChild,args:["abpModalContent",{static:!1}]}],abpButtons:[{type:n.ViewChildren,args:["abp-button"]}]},e}();var k=function(){function e(){}return e.decorators=[{type:n.Component,args:[{selector:"abp-toast",template:'\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n '}]}],e}(),E="\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.modal {\n background-color: rgba(0, 0, 0, .6);\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* -1?g({},e,{message:e.message.slice(0,t),interpoliteParams:e.message.slice(t+1,e.message.length-1).split(",")}):e}):[]},enumerable:!0,configurable:!0}),t.decorators=[{type:n.Component,args:[{selector:"abp-validation-error",template:'\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n ',changeDetection:n.ChangeDetectionStrategy.OnPush,encapsulation:n.ViewEncapsulation.None}]}],t}(o.ValidationErrorComponent),N=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return h(t,e),t.prototype.addAll=function(e){var t=this;this.messageService.addAll(e.map(function(e){return g({key:t.key},e)}))},t.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new t(n.ɵɵinject(r.MessageService))},token:t,providedIn:"root"}),t}(C),z=(m.Validators.minLength,m.Validators.required),T=function(){function e(e,t,o){this.fb=e,this.store=t,this.toasterService=o,this.visibleChange=new n.EventEmitter,this.modalBusy=!1}return Object.defineProperty(e.prototype,"visible",{get:function(){return this._visible},set:function(e){this._visible=e,this.visibleChange.emit(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.form=this.fb.group({password:["",z],newPassword:["",z],repeatNewPassword:["",z]},{validators:[o.comparePasswords(["newPassword","repeatNewPassword"])]})},e.prototype.onSubmit=function(){var e=this;this.form.invalid||(this.modalBusy=!0,this.store.dispatch(new t.ChangePassword({currentPassword:this.form.get("password").value,newPassword:this.form.get("newPassword").value})).pipe(s.finalize(function(){e.modalBusy=!1})).subscribe({next:function(){e.visible=!1,e.form.reset()},error:function(t){e.toasterService.error(d(function(){return t.error.error.message},"AbpAccount::DefaultErrorMessage"),"Error",{life:7e3})}}))},e.prototype.openModal=function(){this.visible=!0},e.prototype.ngOnChanges=function(e){var t=e.visible;t&&(t.currentValue?this.openModal():!1===t.currentValue&&this.visible&&(this.visible=!1))},e.decorators=[{type:n.Component,args:[{selector:"abp-change-password",template:'\n \n

    {{ \'AbpIdentity::ChangePassword\' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ \'AbpIdentity::Save\' | abpLocalization }}\n \n
    \n'}]}],e.ctorParameters=function(){return[{type:m.FormBuilder},{type:p.Store},{type:N}]},e.propDecorators={visible:[{type:n.Input}],visibleChange:[{type:n.Output}],modalContent:[{type:n.ViewChild,args:["modalContent",{static:!1}]}]},e}();var M=m.Validators.maxLength,R=m.Validators.required,B=m.Validators.email,F=function(){function e(e,t){this.fb=e,this.store=t,this.visibleChange=new n.EventEmitter,this.modalBusy=!1}return Object.defineProperty(e.prototype,"visible",{get:function(){return this._visible},set:function(e){this._visible=e,this.visibleChange.emit(e)},enumerable:!0,configurable:!0}),e.prototype.buildForm=function(){var e=this;this.store.dispatch(new t.GetProfile).pipe(s.withLatestFrom(this.profile$),s.take(1)).subscribe(function(t){var n=v(t,2)[1];e.form=e.fb.group({userName:[n.userName,[R,M(256)]],email:[n.email,[R,B,M(256)]],name:[n.name||"",[M(64)]],surname:[n.surname||"",[M(64)]],phoneNumber:[n.phoneNumber||"",[M(16)]]})})},e.prototype.submit=function(){var e=this;this.form.invalid||(this.modalBusy=!0,this.store.dispatch(new t.UpdateProfile(this.form.value)).subscribe(function(){e.modalBusy=!1,e.visible=!1,e.form.reset()}))},e.prototype.openModal=function(){this.buildForm(),this.visible=!0},e.prototype.ngOnChanges=function(e){var t=e.visible;t&&(t.currentValue?this.openModal():!1===t.currentValue&&this.visible&&(this.visible=!1))},e.decorators=[{type:n.Component,args:[{selector:"abp-profile",template:'\n \n

    {{ \'AbpIdentity::PersonalInfo\' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ \'AbpIdentity::Save\' | abpLocalization }}\n \n
    \n'}]}],e.ctorParameters=function(){return[{type:m.FormBuilder},{type:p.Store}]},e.propDecorators={visible:[{type:n.Input}],visibleChange:[{type:n.Output}]},function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);i>3&&a&&Object.defineProperty(t,n,a)}([p.Select(t.ProfileState.getProfile),y("design:type",a.Observable)],e.prototype,"profile$",void 0),e}();var D=function(){function e(e,t){this.router=e,this.store=t,this.segments=[],this.show=!!this.store.selectSnapshot(function(e){return e.LeptonLayoutState})}return e.prototype.ngOnInit=function(){var e=this.router.url.split("/").filter(function(e){return e}),n=this.store.selectSnapshot(t.ConfigState.getRoute(e[0]));if(this.segments.push(n.name),e.length>1)for(var o=v(e).slice(1),r=n,i=function(e){var t=o[e];r=r.children.find(function(e){return e.path===t}),a.segments.push(r.name)},a=this,s=0;s\n \n \n {{ segment | abpLocalization }}\n \n \n '}]}],e.ctorParameters=function(){return[{type:l.Router},{type:p.Store}]},e}();function q(e){return function(){var n=e.get(t.LazyLoadService);return a.forkJoin(n.load(null,"style",E,"head","afterbegin")).pipe(s.take(1))}}var _,V=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[{provide:n.APP_INITIALIZER,multi:!0,deps:[n.Injector,O],useFactory:q},{provide:r.MessageService,useClass:r.MessageService}]}},e.decorators=[{type:n.NgModule,args:[{imports:[t.CoreModule,i.ToastModule,o.NgxValidateCoreModule.forRoot({targetSelector:".form-group",blueprints:{email:"AbpAccount::ThisFieldIsNotAValidEmailAddress.",max:"AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]",maxlength:"AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]",min:"AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]",minlength:"AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]",required:"AbpAccount::ThisFieldIsRequired.",passwordMismatch:"AbpIdentity::Identity.PasswordConfirmationFailed"},errorTemplate:j})],declarations:[A,I,k,x,L,S,j,T,F,D],exports:[A,I,k,x,S,T,F,D],entryComponents:[L,j]}]}],e}(),Y=f.trigger("fade",[f.state("void",f.style({opacity:1})),f.transition(":enter",[f.style({opacity:0}),f.animate(250)]),f.transition(":leave",f.animate(250,f.style({opacity:0})))]),$=f.trigger("routeAnimations",[f.state("void",f.style({"margin-top":"20px",opacity:"0"})),f.state("*",f.style({"margin-top":"0px",opacity:"1"})),f.transition(":enter",[f.animate("0.2s ease-out",f.style({opacity:"1","margin-top":"0px"}))])]);!function(e){function t(){}e.Options=t}(_||(_={})),function(t){function n(){}(e.Toaster||(e.Toaster={})).Options=n}(),e.BreadcrumbComponent=D,e.ButtonComponent=A,e.ChangePasswordComponent=T,e.ConfirmationComponent=I,e.ConfirmationService=w,e.LoaderBarComponent=S,e.ModalComponent=x,e.ProfileComponent=F,e.ThemeSharedModule=V,e.ToastComponent=k,e.ToasterService=N,e.appendScript=q,e.fade=Y,e.slideFromBottom=$,e.ɵa=j,e.ɵb=A,e.ɵc=I,e.ɵd=w,e.ɵe=C,e.ɵf=k,e.ɵg=x,e.ɵh=L,e.ɵi=S,e.ɵj=T,e.ɵk=N,e.ɵl=F,e.ɵm=D,e.ɵn=O,Object.defineProperty(e,"__esModule",{value:!0})}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@abp/ng.core"),require("@angular/core"),require("primeng/components/common/messageservice"),require("primeng/toast"),require("rxjs"),require("rxjs/operators"),require("@angular/router"),require("@ngxs/store"),require("@angular/forms"),require("@ngx-validate/core"),require("snq"),require("@angular/common/http"),require("@ngxs/router-plugin"),require("@angular/animations")):"function"==typeof define&&define.amd?define("@abp/ng.theme.shared",["exports","@abp/ng.core","@angular/core","primeng/components/common/messageservice","primeng/toast","rxjs","rxjs/operators","@angular/router","@ngxs/store","@angular/forms","@ngx-validate/core","snq","@angular/common/http","@ngxs/router-plugin","@angular/animations"],e):e(((t=t||self).abp=t.abp||{},t.abp.ng=t.abp.ng||{},t.abp.ng.theme=t.abp.ng.theme||{},t.abp.ng.theme.shared={}),t.ng_core,t.ng.core,t.messageservice,t.toast,t.rxjs,t.rxjs.operators,t.ng.router,t.store,t.ng.forms,t.core$1,t.snq,t.ng.common.http,t.routerPlugin,t.ng.animations)}(this,function(t,e,n,o,i,r,a,s,p,c,l,u,d,m,f){"use strict";u=u&&u.hasOwnProperty("default")?u.default:u;var b=function(t,e){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function h(t,e){function n(){this.constructor=t}b(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var g=function(){return(g=Object.assign||function(t){for(var e,n=1,o=arguments.length;n0)&&!(o=r.next()).done;)a.push(o.value)}catch(t){i={error:t}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a}var w=function(){function t(t,e){this.router=t,this.store=e,this.segments=[],this.show=!!this.store.selectSnapshot(function(t){return t.LeptonLayoutState})}return t.prototype.ngOnInit=function(){var t=this.router.url.split("/").filter(function(t){return t}),n=this.store.selectSnapshot(e.ConfigState.getRoute(t[0]));if(this.segments.push(n.name),t.length>1)for(var o=v(t).slice(1),i=n,r=function(t){var e=o[t];i=i.children.find(function(t){return t.path===e}),a.segments.push(i.name)},a=this,s=0;s\n \n \n {{ segment | abpLocalization }}\n \n \n '}]}],t.ctorParameters=function(){return[{type:s.Router},{type:p.Store}]},t}();var C=function(){function t(){this.buttonClass="btn btn-primary",this.type="button",this.loading=!1,this.disabled=!1}return Object.defineProperty(t.prototype,"icon",{get:function(){return""+(this.loading?"fa fa-pulse fa-spinner":this.iconClass||"d-none")},enumerable:!0,configurable:!0}),t.decorators=[{type:n.Component,args:[{selector:"abp-button",template:'\n \n '}]}],t.propDecorators={buttonClass:[{type:n.Input}],type:[{type:n.Input}],iconClass:[{type:n.Input}],loading:[{type:n.Input}],disabled:[{type:n.Input}]},t}();var I=function(){function t(t){this.messageService=t,this.key="abpToast",this.sticky=!1}return t.prototype.info=function(t,e,n){return this.show(t,e,"info",n)},t.prototype.success=function(t,e,n){return this.show(t,e,"success",n)},t.prototype.warn=function(t,e,n){return this.show(t,e,"warn",n)},t.prototype.error=function(t,e,n){return this.show(t,e,"error",n)},t.prototype.show=function(t,e,n,o){return this.messageService.clear(this.key),this.messageService.add(g({severity:n,detail:t||"",summary:e||""},o,{key:this.key},void 0===(o||{}).sticky&&{sticky:this.sticky})),this.status$=new r.Subject,this.status$},t.prototype.clear=function(t){this.messageService.clear(this.key),this.status$.next(t||"dismiss"),this.status$.complete()},t}();var x=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return h(e,t),e.prototype.addAll=function(t){var e=this;this.messageService.addAll(t.map(function(t){return g({key:e.key},t)}))},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(o.MessageService))},token:e,providedIn:"root"}),e}(I),S=(c.Validators.minLength,c.Validators.required),k=function(){function t(t,e,o){this.fb=t,this.store=e,this.toasterService=o,this.visibleChange=new n.EventEmitter,this.modalBusy=!1}return Object.defineProperty(t.prototype,"visible",{get:function(){return this._visible},set:function(t){this._visible=t,this.visibleChange.emit(t)},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.form=this.fb.group({password:["",S],newPassword:["",S],repeatNewPassword:["",S]},{validators:[l.comparePasswords(["newPassword","repeatNewPassword"])]})},t.prototype.onSubmit=function(){var t=this;this.form.invalid||(this.modalBusy=!0,this.store.dispatch(new e.ChangePassword({currentPassword:this.form.get("password").value,newPassword:this.form.get("newPassword").value})).pipe(a.finalize(function(){t.modalBusy=!1})).subscribe({next:function(){t.visible=!1,t.form.reset()},error:function(e){t.toasterService.error(u(function(){return e.error.error.message},"AbpAccount::DefaultErrorMessage"),"Error",{life:7e3})}}))},t.prototype.openModal=function(){this.visible=!0},t.prototype.ngOnChanges=function(t){var e=t.visible;e&&(e.currentValue?this.openModal():!1===e.currentValue&&this.visible&&(this.visible=!1))},t.decorators=[{type:n.Component,args:[{selector:"abp-change-password",template:'\n \n

    {{ \'AbpIdentity::ChangePassword\' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ \'AbpIdentity::Save\' | abpLocalization }}\n \n
    \n'}]}],t.ctorParameters=function(){return[{type:c.FormBuilder},{type:p.Store},{type:x}]},t.propDecorators={visible:[{type:n.Input}],visibleChange:[{type:n.Output}],modalContent:[{type:n.ViewChild,args:["modalContent",{static:!1}]}]},t}();var E=new r.ReplaySubject(1),L=function(){function t(t,e){var o=this;this.el=t,this.cdRef=e,this.options={},this.plugins=[],this.responsive=!0,this.onDataSelect=new n.EventEmitter,this.initialized=new r.BehaviorSubject(this),this.onCanvasClick=function(t){if(o.chart){var e=o.chart.getElementAtEvent(t),n=o.chart.getDatasetAtEvent(t);e&&e[0]&&n&&o.onDataSelect.emit({originalEvent:t,element:e[0],dataset:n})}},this.initChart=function(){var t=o.options||{};t.responsive=o.responsive,t.responsive&&(o.height||o.width)&&(t.maintainAspectRatio=!1),o.chart=new Chart(o.el.nativeElement.children[0].children[0],{type:o.type,data:o.data,options:o.options,plugins:o.plugins}),o.cdRef.detectChanges()},this.generateLegend=function(){if(o.chart)return o.chart.generateLegend()},this.refresh=function(){o.chart&&(o.chart.update(),o.cdRef.detectChanges())},this.reinit=function(){o.chart&&(o.chart.destroy(),o.initChart())}}return Object.defineProperty(t.prototype,"data",{get:function(){return this._data},set:function(t){this._data=t,this.reinit()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"canvas",{get:function(){return this.el.nativeElement.children[0].children[0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"base64Image",{get:function(){return this.chart.toBase64Image()},enumerable:!0,configurable:!0}),t.prototype.ngAfterViewInit=function(){var t=this;E.subscribe(function(){try{Chart}catch(t){return void console.error("Chart is not found. Import the Chart from app.module like shown below:\n import('chart.js');\n ")}t.initChart(),t._initialized=!0})},t.prototype.ngOnDestroy=function(){this.chart&&(this.chart.destroy(),this._initialized=!1,this.chart=null)},t.decorators=[{type:n.Component,args:[{selector:"abp-chart",template:'\n \n\n'}]}],t.ctorParameters=function(){return[{type:n.ElementRef},{type:n.ChangeDetectorRef}]},t.propDecorators={type:[{type:n.Input}],options:[{type:n.Input}],plugins:[{type:n.Input}],width:[{type:n.Input}],height:[{type:n.Input}],responsive:[{type:n.Input}],onDataSelect:[{type:n.Output}],initialized:[{type:n.Output}],data:[{type:n.Input}]},t}();var P=function(t){function e(e){var n=t.call(this,e)||this;return n.messageService=e,n.key="abpConfirmation",n.sticky=!0,n.destroy$=new r.Subject,n}return h(e,t),e.prototype.show=function(e,n,o,i){return this.listenToEscape(),t.prototype.show.call(this,e,n,o,i)},e.prototype.clear=function(e){t.prototype.clear.call(this,e),this.destroy$.next()},e.prototype.listenToEscape=function(){var t=this;r.fromEvent(document,"keyup").pipe(a.takeUntil(this.destroy$),a.debounceTime(150),a.filter(function(t){return t&&"Escape"===t.code})).subscribe(function(e){t.clear()})},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:o.MessageService}]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(o.MessageService))},token:e,providedIn:"root"}),e}(I);var j=function(){function t(t){this.confirmationService=t,this.confirm="confirm",this.reject="reject",this.dismiss="dismiss"}return t.prototype.close=function(t){this.confirmationService.clear(t)},t.decorators=[{type:n.Component,args:[{selector:"abp-confirmation",template:'\n \n \n \n
    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n '}]}],t.ctorParameters=function(){return[{type:P}]},t}();var O=function(){function t(){this.title="Oops!",this.details="Sorry, an error has occured."}return t.prototype.destroy=function(){this.renderer.removeChild(this.host,this.elementRef.nativeElement)},t.decorators=[{type:n.Component,args:[{selector:"abp-error",template:'\n
    \n \n
    \n
    \n
    \n

    \n {{ title | abpLocalization }}\n

    \n
    \n {{ details | abpLocalization }}\n
    \n \n
    \n
    \n
    \n
    \n ',styles:[".error{position:fixed;top:0;background-color:#fff;width:100vw;height:100vh;z-index:999999}.centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}"]}]}],t}();var z=function(){function t(t,n,o){var i=this;this.actions=t,this.router=n,this.cdRef=o,this.containerClass="abp-loader-bar",this.color="#77b6ff",this.isLoading=!1,this.filter=function(t){return t.payload.url.indexOf("openid-configuration")<0},this.progressLevel=0,t.pipe(p.ofActionSuccessful(e.StartLoader,e.StopLoader),a.filter(this.filter),l.takeUntilDestroy(this)).subscribe(function(t){t instanceof e.StartLoader?i.startLoading():i.stopLoading()}),n.events.pipe(a.filter(function(t){return t instanceof s.NavigationStart||t instanceof s.NavigationEnd||t instanceof s.NavigationError}),l.takeUntilDestroy(this)).subscribe(function(t){t instanceof s.NavigationStart?i.startLoading():i.stopLoading()})}return Object.defineProperty(t.prototype,"boxShadow",{get:function(){return"0 0 10px rgba("+this.color+", 0.5)"},enumerable:!0,configurable:!0}),t.prototype.ngOnDestroy=function(){this.interval.unsubscribe()},t.prototype.startLoading=function(){var t=this;this.isLoading||0!==this.progressLevel||(this.isLoading=!0,this.interval=r.interval(350).subscribe(function(){t.progressLevel<75?t.progressLevel+=10*Math.random():t.progressLevel<90?t.progressLevel+=.4:t.progressLevel<100?t.progressLevel+=.1:t.interval.unsubscribe(),t.cdRef.detectChanges()}))},t.prototype.stopLoading=function(){var t=this;this.interval.unsubscribe(),this.progressLevel=100,this.isLoading=!1,this.timer&&!this.timer.closed||(this.timer=r.timer(820).subscribe(function(){t.progressLevel=0,t.cdRef.detectChanges()}))},t.decorators=[{type:n.Component,args:[{selector:"abp-loader-bar",template:'\n
    \n
    \n \n ',styles:[".abp-loader-bar{left:0;opacity:0;position:fixed;top:0;transition:opacity .4s linear .4s;z-index:99999}.abp-loader-bar.is-loading{opacity:1;transition:none}.abp-loader-bar .abp-progress{height:3px;left:0;position:fixed;top:0;transition:width .4s}"]}]}],t.ctorParameters=function(){return[{type:p.Actions},{type:s.Router},{type:n.ChangeDetectorRef}]},t.propDecorators={containerClass:[{type:n.Input}],color:[{type:n.Input}],isLoading:[{type:n.Input}],filter:[{type:n.Input}]},t}();var A=function(){function t(t,e){this.renderer=t,this.confirmationService=e,this.centered=!1,this.modalClass="",this.size="lg",this.visibleChange=new n.EventEmitter,this.init=new n.EventEmitter,this.show=new n.EventEmitter,this.hide=new n.EventEmitter,this._visible=!1,this._busy=!1,this.showModal=!1,this.isOpenConfirmation=!1,this.closable=!1,this.destroy$=new r.Subject}return Object.defineProperty(t.prototype,"visible",{get:function(){return this._visible},set:function(t){var e=this;"boolean"==typeof t&&(this.modalContent?t?(this.setVisible(t),this.listen()):(this.closable=!1,this.renderer.addClass(this.modalContent.nativeElement,"fade-out-top"),setTimeout(function(){e.setVisible(t),e.ngOnDestroy()},190)):t&&setTimeout(function(){e.showModal=t,e.visible=t},0))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"busy",{get:function(){return this._busy},set:function(t){this.abpSubmit&&this.abpSubmit instanceof C&&(this.abpSubmit.loading=t),this._busy=t},enumerable:!0,configurable:!0}),t.prototype.ngOnDestroy=function(){this.destroy$.next()},t.prototype.setVisible=function(t){var e=this;this._visible=t,this.visibleChange.emit(t),this.showModal=t,t?(r.timer(300).pipe(a.take(1)).subscribe(function(t){return e.closable=!0}),this.renderer.addClass(document.body,"modal-open"),this.show.emit()):(this.closable=!1,this.renderer.removeClass(document.body,"modal-open"),this.hide.emit())},t.prototype.listen=function(){var t=this;r.fromEvent(document,"keyup").pipe(a.takeUntil(this.destroy$),a.debounceTime(150),a.filter(function(e){return e&&"Escape"===e.code&&t.closable})).subscribe(function(e){t.close()}),setTimeout(function(){t.abpClose&&r.fromEvent(t.abpClose.nativeElement,"click").pipe(a.takeUntil(t.destroy$),a.filter(function(){return!(!t.closable||!t.modalContent)})).subscribe(function(){return t.close()})},0),this.init.emit()},t.prototype.close=function(){var t=this;if(this.closable&&!this.busy)if(function(t){return t.findIndex(function(t){return(t.className||"").indexOf("ng-dirty")>-1})>-1}(function t(e){return Array.from(e).reduce(function(e,n){return function(){for(var t=[],e=0;e\n \n \n \n \n \n\n \n\n'}]}],t.ctorParameters=function(){return[{type:n.Renderer2},{type:P}]},t.propDecorators={visible:[{type:n.Input}],busy:[{type:n.Input}],centered:[{type:n.Input}],modalClass:[{type:n.Input}],size:[{type:n.Input}],height:[{type:n.Input}],minHeight:[{type:n.Input}],visibleChange:[{type:n.Output}],init:[{type:n.Output}],abpHeader:[{type:n.ContentChild,args:["abpHeader",{static:!1}]}],abpBody:[{type:n.ContentChild,args:["abpBody",{static:!1}]}],abpFooter:[{type:n.ContentChild,args:["abpFooter",{static:!1}]}],abpClose:[{type:n.ContentChild,args:["abpClose",{static:!1,read:n.ElementRef}]}],abpSubmit:[{type:n.ContentChild,args:[C,{static:!1,read:C}]}],modalContent:[{type:n.ViewChild,args:["abpModalContent",{static:!1}]}],abpButtons:[{type:n.ViewChildren,args:["abp-button"]}],show:[{type:n.Output}],hide:[{type:n.Output}]},t}();var R=c.Validators.maxLength,N=c.Validators.required,D=c.Validators.email,M=function(){function t(t,e){this.fb=t,this.store=e,this.visibleChange=new n.EventEmitter,this.modalBusy=!1}return Object.defineProperty(t.prototype,"visible",{get:function(){return this._visible},set:function(t){this._visible=t,this.visibleChange.emit(t)},enumerable:!0,configurable:!0}),t.prototype.buildForm=function(){var t=this;this.store.dispatch(new e.GetProfile).pipe(a.withLatestFrom(this.profile$),a.take(1)).subscribe(function(e){var n=v(e,2)[1];t.form=t.fb.group({userName:[n.userName,[N,R(256)]],email:[n.email,[N,D,R(256)]],name:[n.name||"",[R(64)]],surname:[n.surname||"",[R(64)]],phoneNumber:[n.phoneNumber||"",[R(16)]]})})},t.prototype.submit=function(){var t=this;this.form.invalid||(this.modalBusy=!0,this.store.dispatch(new e.UpdateProfile(this.form.value)).subscribe(function(){t.modalBusy=!1,t.visible=!1,t.form.reset()}))},t.prototype.openModal=function(){this.buildForm(),this.visible=!0},t.prototype.ngOnChanges=function(t){var e=t.visible;e&&(e.currentValue?this.openModal():!1===e.currentValue&&this.visible&&(this.visible=!1))},t.decorators=[{type:n.Component,args:[{selector:"abp-profile",template:'\n \n

    {{ \'AbpIdentity::PersonalInfo\' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ \'AbpIdentity::Save\' | abpLocalization }}\n \n
    \n'}]}],t.ctorParameters=function(){return[{type:c.FormBuilder},{type:p.Store}]},t.propDecorators={visible:[{type:n.Input}],visibleChange:[{type:n.Output}]},function(t,e,n,o){var i,r=arguments.length,a=r<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,o);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(r<3?i(a):r>3?i(e,n,a):i(e,n))||a);r>3&&a&&Object.defineProperty(e,n,a)}([p.Select(e.ProfileState.getProfile),y("design:type",r.Observable)],t.prototype,"profile$",void 0),t}();var T=function(){function t(){}return t.decorators=[{type:n.Component,args:[{selector:"abp-toast",template:'\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n '}]}],t}(),_='\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.modal {\n background-color: rgba(0, 0, 0, .6);\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-toast .ui-toast-message {\n box-sizing: border-box !important;\n border: 2px solid transparent !important;\n border-radius: 4px !important;\n background-color: #f4f4f7 !important;\n color: #1b1d29 !important;\n}\n\n.abp-toast .ui-toast-message-content {\n padding: 10px !important;\n}\n\n.abp-toast .ui-toast-message-content .ui-toast-icon {\n top: 0 !important;\n left: 0 !important;\n padding: 10px !important;\n}\n\n.abp-toast .ui-toast-summary {\n margin: 0 !important;\n font-weight: 700 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-error {\n border-color: #ba1659 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-error .ui-toast-message-content .ui-toast-icon {\n color: #ba1659 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-warning {\n border-color: #ed5d98 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-warning .ui-toast-message-content .ui-toast-icon {\n color: #ed5d98 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-success {\n border-color: #1c9174 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-success .ui-toast-message-content .ui-toast-icon {\n color: #1c9174 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-info {\n border-color: #fccb31 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-info .ui-toast-message-content .ui-toast-icon {\n color: #fccb31 !important;\n}\n\n.abp-confirm .ui-toast-message {\n box-sizing: border-box !important;\n padding: 0px !important;\n border:0 none !important;\n border-radius: 4px !important;\n background-color: #fff !important;\n color: rgba(0, 0, 0, .65) !important;\n font-family: "Poppins", sans-serif;\n text-align: center !important;\n}\n\n.abp-confirm .ui-toast-message-content {\n padding: 0px !important;\n}\n\n.abp-confirm .abp-confirm-icon {\n margin: 32px 50px 5px !important;\n color: #f8bb86 !important;\n font-size: 52px !important;\n}\n\n.abp-confirm .ui-toast-close-icon {\n display: none !important;\n}\n\n.abp-confirm .abp-confirm-summary {\n display: block !important;\n margin-bottom: 13px !important;\n padding: 13px 16px 0px !important;\n font-weight: 600 !important;\n font-size: 18px !important;\n}\n\n.abp-confirm .abp-confirm-body {\n display: inline-block !important;\n padding: 0px 10px !important;\n}\n\n.abp-confirm .abp-confirm-footer {\n display: block !important;\n margin-top: 30px !important;\n padding: 16px !important;\n background-color: #f4f4f7 !important;\n text-align: right !important;\n}\n\n.abp-confirm .abp-confirm-footer .btn {\n margin-left: 10px !important;\n}\n\n.ui-widget-overlay {\n z-index: 1000;\n}\n\n/* \n {{ emptyMessage | abpLocalization }}\n \n '}]}],t.propDecorators={colspan:[{type:n.Input}],message:[{type:n.Input}],localizationResource:[{type:n.Input}],localizationProp:[{type:n.Input}]},t}();function V(t){return function(){import("chart.js").then(function(){return E.next(!0)});var n=t.get(e.LazyLoadService);return r.forkJoin(n.load(null,"style",_,"head","afterbegin")).pipe(a.take(1))}}var $,Y,H=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[{provide:n.APP_INITIALIZER,multi:!0,deps:[n.Injector,F],useFactory:V},{provide:o.MessageService,useClass:o.MessageService}]}},t.decorators=[{type:n.NgModule,args:[{imports:[e.CoreModule,i.ToastModule],declarations:[w,C,k,L,j,O,z,A,M,q,T],exports:[w,C,k,L,j,z,A,M,q,T],entryComponents:[O]}]}],t}(),U=f.trigger("collapse",[f.state("open",f.style({height:"*",overflow:"hidden"})),f.state("close",f.style({height:"0px",overflow:"hidden"})),f.transition("open <=> close",f.animate("{{duration}}ms"),{params:{duration:"350"}})]),G=f.trigger("fade",[f.state("void",f.style({opacity:1})),f.transition(":enter",[f.style({opacity:0}),f.animate(250)]),f.transition(":leave",f.animate(250,f.style({opacity:0})))]),J=f.trigger("fadeInOut",[f.state("out",f.style({opacity:0})),f.state("in",f.style({opacity:1})),f.transition("in <=> out",[f.animate(250)])]),W=f.trigger("fadeIn",[f.state("*",f.style({opacity:1})),f.transition("* => *",[f.style({opacity:0}),f.animate(250)]),f.transition(":enter",[f.style({opacity:0}),f.animate(250)])]),Z=f.trigger("routeAnimations",[f.state("void",f.style({"margin-top":"20px",opacity:"0"})),f.state("*",f.style({"margin-top":"0px",opacity:"1"})),f.transition(":enter",[f.animate("0.2s ease-out",f.style({opacity:"1","margin-top":"0px"}))])]);!function(t){function e(){}t.Options=e}($||($={})),function(t){function e(){}function n(){}t.Response=e,t.Data=function(){},t.Filter=n}(Y||(Y={})),function(e){function n(){}(t.Toaster||(t.Toaster={})).Options=n}(),t.BreadcrumbComponent=w,t.ButtonComponent=C,t.ChangePasswordComponent=k,t.ChartComponent=L,t.ConfirmationComponent=j,t.ConfirmationService=P,t.LoaderBarComponent=z,t.ModalComponent=A,t.ProfileComponent=M,t.TableEmptyMessageComponent=q,t.ThemeSharedModule=H,t.ToastComponent=T,t.ToasterService=x,t.appendScript=V,t.chartJsLoaded$=E,t.collapse=U,t.fade=G,t.fadeIn=W,t.fadeWithStates=J,t.getRandomBackgroundColor=function(t){for(var e=[],n=0;n= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { MessageService } from 'primeng/components/common/messageservice';\nimport { Observable, Subject } from 'rxjs';\nimport { Toaster } from '../models/toaster';\n\nexport class AbstractToaster {\n status$: Subject;\n\n key: string = 'abpToast';\n\n sticky: boolean = false;\n\n constructor(protected messageService: MessageService) {}\n info(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'info', options);\n }\n\n success(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'success', options);\n }\n\n warn(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'warn', options);\n }\n\n error(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'error', options);\n }\n\n protected show(message: string, title: string, severity: Toaster.Severity, options?: T): Observable {\n this.messageService.clear(this.key);\n\n this.messageService.add({\n severity,\n detail: message || '',\n summary: title || '',\n ...options,\n key: this.key,\n ...(typeof (options || ({} as any)).sticky === 'undefined' && { sticky: this.sticky }),\n });\n this.status$ = new Subject();\n return this.status$;\n }\n\n clear(status?: Toaster.Status) {\n this.messageService.clear(this.key);\n this.status$.next(status || Toaster.Status.dismiss);\n this.status$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToaster } from '../abstracts/toaster';\nimport { Confirmation } from '../models/confirmation';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmationService extends AbstractToaster {\n key: string = 'abpConfirmation';\n\n sticky: boolean = true;\n}\n","import { Component } from '@angular/core';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { Toaster } from '../../models/toaster';\n\n@Component({\n selector: 'abp-confirmation',\n template: `\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n `,\n})\nexport class ConfirmationComponent {\n confirm = Toaster.Status.confirm;\n reject = Toaster.Status.reject;\n dismiss = Toaster.Status.dismiss;\n\n constructor(private confirmationService: ConfirmationService) {}\n\n close(status: Toaster.Status) {\n this.confirmationService.clear(status);\n }\n}\n","import { Component, Renderer2, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'abp-error',\n template: `\n
    \n \n
    \n
    \n
    \n

    \n {{ title | abpLocalization }}\n

    \n
    \n {{ details | abpLocalization }}\n
    \n \n
    \n
    \n
    \n
    \n `,\n styleUrls: ['error.component.scss'],\n})\nexport class ErrorComponent {\n title = 'Oops!';\n\n details = 'Sorry, an error has occured.';\n\n renderer: Renderer2;\n\n elementRef: ElementRef;\n\n host: any;\n\n destroy() {\n this.renderer.removeChild(this.host, this.elementRef.nativeElement);\n }\n}\n","import { StartLoader, StopLoader } from '@abp/ng.core';\nimport { Component, Input, OnDestroy } from '@angular/core';\nimport { NavigationEnd, NavigationStart, Router, NavigationError } from '@angular/router';\nimport { takeUntilDestroy } from '@ngx-validate/core';\nimport { Actions, ofActionSuccessful } from '@ngxs/store';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-loader-bar',\n template: `\n
    \n
    \n
    \n `,\n styleUrls: ['./loader-bar.component.scss'],\n})\nexport class LoaderBarComponent implements OnDestroy {\n @Input()\n containerClass: string = 'abp-loader-bar';\n\n @Input()\n progressClass: string = 'abp-progress';\n\n @Input()\n isLoading: boolean = false;\n\n @Input()\n filter = (action: StartLoader | StopLoader) => action.payload.url.indexOf('openid-configuration') < 0;\n\n progressLevel: number = 0;\n\n interval: any;\n\n constructor(private actions: Actions, private router: Router) {\n actions\n .pipe(\n ofActionSuccessful(StartLoader, StopLoader),\n filter(this.filter),\n takeUntilDestroy(this),\n )\n .subscribe(action => {\n if (action instanceof StartLoader) this.startLoading();\n else this.stopLoading();\n });\n\n router.events\n .pipe(\n filter(\n event =>\n event instanceof NavigationStart || event instanceof NavigationEnd || event instanceof NavigationError,\n ),\n takeUntilDestroy(this),\n )\n .subscribe(event => {\n if (event instanceof NavigationStart) this.startLoading();\n else this.stopLoading();\n });\n }\n\n ngOnDestroy() {}\n\n startLoading() {\n this.isLoading = true;\n const interval = setInterval(() => {\n if (this.progressLevel < 75) {\n this.progressLevel += Math.random() * 10;\n } else if (this.progressLevel < 90) {\n this.progressLevel += 0.4;\n } else if (this.progressLevel < 100) {\n this.progressLevel += 0.1;\n } else {\n clearInterval(interval);\n }\n }, 300);\n\n this.interval = interval;\n }\n\n stopLoading() {\n clearInterval(this.interval);\n this.progressLevel = 100;\n this.isLoading = false;\n\n setTimeout(() => {\n this.progressLevel = 0;\n }, 800);\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'abp-button',\n template: `\n \n `,\n})\nexport class ButtonComponent {\n @Input()\n buttonClass: string = 'btn btn-primary';\n\n @Input()\n type: string = 'button';\n\n @Input()\n iconClass: string;\n\n @Input()\n loading: boolean = false;\n\n @Input()\n disabled: boolean = false;\n\n get icon(): string {\n return `${this.loading ? 'fa fa-spin fa-spinner' : this.iconClass || 'd-none'}`;\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { fromEvent, Subject, timer } from 'rxjs';\nimport { filter, take, takeUntil, debounceTime } from 'rxjs/operators';\nimport { Toaster } from '../../models/toaster';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { ButtonComponent } from '../button/button.component';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\n\nconst ANIMATION_TIMEOUT = 200;\n\n@Component({\n selector: 'abp-modal',\n templateUrl: './modal.component.html',\n})\nexport class ModalComponent implements OnDestroy {\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n set visible(value: boolean) {\n if (typeof value !== 'boolean') return;\n\n if (!this.modalContent) {\n if (value) {\n setTimeout(() => {\n this.showModal = value;\n this.visible = value;\n }, 0);\n }\n return;\n }\n\n if (value) {\n this.setVisible(value);\n this.listen();\n } else {\n this.closable = false;\n this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top');\n setTimeout(() => {\n this.setVisible(value);\n this.ngOnDestroy();\n }, ANIMATION_TIMEOUT - 10);\n }\n }\n\n @Input()\n get busy(): boolean {\n return this._busy;\n }\n set busy(value: boolean) {\n if (this.abpSubmit && this.abpSubmit instanceof ButtonComponent) {\n this.abpSubmit.loading = value;\n }\n\n this._busy = value;\n }\n\n @Input() centered: boolean = false;\n\n @Input() modalClass: string = '';\n\n @Input() size: ModalSize = 'lg';\n\n @Input() height: number;\n\n @Input() minHeight: number;\n\n @Output() visibleChange = new EventEmitter();\n\n @Output() init = new EventEmitter();\n\n @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef;\n\n @ContentChild('abpBody', { static: false }) abpBody: TemplateRef;\n\n @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef;\n\n @ContentChild('abpClose', { static: false, read: ElementRef }) abpClose: ElementRef;\n\n @ContentChild(ButtonComponent, { static: false, read: ButtonComponent }) abpSubmit: ButtonComponent;\n\n @ViewChild('abpModalContent', { static: false }) modalContent: ElementRef;\n\n @ViewChildren('abp-button') abpButtons;\n\n _visible: boolean = false;\n\n _busy: boolean = false;\n\n showModal: boolean = false;\n\n isOpenConfirmation: boolean = false;\n\n closable: boolean = false;\n\n destroy$ = new Subject();\n\n constructor(private renderer: Renderer2, private confirmationService: ConfirmationService) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n setVisible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n this.showModal = value;\n\n value\n ? timer(ANIMATION_TIMEOUT + 100)\n .pipe(take(1))\n .subscribe(_ => (this.closable = true))\n : (this.closable = false);\n }\n\n listen() {\n fromEvent(document, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.code === 'Escape' && this.closable),\n )\n .subscribe(_ => {\n this.close();\n });\n\n setTimeout(() => {\n if (!this.abpClose) return;\n fromEvent(this.abpClose.nativeElement, 'click')\n .pipe(\n takeUntil(this.destroy$),\n filter(() => !!(this.closable && this.modalContent)),\n )\n .subscribe(() => this.close());\n }, 0);\n\n this.init.emit();\n }\n\n close() {\n if (!this.closable || this.busy) return;\n\n const nodes = getFlatNodes(\n (this.modalContent.nativeElement.querySelector('#abp-modal-body') as HTMLElement).childNodes,\n );\n\n if (hasNgDirty(nodes)) {\n if (this.isOpenConfirmation) return;\n\n this.isOpenConfirmation = true;\n this.confirmationService\n .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure')\n .subscribe((status: Toaster.Status) => {\n timer(ANIMATION_TIMEOUT).subscribe(() => {\n this.isOpenConfirmation = false;\n });\n\n if (status === Toaster.Status.confirm) {\n this.visible = false;\n }\n });\n } else {\n this.visible = false;\n }\n }\n}\n\nfunction getFlatNodes(nodes: NodeList): HTMLElement[] {\n return Array.from(nodes).reduce(\n (acc, val) => [...acc, ...(val.childNodes && val.childNodes.length ? getFlatNodes(val.childNodes) : [val])],\n [],\n );\n}\n\nfunction hasNgDirty(nodes: HTMLElement[]) {\n return nodes.findIndex(node => (node.className || '').indexOf('ng-dirty') > -1) > -1;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-toast',\n template: `\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n `,\n})\nexport class ToastComponent {}\n","export default `\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.modal {\n background-color: rgba(0, 0, 0, .6);\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* {\n const { payload: err = {} as HttpErrorResponse | any } = res;\n const body = snq(() => (err as HttpErrorResponse).error.error, DEFAULTS.defaultError.message);\n\n if (err instanceof HttpErrorResponse && err.headers.get('_AbpErrorFormat')) {\n const confirmation$ = this.showError(null, null, body);\n\n if (err.status === 401) {\n confirmation$.subscribe(() => {\n this.navigateToLogin();\n });\n }\n } else {\n switch ((err as HttpErrorResponse).status) {\n case 401:\n this.showError(DEFAULTS.defaultError401.details, DEFAULTS.defaultError401.message).subscribe(() =>\n this.navigateToLogin(),\n );\n break;\n case 403:\n this.createErrorComponent({\n title: DEFAULTS.defaultError403.message,\n details: DEFAULTS.defaultError403.details,\n });\n break;\n case 404:\n this.showError(DEFAULTS.defaultError404.details, DEFAULTS.defaultError404.message);\n break;\n case 500:\n this.createErrorComponent({\n title: '500',\n details: 'AbpAccount::InternalServerErrorMessage',\n });\n break;\n case 0:\n if ((err as HttpErrorResponse).statusText === 'Unknown Error') {\n this.createErrorComponent({\n title: 'Unknown Error',\n details: 'AbpAccount::InternalServerErrorMessage',\n });\n }\n break;\n default:\n this.showError(DEFAULTS.defaultError.details, DEFAULTS.defaultError.message);\n break;\n }\n }\n });\n }\n\n private showError(message?: string, title?: string, body?: any): Observable {\n if (body) {\n if (body.details) {\n message = body.details;\n title = body.message;\n } else {\n message = body.message || DEFAULTS.defaultError.message;\n }\n }\n\n return this.confirmationService.error(message, title, {\n hideCancelBtn: true,\n yesCopy: 'OK',\n });\n }\n\n private navigateToLogin() {\n this.store.dispatch(\n new Navigate(['/account/login'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n }\n\n createErrorComponent(instance: Partial) {\n const renderer = this.rendererFactory.createRenderer(null, null);\n const host = renderer.selectRootElement('app-root', true);\n\n const componentRef = this.cfRes.resolveComponentFactory(ErrorComponent).create(this.injector);\n\n for (const key in componentRef.instance) {\n if (componentRef.instance.hasOwnProperty(key)) {\n componentRef.instance[key] = instance[key];\n }\n }\n\n this.appRef.attachView(componentRef.hostView);\n renderer.appendChild(host, (componentRef.hostView as EmbeddedViewRef).rootNodes[0]);\n\n componentRef.instance.renderer = renderer;\n componentRef.instance.elementRef = componentRef.location;\n componentRef.instance.host = host;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { Validation, ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core';\n\n@Component({\n selector: 'abp-validation-error',\n template: `\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ValidationErrorComponent extends ErrorComponent {\n get abpErrors(): Validation.Error[] & { interpoliteParams?: string[] } {\n if (!this.errors || !this.errors.length) return [];\n\n return this.errors.map(error => {\n if (!error.message) return error;\n\n const index = error.message.indexOf('[');\n\n if (index > -1) {\n return {\n ...error,\n message: error.message.slice(0, index),\n interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(','),\n };\n }\n\n return error;\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToaster } from '../abstracts/toaster';\nimport { Message } from 'primeng/components/common/message';\n\n@Injectable({ providedIn: 'root' })\nexport class ToasterService extends AbstractToaster {\n addAll(messages: Message[]): void {\n this.messageService.addAll(messages.map(message => ({ key: this.key, ...message })));\n }\n}\n","import { ChangePassword } from '@abp/ng.core';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { comparePasswords } from '@ngx-validate/core';\nimport { Store } from '@ngxs/store';\nimport snq from 'snq';\nimport { finalize } from 'rxjs/operators';\nimport { ToasterService } from '../../services/toaster.service';\n\nconst { minLength, required } = Validators;\n\n@Component({\n selector: 'abp-change-password',\n templateUrl: './change-password.component.html',\n})\nexport class ChangePasswordComponent implements OnInit, OnChanges {\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n modalBusy: boolean = false;\n\n constructor(private fb: FormBuilder, private store: Store, private toasterService: ToasterService) {}\n\n ngOnInit(): void {\n this.form = this.fb.group(\n {\n password: ['', required],\n newPassword: ['', required],\n repeatNewPassword: ['', required],\n },\n {\n validators: [comparePasswords(['newPassword', 'repeatNewPassword'])],\n },\n );\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n new ChangePassword({\n currentPassword: this.form.get('password').value,\n newPassword: this.form.get('newPassword').value,\n }),\n )\n .pipe(\n finalize(() => {\n this.modalBusy = false;\n }),\n )\n .subscribe({\n next: () => {\n this.visible = false;\n this.form.reset();\n },\n error: err => {\n this.toasterService.error(snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'), 'Error', {\n life: 7000,\n });\n },\n });\n }\n\n openModal() {\n this.visible = true;\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n","import { Profile, GetProfile, ProfileState, UpdateProfile } from '@abp/ng.core';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { take, withLatestFrom } from 'rxjs/operators';\n\nconst { maxLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-profile',\n templateUrl: './profile.component.html',\n})\nexport class ProfileComponent implements OnChanges {\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(ProfileState.getProfile)\n profile$: Observable;\n\n form: FormGroup;\n\n modalBusy: boolean = false;\n\n constructor(private fb: FormBuilder, private store: Store) {}\n\n buildForm() {\n this.store\n .dispatch(new GetProfile())\n .pipe(\n withLatestFrom(this.profile$),\n take(1),\n )\n .subscribe(([, profile]) => {\n this.form = this.fb.group({\n userName: [profile.userName, [required, maxLength(256)]],\n email: [profile.email, [required, email, maxLength(256)]],\n name: [profile.name || '', [maxLength(64)]],\n surname: [profile.surname || '', [maxLength(64)]],\n phoneNumber: [profile.phoneNumber || '', [maxLength(16)]],\n });\n });\n }\n\n submit() {\n if (this.form.invalid) return;\n this.modalBusy = true;\n\n this.store.dispatch(new UpdateProfile(this.form.value)).subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n this.form.reset();\n });\n }\n\n openModal() {\n this.buildForm();\n this.visible = true;\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { ConfigState, ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-breadcrumb',\n template: `\n
      \n
    1. \n \n
    2. \n \n {{ segment | abpLocalization }}\n \n
    \n `,\n})\nexport class BreadcrumbComponent implements OnInit {\n show: boolean;\n\n segments: string[] = [];\n\n constructor(private router: Router, private store: Store) {\n this.show = !!this.store.selectSnapshot(state => state.LeptonLayoutState);\n }\n\n ngOnInit(): void {\n const splittedUrl = this.router.url.split('/').filter(chunk => chunk);\n\n const currentUrl: ABP.FullRoute = this.store.selectSnapshot(ConfigState.getRoute(splittedUrl[0]));\n this.segments.push(currentUrl.name);\n\n if (splittedUrl.length > 1) {\n const [, ...arr] = splittedUrl;\n\n let childRoute: ABP.FullRoute = currentUrl;\n for (let i = 0; i < arr.length; i++) {\n const element = arr[i];\n childRoute = childRoute.children.find(child => child.path === element);\n\n this.segments.push(childRoute.name);\n }\n }\n }\n}\n","import { CoreModule, LazyLoadService } from '@abp/ng.core';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { MessageService } from 'primeng/components/common/messageservice';\nimport { ToastModule } from 'primeng/toast';\nimport { forkJoin } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { ConfirmationComponent } from './components/confirmation/confirmation.component';\nimport { ErrorComponent } from './components/errors/error.component';\nimport { LoaderBarComponent } from './components/loader-bar/loader-bar.component';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { ToastComponent } from './components/toast/toast.component';\nimport styles from './contants/styles';\nimport { ErrorHandler } from './handlers/error.handler';\nimport { ButtonComponent } from './components/button/button.component';\nimport { ValidationErrorComponent } from './components/errors/validation-error.component';\nimport { ChangePasswordComponent } from './components/change-password/change-password.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\n\nexport function appendScript(injector: Injector) {\n const fn = function() {\n const lazyLoadService: LazyLoadService = injector.get(LazyLoadService);\n\n return forkJoin(\n lazyLoadService.load(\n null,\n 'style',\n styles,\n 'head',\n 'afterbegin',\n ) /* lazyLoadService.load(null, 'script', scripts) */,\n ).pipe(take(1));\n };\n\n return fn;\n}\n\n@NgModule({\n imports: [\n CoreModule,\n ToastModule,\n NgxValidateCoreModule.forRoot({\n targetSelector: '.form-group',\n blueprints: {\n email: `AbpAccount::ThisFieldIsNotAValidEmailAddress.`,\n max: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`,\n maxlength: `AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]`,\n min: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`,\n minlength: `AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]`,\n required: `AbpAccount::ThisFieldIsRequired.`,\n passwordMismatch: `AbpIdentity::Identity.PasswordConfirmationFailed`,\n },\n errorTemplate: ValidationErrorComponent,\n }),\n ],\n declarations: [\n ButtonComponent,\n ConfirmationComponent,\n ToastComponent,\n ModalComponent,\n ErrorComponent,\n LoaderBarComponent,\n ValidationErrorComponent,\n ChangePasswordComponent,\n ProfileComponent,\n BreadcrumbComponent,\n ],\n exports: [\n ButtonComponent,\n ConfirmationComponent,\n ToastComponent,\n ModalComponent,\n LoaderBarComponent,\n ChangePasswordComponent,\n ProfileComponent,\n BreadcrumbComponent,\n ],\n entryComponents: [ErrorComponent, ValidationErrorComponent],\n})\nexport class ThemeSharedModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: ThemeSharedModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector, ErrorHandler],\n useFactory: appendScript,\n },\n { provide: MessageService, useClass: MessageService },\n ],\n };\n }\n}\n","import { Toaster } from './toaster';\n\nexport namespace Confirmation {\n export interface Options extends Toaster.Options {\n hideCancelBtn?: boolean;\n hideYesBtn?: boolean;\n cancelCopy?: string;\n yesCopy?: string;\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const fade = trigger('fade', [\n state('void', style({ opacity: 1 })),\n transition(':enter', [style({ opacity: 0 }), animate(250)]),\n transition(':leave', animate(250, style({ opacity: 0 }))),\n]);\n","import { animate, state, style, transition, trigger, query } from '@angular/animations';\nexport const slideFromBottom = trigger('routeAnimations', [\n state('void', style({ 'margin-top': '20px', opacity: '0' })),\n state('*', style({ 'margin-top': '0px', opacity: '1' })),\n transition(':enter', [animate('0.2s ease-out', style({ opacity: '1', 'margin-top': '0px' }))]),\n]);\n","export namespace Toaster {\n export interface Options {\n id?: any;\n closable?: boolean;\n life?: number;\n sticky?: boolean;\n data?: any;\n messageLocalizationParams?: string[];\n titleLocalizationParams?: string[];\n }\n\n export type Severity = 'success' | 'info' | 'warn' | 'error';\n\n export const enum Status {\n confirm = 'confirm',\n reject = 'reject',\n dismiss = 'dismiss',\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.theme.shared/lib/components/breadcrumb/breadcrumb.component.ts","ng://@abp/ng.theme.shared/lib/components/button/button.component.ts","ng://@abp/ng.theme.shared/lib/abstracts/toaster.ts","ng://@abp/ng.theme.shared/lib/services/toaster.service.ts","ng://@abp/ng.theme.shared/lib/components/change-password/change-password.component.ts","ng://@abp/ng.theme.shared/lib/utils/widget-utils.ts","ng://@abp/ng.theme.shared/lib/components/chart/chart.component.ts","ng://@abp/ng.theme.shared/lib/services/confirmation.service.ts","ng://@abp/ng.theme.shared/lib/components/confirmation/confirmation.component.ts","ng://@abp/ng.theme.shared/lib/components/errors/error.component.ts","ng://@abp/ng.theme.shared/lib/components/loader-bar/loader-bar.component.ts","ng://@abp/ng.theme.shared/lib/components/modal/modal.component.ts","ng://@abp/ng.theme.shared/lib/components/profile/profile.component.ts","ng://@abp/ng.theme.shared/lib/components/toast/toast.component.ts","ng://@abp/ng.theme.shared/lib/contants/styles.ts","ng://@abp/ng.theme.shared/lib/handlers/error.handler.ts","ng://@abp/ng.theme.shared/lib/components/table-empty-message/table-empty-message.component.ts","ng://@abp/ng.theme.shared/lib/theme-shared.module.ts","ng://@abp/ng.theme.shared/lib/models/confirmation.ts","ng://@abp/ng.theme.shared/lib/models/statistics.ts","ng://@abp/ng.theme.shared/lib/animations/collapse.animations.ts","ng://@abp/ng.theme.shared/lib/animations/fade.animations.ts","ng://@abp/ng.theme.shared/lib/animations/slide.animations.ts","ng://@abp/ng.theme.shared/lib/models/toaster.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__metadata","metadataKey","metadataValue","Reflect","metadata","__read","o","m","Symbol","iterator","r","e","ar","next","done","push","value","error","BreadcrumbComponent","router","store","segments","show","selectSnapshot","state","LeptonLayoutState","ngOnInit","splittedUrl","url","split","filter","chunk","currentUrl","ConfigState","getRoute","name","arr","slice","childRoute","element","children","find","child","path","this_1","Component","args","selector","template","Router","Store","ButtonComponent","buttonClass","type","loading","disabled","defineProperty","iconClass","Input","AbstractToaster","messageService","key","sticky","info","message","title","options","success","warn","severity","clear","add","detail","summary","status$","Subject","status","complete","ToasterService","tslib_1.__extends","addAll","messages","_this","map","Injectable","providedIn","required","forms","Validators","minLength","ChangePasswordComponent","fb","toasterService","visibleChange","EventEmitter","modalBusy","_visible","emit","form","group","password","newPassword","repeatNewPassword","validators","comparePasswords","onSubmit","invalid","dispatch","ChangePassword","currentPassword","get","pipe","finalize","subscribe","visible","reset","err","snq","life","openModal","ngOnChanges","_a","currentValue","FormBuilder","Output","ViewChild","static","chartJsLoaded$","ReplaySubject","ChartComponent","el","cdRef","plugins","responsive","onDataSelect","initialized","BehaviorSubject","onCanvasClick","event","chart","getElementAtEvent","dataset","getDatasetAtEvent","originalEvent","initChart","opts","height","width","maintainAspectRatio","Chart","nativeElement","data","detectChanges","generateLegend","refresh","update","reinit","destroy","_data","val","toBase64Image","ngAfterViewInit","console","_initialized","ngOnDestroy","ElementRef","ChangeDetectorRef","ConfirmationService","_super","destroy$","listenToEscape","fromEvent","document","takeUntil","debounceTime","code","_","MessageService","ConfirmationComponent","confirmationService","confirm","reject","dismiss","close","ErrorComponent","details","renderer","removeChild","host","elementRef","LoaderBarComponent","actions","containerClass","color","isLoading","action","payload","indexOf","progressLevel","ofActionSuccessful","StartLoader","StopLoader","takeUntilDestroy","startLoading","stopLoading","events","NavigationStart","NavigationEnd","NavigationError","interval","unsubscribe","Math","random","timer","closed","Actions","ModalComponent","centered","modalClass","size","init","hide","_busy","showModal","isOpenConfirmation","closable","modalContent","setVisible","listen","addClass","setTimeout","ANIMATION_TIMEOUT","abpSubmit","take","body","removeClass","abpClose","busy","nodes","findIndex","node","className","hasNgDirty","getFlatNodes","from","reduce","acc","concat","__spread","childNodes","querySelector","Renderer2","ContentChild","read","ViewChildren","maxLength","email","ProfileComponent","buildForm","GetProfile","withLatestFrom","profile$","profile","userName","surname","phoneNumber","submit","UpdateProfile","decorators","target","desc","c","getOwnPropertyDescriptor","decorate","tslib_1.__decorate","Select","ProfileState","getProfile","Observable","ToastComponent","styles","DEFAULTS","defaultError","defaultError401","defaultError403","defaultError404","ErrorHandler","appRef","cfRes","rendererFactory","injector","RestOccurError","res","HttpErrorResponse","headers","confirmation$","showError","navigateToLogin","createErrorComponent","statusText","hideCancelBtn","yesCopy","Navigate","redirectUrl","RouterState","instance","createRenderer","selectRootElement","componentRef","resolveComponentFactory","attachView","hostView","appendChild","rootNodes","location","ApplicationRef","ComponentFactoryResolver","RendererFactory2","Injector","TableEmptyMessageComponent","colspan","localizationResource","localizationProp","appendScript","import","then","lazyLoadService","LazyLoadService","forkJoin","load","Confirmation","Statistics","ThemeSharedModule","forRoot","ngModule","providers","provide","APP_INITIALIZER","multi","deps","useFactory","useClass","NgModule","imports","CoreModule","ToastModule","declarations","exports","entryComponents","collapse","trigger","style","overflow","transition","animate","params","duration","fade","opacity","fadeWithStates","fadeIn","slideFromBottom","margin-top","Options","Response","Filter","Toaster","count","colors","g"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { ConfigState, ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-breadcrumb',\n template: `\n
      \n
    1. \n \n
    2. \n \n {{ segment | abpLocalization }}\n \n
    \n `,\n})\nexport class BreadcrumbComponent implements OnInit {\n show: boolean;\n\n segments: string[] = [];\n\n constructor(private router: Router, private store: Store) {\n this.show = !!this.store.selectSnapshot(state => state.LeptonLayoutState);\n }\n\n ngOnInit(): void {\n const splittedUrl = this.router.url.split('/').filter(chunk => chunk);\n\n const currentUrl: ABP.FullRoute = this.store.selectSnapshot(ConfigState.getRoute(splittedUrl[0]));\n this.segments.push(currentUrl.name);\n\n if (splittedUrl.length > 1) {\n const [, ...arr] = splittedUrl;\n\n let childRoute: ABP.FullRoute = currentUrl;\n for (let i = 0; i < arr.length; i++) {\n const element = arr[i];\n childRoute = childRoute.children.find(child => child.path === element);\n\n this.segments.push(childRoute.name);\n }\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'abp-button',\n template: `\n \n `,\n})\nexport class ButtonComponent {\n @Input()\n buttonClass: string = 'btn btn-primary';\n\n @Input()\n type: string = 'button';\n\n @Input()\n iconClass: string;\n\n @Input()\n loading: boolean = false;\n\n @Input()\n disabled: boolean = false;\n\n get icon(): string {\n return `${this.loading ? 'fa fa-pulse fa-spinner' : this.iconClass || 'd-none'}`;\n }\n}\n","import { MessageService } from 'primeng/components/common/messageservice';\nimport { Observable, Subject } from 'rxjs';\nimport { Toaster } from '../models/toaster';\n\nexport class AbstractToaster {\n status$: Subject;\n\n key: string = 'abpToast';\n\n sticky: boolean = false;\n\n constructor(protected messageService: MessageService) {}\n\n info(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'info', options);\n }\n\n success(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'success', options);\n }\n\n warn(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'warn', options);\n }\n\n error(message: string, title: string, options?: T): Observable {\n return this.show(message, title, 'error', options);\n }\n\n protected show(message: string, title: string, severity: Toaster.Severity, options?: T): Observable {\n this.messageService.clear(this.key);\n\n this.messageService.add({\n severity,\n detail: message || '',\n summary: title || '',\n ...options,\n key: this.key,\n ...(typeof (options || ({} as any)).sticky === 'undefined' && { sticky: this.sticky }),\n });\n this.status$ = new Subject();\n return this.status$;\n }\n\n clear(status?: Toaster.Status) {\n this.messageService.clear(this.key);\n this.status$.next(status || Toaster.Status.dismiss);\n this.status$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToaster } from '../abstracts/toaster';\nimport { Message } from 'primeng/components/common/message';\n\n@Injectable({ providedIn: 'root' })\nexport class ToasterService extends AbstractToaster {\n addAll(messages: Message[]): void {\n this.messageService.addAll(messages.map(message => ({ key: this.key, ...message })));\n }\n}\n","import { ChangePassword } from '@abp/ng.core';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { comparePasswords } from '@ngx-validate/core';\nimport { Store } from '@ngxs/store';\nimport snq from 'snq';\nimport { finalize } from 'rxjs/operators';\nimport { ToasterService } from '../../services/toaster.service';\n\nconst { minLength, required } = Validators;\n\n@Component({\n selector: 'abp-change-password',\n templateUrl: './change-password.component.html',\n})\nexport class ChangePasswordComponent implements OnInit, OnChanges {\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @ViewChild('modalContent', { static: false })\n modalContent: TemplateRef;\n\n form: FormGroup;\n\n modalBusy: boolean = false;\n\n constructor(private fb: FormBuilder, private store: Store, private toasterService: ToasterService) {}\n\n ngOnInit(): void {\n this.form = this.fb.group(\n {\n password: ['', required],\n newPassword: ['', required],\n repeatNewPassword: ['', required],\n },\n {\n validators: [comparePasswords(['newPassword', 'repeatNewPassword'])],\n },\n );\n }\n\n onSubmit() {\n if (this.form.invalid) return;\n this.modalBusy = true;\n\n this.store\n .dispatch(\n new ChangePassword({\n currentPassword: this.form.get('password').value,\n newPassword: this.form.get('newPassword').value,\n }),\n )\n .pipe(\n finalize(() => {\n this.modalBusy = false;\n }),\n )\n .subscribe({\n next: () => {\n this.visible = false;\n this.form.reset();\n },\n error: err => {\n this.toasterService.error(snq(() => err.error.error.message, 'AbpAccount::DefaultErrorMessage'), 'Error', {\n life: 7000,\n });\n },\n });\n }\n\n openModal() {\n this.visible = true;\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n","import { ReplaySubject } from 'rxjs';\n\nexport function getRandomBackgroundColor(count) {\n const colors = [];\n\n for (let i = 0; i < count; i++) {\n const r = ((i + 5) * (i + 5) * 474) % 255;\n const g = ((i + 5) * (i + 5) * 1600) % 255;\n const b = ((i + 5) * (i + 5) * 84065) % 255;\n colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');\n }\n\n return colors;\n}\n\nexport const chartJsLoaded$ = new ReplaySubject(1);\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { chartJsLoaded$ } from '../../utils/widget-utils';\ndeclare const Chart: any;\n\n@Component({\n selector: 'abp-chart',\n templateUrl: './chart.component.html',\n})\nexport class ChartComponent implements AfterViewInit, OnDestroy {\n @Input() type: string;\n\n @Input() options: any = {};\n\n @Input() plugins: any[] = [];\n\n @Input() width: string;\n\n @Input() height: string;\n\n @Input() responsive: boolean = true;\n\n @Output() onDataSelect: EventEmitter = new EventEmitter();\n\n @Output() initialized = new BehaviorSubject(this);\n\n private _initialized: boolean;\n\n _data: any;\n\n chart: any;\n\n constructor(public el: ElementRef, private cdRef: ChangeDetectorRef) {}\n\n @Input() get data(): any {\n return this._data;\n }\n\n set data(val: any) {\n this._data = val;\n this.reinit();\n }\n\n get canvas() {\n return this.el.nativeElement.children[0].children[0];\n }\n\n get base64Image() {\n return this.chart.toBase64Image();\n }\n\n ngAfterViewInit() {\n chartJsLoaded$.subscribe(() => {\n try {\n Chart;\n } catch (error) {\n console.error(`Chart is not found. Import the Chart from app.module like shown below:\n import('chart.js');\n `);\n return;\n }\n\n this.initChart();\n this._initialized = true;\n });\n }\n\n onCanvasClick = event => {\n if (this.chart) {\n let element = this.chart.getElementAtEvent(event);\n let dataset = this.chart.getDatasetAtEvent(event);\n if (element && element[0] && dataset) {\n this.onDataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset });\n }\n }\n };\n\n initChart = () => {\n let opts = this.options || {};\n opts.responsive = this.responsive;\n\n // allows chart to resize in responsive mode\n if (opts.responsive && (this.height || this.width)) {\n opts.maintainAspectRatio = false;\n }\n\n this.chart = new Chart(this.el.nativeElement.children[0].children[0], {\n type: this.type,\n data: this.data,\n options: this.options,\n plugins: this.plugins,\n });\n\n this.cdRef.detectChanges();\n };\n\n generateLegend = () => {\n if (this.chart) {\n return this.chart.generateLegend();\n }\n };\n\n refresh = () => {\n if (this.chart) {\n this.chart.update();\n this.cdRef.detectChanges();\n }\n };\n\n reinit = () => {\n if (this.chart) {\n this.chart.destroy();\n this.initChart();\n }\n };\n\n ngOnDestroy() {\n if (this.chart) {\n this.chart.destroy();\n this._initialized = false;\n this.chart = null;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractToaster } from '../abstracts/toaster';\nimport { Confirmation } from '../models/confirmation';\nimport { MessageService } from 'primeng/components/common/messageservice';\nimport { fromEvent, Observable, Subject } from 'rxjs';\nimport { takeUntil, debounceTime, filter } from 'rxjs/operators';\nimport { Toaster } from '../models/toaster';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmationService extends AbstractToaster {\n key: string = 'abpConfirmation';\n\n sticky: boolean = true;\n\n destroy$ = new Subject();\n\n constructor(protected messageService: MessageService) {\n super(messageService);\n }\n\n show(\n message: string,\n title: string,\n severity: Toaster.Severity,\n options?: Confirmation.Options,\n ): Observable {\n this.listenToEscape();\n\n return super.show(message, title, severity, options);\n }\n\n clear(status?: Toaster.Status) {\n super.clear(status);\n\n this.destroy$.next();\n }\n\n listenToEscape() {\n fromEvent(document, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.code === 'Escape'),\n )\n .subscribe(_ => {\n this.clear();\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { Toaster } from '../../models/toaster';\n\n@Component({\n selector: 'abp-confirmation',\n template: `\n \n \n \n
    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n \n `,\n})\nexport class ConfirmationComponent {\n confirm = Toaster.Status.confirm;\n reject = Toaster.Status.reject;\n dismiss = Toaster.Status.dismiss;\n\n constructor(private confirmationService: ConfirmationService) {}\n\n close(status: Toaster.Status) {\n this.confirmationService.clear(status);\n }\n}\n","import { Component, Renderer2, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'abp-error',\n template: `\n
    \n \n
    \n
    \n
    \n

    \n {{ title | abpLocalization }}\n

    \n
    \n {{ details | abpLocalization }}\n
    \n \n
    \n
    \n
    \n
    \n `,\n styleUrls: ['error.component.scss'],\n})\nexport class ErrorComponent {\n title = 'Oops!';\n\n details = 'Sorry, an error has occured.';\n\n renderer: Renderer2;\n\n elementRef: ElementRef;\n\n host: any;\n\n destroy() {\n this.renderer.removeChild(this.host, this.elementRef.nativeElement);\n }\n}\n","import { StartLoader, StopLoader } from '@abp/ng.core';\nimport { ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\nimport { takeUntilDestroy } from '@ngx-validate/core';\nimport { Actions, ofActionSuccessful } from '@ngxs/store';\nimport { interval, Subscription, timer } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-loader-bar',\n template: `\n
    \n
    \n \n `,\n styleUrls: ['./loader-bar.component.scss'],\n})\nexport class LoaderBarComponent implements OnDestroy {\n @Input()\n containerClass: string = 'abp-loader-bar';\n\n @Input()\n color: string = '#77b6ff';\n\n @Input()\n isLoading: boolean = false;\n\n @Input()\n filter = (action: StartLoader | StopLoader) => action.payload.url.indexOf('openid-configuration') < 0;\n\n progressLevel: number = 0;\n\n interval: Subscription;\n\n timer: Subscription;\n\n get boxShadow(): string {\n return `0 0 10px rgba(${this.color}, 0.5)`;\n }\n\n constructor(private actions: Actions, private router: Router, private cdRef: ChangeDetectorRef) {\n actions\n .pipe(\n ofActionSuccessful(StartLoader, StopLoader),\n filter(this.filter),\n takeUntilDestroy(this),\n )\n .subscribe(action => {\n if (action instanceof StartLoader) this.startLoading();\n else this.stopLoading();\n });\n\n router.events\n .pipe(\n filter(\n event =>\n event instanceof NavigationStart || event instanceof NavigationEnd || event instanceof NavigationError,\n ),\n takeUntilDestroy(this),\n )\n .subscribe(event => {\n if (event instanceof NavigationStart) this.startLoading();\n else this.stopLoading();\n });\n }\n\n ngOnDestroy() {\n this.interval.unsubscribe();\n }\n\n startLoading() {\n if (this.isLoading || this.progressLevel !== 0) return;\n\n this.isLoading = true;\n this.interval = interval(350).subscribe(() => {\n if (this.progressLevel < 75) {\n this.progressLevel += Math.random() * 10;\n } else if (this.progressLevel < 90) {\n this.progressLevel += 0.4;\n } else if (this.progressLevel < 100) {\n this.progressLevel += 0.1;\n } else {\n this.interval.unsubscribe();\n }\n this.cdRef.detectChanges();\n });\n }\n\n stopLoading() {\n this.interval.unsubscribe();\n this.progressLevel = 100;\n this.isLoading = false;\n if (this.timer && !this.timer.closed) return;\n\n this.timer = timer(820).subscribe(() => {\n this.progressLevel = 0;\n this.cdRef.detectChanges();\n });\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { fromEvent, Subject, timer } from 'rxjs';\nimport { filter, take, takeUntil, debounceTime } from 'rxjs/operators';\nimport { Toaster } from '../../models/toaster';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { ButtonComponent } from '../button/button.component';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\n\nconst ANIMATION_TIMEOUT = 200;\n\n@Component({\n selector: 'abp-modal',\n templateUrl: './modal.component.html',\n})\nexport class ModalComponent implements OnDestroy {\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n set visible(value: boolean) {\n if (typeof value !== 'boolean') return;\n\n if (!this.modalContent) {\n if (value) {\n setTimeout(() => {\n this.showModal = value;\n this.visible = value;\n }, 0);\n }\n return;\n }\n\n if (value) {\n this.setVisible(value);\n this.listen();\n } else {\n this.closable = false;\n this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top');\n setTimeout(() => {\n this.setVisible(value);\n this.ngOnDestroy();\n }, ANIMATION_TIMEOUT - 10);\n }\n }\n\n @Input()\n get busy(): boolean {\n return this._busy;\n }\n set busy(value: boolean) {\n if (this.abpSubmit && this.abpSubmit instanceof ButtonComponent) {\n this.abpSubmit.loading = value;\n }\n\n this._busy = value;\n }\n\n @Input() centered: boolean = false;\n\n @Input() modalClass: string = '';\n\n @Input() size: ModalSize = 'lg';\n\n @Input() height: number;\n\n @Input() minHeight: number;\n\n @Output() visibleChange = new EventEmitter();\n\n @Output() init = new EventEmitter();\n\n @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef;\n\n @ContentChild('abpBody', { static: false }) abpBody: TemplateRef;\n\n @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef;\n\n @ContentChild('abpClose', { static: false, read: ElementRef }) abpClose: ElementRef;\n\n @ContentChild(ButtonComponent, { static: false, read: ButtonComponent }) abpSubmit: ButtonComponent;\n\n @ViewChild('abpModalContent', { static: false }) modalContent: ElementRef;\n\n @ViewChildren('abp-button') abpButtons;\n\n @Output()\n show = new EventEmitter();\n\n @Output()\n hide = new EventEmitter();\n\n _visible: boolean = false;\n\n _busy: boolean = false;\n\n showModal: boolean = false;\n\n isOpenConfirmation: boolean = false;\n\n closable: boolean = false;\n\n destroy$ = new Subject();\n\n constructor(private renderer: Renderer2, private confirmationService: ConfirmationService) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n setVisible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n this.showModal = value;\n\n if (value) {\n timer(ANIMATION_TIMEOUT + 100)\n .pipe(take(1))\n .subscribe(_ => (this.closable = true));\n\n this.renderer.addClass(document.body, 'modal-open');\n this.show.emit();\n } else {\n this.closable = false;\n this.renderer.removeClass(document.body, 'modal-open');\n this.hide.emit();\n }\n }\n\n listen() {\n fromEvent(document, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.code === 'Escape' && this.closable),\n )\n .subscribe(_ => {\n this.close();\n });\n\n setTimeout(() => {\n if (!this.abpClose) return;\n fromEvent(this.abpClose.nativeElement, 'click')\n .pipe(\n takeUntil(this.destroy$),\n filter(() => !!(this.closable && this.modalContent)),\n )\n .subscribe(() => this.close());\n }, 0);\n\n this.init.emit();\n }\n\n close() {\n if (!this.closable || this.busy) return;\n\n const nodes = getFlatNodes(\n (this.modalContent.nativeElement.querySelector('#abp-modal-body') as HTMLElement).childNodes,\n );\n\n if (hasNgDirty(nodes)) {\n if (this.isOpenConfirmation) return;\n\n this.isOpenConfirmation = true;\n this.confirmationService\n .warn('AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpAccount::AreYouSure')\n .subscribe((status: Toaster.Status) => {\n timer(ANIMATION_TIMEOUT).subscribe(() => {\n this.isOpenConfirmation = false;\n });\n\n if (status === Toaster.Status.confirm) {\n this.visible = false;\n }\n });\n } else {\n this.visible = false;\n }\n }\n}\n\nfunction getFlatNodes(nodes: NodeList): HTMLElement[] {\n return Array.from(nodes).reduce(\n (acc, val) => [...acc, ...(val.childNodes && val.childNodes.length ? getFlatNodes(val.childNodes) : [val])],\n [],\n );\n}\n\nfunction hasNgDirty(nodes: HTMLElement[]) {\n return nodes.findIndex(node => (node.className || '').indexOf('ng-dirty') > -1) > -1;\n}\n","import { Profile, GetProfile, ProfileState, UpdateProfile } from '@abp/ng.core';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { take, withLatestFrom } from 'rxjs/operators';\n\nconst { maxLength, required, email } = Validators;\n\n@Component({\n selector: 'abp-profile',\n templateUrl: './profile.component.html',\n})\nexport class ProfileComponent implements OnChanges {\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(ProfileState.getProfile)\n profile$: Observable;\n\n form: FormGroup;\n\n modalBusy: boolean = false;\n\n constructor(private fb: FormBuilder, private store: Store) {}\n\n buildForm() {\n this.store\n .dispatch(new GetProfile())\n .pipe(\n withLatestFrom(this.profile$),\n take(1),\n )\n .subscribe(([, profile]) => {\n this.form = this.fb.group({\n userName: [profile.userName, [required, maxLength(256)]],\n email: [profile.email, [required, email, maxLength(256)]],\n name: [profile.name || '', [maxLength(64)]],\n surname: [profile.surname || '', [maxLength(64)]],\n phoneNumber: [profile.phoneNumber || '', [maxLength(16)]],\n });\n });\n }\n\n submit() {\n if (this.form.invalid) return;\n this.modalBusy = true;\n\n this.store.dispatch(new UpdateProfile(this.form.value)).subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n this.form.reset();\n });\n }\n\n openModal() {\n this.buildForm();\n this.visible = true;\n }\n\n ngOnChanges({ visible }: SimpleChanges): void {\n if (!visible) return;\n\n if (visible.currentValue) {\n this.openModal();\n } else if (visible.currentValue === false && this.visible) {\n this.visible = false;\n }\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'abp-toast',\n template: `\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n `,\n})\nexport class ToastComponent {}\n","export default `\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.modal {\n background-color: rgba(0, 0, 0, .6);\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-toast .ui-toast-message {\n box-sizing: border-box !important;\n border: 2px solid transparent !important;\n border-radius: 4px !important;\n background-color: #f4f4f7 !important;\n color: #1b1d29 !important;\n}\n\n.abp-toast .ui-toast-message-content {\n padding: 10px !important;\n}\n\n.abp-toast .ui-toast-message-content .ui-toast-icon {\n top: 0 !important;\n left: 0 !important;\n padding: 10px !important;\n}\n\n.abp-toast .ui-toast-summary {\n margin: 0 !important;\n font-weight: 700 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-error {\n border-color: #ba1659 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-error .ui-toast-message-content .ui-toast-icon {\n color: #ba1659 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-warning {\n border-color: #ed5d98 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-warning .ui-toast-message-content .ui-toast-icon {\n color: #ed5d98 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-success {\n border-color: #1c9174 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-success .ui-toast-message-content .ui-toast-icon {\n color: #1c9174 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-info {\n border-color: #fccb31 !important;\n}\n\n.abp-toast .ui-toast-message.ui-toast-message-info .ui-toast-message-content .ui-toast-icon {\n color: #fccb31 !important;\n}\n\n.abp-confirm .ui-toast-message {\n box-sizing: border-box !important;\n padding: 0px !important;\n border:0 none !important;\n border-radius: 4px !important;\n background-color: #fff !important;\n color: rgba(0, 0, 0, .65) !important;\n font-family: \"Poppins\", sans-serif;\n text-align: center !important;\n}\n\n.abp-confirm .ui-toast-message-content {\n padding: 0px !important;\n}\n\n.abp-confirm .abp-confirm-icon {\n margin: 32px 50px 5px !important;\n color: #f8bb86 !important;\n font-size: 52px !important;\n}\n\n.abp-confirm .ui-toast-close-icon {\n display: none !important;\n}\n\n.abp-confirm .abp-confirm-summary {\n display: block !important;\n margin-bottom: 13px !important;\n padding: 13px 16px 0px !important;\n font-weight: 600 !important;\n font-size: 18px !important;\n}\n\n.abp-confirm .abp-confirm-body {\n display: inline-block !important;\n padding: 0px 10px !important;\n}\n\n.abp-confirm .abp-confirm-footer {\n display: block !important;\n margin-top: 30px !important;\n padding: 16px !important;\n background-color: #f4f4f7 !important;\n text-align: right !important;\n}\n\n.abp-confirm .abp-confirm-footer .btn {\n margin-left: 10px !important;\n}\n\n.ui-widget-overlay {\n z-index: 1000;\n}\n\n/* {\n const { payload: err = {} as HttpErrorResponse | any } = res;\n const body = snq(() => (err as HttpErrorResponse).error.error, DEFAULTS.defaultError.message);\n\n if (err instanceof HttpErrorResponse && err.headers.get('_AbpErrorFormat')) {\n const confirmation$ = this.showError(null, null, body);\n\n if (err.status === 401) {\n confirmation$.subscribe(() => {\n this.navigateToLogin();\n });\n }\n } else {\n switch ((err as HttpErrorResponse).status) {\n case 401:\n this.showError(DEFAULTS.defaultError401.details, DEFAULTS.defaultError401.message).subscribe(() =>\n this.navigateToLogin(),\n );\n break;\n case 403:\n this.createErrorComponent({\n title: DEFAULTS.defaultError403.message,\n details: DEFAULTS.defaultError403.details,\n });\n break;\n case 404:\n this.showError(DEFAULTS.defaultError404.details, DEFAULTS.defaultError404.message);\n break;\n case 500:\n this.createErrorComponent({\n title: '500',\n details: 'AbpAccount::InternalServerErrorMessage',\n });\n break;\n case 0:\n if ((err as HttpErrorResponse).statusText === 'Unknown Error') {\n this.createErrorComponent({\n title: 'Unknown Error',\n details: 'AbpAccount::InternalServerErrorMessage',\n });\n }\n break;\n default:\n this.showError(DEFAULTS.defaultError.details, DEFAULTS.defaultError.message);\n break;\n }\n }\n });\n }\n\n private showError(message?: string, title?: string, body?: any): Observable {\n if (body) {\n if (body.details) {\n message = body.details;\n title = body.message;\n } else {\n message = body.message || DEFAULTS.defaultError.message;\n }\n }\n\n return this.confirmationService.error(message, title, {\n hideCancelBtn: true,\n yesCopy: 'OK',\n });\n }\n\n private navigateToLogin() {\n this.store.dispatch(\n new Navigate(['/account/login'], null, {\n state: { redirectUrl: this.store.selectSnapshot(RouterState).state.url },\n }),\n );\n }\n\n createErrorComponent(instance: Partial) {\n const renderer = this.rendererFactory.createRenderer(null, null);\n const host = renderer.selectRootElement('app-root', true);\n\n const componentRef = this.cfRes.resolveComponentFactory(ErrorComponent).create(this.injector);\n\n for (const key in componentRef.instance) {\n if (componentRef.instance.hasOwnProperty(key)) {\n componentRef.instance[key] = instance[key];\n }\n }\n\n this.appRef.attachView(componentRef.hostView);\n renderer.appendChild(host, (componentRef.hostView as EmbeddedViewRef).rootNodes[0]);\n\n componentRef.instance.renderer = renderer;\n componentRef.instance.elementRef = componentRef.location;\n componentRef.instance.host = host;\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: '[abp-table-empty-message]',\n template: `\n \n {{ emptyMessage | abpLocalization }}\n \n `,\n})\nexport class TableEmptyMessageComponent {\n @Input()\n colspan = 2;\n\n @Input()\n message: string;\n\n @Input()\n localizationResource: string = 'AbpAccount';\n\n @Input()\n localizationProp: string = 'NoDataAvailableInDatatable';\n\n get emptyMessage(): string {\n return this.message || `${this.localizationResource}::${this.localizationProp}`;\n }\n}\n","import { CoreModule, LazyLoadService } from '@abp/ng.core';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { MessageService } from 'primeng/components/common/messageservice';\nimport { ToastModule } from 'primeng/toast';\nimport { forkJoin } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\nimport { ButtonComponent } from './components/button/button.component';\nimport { ChangePasswordComponent } from './components/change-password/change-password.component';\nimport { ChartComponent } from './components/chart/chart.component';\nimport { ConfirmationComponent } from './components/confirmation/confirmation.component';\nimport { ErrorComponent } from './components/errors/error.component';\nimport { LoaderBarComponent } from './components/loader-bar/loader-bar.component';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { ToastComponent } from './components/toast/toast.component';\nimport styles from './contants/styles';\nimport { ErrorHandler } from './handlers/error.handler';\nimport { chartJsLoaded$ } from './utils/widget-utils';\nimport { TableEmptyMessageComponent } from './components/table-empty-message/table-empty-message.component';\n\nexport function appendScript(injector: Injector) {\n const fn = function() {\n import('chart.js').then(() => chartJsLoaded$.next(true));\n\n const lazyLoadService: LazyLoadService = injector.get(LazyLoadService);\n\n return forkJoin(\n lazyLoadService.load(\n null,\n 'style',\n styles,\n 'head',\n 'afterbegin',\n ) /* lazyLoadService.load(null, 'script', scripts) */,\n ).pipe(take(1));\n };\n\n return fn;\n}\n\n@NgModule({\n imports: [CoreModule, ToastModule],\n declarations: [\n BreadcrumbComponent,\n ButtonComponent,\n ChangePasswordComponent,\n ChartComponent,\n ConfirmationComponent,\n ErrorComponent,\n LoaderBarComponent,\n ModalComponent,\n ProfileComponent,\n TableEmptyMessageComponent,\n ToastComponent,\n ],\n exports: [\n BreadcrumbComponent,\n ButtonComponent,\n ChangePasswordComponent,\n ChartComponent,\n ConfirmationComponent,\n LoaderBarComponent,\n ModalComponent,\n ProfileComponent,\n TableEmptyMessageComponent,\n ToastComponent,\n ],\n entryComponents: [ErrorComponent],\n})\nexport class ThemeSharedModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: ThemeSharedModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector, ErrorHandler],\n useFactory: appendScript,\n },\n { provide: MessageService, useClass: MessageService },\n ],\n };\n }\n}\n","import { Toaster } from './toaster';\n\nexport namespace Confirmation {\n export interface Options extends Toaster.Options {\n hideCancelBtn?: boolean;\n hideYesBtn?: boolean;\n cancelCopy?: string;\n yesCopy?: string;\n }\n}\n","export namespace Statistics {\n export interface Response {\n data: Data;\n }\n\n export interface Data {\n [key: string]: number;\n }\n\n export interface Filter {\n startDate: string | Date;\n endDate: string | Date;\n }\n}\n","import { trigger, state, style, transition, animate } from '@angular/animations';\n\nexport const collapse = trigger('collapse', [\n state(\n 'open',\n style({\n height: '*',\n overflow: 'hidden',\n }),\n ),\n state(\n 'close',\n style({\n height: '0px',\n overflow: 'hidden',\n }),\n ),\n transition(`open <=> close`, animate('{{duration}}ms'), { params: { duration: '350' } }),\n]);\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const fade = trigger('fade', [\n state('void', style({ opacity: 1 })),\n transition(':enter', [style({ opacity: 0 }), animate(250)]),\n transition(':leave', animate(250, style({ opacity: 0 }))),\n]);\n\nexport const fadeWithStates = trigger('fadeInOut', [\n state('out', style({ opacity: 0 })),\n state('in', style({ opacity: 1 })),\n transition('in <=> out', [animate(250)]),\n]);\n\nexport const fadeIn = trigger('fadeIn', [\n state('*', style({ opacity: 1 })),\n transition('* => *', [style({ opacity: 0 }), animate(250)]),\n transition(':enter', [style({ opacity: 0 }), animate(250)]),\n]);\n","import { animate, state, style, transition, trigger, query } from '@angular/animations';\nexport const slideFromBottom = trigger('routeAnimations', [\n state('void', style({ 'margin-top': '20px', opacity: '0' })),\n state('*', style({ 'margin-top': '0px', opacity: '1' })),\n transition(':enter', [animate('0.2s ease-out', style({ opacity: '1', 'margin-top': '0px' }))]),\n]);\n","export namespace Toaster {\n export interface Options {\n id?: any;\n closable?: boolean;\n life?: number;\n sticky?: boolean;\n data?: any;\n messageLocalizationParams?: string[];\n titleLocalizationParams?: string[];\n }\n\n export type Severity = 'success' | 'info' | 'warn' | 'error';\n\n export const enum Status {\n confirm = 'confirm',\n reject = 'reject',\n dismiss = 'dismiss',\n }\n}\n"]} \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/abp-ng.theme.shared.js b/npm/ng-packs/dist/theme-shared/esm2015/abp-ng.theme.shared.js index 43d4337172..a118b0b3c3 100644 --- a/npm/ng-packs/dist/theme-shared/esm2015/abp-ng.theme.shared.js +++ b/npm/ng-packs/dist/theme-shared/esm2015/abp-ng.theme.shared.js @@ -5,19 +5,20 @@ /** * Generated bundle index. Do not edit. */ -export { appendScript, ThemeSharedModule, fade, slideFromBottom, ButtonComponent, BreadcrumbComponent, ChangePasswordComponent, ConfirmationComponent, LoaderBarComponent, ModalComponent, ProfileComponent, ToastComponent, Toaster, ConfirmationService, ToasterService } from './public-api'; +export { appendScript, ThemeSharedModule, collapse, fade, fadeWithStates, fadeIn, slideFromBottom, BreadcrumbComponent, ButtonComponent, ChangePasswordComponent, ChartComponent, ConfirmationComponent, LoaderBarComponent, ModalComponent, ProfileComponent, TableEmptyMessageComponent, ToastComponent, Toaster, ConfirmationService, ToasterService, getRandomBackgroundColor, chartJsLoaded$ } from './public-api'; export { AbstractToaster as ɵe } from './lib/abstracts/toaster'; -export { BreadcrumbComponent as ɵm } from './lib/components/breadcrumb/breadcrumb.component'; +export { BreadcrumbComponent as ɵa } from './lib/components/breadcrumb/breadcrumb.component'; export { ButtonComponent as ɵb } from './lib/components/button/button.component'; -export { ChangePasswordComponent as ɵj } from './lib/components/change-password/change-password.component'; -export { ConfirmationComponent as ɵc } from './lib/components/confirmation/confirmation.component'; -export { ErrorComponent as ɵh } from './lib/components/errors/error.component'; -export { ValidationErrorComponent as ɵa } from './lib/components/errors/validation-error.component'; -export { LoaderBarComponent as ɵi } from './lib/components/loader-bar/loader-bar.component'; -export { ModalComponent as ɵg } from './lib/components/modal/modal.component'; +export { ChangePasswordComponent as ɵc } from './lib/components/change-password/change-password.component'; +export { ChartComponent as ɵf } from './lib/components/chart/chart.component'; +export { ConfirmationComponent as ɵg } from './lib/components/confirmation/confirmation.component'; +export { ErrorComponent as ɵi } from './lib/components/errors/error.component'; +export { LoaderBarComponent as ɵj } from './lib/components/loader-bar/loader-bar.component'; +export { ModalComponent as ɵk } from './lib/components/modal/modal.component'; export { ProfileComponent as ɵl } from './lib/components/profile/profile.component'; -export { ToastComponent as ɵf } from './lib/components/toast/toast.component'; -export { ErrorHandler as ɵn } from './lib/handlers/error.handler'; -export { ConfirmationService as ɵd } from './lib/services/confirmation.service'; -export { ToasterService as ɵk } from './lib/services/toaster.service'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLnNoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsiYWJwLW5nLnRoZW1lLnNoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsaVJBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNqRyxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUNsRyxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDMUYsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0Fic3RyYWN0VG9hc3RlciBhcyDJtWV9IGZyb20gJy4vbGliL2Fic3RyYWN0cy90b2FzdGVyJztcbmV4cG9ydCB7QnJlYWRjcnVtYkNvbXBvbmVudCBhcyDJtW19IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5leHBvcnQge0J1dHRvbkNvbXBvbmVudCBhcyDJtWJ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtDaGFuZ2VQYXNzd29yZENvbXBvbmVudCBhcyDJtWp9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQnO1xuZXhwb3J0IHtDb25maXJtYXRpb25Db21wb25lbnQgYXMgybVjfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7RXJyb3JDb21wb25lbnQgYXMgybVofSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Vycm9ycy9lcnJvci5jb21wb25lbnQnO1xuZXhwb3J0IHtWYWxpZGF0aW9uRXJyb3JDb21wb25lbnQgYXMgybVhfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Vycm9ycy92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudCc7XG5leHBvcnQge0xvYWRlckJhckNvbXBvbmVudCBhcyDJtWl9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbG9hZGVyLWJhci9sb2FkZXItYmFyLmNvbXBvbmVudCc7XG5leHBvcnQge01vZGFsQ29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0IHtQcm9maWxlQ29tcG9uZW50IGFzIMm1bH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50JztcbmV4cG9ydCB7VG9hc3RDb21wb25lbnQgYXMgybVmfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5leHBvcnQge0Vycm9ySGFuZGxlciBhcyDJtW59IGZyb20gJy4vbGliL2hhbmRsZXJzL2Vycm9yLmhhbmRsZXInO1xuZXhwb3J0IHtDb25maXJtYXRpb25TZXJ2aWNlIGFzIMm1ZH0gZnJvbSAnLi9saWIvc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtUb2FzdGVyU2VydmljZSBhcyDJtWt9IGZyb20gJy4vbGliL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZSc7Il19 \ No newline at end of file +export { TableEmptyMessageComponent as ɵm } from './lib/components/table-empty-message/table-empty-message.component'; +export { ToastComponent as ɵn } from './lib/components/toast/toast.component'; +export { ErrorHandler as ɵo } from './lib/handlers/error.handler'; +export { ConfirmationService as ɵh } from './lib/services/confirmation.service'; +export { ToasterService as ɵd } from './lib/services/toaster.service'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLnNoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsiYWJwLW5nLnRoZW1lLnNoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEseVlBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNwSCxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QWJzdHJhY3RUb2FzdGVyIGFzIMm1ZX0gZnJvbSAnLi9saWIvYWJzdHJhY3RzL3RvYXN0ZXInO1xuZXhwb3J0IHtCcmVhZGNydW1iQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmV4cG9ydCB7QnV0dG9uQ29tcG9uZW50IGFzIMm1Yn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQge0NoYW5nZVBhc3N3b3JkQ29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9jaGFuZ2UtcGFzc3dvcmQvY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudCc7XG5leHBvcnQge0NoYXJ0Q29tcG9uZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQnO1xuZXhwb3J0IHtDb25maXJtYXRpb25Db21wb25lbnQgYXMgybVnfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7RXJyb3JDb21wb25lbnQgYXMgybVpfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Vycm9ycy9lcnJvci5jb21wb25lbnQnO1xuZXhwb3J0IHtMb2FkZXJCYXJDb21wb25lbnQgYXMgybVqfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvYWRlci1iYXIvbG9hZGVyLWJhci5jb21wb25lbnQnO1xuZXhwb3J0IHtNb2RhbENvbXBvbmVudCBhcyDJtWt9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB7UHJvZmlsZUNvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudCc7XG5leHBvcnQge1RhYmxlRW1wdHlNZXNzYWdlQ29tcG9uZW50IGFzIMm1bX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy90YWJsZS1lbXB0eS1tZXNzYWdlL3RhYmxlLWVtcHR5LW1lc3NhZ2UuY29tcG9uZW50JztcbmV4cG9ydCB7VG9hc3RDb21wb25lbnQgYXMgybVufSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5leHBvcnQge0Vycm9ySGFuZGxlciBhcyDJtW99IGZyb20gJy4vbGliL2hhbmRsZXJzL2Vycm9yLmhhbmRsZXInO1xuZXhwb3J0IHtDb25maXJtYXRpb25TZXJ2aWNlIGFzIMm1aH0gZnJvbSAnLi9saWIvc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtUb2FzdGVyU2VydmljZSBhcyDJtWR9IGZyb20gJy4vbGliL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZSc7Il19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/abstracts/toaster.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/abstracts/toaster.js index fa72c8b23e..e8de56e5c9 100644 --- a/npm/ng-packs/dist/theme-shared/esm2015/lib/abstracts/toaster.js +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/abstracts/toaster.js @@ -88,4 +88,4 @@ if (false) { */ AbstractToaster.prototype.messageService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2Fic3RyYWN0cy90b2FzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBRzNDLE1BQU0sT0FBTyxlQUFlOzs7O0lBTzFCLFlBQXNCLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUpwRCxRQUFHLEdBQVcsVUFBVSxDQUFDO1FBRXpCLFdBQU0sR0FBWSxLQUFLLENBQUM7SUFFK0IsQ0FBQzs7Ozs7OztJQUN4RCxJQUFJLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDOzs7Ozs7O0lBRUQsT0FBTyxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsT0FBVztRQUNqRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Ozs7OztJQUVELElBQUksQ0FBQyxPQUFlLEVBQUUsS0FBYSxFQUFFLE9BQVc7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7Ozs7Ozs7SUFFRCxLQUFLLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDOzs7Ozs7Ozs7SUFFUyxJQUFJLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBRSxRQUEwQixFQUFFLE9BQVc7UUFDcEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxpQkFDckIsUUFBUSxFQUNSLE1BQU0sRUFBRSxPQUFPLElBQUksRUFBRSxFQUNyQixPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFDakIsT0FBTyxJQUNWLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUNWLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLG1CQUFBLEVBQUUsRUFBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssV0FBVyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUN0RixDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBa0IsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFFRCxLQUFLLENBQUMsTUFBdUI7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sMkJBQTBCLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7Q0FDRjs7O0lBM0NDLGtDQUFpQzs7SUFFakMsOEJBQXlCOztJQUV6QixpQ0FBd0I7Ozs7O0lBRVoseUNBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2NvbXBvbmVudHMvY29tbW9uL21lc3NhZ2VzZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvYXN0ZXIgfSBmcm9tICcuLi9tb2RlbHMvdG9hc3Rlcic7XG5cbmV4cG9ydCBjbGFzcyBBYnN0cmFjdFRvYXN0ZXI8VCA9IFRvYXN0ZXIuT3B0aW9ucz4ge1xuICBzdGF0dXMkOiBTdWJqZWN0PFRvYXN0ZXIuU3RhdHVzPjtcblxuICBrZXk6IHN0cmluZyA9ICdhYnBUb2FzdCc7XG5cbiAgc3RpY2t5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSkge31cbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBUKTogT2JzZXJ2YWJsZTxUb2FzdGVyLlN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLnNob3cobWVzc2FnZSwgdGl0bGUsICdpbmZvJywgb3B0aW9ucyk7XG4gIH1cblxuICBzdWNjZXNzKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU6IHN0cmluZywgb3B0aW9ucz86IFQpOiBPYnNlcnZhYmxlPFRvYXN0ZXIuU3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyhtZXNzYWdlLCB0aXRsZSwgJ3N1Y2Nlc3MnLCBvcHRpb25zKTtcbiAgfVxuXG4gIHdhcm4obWVzc2FnZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBvcHRpb25zPzogVCk6IE9ic2VydmFibGU8VG9hc3Rlci5TdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93KG1lc3NhZ2UsIHRpdGxlLCAnd2FybicsIG9wdGlvbnMpO1xuICB9XG5cbiAgZXJyb3IobWVzc2FnZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBvcHRpb25zPzogVCk6IE9ic2VydmFibGU8VG9hc3Rlci5TdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93KG1lc3NhZ2UsIHRpdGxlLCAnZXJyb3InLCBvcHRpb25zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzaG93KG1lc3NhZ2U6IHN0cmluZywgdGl0bGU6IHN0cmluZywgc2V2ZXJpdHk6IFRvYXN0ZXIuU2V2ZXJpdHksIG9wdGlvbnM/OiBUKTogT2JzZXJ2YWJsZTxUb2FzdGVyLlN0YXR1cz4ge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIodGhpcy5rZXkpO1xuXG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgc2V2ZXJpdHksXG4gICAgICBkZXRhaWw6IG1lc3NhZ2UgfHwgJycsXG4gICAgICBzdW1tYXJ5OiB0aXRsZSB8fCAnJyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgLi4uKHR5cGVvZiAob3B0aW9ucyB8fCAoe30gYXMgYW55KSkuc3RpY2t5ID09PSAndW5kZWZpbmVkJyAmJiB7IHN0aWNreTogdGhpcy5zdGlja3kgfSksXG4gICAgfSk7XG4gICAgdGhpcy5zdGF0dXMkID0gbmV3IFN1YmplY3Q8VG9hc3Rlci5TdGF0dXM+KCk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzJDtcbiAgfVxuXG4gIGNsZWFyKHN0YXR1cz86IFRvYXN0ZXIuU3RhdHVzKSB7XG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5jbGVhcih0aGlzLmtleSk7XG4gICAgdGhpcy5zdGF0dXMkLm5leHQoc3RhdHVzIHx8IFRvYXN0ZXIuU3RhdHVzLmRpc21pc3MpO1xuICAgIHRoaXMuc3RhdHVzJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2Fic3RyYWN0cy90b2FzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBRzNDLE1BQU0sT0FBTyxlQUFlOzs7O0lBTzFCLFlBQXNCLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUpwRCxRQUFHLEdBQVcsVUFBVSxDQUFDO1FBRXpCLFdBQU0sR0FBWSxLQUFLLENBQUM7SUFFK0IsQ0FBQzs7Ozs7OztJQUV4RCxJQUFJLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDOzs7Ozs7O0lBRUQsT0FBTyxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsT0FBVztRQUNqRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Ozs7OztJQUVELElBQUksQ0FBQyxPQUFlLEVBQUUsS0FBYSxFQUFFLE9BQVc7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7Ozs7Ozs7SUFFRCxLQUFLLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDOzs7Ozs7Ozs7SUFFUyxJQUFJLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBRSxRQUEwQixFQUFFLE9BQVc7UUFDcEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxpQkFDckIsUUFBUSxFQUNSLE1BQU0sRUFBRSxPQUFPLElBQUksRUFBRSxFQUNyQixPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFDakIsT0FBTyxJQUNWLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUNWLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLG1CQUFBLEVBQUUsRUFBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssV0FBVyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUN0RixDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBa0IsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFFRCxLQUFLLENBQUMsTUFBdUI7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sMkJBQTBCLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7Q0FDRjs7O0lBNUNDLGtDQUFpQzs7SUFFakMsOEJBQXlCOztJQUV6QixpQ0FBd0I7Ozs7O0lBRVoseUNBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2NvbXBvbmVudHMvY29tbW9uL21lc3NhZ2VzZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvYXN0ZXIgfSBmcm9tICcuLi9tb2RlbHMvdG9hc3Rlcic7XG5cbmV4cG9ydCBjbGFzcyBBYnN0cmFjdFRvYXN0ZXI8VCA9IFRvYXN0ZXIuT3B0aW9ucz4ge1xuICBzdGF0dXMkOiBTdWJqZWN0PFRvYXN0ZXIuU3RhdHVzPjtcblxuICBrZXk6IHN0cmluZyA9ICdhYnBUb2FzdCc7XG5cbiAgc3RpY2t5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSkge31cblxuICBpbmZvKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU6IHN0cmluZywgb3B0aW9ucz86IFQpOiBPYnNlcnZhYmxlPFRvYXN0ZXIuU3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyhtZXNzYWdlLCB0aXRsZSwgJ2luZm8nLCBvcHRpb25zKTtcbiAgfVxuXG4gIHN1Y2Nlc3MobWVzc2FnZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBvcHRpb25zPzogVCk6IE9ic2VydmFibGU8VG9hc3Rlci5TdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93KG1lc3NhZ2UsIHRpdGxlLCAnc3VjY2VzcycsIG9wdGlvbnMpO1xuICB9XG5cbiAgd2FybihtZXNzYWdlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBUKTogT2JzZXJ2YWJsZTxUb2FzdGVyLlN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLnNob3cobWVzc2FnZSwgdGl0bGUsICd3YXJuJywgb3B0aW9ucyk7XG4gIH1cblxuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBUKTogT2JzZXJ2YWJsZTxUb2FzdGVyLlN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLnNob3cobWVzc2FnZSwgdGl0bGUsICdlcnJvcicsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNob3cobWVzc2FnZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBzZXZlcml0eTogVG9hc3Rlci5TZXZlcml0eSwgb3B0aW9ucz86IFQpOiBPYnNlcnZhYmxlPFRvYXN0ZXIuU3RhdHVzPiB7XG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5jbGVhcih0aGlzLmtleSk7XG5cbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICBzZXZlcml0eSxcbiAgICAgIGRldGFpbDogbWVzc2FnZSB8fCAnJyxcbiAgICAgIHN1bW1hcnk6IHRpdGxlIHx8ICcnLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAuLi4odHlwZW9mIChvcHRpb25zIHx8ICh7fSBhcyBhbnkpKS5zdGlja3kgPT09ICd1bmRlZmluZWQnICYmIHsgc3RpY2t5OiB0aGlzLnN0aWNreSB9KSxcbiAgICB9KTtcbiAgICB0aGlzLnN0YXR1cyQgPSBuZXcgU3ViamVjdDxUb2FzdGVyLlN0YXR1cz4oKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMkO1xuICB9XG5cbiAgY2xlYXIoc3RhdHVzPzogVG9hc3Rlci5TdGF0dXMpIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNsZWFyKHRoaXMua2V5KTtcbiAgICB0aGlzLnN0YXR1cyQubmV4dChzdGF0dXMgfHwgVG9hc3Rlci5TdGF0dXMuZGlzbWlzcyk7XG4gICAgdGhpcy5zdGF0dXMkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/animations/collapse.animations.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/animations/collapse.animations.js new file mode 100644 index 0000000000..abc0d6ac72 --- /dev/null +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/animations/collapse.animations.js @@ -0,0 +1,18 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { trigger, state, style, transition, animate } from '@angular/animations'; +/** @type {?} */ +export const collapse = trigger('collapse', [ + state('open', style({ + height: '*', + overflow: 'hidden', + })), + state('close', style({ + height: '0px', + overflow: 'hidden', + })), + transition(`open <=> close`, animate('{{duration}}ms'), { params: { duration: '350' } }), +]); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UuYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2FuaW1hdGlvbnMvY29sbGFwc2UuYW5pbWF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFakYsTUFBTSxPQUFPLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFO0lBQzFDLEtBQUssQ0FDSCxNQUFNLEVBQ04sS0FBSyxDQUFDO1FBQ0osTUFBTSxFQUFFLEdBQUc7UUFDWCxRQUFRLEVBQUUsUUFBUTtLQUNuQixDQUFDLENBQ0g7SUFDRCxLQUFLLENBQ0gsT0FBTyxFQUNQLEtBQUssQ0FBQztRQUNKLE1BQU0sRUFBRSxLQUFLO1FBQ2IsUUFBUSxFQUFFLFFBQVE7S0FDbkIsQ0FBQyxDQUNIO0lBQ0QsVUFBVSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Q0FDekYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyaWdnZXIsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgYW5pbWF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgY29sbGFwc2UgPSB0cmlnZ2VyKCdjb2xsYXBzZScsIFtcbiAgc3RhdGUoXG4gICAgJ29wZW4nLFxuICAgIHN0eWxlKHtcbiAgICAgIGhlaWdodDogJyonLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIH0pLFxuICApLFxuICBzdGF0ZShcbiAgICAnY2xvc2UnLFxuICAgIHN0eWxlKHtcbiAgICAgIGhlaWdodDogJzBweCcsXG4gICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgfSksXG4gICksXG4gIHRyYW5zaXRpb24oYG9wZW4gPD0+IGNsb3NlYCwgYW5pbWF0ZSgne3tkdXJhdGlvbn19bXMnKSwgeyBwYXJhbXM6IHsgZHVyYXRpb246ICczNTAnIH0gfSksXG5dKTtcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/animations/fade.animations.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/animations/fade.animations.js index 7b11917a61..707063cd75 100644 --- a/npm/ng-packs/dist/theme-shared/esm2015/lib/animations/fade.animations.js +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/animations/fade.animations.js @@ -9,4 +9,16 @@ export const fade = trigger('fade', [ transition(':enter', [style({ opacity: 0 }), animate(250)]), transition(':leave', animate(250, style({ opacity: 0 }))), ]); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFkZS5hbmltYXRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvYW5pbWF0aW9ucy9mYWRlLmFuaW1hdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRWpGLE1BQU0sT0FBTyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRTtJQUNsQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztDQUMxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBmYWRlID0gdHJpZ2dlcignZmFkZScsIFtcbiAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxuICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbc3R5bGUoeyBvcGFjaXR5OiAwIH0pLCBhbmltYXRlKDI1MCldKSxcbiAgdHJhbnNpdGlvbignOmxlYXZlJywgYW5pbWF0ZSgyNTAsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSkpLFxuXSk7XG4iXX0= \ No newline at end of file +/** @type {?} */ +export const fadeWithStates = trigger('fadeInOut', [ + state('out', style({ opacity: 0 })), + state('in', style({ opacity: 1 })), + transition('in <=> out', [animate(250)]), +]); +/** @type {?} */ +export const fadeIn = trigger('fadeIn', [ + state('*', style({ opacity: 1 })), + transition('* => *', [style({ opacity: 0 }), animate(250)]), + transition(':enter', [style({ opacity: 0 }), animate(250)]), +]); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFkZS5hbmltYXRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvYW5pbWF0aW9ucy9mYWRlLmFuaW1hdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRWpGLE1BQU0sT0FBTyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRTtJQUNsQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztDQUMxRCxDQUFDOztBQUVGLE1BQU0sT0FBTyxjQUFjLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRTtJQUNqRCxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0NBQ3pDLENBQUM7O0FBRUYsTUFBTSxPQUFPLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFO0lBQ3RDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNELFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztDQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBmYWRlID0gdHJpZ2dlcignZmFkZScsIFtcbiAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxuICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbc3R5bGUoeyBvcGFjaXR5OiAwIH0pLCBhbmltYXRlKDI1MCldKSxcbiAgdHJhbnNpdGlvbignOmxlYXZlJywgYW5pbWF0ZSgyNTAsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSkpLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBmYWRlV2l0aFN0YXRlcyA9IHRyaWdnZXIoJ2ZhZGVJbk91dCcsIFtcbiAgc3RhdGUoJ291dCcsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSksXG4gIHN0YXRlKCdpbicsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSksXG4gIHRyYW5zaXRpb24oJ2luIDw9PiBvdXQnLCBbYW5pbWF0ZSgyNTApXSksXG5dKTtcblxuZXhwb3J0IGNvbnN0IGZhZGVJbiA9IHRyaWdnZXIoJ2ZhZGVJbicsIFtcbiAgc3RhdGUoJyonLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxuICB0cmFuc2l0aW9uKCcqID0+IConLCBbc3R5bGUoeyBvcGFjaXR5OiAwIH0pLCBhbmltYXRlKDI1MCldKSxcbiAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogMCB9KSwgYW5pbWF0ZSgyNTApXSksXG5dKTtcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/animations/index.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/animations/index.js index 56c7f53734..df40701f78 100644 --- a/npm/ng-packs/dist/theme-shared/esm2015/lib/animations/index.js +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/animations/index.js @@ -2,6 +2,7 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { fade } from './fade.animations'; +export { collapse } from './collapse.animations'; +export { fade, fadeWithStates, fadeIn } from './fade.animations'; export { slideFromBottom } from './slide.animations'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9hbmltYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxxQkFBYyxtQkFBbUIsQ0FBQztBQUNsQyxnQ0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmFkZS5hbmltYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc2xpZGUuYW5pbWF0aW9ucyc7XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9hbmltYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx5QkFBYyx1QkFBdUIsQ0FBQztBQUN0Qyw2Q0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxnQ0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29sbGFwc2UuYW5pbWF0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2ZhZGUuYW5pbWF0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3NsaWRlLmFuaW1hdGlvbnMnO1xuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/components/button/button.component.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/button/button.component.js index e9055e40cd..19b1e9de49 100644 --- a/npm/ng-packs/dist/theme-shared/esm2015/lib/components/button/button.component.js +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/button/button.component.js @@ -14,7 +14,7 @@ export class ButtonComponent { * @return {?} */ get icon() { - return `${this.loading ? 'fa fa-spin fa-spinner' : this.iconClass || 'd-none'}`; + return `${this.loading ? 'fa fa-pulse fa-spinner' : this.iconClass || 'd-none'}`; } } ButtonComponent.decorators = [ @@ -46,4 +46,4 @@ if (false) { /** @type {?} */ ButtonComponent.prototype.disabled; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVWpELE1BQU0sT0FBTyxlQUFlO0lBUjVCO1FBVUUsZ0JBQVcsR0FBVyxpQkFBaUIsQ0FBQztRQUd4QyxTQUFJLEdBQVcsUUFBUSxDQUFDO1FBTXhCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFHekIsYUFBUSxHQUFZLEtBQUssQ0FBQztJQUs1QixDQUFDOzs7O0lBSEMsSUFBSSxJQUFJO1FBQ04sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBQ2xGLENBQUM7OztZQTFCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFFBQVEsRUFBRTs7OztHQUlUO2FBQ0Y7OzswQkFFRSxLQUFLO21CQUdMLEtBQUs7d0JBR0wsS0FBSztzQkFHTCxLQUFLO3VCQUdMLEtBQUs7Ozs7SUFaTixzQ0FDd0M7O0lBRXhDLCtCQUN3Qjs7SUFFeEIsb0NBQ2tCOztJQUVsQixrQ0FDeUI7O0lBRXpCLG1DQUMwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvbiBbYXR0ci50eXBlXT1cInR5cGVcIiBbbmdDbGFzc109XCJidXR0b25DbGFzc1wiIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGRpc2FibGVkXCI+XG4gICAgICA8aSBbbmdDbGFzc109XCJpY29uXCIgY2xhc3M9XCJtci0xXCI+PC9pPjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2J1dHRvbj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgYnV0dG9uQ2xhc3M6IHN0cmluZyA9ICdidG4gYnRuLXByaW1hcnknO1xuXG4gIEBJbnB1dCgpXG4gIHR5cGU6IHN0cmluZyA9ICdidXR0b24nO1xuXG4gIEBJbnB1dCgpXG4gIGljb25DbGFzczogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMubG9hZGluZyA/ICdmYSBmYS1zcGluIGZhLXNwaW5uZXInIDogdGhpcy5pY29uQ2xhc3MgfHwgJ2Qtbm9uZSd9YDtcbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVWpELE1BQU0sT0FBTyxlQUFlO0lBUjVCO1FBVUUsZ0JBQVcsR0FBVyxpQkFBaUIsQ0FBQztRQUd4QyxTQUFJLEdBQVcsUUFBUSxDQUFDO1FBTXhCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFHekIsYUFBUSxHQUFZLEtBQUssQ0FBQztJQUs1QixDQUFDOzs7O0lBSEMsSUFBSSxJQUFJO1FBQ04sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBQ25GLENBQUM7OztZQTFCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFFBQVEsRUFBRTs7OztHQUlUO2FBQ0Y7OzswQkFFRSxLQUFLO21CQUdMLEtBQUs7d0JBR0wsS0FBSztzQkFHTCxLQUFLO3VCQUdMLEtBQUs7Ozs7SUFaTixzQ0FDd0M7O0lBRXhDLCtCQUN3Qjs7SUFFeEIsb0NBQ2tCOztJQUVsQixrQ0FDeUI7O0lBRXpCLG1DQUMwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvbiBbYXR0ci50eXBlXT1cInR5cGVcIiBbbmdDbGFzc109XCJidXR0b25DbGFzc1wiIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGRpc2FibGVkXCI+XG4gICAgICA8aSBbbmdDbGFzc109XCJpY29uXCIgY2xhc3M9XCJtci0xXCI+PC9pPjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2J1dHRvbj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgYnV0dG9uQ2xhc3M6IHN0cmluZyA9ICdidG4gYnRuLXByaW1hcnknO1xuXG4gIEBJbnB1dCgpXG4gIHR5cGU6IHN0cmluZyA9ICdidXR0b24nO1xuXG4gIEBJbnB1dCgpXG4gIGljb25DbGFzczogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMubG9hZGluZyA/ICdmYSBmYS1wdWxzZSBmYS1zcGlubmVyJyA6IHRoaXMuaWNvbkNsYXNzIHx8ICdkLW5vbmUnfWA7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/components/change-password/change-password.component.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/change-password/change-password.component.js index 3a7eb6552d..4c69dcbd98 100644 --- a/npm/ng-packs/dist/theme-shared/esm2015/lib/components/change-password/change-password.component.js +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/change-password/change-password.component.js @@ -114,7 +114,7 @@ export class ChangePasswordComponent { ChangePasswordComponent.decorators = [ { type: Component, args: [{ selector: 'abp-change-password', - template: "\n \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n" + template: "\n \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n" }] } ]; /** @nocollapse */ @@ -158,4 +158,4 @@ if (false) { */ ChangePasswordComponent.prototype.toasterService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztNQUUxRCxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVO0FBTTFDLE1BQU0sT0FBTyx1QkFBdUI7Ozs7OztJQXVCbEMsWUFBb0IsRUFBZSxFQUFVLEtBQVksRUFBVSxjQUE4QjtRQUE3RSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVRqRyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFPNUMsY0FBUyxHQUFZLEtBQUssQ0FBQztJQUV5RSxDQUFDOzs7O0lBcEJyRyxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FB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Q29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VQYXNzd29yZCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvbXBhcmVQYXNzd29yZHMgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9hc3Rlci5zZXJ2aWNlJztcblxuY29uc3QgeyBtaW5MZW5ndGgsIHJlcXVpcmVkIH0gPSBWYWxpZGF0b3JzO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtY2hhbmdlLXBhc3N3b3JkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIENoYW5nZVBhc3N3b3JkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcm90ZWN0ZWQgX3Zpc2libGU7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbW9kYWxDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgdG9hc3RlclNlcnZpY2U6IFRvYXN0ZXJTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoXG4gICAgICB7XG4gICAgICAgIHBhc3N3b3JkOiBbJycsIHJlcXVpcmVkXSxcbiAgICAgICAgbmV3UGFzc3dvcmQ6IFsnJywgcmVxdWlyZWRdLFxuICAgICAgICByZXBlYXROZXdQYXNzd29yZDogWycnLCByZXF1aXJlZF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWxpZGF0b3JzOiBbY29tcGFyZVBhc3N3b3JkcyhbJ25ld1Bhc3N3b3JkJywgJ3JlcGVhdE5ld1Bhc3N3b3JkJ10pXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIG9uU3VibWl0KCkge1xuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xuICAgIHRoaXMubW9kYWxCdXN5ID0gdHJ1ZTtcblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChcbiAgICAgICAgbmV3IENoYW5nZVBhc3N3b3JkKHtcbiAgICAgICAgICBjdXJyZW50UGFzc3dvcmQ6IHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykudmFsdWUsXG4gICAgICAgICAgbmV3UGFzc3dvcmQ6IHRoaXMuZm9ybS5nZXQoJ25ld1Bhc3N3b3JkJykudmFsdWUsXG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm1vZGFsQnVzeSA9IGZhbHNlO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3Ioc25xKCgpID0+IGVyci5lcnJvci5lcnJvci5tZXNzYWdlLCAnQWJwQWNjb3VudDo6RGVmYXVsdEVycm9yTWVzc2FnZScpLCAnRXJyb3InLCB7XG4gICAgICAgICAgICBsaWZlOiA3MDAwLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgdmlzaWJsZSB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF2aXNpYmxlKSByZXR1cm47XG5cbiAgICBpZiAodmlzaWJsZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgfSBlbHNlIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSA9PT0gZmFsc2UgJiYgdGhpcy52aXNpYmxlKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztNQUUxRCxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVO0FBTTFDLE1BQU0sT0FBTyx1QkFBdUI7Ozs7OztJQXVCbEMsWUFBb0IsRUFBZSxFQUFVLEtBQVksRUFBVSxjQUE4QjtRQUE3RSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVRqRyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFPNUMsY0FBUyxHQUFZLEtBQUssQ0FBQztJQUV5RSxDQUFDOzs7O0lBcEJyRyxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Ozs7SUFjRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FDdkI7WUFDRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDO1lBQ3hCLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUM7WUFDM0IsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDO1NBQ2xDLEVBQ0Q7WUFDRSxVQUFVLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7U0FDckUsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7OztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsSUFBSSxDQUFDLEtBQUs7YUFDUCxRQUFRLENBQ1AsSUFBSSxjQUFjLENBQUM7WUFDakIsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUs7WUFDaEQsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUs7U0FDaEQsQ0FBQyxDQUNIO2FBQ0EsSUFBSSxDQUNILFFBQVE7OztRQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsRUFBQyxDQUNIO2FBQ0EsU0FBUyxDQUFDO1lBQ1QsSUFBSTs7O1lBQUUsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BCLENBQUMsQ0FBQTtZQUNELEtBQUs7Ozs7WUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHOzs7Z0JBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFFLGlDQUFpQyxDQUFDLEVBQUUsT0FBTyxFQUFFO29CQUN4RyxJQUFJLEVBQUUsSUFBSTtpQkFDWCxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUE7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDOzs7O0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFpQjtRQUNwQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFckIsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjthQUFNLElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztTQUN0QjtJQUNILENBQUM7OztZQW5GRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0Isd3lEQUErQzthQUNoRDs7OztZQVpRLFdBQVc7WUFFWCxLQUFLO1lBR0wsY0FBYzs7O3NCQVdwQixLQUFLOzRCQVVMLE1BQU07MkJBR04sU0FBUyxTQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Ozs7Ozs7SUFmNUMsMkNBQW1COztJQVluQixnREFDNEM7O0lBRTVDLCtDQUMrQjs7SUFFL0IsdUNBQWdCOztJQUVoQiw0Q0FBMkI7Ozs7O0lBRWYscUNBQXVCOzs7OztJQUFFLHdDQUFvQjs7Ozs7SUFBRSxpREFBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VQYXNzd29yZCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvbXBhcmVQYXNzd29yZHMgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgc25xIGZyb20gJ3NucSc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9hc3Rlci5zZXJ2aWNlJztcblxuY29uc3QgeyBtaW5MZW5ndGgsIHJlcXVpcmVkIH0gPSBWYWxpZGF0b3JzO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtY2hhbmdlLXBhc3N3b3JkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIENoYW5nZVBhc3N3b3JkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcm90ZWN0ZWQgX3Zpc2libGU7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbW9kYWxDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgdG9hc3RlclNlcnZpY2U6IFRvYXN0ZXJTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoXG4gICAgICB7XG4gICAgICAgIHBhc3N3b3JkOiBbJycsIHJlcXVpcmVkXSxcbiAgICAgICAgbmV3UGFzc3dvcmQ6IFsnJywgcmVxdWlyZWRdLFxuICAgICAgICByZXBlYXROZXdQYXNzd29yZDogWycnLCByZXF1aXJlZF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWxpZGF0b3JzOiBbY29tcGFyZVBhc3N3b3JkcyhbJ25ld1Bhc3N3b3JkJywgJ3JlcGVhdE5ld1Bhc3N3b3JkJ10pXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIG9uU3VibWl0KCkge1xuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xuICAgIHRoaXMubW9kYWxCdXN5ID0gdHJ1ZTtcblxuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChcbiAgICAgICAgbmV3IENoYW5nZVBhc3N3b3JkKHtcbiAgICAgICAgICBjdXJyZW50UGFzc3dvcmQ6IHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykudmFsdWUsXG4gICAgICAgICAgbmV3UGFzc3dvcmQ6IHRoaXMuZm9ybS5nZXQoJ25ld1Bhc3N3b3JkJykudmFsdWUsXG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm1vZGFsQnVzeSA9IGZhbHNlO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3Ioc25xKCgpID0+IGVyci5lcnJvci5lcnJvci5tZXNzYWdlLCAnQWJwQWNjb3VudDo6RGVmYXVsdEVycm9yTWVzc2FnZScpLCAnRXJyb3InLCB7XG4gICAgICAgICAgICBsaWZlOiA3MDAwLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgdmlzaWJsZSB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF2aXNpYmxlKSByZXR1cm47XG5cbiAgICBpZiAodmlzaWJsZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgfSBlbHNlIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSA9PT0gZmFsc2UgJiYgdGhpcy52aXNpYmxlKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/components/chart/chart.component.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/chart/chart.component.js new file mode 100644 index 0000000000..1532d96f68 --- /dev/null +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/chart/chart.component.js @@ -0,0 +1,206 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component, ElementRef, EventEmitter, Input, Output, ChangeDetectorRef, } from '@angular/core'; +import { BehaviorSubject } from 'rxjs'; +import { chartJsLoaded$ } from '../../utils/widget-utils'; +export class ChartComponent { + /** + * @param {?} el + * @param {?} cdRef + */ + constructor(el, cdRef) { + this.el = el; + this.cdRef = cdRef; + this.options = {}; + this.plugins = []; + this.responsive = true; + this.onDataSelect = new EventEmitter(); + this.initialized = new BehaviorSubject(this); + this.onCanvasClick = (/** + * @param {?} event + * @return {?} + */ + event => { + if (this.chart) { + /** @type {?} */ + let element = this.chart.getElementAtEvent(event); + /** @type {?} */ + let dataset = this.chart.getDatasetAtEvent(event); + if (element && element[0] && dataset) { + this.onDataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset }); + } + } + }); + this.initChart = (/** + * @return {?} + */ + () => { + /** @type {?} */ + let opts = this.options || {}; + opts.responsive = this.responsive; + // allows chart to resize in responsive mode + if (opts.responsive && (this.height || this.width)) { + opts.maintainAspectRatio = false; + } + this.chart = new Chart(this.el.nativeElement.children[0].children[0], { + type: this.type, + data: this.data, + options: this.options, + plugins: this.plugins, + }); + this.cdRef.detectChanges(); + }); + this.generateLegend = (/** + * @return {?} + */ + () => { + if (this.chart) { + return this.chart.generateLegend(); + } + }); + this.refresh = (/** + * @return {?} + */ + () => { + if (this.chart) { + this.chart.update(); + this.cdRef.detectChanges(); + } + }); + this.reinit = (/** + * @return {?} + */ + () => { + if (this.chart) { + this.chart.destroy(); + this.initChart(); + } + }); + } + /** + * @return {?} + */ + get data() { + return this._data; + } + /** + * @param {?} val + * @return {?} + */ + set data(val) { + this._data = val; + this.reinit(); + } + /** + * @return {?} + */ + get canvas() { + return this.el.nativeElement.children[0].children[0]; + } + /** + * @return {?} + */ + get base64Image() { + return this.chart.toBase64Image(); + } + /** + * @return {?} + */ + ngAfterViewInit() { + chartJsLoaded$.subscribe((/** + * @return {?} + */ + () => { + try { + Chart; + } + catch (error) { + console.error(`Chart is not found. Import the Chart from app.module like shown below: + import('chart.js'); + `); + return; + } + this.initChart(); + this._initialized = true; + })); + } + /** + * @return {?} + */ + ngOnDestroy() { + if (this.chart) { + this.chart.destroy(); + this._initialized = false; + this.chart = null; + } + } +} +ChartComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-chart', + template: "\n \n\n" + }] } +]; +/** @nocollapse */ +ChartComponent.ctorParameters = () => [ + { type: ElementRef }, + { type: ChangeDetectorRef } +]; +ChartComponent.propDecorators = { + type: [{ type: Input }], + options: [{ type: Input }], + plugins: [{ type: Input }], + width: [{ type: Input }], + height: [{ type: Input }], + responsive: [{ type: Input }], + onDataSelect: [{ type: Output }], + initialized: [{ type: Output }], + data: [{ type: Input }] +}; +if (false) { + /** @type {?} */ + ChartComponent.prototype.type; + /** @type {?} */ + ChartComponent.prototype.options; + /** @type {?} */ + ChartComponent.prototype.plugins; + /** @type {?} */ + ChartComponent.prototype.width; + /** @type {?} */ + ChartComponent.prototype.height; + /** @type {?} */ + ChartComponent.prototype.responsive; + /** @type {?} */ + ChartComponent.prototype.onDataSelect; + /** @type {?} */ + ChartComponent.prototype.initialized; + /** + * @type {?} + * @private + */ + ChartComponent.prototype._initialized; + /** @type {?} */ + ChartComponent.prototype._data; + /** @type {?} */ + ChartComponent.prototype.chart; + /** @type {?} */ + ChartComponent.prototype.onCanvasClick; + /** @type {?} */ + ChartComponent.prototype.initChart; + /** @type {?} */ + ChartComponent.prototype.generateLegend; + /** @type {?} */ + ChartComponent.prototype.refresh; + /** @type {?} */ + ChartComponent.prototype.reinit; + /** @type {?} */ + ChartComponent.prototype.el; + /** + * @type {?} + * @private + */ + ChartComponent.prototype.cdRef; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQU8xRCxNQUFNLE9BQU8sY0FBYzs7Ozs7SUF1QnpCLFlBQW1CLEVBQWMsRUFBVSxLQUF3QjtRQUFoRCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFwQjFELFlBQU8sR0FBUSxFQUFFLENBQUM7UUFFbEIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQU1wQixlQUFVLEdBQVksSUFBSSxDQUFDO1FBRTFCLGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFckQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQTJDbEQsa0JBQWE7Ozs7UUFBRyxLQUFLLENBQUMsRUFBRTtZQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7O29CQUNWLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQzs7b0JBQzdDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztnQkFDakQsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sRUFBRTtvQkFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFh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Q0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDbkI7SUFDSCxDQUFDOzs7WUFySEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQix3V0FBcUM7YUFDdEM7Ozs7WUFkQyxVQUFVO1lBS1YsaUJBQWlCOzs7bUJBV2hCLEtBQUs7c0JBRUwsS0FBSztzQkFFTCxLQUFLO29CQUVMLEtBQUs7cUJBRUwsS0FBSzt5QkFFTCxLQUFLOzJCQUVMLE1BQU07MEJBRU4sTUFBTTttQkFVTixLQUFLOzs7O0lBeEJOLDhCQUFzQjs7SUFFdEIsaUNBQTJCOztJQUUzQixpQ0FBNkI7O0lBRTdCLCtCQUF1Qjs7SUFFdkIsZ0NBQXdCOztJQUV4QixvQ0FBb0M7O0lBRXBDLHNDQUErRDs7SUFFL0QscUNBQWtEOzs7OztJQUVsRCxzQ0FBOEI7O0lBRTlCLCtCQUFXOztJQUVYLCtCQUFXOztJQXFDWCx1Q0FRRTs7SUFFRixtQ0FpQkU7O0lBRUYsd0NBSUU7O0lBRUYsaUNBS0U7O0lBRUYsZ0NBS0U7O0lBbEZVLDRCQUFxQjs7Ozs7SUFBRSwrQkFBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNoYXJ0SnNMb2FkZWQkIH0gZnJvbSAnLi4vLi4vdXRpbHMvd2lkZ2V0LXV0aWxzJztcbmRlY2xhcmUgY29uc3QgQ2hhcnQ6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0eXBlOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgb3B0aW9uczogYW55ID0ge307XG5cbiAgQElucHV0KCkgcGx1Z2luczogYW55W10gPSBbXTtcblxuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHJlc3BvbnNpdmU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBvbkRhdGFTZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBpbml0aWFsaXplZCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcyk7XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG5cbiAgX2RhdGE6IGFueTtcblxuICBjaGFydDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgQElucHV0KCkgZ2V0IGRhdGEoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgfVxuXG4gIHNldCBkYXRhKHZhbDogYW55KSB7XG4gICAgdGhpcy5fZGF0YSA9IHZhbDtcbiAgICB0aGlzLnJlaW5pdCgpO1xuICB9XG5cbiAgZ2V0IGNhbnZhcygpIHtcbiAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdO1xuICB9XG5cbiAgZ2V0IGJhc2U2NEltYWdlKCkge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0LnRvQmFzZTY0SW1hZ2UoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjaGFydEpzTG9hZGVkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgQ2hhcnQ7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBDaGFydCBpcyBub3QgZm91bmQuIEltcG9ydCB0aGUgQ2hhcnQgZnJvbSBhcHAubW9kdWxlIGxpa2Ugc2hvd24gYmVsb3c6XG4gICAgICAgIGltcG9ydCgnY2hhcnQuanMnKTtcbiAgICAgICAgYCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5pbml0Q2hhcnQoKTtcbiAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2FudmFzQ2xpY2sgPSBldmVudCA9PiB7XG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgIGxldCBlbGVtZW50ID0gdGhpcy5jaGFydC5nZXRFbGVtZW50QXRFdmVudChldmVudCk7XG4gICAgICBsZXQgZGF0YXNldCA9IHRoaXMuY2hhcnQuZ2V0RGF0YXNldEF0RXZlbnQoZXZlbnQpO1xuICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudFswXSAmJiBkYXRhc2V0KSB7XG4gICAgICAgIHRoaXMub25EYXRhU2VsZWN0LmVtaXQoeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgZWxlbWVudDogZWxlbWVudFswXSwgZGF0YXNldDogZGF0YXNldCB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgaW5pdENoYXJ0ID0gKCkgPT4ge1xuICAgIGxldCBvcHRzID0gdGhpcy5vcHRpb25zIHx8IHt9O1xuICAgIG9wdHMucmVzcG9uc2l2ZSA9IHRoaXMucmVzcG9uc2l2ZTtcblxuICAgIC8vIGFsbG93cyBjaGFydCB0byByZXNpemUgaW4gcmVzcG9uc2l2ZSBtb2RlXG4gICAgaWYgKG9wdHMucmVzcG9uc2l2ZSAmJiAodGhpcy5oZWlnaHQgfHwgdGhpcy53aWR0aCkpIHtcbiAgICAgIG9wdHMubWFpbnRhaW5Bc3BlY3RSYXRpbyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLCB7XG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICBwbHVnaW5zOiB0aGlzLnBsdWdpbnMsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfTtcblxuICBnZW5lcmF0ZUxlZ2VuZCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5jaGFydCkge1xuICAgICAgcmV0dXJuIHRoaXMuY2hhcnQuZ2VuZXJhdGVMZWdlbmQoKTtcbiAgICB9XG4gIH07XG5cbiAgcmVmcmVzaCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5jaGFydCkge1xuICAgICAgdGhpcy5jaGFydC51cGRhdGUoKTtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfTtcblxuICByZWluaXQgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgIHRoaXMuY2hhcnQuZGVzdHJveSgpO1xuICAgICAgdGhpcy5pbml0Q2hhcnQoKTtcbiAgICB9XG4gIH07XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgIHRoaXMuY2hhcnQuZGVzdHJveSgpO1xuICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2hhcnQgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/components/confirmation/confirmation.component.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/confirmation/confirmation.component.js index 1fc497334a..0ba405c862 100644 --- a/npm/ng-packs/dist/theme-shared/esm2015/lib/components/confirmation/confirmation.component.js +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/confirmation/confirmation.component.js @@ -32,26 +32,25 @@ ConfirmationComponent.decorators = [ (onClose)="close(dismiss)" [modal]="true" [baseZIndex]="1000" - styleClass="" + styleClass="abp-confirm" > - \n \n\n \n\n" + template: "\n \n
    \n
    \n \n\n \n
    \n \n \n
    \n
    \n \n
    \n \n \n\n \n\n" }] } ]; /** @nocollapse */ @@ -207,7 +216,9 @@ ModalComponent.propDecorators = { abpClose: [{ type: ContentChild, args: ['abpClose', { static: false, read: ElementRef },] }], abpSubmit: [{ type: ContentChild, args: [ButtonComponent, { static: false, read: ButtonComponent },] }], modalContent: [{ type: ViewChild, args: ['abpModalContent', { static: false },] }], - abpButtons: [{ type: ViewChildren, args: ['abp-button',] }] + abpButtons: [{ type: ViewChildren, args: ['abp-button',] }], + show: [{ type: Output }], + hide: [{ type: Output }] }; if (false) { /** @type {?} */ @@ -239,6 +250,10 @@ if (false) { /** @type {?} */ ModalComponent.prototype.abpButtons; /** @type {?} */ + ModalComponent.prototype.show; + /** @type {?} */ + ModalComponent.prototype.hide; + /** @type {?} */ ModalComponent.prototype._visible; /** @type {?} */ ModalComponent.prototype._busy; @@ -284,4 +299,4 @@ function hasNgDirty(nodes) { */ node => (node.className || '').indexOf('ng-dirty') > -1)) > -1; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O01BSXZELGlCQUFpQixHQUFHLEdBQUc7QUFNN0IsTUFBTSxPQUFPLGNBQWM7Ozs7O0lBbUZ6QixZQUFvQixRQUFtQixFQUFVLG1CQUF3QztRQUFyRSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXhDaEYsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXhCLFNBQUksR0FBYyxJQUFJLENBQUM7UUFNdEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTVDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBZ0IxQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFFdkIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQix1QkFBa0IsR0FB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RSxpQ0FBc0U7O0lBRXRFLG1DQUEwRTs7SUFFMUUsa0NBQXlGOztJQUV6RixtQ0FBb0c7O0lBRXBHLHNDQUEwRTs7SUFFMUUsb0NBQXVDOztJQUV2QyxrQ0FBMEI7O0lBRTFCLCtCQUF1Qjs7SUFFdkIsbUNBQTJCOztJQUUzQiw0Q0FBb0M7O0lBRXBDLGtDQUEwQjs7SUFFMUIsa0NBQStCOzs7OztJQUVuQixrQ0FBMkI7Ozs7O0lBQUUsNkNBQWdEOzs7Ozs7QUFzRTNGLFNBQVMsWUFBWSxDQUFDLEtBQWU7SUFDbkMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU07Ozs7O0lBQzdCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQzNHLEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQzs7Ozs7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFvQjtJQUN0QyxPQUFPLEtBQUssQ0FBQyxTQUFTOzs7O0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlLCB0YWtlVW50aWwsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRvYXN0ZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdG9hc3Rlcic7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBNb2RhbFNpemUgPSAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnO1xuXG5jb25zdCBBTklNQVRJT05fVElNRU9VVCA9IDIwMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykgcmV0dXJuO1xuXG4gICAgaWYgKCF0aGlzLm1vZGFsQ29udGVudCkge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2hvd01vZGFsID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsdWU7XG4gICAgICAgIH0sIDApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zZXRWaXNpYmxlKHZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2FibGUgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5tb2RhbENvbnRlbnQubmF0aXZlRWxlbWVudCwgJ2ZhZGUtb3V0LXRvcCcpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcbiAgICAgIH0sIEFOSU1BVElPTl9USU1FT1VUIC0gMTApO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBidXN5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9idXN5O1xuICB9XG4gIHNldCBidXN5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuYWJwU3VibWl0ICYmIHRoaXMuYWJwU3VibWl0IGluc3RhbmNlb2YgQnV0dG9uQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLmFicFN1Ym1pdC5sb2FkaW5nID0gdmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5fYnVzeSA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KCkgY2VudGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBtb2RhbENsYXNzOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSBzaXplOiBNb2RhbFNpemUgPSAnbGcnO1xuXG4gIEBJbnB1dCgpIGhlaWdodDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIG1pbkhlaWdodDogbnVtYmVyO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBPdXRwdXQoKSBpbml0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FicEhlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBIZWFkZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgnYWJwQm9keScsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBCb2R5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FicEZvb3RlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBGb290ZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgnYWJwQ2xvc2UnLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IEVsZW1lbnRSZWYgfSkgYWJwQ2xvc2U6IEVsZW1lbnRSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKEJ1dHRvbkNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBCdXR0b25Db21wb25lbnQgfSkgYWJwU3VibWl0OiBCdXR0b25Db21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnYWJwTW9kYWxDb250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIG1vZGFsQ29udGVudDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkcmVuKCdhYnAtYnV0dG9uJykgYWJwQnV0dG9ucztcblxuICBfdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIF9idXN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgc2hvd01vZGFsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgaXNPcGVuQ29uZmlybWF0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY2xvc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICBzZXRWaXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLnNob3dNb2RhbCA9IHZhbHVlO1xuXG4gICAgdmFsdWVcbiAgICAgID8gdGltZXIoQU5JTUFUSU9OX1RJTUVPVVQgKyAxMDApXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKF8gPT4gKHRoaXMuY2xvc2FibGUgPSB0cnVlKSlcbiAgICAgIDogKHRoaXMuY2xvc2FibGUgPSBmYWxzZSk7XG4gIH1cblxuICBsaXN0ZW4oKSB7XG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5dXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDE1MCksXG4gICAgICAgIGZpbHRlcigoa2V5OiBLZXlib2FyZEV2ZW50KSA9PiBrZXkgJiYga2V5LmNvZGUgPT09ICdFc2NhcGUnICYmIHRoaXMuY2xvc2FibGUpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShfID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5hYnBDbG9zZSkgcmV0dXJuO1xuICAgICAgZnJvbUV2ZW50KHRoaXMuYWJwQ2xvc2UubmF0aXZlRWxlbWVudCwgJ2NsaWNrJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgIGZpbHRlcigoKSA9PiAhISh0aGlzLmNsb3NhYmxlICYmIHRoaXMubW9kYWxDb250ZW50KSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICAgIH0sIDApO1xuXG4gICAgdGhpcy5pbml0LmVtaXQoKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGlmICghdGhpcy5jbG9zYWJsZSB8fCB0aGlzLmJ1c3kpIHJldHVybjtcblxuICAgIGNvbnN0IG5vZGVzID0gZ2V0RmxhdE5vZGVzKFxuICAgICAgKHRoaXMubW9kYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignI2FicC1tb2RhbC1ib2R5JykgYXMgSFRNTEVsZW1lbnQpLmNoaWxkTm9kZXMsXG4gICAgKTtcblxuICAgIGlmIChoYXNOZ0RpcnR5KG5vZGVzKSkge1xuICAgICAgaWYgKHRoaXMuaXNPcGVuQ29uZmlybWF0aW9uKSByZXR1cm47XG5cbiAgICAgIHRoaXMuaXNPcGVuQ29uZmlybWF0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxuICAgICAgICAud2FybignQWJwQWNjb3VudDo6QXJlWW91U3VyZVlvdVdhbnRUb0NhbmNlbEVkaXRpbmdXYXJuaW5nTWVzc2FnZScsICdBYnBBY2NvdW50OjpBcmVZb3VTdXJlJylcbiAgICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBUb2FzdGVyLlN0YXR1cykgPT4ge1xuICAgICAgICAgIHRpbWVyKEFOSU1BVElPTl9USU1FT1VUKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc09wZW5Db25maXJtYXRpb24gPSBmYWxzZTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChzdGF0dXMgPT09IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm0pIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRGbGF0Tm9kZXMobm9kZXM6IE5vZGVMaXN0KTogSFRNTEVsZW1lbnRbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKG5vZGVzKS5yZWR1Y2UoXG4gICAgKGFjYywgdmFsKSA9PiBbLi4uYWNjLCAuLi4odmFsLmNoaWxkTm9kZXMgJiYgdmFsLmNoaWxkTm9kZXMubGVuZ3RoID8gZ2V0RmxhdE5vZGVzKHZhbC5jaGlsZE5vZGVzKSA6IFt2YWxdKV0sXG4gICAgW10sXG4gICk7XG59XG5cbmZ1bmN0aW9uIGhhc05nRGlydHkobm9kZXM6IEhUTUxFbGVtZW50W10pIHtcbiAgcmV0dXJuIG5vZGVzLmZpbmRJbmRleChub2RlID0+IChub2RlLmNsYXNzTmFtZSB8fCAnJykuaW5kZXhPZignbmctZGlydHknKSA+IC0xKSA+IC0xO1xufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O01BSXZELGlCQUFpQixHQUFHLEdBQUc7QUFNN0IsTUFBTSxPQUFPLGNBQWM7Ozs7O0lBeUZ6QixZQUFvQixRQUFtQixFQUFVLG1CQUF3QztRQUFyRSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQTlDaEYsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXhCLFNBQUksR0FBYyxJQUFJLENBQUM7UUFNdEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTVDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBaUIxQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUcxQixTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxQixhQUFRLEdBQVksS0FBSyxD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TyxLQUFLLENBQUMsU0FBUzs7OztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3ZGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZSwgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUb2FzdGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RvYXN0ZXInO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgTW9kYWxTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJztcblxuY29uc3QgQU5JTUFUSU9OX1RJTUVPVVQgPSAyMDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHJldHVybjtcblxuICAgIGlmICghdGhpcy5tb2RhbENvbnRlbnQpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNob3dNb2RhbCA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHZhbHVlO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0VmlzaWJsZSh2YWx1ZSk7XG4gICAgICB0aGlzLmxpc3RlbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsb3NhYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMubW9kYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQsICdmYWRlLW91dC10b3AnKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFZpc2libGUodmFsdWUpO1xuICAgICAgICB0aGlzLm5nT25EZXN0cm95KCk7XG4gICAgICB9LCBBTklNQVRJT05fVElNRU9VVCAtIDEwKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgYnVzeSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYnVzeTtcbiAgfVxuICBzZXQgYnVzeSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmFicFN1Ym1pdCAmJiB0aGlzLmFicFN1Ym1pdCBpbnN0YW5jZW9mIEJ1dHRvbkNvbXBvbmVudCkge1xuICAgICAgdGhpcy5hYnBTdWJtaXQubG9hZGluZyA9IHZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuX2J1c3kgPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIGNlbnRlcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbW9kYWxDbGFzczogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgc2l6ZTogTW9kYWxTaXplID0gJ2xnJztcblxuICBASW5wdXQoKSBoZWlnaHQ6IG51bWJlcjtcblxuICBASW5wdXQoKSBtaW5IZWlnaHQ6IG51bWJlcjtcblxuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAT3V0cHV0KCkgaW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkKCdhYnBIZWFkZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgYWJwSGVhZGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FicEJvZHknLCB7IHN0YXRpYzogZmFsc2UgfSkgYWJwQm9keTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKCdhYnBGb290ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgYWJwRm9vdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FicENsb3NlJywgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBFbGVtZW50UmVmIH0pIGFicENsb3NlOiBFbGVtZW50UmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZChCdXR0b25Db21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogQnV0dG9uQ29tcG9uZW50IH0pIGFicFN1Ym1pdDogQnV0dG9uQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ2FicE1vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBtb2RhbENvbnRlbnQ6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZHJlbignYWJwLWJ1dHRvbicpIGFicEJ1dHRvbnM7XG5cbiAgQE91dHB1dCgpXG4gIHNob3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIGhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgX3Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBfYnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNob3dNb2RhbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGlzT3BlbkNvbmZpcm1hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNsb3NhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICB9XG5cbiAgc2V0VmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5zaG93TW9kYWwgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGltZXIoQU5JTUFUSU9OX1RJTUVPVVQgKyAxMDApXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoXyA9PiAodGhpcy5jbG9zYWJsZSA9IHRydWUpKTtcblxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhkb2N1bWVudC5ib2R5LCAnbW9kYWwtb3BlbicpO1xuICAgICAgdGhpcy5zaG93LmVtaXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zYWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5LCAnbW9kYWwtb3BlbicpO1xuICAgICAgdGhpcy5oaWRlLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBsaXN0ZW4oKSB7XG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5dXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDE1MCksXG4gICAgICAgIGZpbHRlcigoa2V5OiBLZXlib2FyZEV2ZW50KSA9PiBrZXkgJiYga2V5LmNvZGUgPT09ICdFc2NhcGUnICYmIHRoaXMuY2xvc2FibGUpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShfID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5hYnBDbG9zZSkgcmV0dXJuO1xuICAgICAgZnJvbUV2ZW50KHRoaXMuYWJwQ2xvc2UubmF0aXZlRWxlbWVudCwgJ2NsaWNrJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgIGZpbHRlcigoKSA9PiAhISh0aGlzLmNsb3NhYmxlICYmIHRoaXMubW9kYWxDb250ZW50KSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICAgIH0sIDApO1xuXG4gICAgdGhpcy5pbml0LmVtaXQoKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGlmICghdGhpcy5jbG9zYWJsZSB8fCB0aGlzLmJ1c3kpIHJldHVybjtcblxuICAgIGNvbnN0IG5vZGVzID0gZ2V0RmxhdE5vZGVzKFxuICAgICAgKHRoaXMubW9kYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignI2FicC1tb2RhbC1ib2R5JykgYXMgSFRNTEVsZW1lbnQpLmNoaWxkTm9kZXMsXG4gICAgKTtcblxuICAgIGlmIChoYXNOZ0RpcnR5KG5vZGVzKSkge1xuICAgICAgaWYgKHRoaXMuaXNPcGVuQ29uZmlybWF0aW9uKSByZXR1cm47XG5cbiAgICAgIHRoaXMuaXNPcGVuQ29uZmlybWF0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxuICAgICAgICAud2FybignQWJwQWNjb3VudDo6QXJlWW91U3VyZVlvdVdhbnRUb0NhbmNlbEVkaXRpbmdXYXJuaW5nTWVzc2FnZScsICdBYnBBY2NvdW50OjpBcmVZb3VTdXJlJylcbiAgICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBUb2FzdGVyLlN0YXR1cykgPT4ge1xuICAgICAgICAgIHRpbWVyKEFOSU1BVElPTl9USU1FT1VUKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc09wZW5Db25maXJtYXRpb24gPSBmYWxzZTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChzdGF0dXMgPT09IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm0pIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRGbGF0Tm9kZXMobm9kZXM6IE5vZGVMaXN0KTogSFRNTEVsZW1lbnRbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKG5vZGVzKS5yZWR1Y2UoXG4gICAgKGFjYywgdmFsKSA9PiBbLi4uYWNjLCAuLi4odmFsLmNoaWxkTm9kZXMgJiYgdmFsLmNoaWxkTm9kZXMubGVuZ3RoID8gZ2V0RmxhdE5vZGVzKHZhbC5jaGlsZE5vZGVzKSA6IFt2YWxdKV0sXG4gICAgW10sXG4gICk7XG59XG5cbmZ1bmN0aW9uIGhhc05nRGlydHkobm9kZXM6IEhUTUxFbGVtZW50W10pIHtcbiAgcmV0dXJuIG5vZGVzLmZpbmRJbmRleChub2RlID0+IChub2RlLmNsYXNzTmFtZSB8fCAnJykuaW5kZXhPZignbmctZGlydHknKSA+IC0xKSA+IC0xO1xufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/components/profile/profile.component.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/profile/profile.component.js index e8924090e3..7c6c33c9ab 100644 --- a/npm/ng-packs/dist/theme-shared/esm2015/lib/components/profile/profile.component.js +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/profile/profile.component.js @@ -97,7 +97,7 @@ export class ProfileComponent { ProfileComponent.decorators = [ { type: Component, args: [{ selector: 'abp-profile', - template: "\n \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n" + template: "\n \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n" }] } ]; /** @nocollapse */ @@ -138,4 +138,4 @@ if (false) { */ ProfileComponent.prototype.store; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQVcsVUFBVSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7TUFFaEQsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVU7QUFNakQsTUFBTSxPQUFPLGdCQUFnQjs7Ozs7SUF1QjNCLFlBQW9CLEVBQWUsRUFBVSxLQUFZO1FBQXJDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBVHpELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQU81QyxjQUFTLEdBQVksS0FBSyxDQUFDO0lBRWlDLENBQUM7Ozs7SUFwQjdELElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDOzs7OztJQUVELElBQUksT0FBTyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQzs7OztJQWNELFNBQVM7UUFDUCxJQUFJLENBQUMsS0FBSzthQUNQLFFBQVEsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO2FBQzFCLElBQUksQ0FDSCxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUM3QixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1I7YUFDQSxTQUFTOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2dCQUN4QixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN4RCxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDekQsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDakQsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUMxRCxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUU7WUFDckUsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFpQjtRQUNwQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFckIsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjthQUFNLElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztTQUN0QjtJQUNILENBQUM7OztZQXZFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLDhqRUFBdUM7YUFDeEM7Ozs7WUFWUSxXQUFXO1lBQ0gsS0FBSzs7O3NCQWFuQixLQUFLOzRCQVVMLE1BQU07O0FBSVA7SUFEQyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztzQ0FDdEIsVUFBVTtrREFBbUI7Ozs7OztJQWhCdkMsb0NBQW1COztJQVluQix5Q0FDNEM7O0lBRTVDLG9DQUN1Qzs7SUFFdkMsZ0NBQWdCOztJQUVoQixxQ0FBMkI7Ozs7O0lBRWYsOEJBQXVCOzs7OztJQUFFLGlDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2ZpbGUsIEdldFByb2ZpbGUsIFByb2ZpbGVTdGF0ZSwgVXBkYXRlUHJvZmlsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCB7IG1heExlbmd0aCwgcmVxdWlyZWQsIGVtYWlsIH0gPSBWYWxpZGF0b3JzO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtcHJvZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9maWxlLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIHByb3RlY3RlZCBfdmlzaWJsZTtcblxuICBASW5wdXQoKVxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBTZWxlY3QoUHJvZmlsZVN0YXRlLmdldFByb2ZpbGUpXG4gIHByb2ZpbGUkOiBPYnNlcnZhYmxlPFByb2ZpbGUuUmVzcG9uc2U+O1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgYnVpbGRGb3JtKCkge1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgR2V0UHJvZmlsZSgpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMucHJvZmlsZSQpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoWywgcHJvZmlsZV0pID0+IHtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgdXNlck5hbWU6IFtwcm9maWxlLnVzZXJOYW1lLCBbcmVxdWlyZWQsIG1heExlbmd0aCgyNTYpXV0sXG4gICAgICAgICAgZW1haWw6IFtwcm9maWxlLmVtYWlsLCBbcmVxdWlyZWQsIGVtYWlsLCBtYXhMZW5ndGgoMjU2KV1dLFxuICAgICAgICAgIG5hbWU6IFtwcm9maWxlLm5hbWUgfHwgJycsIFttYXhMZW5ndGgoNjQpXV0sXG4gICAgICAgICAgc3VybmFtZTogW3Byb2ZpbGUuc3VybmFtZSB8fCAnJywgW21heExlbmd0aCg2NCldXSxcbiAgICAgICAgICBwaG9uZU51bWJlcjogW3Byb2ZpbGUucGhvbmVOdW1iZXIgfHwgJycsIFttYXhMZW5ndGgoMTYpXV0sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlUHJvZmlsZSh0aGlzLmZvcm0udmFsdWUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5idWlsZEZvcm0oKTtcbiAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyB2aXNpYmxlIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXZpc2libGUpIHJldHVybjtcblxuICAgIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICB9IGVsc2UgaWYgKHZpc2libGUuY3VycmVudFZhbHVlID09PSBmYWxzZSAmJiB0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQVcsVUFBVSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7TUFFaEQsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVU7QUFNakQsTUFBTSxPQUFPLGdCQUFnQjs7Ozs7SUF1QjNCLFlBQW9CLEVBQWUsRUFBVSxLQUFZO1FBQXJDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBVHpELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQU81QyxjQUFTLEdBQVksS0FBSyxDQUFDO0lBRWlDLENBQUM7Ozs7SUFwQjdELElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDOzs7OztJQUVELElBQUksT0FBTyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQzs7OztJQWNELFNBQVM7UUFDUCxJQUFJLENBQUMsS0FBSzthQUNQLFFBQVEsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO2FBQzFCLElBQUksQ0FDSCxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUM3QixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1I7YUFDQSxTQUFTOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2dCQUN4QixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN4RCxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDekQsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDakQsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUMxRCxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUU7WUFDckUsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFpQjtRQUNwQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFckIsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjthQUFNLElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztTQUN0QjtJQUNILENBQUM7OztZQXZFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLHNuRUFBdUM7YUFDeEM7Ozs7WUFWUSxXQUFXO1lBQ0gsS0FBSzs7O3NCQWFuQixLQUFLOzRCQVVMLE1BQU07O0FBSVA7SUFEQyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztzQ0FDdEIsVUFBVTtrREFBbUI7Ozs7OztJQWhCdkMsb0NBQW1COztJQVluQix5Q0FDNEM7O0lBRTVDLG9DQUN1Qzs7SUFFdkMsZ0NBQWdCOztJQUVoQixxQ0FBMkI7Ozs7O0lBRWYsOEJBQXVCOzs7OztJQUFFLGlDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2ZpbGUsIEdldFByb2ZpbGUsIFByb2ZpbGVTdGF0ZSwgVXBkYXRlUHJvZmlsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCB7IG1heExlbmd0aCwgcmVxdWlyZWQsIGVtYWlsIH0gPSBWYWxpZGF0b3JzO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtcHJvZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9maWxlLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIHByb3RlY3RlZCBfdmlzaWJsZTtcblxuICBASW5wdXQoKVxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBTZWxlY3QoUHJvZmlsZVN0YXRlLmdldFByb2ZpbGUpXG4gIHByb2ZpbGUkOiBPYnNlcnZhYmxlPFByb2ZpbGUuUmVzcG9uc2U+O1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgYnVpbGRGb3JtKCkge1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5kaXNwYXRjaChuZXcgR2V0UHJvZmlsZSgpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMucHJvZmlsZSQpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoWywgcHJvZmlsZV0pID0+IHtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgdXNlck5hbWU6IFtwcm9maWxlLnVzZXJOYW1lLCBbcmVxdWlyZWQsIG1heExlbmd0aCgyNTYpXV0sXG4gICAgICAgICAgZW1haWw6IFtwcm9maWxlLmVtYWlsLCBbcmVxdWlyZWQsIGVtYWlsLCBtYXhMZW5ndGgoMjU2KV1dLFxuICAgICAgICAgIG5hbWU6IFtwcm9maWxlLm5hbWUgfHwgJycsIFttYXhMZW5ndGgoNjQpXV0sXG4gICAgICAgICAgc3VybmFtZTogW3Byb2ZpbGUuc3VybmFtZSB8fCAnJywgW21heExlbmd0aCg2NCldXSxcbiAgICAgICAgICBwaG9uZU51bWJlcjogW3Byb2ZpbGUucGhvbmVOdW1iZXIgfHwgJycsIFttYXhMZW5ndGgoMTYpXV0sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlUHJvZmlsZSh0aGlzLmZvcm0udmFsdWUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgfSk7XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5idWlsZEZvcm0oKTtcbiAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyB2aXNpYmxlIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXZpc2libGUpIHJldHVybjtcblxuICAgIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICB9IGVsc2UgaWYgKHZpc2libGUuY3VycmVudFZhbHVlID09PSBmYWxzZSAmJiB0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/components/table-empty-message/table-empty-message.component.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/table-empty-message/table-empty-message.component.js new file mode 100644 index 0000000000..2dbf2262ab --- /dev/null +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/table-empty-message/table-empty-message.component.js @@ -0,0 +1,45 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component, Input } from '@angular/core'; +export class TableEmptyMessageComponent { + constructor() { + this.colspan = 2; + this.localizationResource = 'AbpAccount'; + this.localizationProp = 'NoDataAvailableInDatatable'; + } + /** + * @return {?} + */ + get emptyMessage() { + return this.message || `${this.localizationResource}::${this.localizationProp}`; + } +} +TableEmptyMessageComponent.decorators = [ + { type: Component, args: [{ + selector: '[abp-table-empty-message]', + template: ` + + {{ emptyMessage | abpLocalization }} + + ` + }] } +]; +TableEmptyMessageComponent.propDecorators = { + colspan: [{ type: Input }], + message: [{ type: Input }], + localizationResource: [{ type: Input }], + localizationProp: [{ type: Input }] +}; +if (false) { + /** @type {?} */ + TableEmptyMessageComponent.prototype.colspan; + /** @type {?} */ + TableEmptyMessageComponent.prototype.message; + /** @type {?} */ + TableEmptyMessageComponent.prototype.localizationResource; + /** @type {?} */ + TableEmptyMessageComponent.prototype.localizationProp; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZW1wdHktbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RhYmxlLWVtcHR5LW1lc3NhZ2UvdGFibGUtZW1wdHktbWVzc2FnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVXpELE1BQU0sT0FBTywwQkFBMEI7SUFSdkM7UUFVRSxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBTVoseUJBQW9CLEdBQVcsWUFBWSxDQUFDO1FBRzVDLHFCQUFnQixHQUFXLDRCQUE0QixDQUFDO0lBSzFELENBQUM7Ozs7SUFIQyxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsb0JBQW9CLEtBQUssSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDbEYsQ0FBQzs7O1lBdkJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxRQUFRLEVBQUU7Ozs7R0FJVDthQUNGOzs7c0JBRUUsS0FBSztzQkFHTCxLQUFLO21DQUdMLEtBQUs7K0JBR0wsS0FBSzs7OztJQVROLDZDQUNZOztJQUVaLDZDQUNnQjs7SUFFaEIsMERBQzRDOztJQUU1QyxzREFDd0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW2FicC10YWJsZS1lbXB0eS1tZXNzYWdlXScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHRkIGNsYXNzPVwidGV4dC1jZW50ZXJcIiBbYXR0ci5jb2xzcGFuXT1cImNvbHNwYW5cIj5cbiAgICAgIHt7IGVtcHR5TWVzc2FnZSB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgIDwvdGQ+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlRW1wdHlNZXNzYWdlQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgY29sc3BhbiA9IDI7XG5cbiAgQElucHV0KClcbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGxvY2FsaXphdGlvblJlc291cmNlOiBzdHJpbmcgPSAnQWJwQWNjb3VudCc7XG5cbiAgQElucHV0KClcbiAgbG9jYWxpemF0aW9uUHJvcDogc3RyaW5nID0gJ05vRGF0YUF2YWlsYWJsZUluRGF0YXRhYmxlJztcblxuICBnZXQgZW1wdHlNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZSB8fCBgJHt0aGlzLmxvY2FsaXphdGlvblJlc291cmNlfTo6JHt0aGlzLmxvY2FsaXphdGlvblByb3B9YDtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/components/toast/toast.component.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/toast/toast.component.js index 7e67c92c9e..1378d32773 100644 --- a/npm/ng-packs/dist/theme-shared/esm2015/lib/components/toast/toast.component.js +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/components/toast/toast.component.js @@ -9,7 +9,7 @@ ToastComponent.decorators = [ { type: Component, args: [{ selector: 'abp-toast', template: ` - + key && key.code === 'Escape'))) + .subscribe((/** + * @param {?} _ + * @return {?} + */ + _ => { + this.clear(); + })); } } ConfirmationService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; +/** @nocollapse */ +ConfirmationService.ctorParameters = () => [ + { type: MessageService } +]; /** @nocollapse */ ConfirmationService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ConfirmationService_Factory() { return new ConfirmationService(i0.ɵɵinject(i1.MessageService)); }, token: ConfirmationService, providedIn: "root" }); if (false) { /** @type {?} */ ConfirmationService.prototype.key; /** @type {?} */ ConfirmationService.prototype.sticky; + /** @type {?} */ + ConfirmationService.prototype.destroy$; + /** + * @type {?} + * @protected + */ + ConfirmationService.prototype.messageService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9jb25maXJtYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUl2RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBcUM7SUFEOUU7O1FBRUUsUUFBRyxHQUFXLGlCQUFpQixDQUFDO1FBRWhDLFdBQU0sR0FBWSxJQUFJLENBQUM7S0FDeEI7OztZQUxBLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7Ozs7O0lBRWhDLGtDQUFnQzs7SUFFaEMscUNBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RUb2FzdGVyIH0gZnJvbSAnLi4vYWJzdHJhY3RzL3RvYXN0ZXInO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpcm1hdGlvbic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uU2VydmljZSBleHRlbmRzIEFic3RyYWN0VG9hc3RlcjxDb25maXJtYXRpb24uT3B0aW9ucz4ge1xuICBrZXk6IHN0cmluZyA9ICdhYnBDb25maXJtYXRpb24nO1xuXG4gIHN0aWNreTogYm9vbGVhbiA9IHRydWU7XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9jb25maXJtYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJakUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQXFDOzs7O0lBTzVFLFlBQXNCLGNBQThCO1FBQ2xELEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQURGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQU5wRCxRQUFHLEdBQVcsaUJBQWlCLENBQUM7UUFFaEMsV0FBTSxHQUFZLElBQUksQ0FBQztRQUV2QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUl6QixDQUFDOzs7Ozs7OztJQUVELElBQUksQ0FDRixPQUFlLEVBQ2YsS0FBYSxFQUNiLFFBQTBCLEVBQzFCLE9BQThCO1FBRTlCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Ozs7SUFFRCxLQUFLLENBQUMsTUFBdUI7UUFDM0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Ozs7SUFFRCxjQUFjO1FBQ1osU0FBUyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7YUFDekIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsTUFBTTs7OztRQUFDLENBQUMsR0FBa0IsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFDLENBQzdEO2FBQ0EsU0FBUzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7WUF2Q0YsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7OztZQUx6QixjQUFjOzs7OztJQU9yQixrQ0FBZ0M7O0lBRWhDLHFDQUF1Qjs7SUFFdkIsdUNBQXlCOzs7OztJQUViLDZDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0VG9hc3RlciB9IGZyb20gJy4uL2Fic3RyYWN0cy90b2FzdGVyJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbiB9IGZyb20gJy4uL21vZGVscy9jb25maXJtYXRpb24nO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2NvbXBvbmVudHMvY29tbW9uL21lc3NhZ2VzZXJ2aWNlJztcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRvYXN0ZXIgfSBmcm9tICcuLi9tb2RlbHMvdG9hc3Rlcic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uU2VydmljZSBleHRlbmRzIEFic3RyYWN0VG9hc3RlcjxDb25maXJtYXRpb24uT3B0aW9ucz4ge1xuICBrZXk6IHN0cmluZyA9ICdhYnBDb25maXJtYXRpb24nO1xuXG4gIHN0aWNreTogYm9vbGVhbiA9IHRydWU7XG5cbiAgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHtcbiAgICBzdXBlcihtZXNzYWdlU2VydmljZSk7XG4gIH1cblxuICBzaG93KFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIHNldmVyaXR5OiBUb2FzdGVyLlNldmVyaXR5LFxuICAgIG9wdGlvbnM/OiBDb25maXJtYXRpb24uT3B0aW9ucyxcbiAgKTogT2JzZXJ2YWJsZTxUb2FzdGVyLlN0YXR1cz4ge1xuICAgIHRoaXMubGlzdGVuVG9Fc2NhcGUoKTtcblxuICAgIHJldHVybiBzdXBlci5zaG93KG1lc3NhZ2UsIHRpdGxlLCBzZXZlcml0eSwgb3B0aW9ucyk7XG4gIH1cblxuICBjbGVhcihzdGF0dXM/OiBUb2FzdGVyLlN0YXR1cykge1xuICAgIHN1cGVyLmNsZWFyKHN0YXR1cyk7XG5cbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIGxpc3RlblRvRXNjYXBlKCkge1xuICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleXVwJylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgIGRlYm91bmNlVGltZSgxNTApLFxuICAgICAgICBmaWx0ZXIoKGtleTogS2V5Ym9hcmRFdmVudCkgPT4ga2V5ICYmIGtleS5jb2RlID09PSAnRXNjYXBlJyksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/theme-shared.module.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/theme-shared.module.js index 577c637fd7..afa17abaec 100644 --- a/npm/ng-packs/dist/theme-shared/esm2015/lib/theme-shared.module.js +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/theme-shared.module.js @@ -4,23 +4,24 @@ */ import { CoreModule, LazyLoadService } from '@abp/ng.core'; import { APP_INITIALIZER, Injector, NgModule } from '@angular/core'; -import { NgxValidateCoreModule } from '@ngx-validate/core'; import { MessageService } from 'primeng/components/common/messageservice'; import { ToastModule } from 'primeng/toast'; import { forkJoin } from 'rxjs'; import { take } from 'rxjs/operators'; +import { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component'; +import { ButtonComponent } from './components/button/button.component'; +import { ChangePasswordComponent } from './components/change-password/change-password.component'; +import { ChartComponent } from './components/chart/chart.component'; import { ConfirmationComponent } from './components/confirmation/confirmation.component'; import { ErrorComponent } from './components/errors/error.component'; import { LoaderBarComponent } from './components/loader-bar/loader-bar.component'; import { ModalComponent } from './components/modal/modal.component'; +import { ProfileComponent } from './components/profile/profile.component'; import { ToastComponent } from './components/toast/toast.component'; import styles from './contants/styles'; import { ErrorHandler } from './handlers/error.handler'; -import { ButtonComponent } from './components/button/button.component'; -import { ValidationErrorComponent } from './components/errors/validation-error.component'; -import { ChangePasswordComponent } from './components/change-password/change-password.component'; -import { ProfileComponent } from './components/profile/profile.component'; -import { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component'; +import { chartJsLoaded$ } from './utils/widget-utils'; +import { TableEmptyMessageComponent } from './components/table-empty-message/table-empty-message.component'; /** * @param {?} injector * @return {?} @@ -31,6 +32,10 @@ export function appendScript(injector) { * @return {?} */ function () { + import('chart.js').then((/** + * @return {?} + */ + () => chartJsLoaded$.next(true))); /** @type {?} */ const lazyLoadService = injector.get(LazyLoadService); return forkJoin(lazyLoadService.load(null, 'style', styles, 'head', 'afterbegin') /* lazyLoadService.load(null, 'script', scripts) */).pipe(take(1)); @@ -58,46 +63,33 @@ export class ThemeSharedModule { } ThemeSharedModule.decorators = [ { type: NgModule, args: [{ - imports: [ - CoreModule, - ToastModule, - NgxValidateCoreModule.forRoot({ - targetSelector: '.form-group', - blueprints: { - email: `AbpAccount::ThisFieldIsNotAValidEmailAddress.`, - max: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`, - maxlength: `AbpAccount::ThisFieldMustBeAStringWithAMaximumLengthOf{1}[{{ requiredLength }}]`, - min: `AbpAccount::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]`, - minlength: `AbpAccount::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf[{{ min }},{{ max }}]`, - required: `AbpAccount::ThisFieldIsRequired.`, - passwordMismatch: `AbpIdentity::Identity.PasswordConfirmationFailed`, - }, - errorTemplate: ValidationErrorComponent, - }), - ], + imports: [CoreModule, ToastModule], declarations: [ + BreadcrumbComponent, ButtonComponent, + ChangePasswordComponent, + ChartComponent, ConfirmationComponent, - ToastComponent, - ModalComponent, ErrorComponent, LoaderBarComponent, - ValidationErrorComponent, - ChangePasswordComponent, + ModalComponent, ProfileComponent, - BreadcrumbComponent, + TableEmptyMessageComponent, + ToastComponent, ], exports: [ + BreadcrumbComponent, ButtonComponent, + ChangePasswordComponent, + ChartComponent, ConfirmationComponent, - ToastComponent, - ModalComponent, LoaderBarComponent, - ChangePasswordComponent, + ModalComponent, ProfileComponent, - BreadcrumbComponent, + TableEmptyMessageComponent, + ToastComponent, ], - entryComponents: [ErrorComponent, ValidationErrorComponent], + entryComponents: [ErrorComponent], },] } ]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL3RoZW1lLXNoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxNQUFNLE1BQU0sbUJBQW1CLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7QUFFbkYsTUFBTSxVQUFVLFlBQVksQ0FBQyxRQUFrQjs7VUFDdkMsRUFBRTs7O0lBQUc7O2NBQ0gsZUFBZSxHQUFvQixRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUV0RSxPQUFPLFFBQVEsQ0FDYixlQUFlLENBQUMsSUFBSSxDQUNsQixJQUFJLEVBQ0osT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEVBQ04sWUFBWSxDQUNiLENBQUMsbURBQW1ELENBQ3RELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQTtJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQTRDRCxNQUFNLE9BQU8saUJBQWlCOzs7O0lBQzVCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixLQUFLLEVBQUUsSUFBSTtvQkFDWCxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO29CQUM5QixVQUFVLEVBQUUsWUFBWTtpQkFDekI7Z0JBQ0QsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUU7YUFDdEQ7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBeERGLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsVUFBVTtvQkFDVixXQUFXO29CQUNYLHFCQUFxQixDQUFDLE9BQU8sQ0FBQzt3QkFDNUIsY0FBYyxFQUFFLGFBQWE7d0JBQzdCLFVBQVUsRUFBRTs0QkFDVixLQUFLLEVBQUUsK0NBQStDOzRCQUN0RCxHQUFHLEVBQUUsa0VBQWtFOzRCQUN2RSxTQUFTLEVBQUUsaUZBQWlGOzRCQUM1RixHQUFHLEVBQUUsa0VBQWtFOzRCQUN2RSxTQUFTLEVBQUUsd0ZBQXdGOzRCQUNuRyxRQUFRLEVBQUUsa0NBQWtDOzRCQUM1QyxnQkFBZ0IsRUFBRSxrREFBa0Q7eUJBQ3JFO3dCQUNELGFBQWEsRUFBRSx3QkFBd0I7cUJBQ3hDLENBQUM7aUJBQ0g7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLGVBQWU7b0JBQ2YscUJBQXFCO29CQUNyQixjQUFjO29CQUNkLGNBQWM7b0JBQ2QsY0FBYztvQkFDZCxrQkFBa0I7b0JBQ2xCLHdCQUF3QjtvQkFDeEIsdUJBQXVCO29CQUN2QixnQkFBZ0I7b0JBQ2hCLG1CQUFtQjtpQkFDcEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGVBQWU7b0JBQ2YscUJBQXFCO29CQUNyQixjQUFjO29CQUNkLGNBQWM7b0JBQ2Qsa0JBQWtCO29CQUNsQix1QkFBdUI7b0JBQ3ZCLGdCQUFnQjtvQkFDaEIsbUJBQW1CO2lCQUNwQjtnQkFDRCxlQUFlLEVBQUUsQ0FBQyxjQUFjLEVBQUUsd0JBQXdCLENBQUM7YUFDNUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlLCBMYXp5TG9hZFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3RvciwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvY29tcG9uZW50cy9jb21tb24vbWVzc2FnZXNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Vycm9ycy9lcnJvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGVyQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRlci1iYXIvbG9hZGVyLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vY29udGFudHMvc3R5bGVzJztcbmltcG9ydCB7IEVycm9ySGFuZGxlciB9IGZyb20gJy4vaGFuZGxlcnMvZXJyb3IuaGFuZGxlcic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Vycm9ycy92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGFuZ2VQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGFuZ2UtcGFzc3dvcmQvY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9maWxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZFNjcmlwdChpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgY29uc3QgZm4gPSBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBsYXp5TG9hZFNlcnZpY2U6IExhenlMb2FkU2VydmljZSA9IGluamVjdG9yLmdldChMYXp5TG9hZFNlcnZpY2UpO1xuXG4gICAgcmV0dXJuIGZvcmtKb2luKFxuICAgICAgbGF6eUxvYWRTZXJ2aWNlLmxvYWQoXG4gICAgICAgIG51bGwsXG4gICAgICAgICdzdHlsZScsXG4gICAgICAgIHN0eWxlcyxcbiAgICAgICAgJ2hlYWQnLFxuICAgICAgICAnYWZ0ZXJiZWdpbicsXG4gICAgICApIC8qIGxhenlMb2FkU2VydmljZS5sb2FkKG51bGwsICdzY3JpcHQnLCBzY3JpcHRzKSAqLyxcbiAgICApLnBpcGUodGFrZSgxKSk7XG4gIH07XG5cbiAgcmV0dXJuIGZuO1xufVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29yZU1vZHVsZSxcbiAgICBUb2FzdE1vZHVsZSxcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUuZm9yUm9vdCh7XG4gICAgICB0YXJnZXRTZWxlY3RvcjogJy5mb3JtLWdyb3VwJyxcbiAgICAgIGJsdWVwcmludHM6IHtcbiAgICAgICAgZW1haWw6IGBBYnBBY2NvdW50OjpUaGlzRmllbGRJc05vdEFWYWxpZEVtYWlsQWRkcmVzcy5gLFxuICAgICAgICBtYXg6IGBBYnBBY2NvdW50OjpUaGlzRmllbGRNdXN0QmVCZXR3ZWVuezB9QW5kezF9W3t7IG1pbiB9fSx7eyBtYXggfX1dYCxcbiAgICAgICAgbWF4bGVuZ3RoOiBgQWJwQWNjb3VudDo6VGhpc0ZpZWxkTXVzdEJlQVN0cmluZ1dpdGhBTWF4aW11bUxlbmd0aE9mezF9W3t7IHJlcXVpcmVkTGVuZ3RoIH19XWAsXG4gICAgICAgIG1pbjogYEFicEFjY291bnQ6OlRoaXNGaWVsZE11c3RCZUJldHdlZW57MH1BbmR7MX1be3sgbWluIH19LHt7IG1heCB9fV1gLFxuICAgICAgICBtaW5sZW5ndGg6IGBBYnBBY2NvdW50OjpUaGlzRmllbGRNdXN0QmVBU3RyaW5nT3JBcnJheVR5cGVXaXRoQU1pbmltdW1MZW5ndGhPZlt7eyBtaW4gfX0se3sgbWF4IH19XWAsXG4gICAgICAgIHJlcXVpcmVkOiBgQWJwQWNjb3VudDo6VGhpc0ZpZWxkSXNSZXF1aXJlZC5gLFxuICAgICAgICBwYXNzd29yZE1pc21hdGNoOiBgQWJwSWRlbnRpdHk6OklkZW50aXR5LlBhc3N3b3JkQ29uZmlybWF0aW9uRmFpbGVkYCxcbiAgICAgIH0sXG4gICAgICBlcnJvclRlbXBsYXRlOiBWYWxpZGF0aW9uRXJyb3JDb21wb25lbnQsXG4gICAgfSksXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDb25maXJtYXRpb25Db21wb25lbnQsXG4gICAgVG9hc3RDb21wb25lbnQsXG4gICAgTW9kYWxDb21wb25lbnQsXG4gICAgRXJyb3JDb21wb25lbnQsXG4gICAgTG9hZGVyQmFyQ29tcG9uZW50LFxuICAgIFZhbGlkYXRpb25FcnJvckNvbXBvbmVudCxcbiAgICBDaGFuZ2VQYXNzd29yZENvbXBvbmVudCxcbiAgICBQcm9maWxlQ29tcG9uZW50LFxuICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uQ29tcG9uZW50LFxuICAgIFRvYXN0Q29tcG9uZW50LFxuICAgIE1vZGFsQ29tcG9uZW50LFxuICAgIExvYWRlckJhckNvbXBvbmVudCxcbiAgICBDaGFuZ2VQYXNzd29yZENvbXBvbmVudCxcbiAgICBQcm9maWxlQ29tcG9uZW50LFxuICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gIF0sXG4gIGVudHJ5Q29tcG9uZW50czogW0Vycm9yQ29tcG9uZW50LCBWYWxpZGF0aW9uRXJyb3JDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUaGVtZVNoYXJlZE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVGhlbWVTaGFyZWRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICBkZXBzOiBbSW5qZWN0b3IsIEVycm9ySGFuZGxlcl0sXG4gICAgICAgICAgdXNlRmFjdG9yeTogYXBwZW5kU2NyaXB0LFxuICAgICAgICB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1lc3NhZ2VTZXJ2aWNlLCB1c2VDbGFzczogTWVzc2FnZVNlcnZpY2UgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL3RoZW1lLXNoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7OztBQUU1RyxNQUFNLFVBQVUsWUFBWSxDQUFDLFFBQWtCOztVQUN2QyxFQUFFOzs7SUFBRztRQUNULE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUM7O2NBRW5ELGVBQWUsR0FBb0IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFFdEUsT0FBTyxRQUFRLENBQ2IsZUFBZSxDQUFDLElBQUksQ0FDbEIsSUFBSSxFQUNKLE9BQU8sRUFDUCxNQUFNLEVBQ04sTUFBTSxFQUNOLFlBQVksQ0FDYixDQUFDLG1EQUFtRCxDQUN0RCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUE7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUErQkQsTUFBTSxPQUFPLGlCQUFpQjs7OztJQUM1QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsZUFBZTtvQkFDeEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztvQkFDOUIsVUFBVSxFQUFFLFlBQVk7aUJBQ3pCO2dCQUNELEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFO2FBQ3REO1NBQ0YsQ0FBQztJQUNKLENBQUM7OztZQTNDRixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQztnQkFDbEMsWUFBWSxFQUFFO29CQUNaLG1CQUFtQjtvQkFDbkIsZUFBZTtvQkFDZix1QkFBdUI7b0JBQ3ZCLGNBQWM7b0JBQ2QscUJBQXFCO29CQUNyQixjQUFjO29CQUNkLGtCQUFrQjtvQkFDbEIsY0FBYztvQkFDZCxnQkFBZ0I7b0JBQ2hCLDBCQUEwQjtvQkFDMUIsY0FBYztpQkFDZjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsbUJBQW1CO29CQUNuQixlQUFlO29CQUNmLHVCQUF1QjtvQkFDdkIsY0FBYztvQkFDZCxxQkFBcUI7b0JBQ3JCLGtCQUFrQjtvQkFDbEIsY0FBYztvQkFDZCxnQkFBZ0I7b0JBQ2hCLDBCQUEwQjtvQkFDMUIsY0FBYztpQkFDZjtnQkFDRCxlQUFlLEVBQUUsQ0FBQyxjQUFjLENBQUM7YUFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlLCBMYXp5TG9hZFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3RvciwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9jb21wb25lbnRzL2NvbW1vbi9tZXNzYWdlc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENoYW5nZVBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYW5nZS1wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50JztcbmltcG9ydCB7IENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZXJyb3JzL2Vycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkZXJCYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9hZGVyLWJhci9sb2FkZXItYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZmlsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vY29udGFudHMvc3R5bGVzJztcbmltcG9ydCB7IEVycm9ySGFuZGxlciB9IGZyb20gJy4vaGFuZGxlcnMvZXJyb3IuaGFuZGxlcic7XG5pbXBvcnQgeyBjaGFydEpzTG9hZGVkJCB9IGZyb20gJy4vdXRpbHMvd2lkZ2V0LXV0aWxzJztcbmltcG9ydCB7IFRhYmxlRW1wdHlNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWVtcHR5LW1lc3NhZ2UvdGFibGUtZW1wdHktbWVzc2FnZS5jb21wb25lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kU2NyaXB0KGluamVjdG9yOiBJbmplY3Rvcikge1xuICBjb25zdCBmbiA9IGZ1bmN0aW9uKCkge1xuICAgIGltcG9ydCgnY2hhcnQuanMnKS50aGVuKCgpID0+IGNoYXJ0SnNMb2FkZWQkLm5leHQodHJ1ZSkpO1xuXG4gICAgY29uc3QgbGF6eUxvYWRTZXJ2aWNlOiBMYXp5TG9hZFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoTGF6eUxvYWRTZXJ2aWNlKTtcblxuICAgIHJldHVybiBmb3JrSm9pbihcbiAgICAgIGxhenlMb2FkU2VydmljZS5sb2FkKFxuICAgICAgICBudWxsLFxuICAgICAgICAnc3R5bGUnLFxuICAgICAgICBzdHlsZXMsXG4gICAgICAgICdoZWFkJyxcbiAgICAgICAgJ2FmdGVyYmVnaW4nLFxuICAgICAgKSAvKiBsYXp5TG9hZFNlcnZpY2UubG9hZChudWxsLCAnc2NyaXB0Jywgc2NyaXB0cykgKi8sXG4gICAgKS5waXBlKHRha2UoMSkpO1xuICB9O1xuXG4gIHJldHVybiBmbjtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIFRvYXN0TW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQsXG4gICAgQ2hhcnRDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uQ29tcG9uZW50LFxuICAgIEVycm9yQ29tcG9uZW50LFxuICAgIExvYWRlckJhckNvbXBvbmVudCxcbiAgICBNb2RhbENvbXBvbmVudCxcbiAgICBQcm9maWxlQ29tcG9uZW50LFxuICAgIFRhYmxlRW1wdHlNZXNzYWdlQ29tcG9uZW50LFxuICAgIFRvYXN0Q29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQsXG4gICAgQ2hhcnRDb21wb25lbnQsXG4gICAgQ29uZmlybWF0aW9uQ29tcG9uZW50LFxuICAgIExvYWRlckJhckNvbXBvbmVudCxcbiAgICBNb2RhbENvbXBvbmVudCxcbiAgICBQcm9maWxlQ29tcG9uZW50LFxuICAgIFRhYmxlRW1wdHlNZXNzYWdlQ29tcG9uZW50LFxuICAgIFRvYXN0Q29tcG9uZW50LFxuICBdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtFcnJvckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFRoZW1lU2hhcmVkTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBUaGVtZVNoYXJlZE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgIGRlcHM6IFtJbmplY3RvciwgRXJyb3JIYW5kbGVyXSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBhcHBlbmRTY3JpcHQsXG4gICAgICAgIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTWVzc2FnZVNlcnZpY2UsIHVzZUNsYXNzOiBNZXNzYWdlU2VydmljZSB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/utils/index.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/utils/index.js new file mode 100644 index 0000000000..14b5ef6d35 --- /dev/null +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/utils/index.js @@ -0,0 +1,6 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +export { getRandomBackgroundColor, chartJsLoaded$ } from './widget-utils'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEseURBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3dpZGdldC11dGlscyc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/lib/utils/widget-utils.js b/npm/ng-packs/dist/theme-shared/esm2015/lib/utils/widget-utils.js new file mode 100644 index 0000000000..722af46dbe --- /dev/null +++ b/npm/ng-packs/dist/theme-shared/esm2015/lib/utils/widget-utils.js @@ -0,0 +1,26 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { ReplaySubject } from 'rxjs'; +/** + * @param {?} count + * @return {?} + */ +export function getRandomBackgroundColor(count) { + /** @type {?} */ + const colors = []; + for (let i = 0; i < count; i++) { + /** @type {?} */ + const r = ((i + 5) * (i + 5) * 474) % 255; + /** @type {?} */ + const g = ((i + 5) * (i + 5) * 1600) % 255; + /** @type {?} */ + const b = ((i + 5) * (i + 5) * 84065) % 255; + colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)'); + } + return colors; +} +/** @type {?} */ +export const chartJsLoaded$ = new ReplaySubject(1); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvd2lkZ2V0LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQUVyQyxNQUFNLFVBQVUsd0JBQXdCLENBQUMsS0FBSzs7VUFDdEMsTUFBTSxHQUFHLEVBQUU7SUFFakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTs7Y0FDeEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRzs7Y0FDbkMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRzs7Y0FDcEMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBRztRQUMzQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO0tBQzNEO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQzs7QUFFRCxNQUFNLE9BQU8sY0FBYyxHQUFHLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJhbmRvbUJhY2tncm91bmRDb2xvcihjb3VudCkge1xuICBjb25zdCBjb2xvcnMgPSBbXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICBjb25zdCByID0gKChpICsgNSkgKiAoaSArIDUpICogNDc0KSAlIDI1NTtcbiAgICBjb25zdCBnID0gKChpICsgNSkgKiAoaSArIDUpICogMTYwMCkgJSAyNTU7XG4gICAgY29uc3QgYiA9ICgoaSArIDUpICogKGkgKyA1KSAqIDg0MDY1KSAlIDI1NTtcbiAgICBjb2xvcnMucHVzaCgncmdiYSgnICsgciArICcsICcgKyBnICsgJywgJyArIGIgKyAnLCAwLjcpJyk7XG4gIH1cblxuICByZXR1cm4gY29sb3JzO1xufVxuXG5leHBvcnQgY29uc3QgY2hhcnRKc0xvYWRlZCQgPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm2015/public-api.js b/npm/ng-packs/dist/theme-shared/esm2015/public-api.js index 3ce6f1abc8..95c152677b 100644 --- a/npm/ng-packs/dist/theme-shared/esm2015/public-api.js +++ b/npm/ng-packs/dist/theme-shared/esm2015/public-api.js @@ -6,8 +6,9 @@ * Public API Surface of theme-shared */ export { appendScript, ThemeSharedModule } from './lib/theme-shared.module'; -export { fade, slideFromBottom } from './lib/animations'; -export { ButtonComponent, BreadcrumbComponent, ChangePasswordComponent, ConfirmationComponent, LoaderBarComponent, ModalComponent, ProfileComponent, ToastComponent } from './lib/components'; +export { collapse, fade, fadeWithStates, fadeIn, slideFromBottom } from './lib/animations'; +export { BreadcrumbComponent, ButtonComponent, ChangePasswordComponent, ChartComponent, ConfirmationComponent, LoaderBarComponent, ModalComponent, ProfileComponent, TableEmptyMessageComponent, ToastComponent } from './lib/components'; export { Toaster } from './lib/models'; export { ConfirmationService, ToasterService } from './lib/services'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsZ0RBQWMsMkJBQTJCLENBQUM7QUFDMUMsc0NBQWMsa0JBQWtCLENBQUM7QUFDakMsMktBQWMsa0JBQWtCLENBQUM7QUFDakMsd0JBQWMsY0FBYyxDQUFDO0FBQzdCLG9EQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0aGVtZS1zaGFyZWRcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90aGVtZS1zaGFyZWQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuaW1hdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMnO1xuIl19 \ No newline at end of file +export { getRandomBackgroundColor, chartJsLoaded$ } from './lib/utils'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsZ0RBQWMsMkJBQTJCLENBQUM7QUFDMUMsd0VBQWMsa0JBQWtCLENBQUM7QUFDakMsdU5BQWMsa0JBQWtCLENBQUM7QUFDakMsd0JBQWMsY0FBYyxDQUFDO0FBQzdCLG9EQUFjLGdCQUFnQixDQUFDO0FBQy9CLHlEQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdGhlbWUtc2hhcmVkXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGhlbWUtc2hhcmVkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmltYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzJztcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/abp-ng.theme.shared.js b/npm/ng-packs/dist/theme-shared/esm5/abp-ng.theme.shared.js index 43d4337172..a118b0b3c3 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/abp-ng.theme.shared.js +++ b/npm/ng-packs/dist/theme-shared/esm5/abp-ng.theme.shared.js @@ -5,19 +5,20 @@ /** * Generated bundle index. Do not edit. */ -export { appendScript, ThemeSharedModule, fade, slideFromBottom, ButtonComponent, BreadcrumbComponent, ChangePasswordComponent, ConfirmationComponent, LoaderBarComponent, ModalComponent, ProfileComponent, ToastComponent, Toaster, ConfirmationService, ToasterService } from './public-api'; +export { appendScript, ThemeSharedModule, collapse, fade, fadeWithStates, fadeIn, slideFromBottom, BreadcrumbComponent, ButtonComponent, ChangePasswordComponent, ChartComponent, ConfirmationComponent, LoaderBarComponent, ModalComponent, ProfileComponent, TableEmptyMessageComponent, ToastComponent, Toaster, ConfirmationService, ToasterService, getRandomBackgroundColor, chartJsLoaded$ } from './public-api'; export { AbstractToaster as ɵe } from './lib/abstracts/toaster'; -export { BreadcrumbComponent as ɵm } from './lib/components/breadcrumb/breadcrumb.component'; +export { BreadcrumbComponent as ɵa } from './lib/components/breadcrumb/breadcrumb.component'; export { ButtonComponent as ɵb } from './lib/components/button/button.component'; -export { ChangePasswordComponent as ɵj } from './lib/components/change-password/change-password.component'; -export { ConfirmationComponent as ɵc } from './lib/components/confirmation/confirmation.component'; -export { ErrorComponent as ɵh } from './lib/components/errors/error.component'; -export { ValidationErrorComponent as ɵa } from './lib/components/errors/validation-error.component'; -export { LoaderBarComponent as ɵi } from './lib/components/loader-bar/loader-bar.component'; -export { ModalComponent as ɵg } from './lib/components/modal/modal.component'; +export { ChangePasswordComponent as ɵc } from './lib/components/change-password/change-password.component'; +export { ChartComponent as ɵf } from './lib/components/chart/chart.component'; +export { ConfirmationComponent as ɵg } from './lib/components/confirmation/confirmation.component'; +export { ErrorComponent as ɵi } from './lib/components/errors/error.component'; +export { LoaderBarComponent as ɵj } from './lib/components/loader-bar/loader-bar.component'; +export { ModalComponent as ɵk } from './lib/components/modal/modal.component'; export { ProfileComponent as ɵl } from './lib/components/profile/profile.component'; -export { ToastComponent as ɵf } from './lib/components/toast/toast.component'; -export { ErrorHandler as ɵn } from './lib/handlers/error.handler'; -export { ConfirmationService as ɵd } from './lib/services/confirmation.service'; -export { ToasterService as ɵk } from './lib/services/toaster.service'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLnNoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsiYWJwLW5nLnRoZW1lLnNoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsaVJBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNqRyxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUNsRyxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDMUYsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0Fic3RyYWN0VG9hc3RlciBhcyDJtWV9IGZyb20gJy4vbGliL2Fic3RyYWN0cy90b2FzdGVyJztcbmV4cG9ydCB7QnJlYWRjcnVtYkNvbXBvbmVudCBhcyDJtW19IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5leHBvcnQge0J1dHRvbkNvbXBvbmVudCBhcyDJtWJ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtDaGFuZ2VQYXNzd29yZENvbXBvbmVudCBhcyDJtWp9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQnO1xuZXhwb3J0IHtDb25maXJtYXRpb25Db21wb25lbnQgYXMgybVjfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7RXJyb3JDb21wb25lbnQgYXMgybVofSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Vycm9ycy9lcnJvci5jb21wb25lbnQnO1xuZXhwb3J0IHtWYWxpZGF0aW9uRXJyb3JDb21wb25lbnQgYXMgybVhfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Vycm9ycy92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudCc7XG5leHBvcnQge0xvYWRlckJhckNvbXBvbmVudCBhcyDJtWl9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbG9hZGVyLWJhci9sb2FkZXItYmFyLmNvbXBvbmVudCc7XG5leHBvcnQge01vZGFsQ29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0IHtQcm9maWxlQ29tcG9uZW50IGFzIMm1bH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50JztcbmV4cG9ydCB7VG9hc3RDb21wb25lbnQgYXMgybVmfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5leHBvcnQge0Vycm9ySGFuZGxlciBhcyDJtW59IGZyb20gJy4vbGliL2hhbmRsZXJzL2Vycm9yLmhhbmRsZXInO1xuZXhwb3J0IHtDb25maXJtYXRpb25TZXJ2aWNlIGFzIMm1ZH0gZnJvbSAnLi9saWIvc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtUb2FzdGVyU2VydmljZSBhcyDJtWt9IGZyb20gJy4vbGliL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZSc7Il19 \ No newline at end of file +export { TableEmptyMessageComponent as ɵm } from './lib/components/table-empty-message/table-empty-message.component'; +export { ToastComponent as ɵn } from './lib/components/toast/toast.component'; +export { ErrorHandler as ɵo } from './lib/handlers/error.handler'; +export { ConfirmationService as ɵh } from './lib/services/confirmation.service'; +export { ToasterService as ɵd } from './lib/services/toaster.service'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLnNoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsiYWJwLW5nLnRoZW1lLnNoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEseVlBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNwSCxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QWJzdHJhY3RUb2FzdGVyIGFzIMm1ZX0gZnJvbSAnLi9saWIvYWJzdHJhY3RzL3RvYXN0ZXInO1xuZXhwb3J0IHtCcmVhZGNydW1iQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmV4cG9ydCB7QnV0dG9uQ29tcG9uZW50IGFzIMm1Yn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQge0NoYW5nZVBhc3N3b3JkQ29tcG9uZW50IGFzIMm1Y30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9jaGFuZ2UtcGFzc3dvcmQvY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudCc7XG5leHBvcnQge0NoYXJ0Q29tcG9uZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQnO1xuZXhwb3J0IHtDb25maXJtYXRpb25Db21wb25lbnQgYXMgybVnfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7RXJyb3JDb21wb25lbnQgYXMgybVpfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Vycm9ycy9lcnJvci5jb21wb25lbnQnO1xuZXhwb3J0IHtMb2FkZXJCYXJDb21wb25lbnQgYXMgybVqfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvYWRlci1iYXIvbG9hZGVyLWJhci5jb21wb25lbnQnO1xuZXhwb3J0IHtNb2RhbENvbXBvbmVudCBhcyDJtWt9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB7UHJvZmlsZUNvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudCc7XG5leHBvcnQge1RhYmxlRW1wdHlNZXNzYWdlQ29tcG9uZW50IGFzIMm1bX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy90YWJsZS1lbXB0eS1tZXNzYWdlL3RhYmxlLWVtcHR5LW1lc3NhZ2UuY29tcG9uZW50JztcbmV4cG9ydCB7VG9hc3RDb21wb25lbnQgYXMgybVufSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5leHBvcnQge0Vycm9ySGFuZGxlciBhcyDJtW99IGZyb20gJy4vbGliL2hhbmRsZXJzL2Vycm9yLmhhbmRsZXInO1xuZXhwb3J0IHtDb25maXJtYXRpb25TZXJ2aWNlIGFzIMm1aH0gZnJvbSAnLi9saWIvc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtUb2FzdGVyU2VydmljZSBhcyDJtWR9IGZyb20gJy4vbGliL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZSc7Il19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/abstracts/toaster.js b/npm/ng-packs/dist/theme-shared/esm5/lib/abstracts/toaster.js index 7ae677cd9e..d4d23c1bb1 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/abstracts/toaster.js +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/abstracts/toaster.js @@ -130,4 +130,4 @@ if (false) { */ AbstractToaster.prototype.messageService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2Fic3RyYWN0cy90b2FzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUczQzs7OztJQU9FLHlCQUFzQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFKcEQsUUFBRyxHQUFXLFVBQVUsQ0FBQztRQUV6QixXQUFNLEdBQVksS0FBSyxDQUFDO0lBRStCLENBQUM7Ozs7Ozs7SUFDeEQsOEJBQUk7Ozs7OztJQUFKLFVBQUssT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDOzs7Ozs7O0lBRUQsaUNBQU87Ozs7OztJQUFQLFVBQVEsT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQ2pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7Ozs7O0lBRUQsOEJBQUk7Ozs7OztJQUFKLFVBQUssT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDOzs7Ozs7O0lBRUQsK0JBQUs7Ozs7OztJQUFMLFVBQU0sT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDOzs7Ozs7Ozs7SUFFUyw4QkFBSTs7Ozs7Ozs7SUFBZCxVQUFlLE9BQWUsRUFBRSxLQUFhLEVBQUUsUUFBMEIsRUFBRSxPQUFXO1FBQ3BGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsb0JBQ3JCLFFBQVEsVUFBQSxFQUNSLE1BQU0sRUFBRSxPQUFPLElBQUksRUFBRSxFQUNyQixPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFDakIsT0FBTyxJQUNWLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUNWLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLG1CQUFBLEVBQUUsRUFBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssV0FBVyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUN0RixDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBa0IsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFFRCwrQkFBSzs7OztJQUFMLFVBQU0sTUFBdUI7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sMkJBQTBCLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUE1Q0QsSUE0Q0M7Ozs7Ozs7SUEzQ0Msa0NBQWlDOztJQUVqQyw4QkFBeUI7O0lBRXpCLGlDQUF3Qjs7Ozs7SUFFWix5Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvY29tcG9uZW50cy9jb21tb24vbWVzc2FnZXNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9hc3RlciB9IGZyb20gJy4uL21vZGVscy90b2FzdGVyJztcblxuZXhwb3J0IGNsYXNzIEFic3RyYWN0VG9hc3RlcjxUID0gVG9hc3Rlci5PcHRpb25zPiB7XG4gIHN0YXR1cyQ6IFN1YmplY3Q8VG9hc3Rlci5TdGF0dXM+O1xuXG4gIGtleTogc3RyaW5nID0gJ2FicFRvYXN0JztcblxuICBzdGlja3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlKSB7fVxuICBpbmZvKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU6IHN0cmluZywgb3B0aW9ucz86IFQpOiBPYnNlcnZhYmxlPFRvYXN0ZXIuU3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyhtZXNzYWdlLCB0aXRsZSwgJ2luZm8nLCBvcHRpb25zKTtcbiAgfVxuXG4gIHN1Y2Nlc3MobWVzc2FnZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBvcHRpb25zPzogVCk6IE9ic2VydmFibGU8VG9hc3Rlci5TdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93KG1lc3NhZ2UsIHRpdGxlLCAnc3VjY2VzcycsIG9wdGlvbnMpO1xuICB9XG5cbiAgd2FybihtZXNzYWdlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBUKTogT2JzZXJ2YWJsZTxUb2FzdGVyLlN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLnNob3cobWVzc2FnZSwgdGl0bGUsICd3YXJuJywgb3B0aW9ucyk7XG4gIH1cblxuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBUKTogT2JzZXJ2YWJsZTxUb2FzdGVyLlN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLnNob3cobWVzc2FnZSwgdGl0bGUsICdlcnJvcicsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNob3cobWVzc2FnZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBzZXZlcml0eTogVG9hc3Rlci5TZXZlcml0eSwgb3B0aW9ucz86IFQpOiBPYnNlcnZhYmxlPFRvYXN0ZXIuU3RhdHVzPiB7XG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5jbGVhcih0aGlzLmtleSk7XG5cbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICBzZXZlcml0eSxcbiAgICAgIGRldGFpbDogbWVzc2FnZSB8fCAnJyxcbiAgICAgIHN1bW1hcnk6IHRpdGxlIHx8ICcnLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAuLi4odHlwZW9mIChvcHRpb25zIHx8ICh7fSBhcyBhbnkpKS5zdGlja3kgPT09ICd1bmRlZmluZWQnICYmIHsgc3RpY2t5OiB0aGlzLnN0aWNreSB9KSxcbiAgICB9KTtcbiAgICB0aGlzLnN0YXR1cyQgPSBuZXcgU3ViamVjdDxUb2FzdGVyLlN0YXR1cz4oKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMkO1xuICB9XG5cbiAgY2xlYXIoc3RhdHVzPzogVG9hc3Rlci5TdGF0dXMpIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNsZWFyKHRoaXMua2V5KTtcbiAgICB0aGlzLnN0YXR1cyQubmV4dChzdGF0dXMgfHwgVG9hc3Rlci5TdGF0dXMuZGlzbWlzcyk7XG4gICAgdGhpcy5zdGF0dXMkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2Fic3RyYWN0cy90b2FzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUczQzs7OztJQU9FLHlCQUFzQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFKcEQsUUFBRyxHQUFXLFVBQVUsQ0FBQztRQUV6QixXQUFNLEdBQVksS0FBSyxDQUFDO0lBRStCLENBQUM7Ozs7Ozs7SUFFeEQsOEJBQUk7Ozs7OztJQUFKLFVBQUssT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDOzs7Ozs7O0lBRUQsaUNBQU87Ozs7OztJQUFQLFVBQVEsT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQ2pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7Ozs7O0lBRUQsOEJBQUk7Ozs7OztJQUFKLFVBQUssT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDOzs7Ozs7O0lBRUQsK0JBQUs7Ozs7OztJQUFMLFVBQU0sT0FBZSxFQUFFLEtBQWEsRUFBRSxPQUFXO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDOzs7Ozs7Ozs7SUFFUyw4QkFBSTs7Ozs7Ozs7SUFBZCxVQUFlLE9BQWUsRUFBRSxLQUFhLEVBQUUsUUFBMEIsRUFBRSxPQUFXO1FBQ3BGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsb0JBQ3JCLFFBQVEsVUFBQSxFQUNSLE1BQU0sRUFBRSxPQUFPLElBQUksRUFBRSxFQUNyQixPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFDakIsT0FBTyxJQUNWLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUNWLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLG1CQUFBLEVBQUUsRUFBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssV0FBVyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUN0RixDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBa0IsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFFRCwrQkFBSzs7OztJQUFMLFVBQU0sTUFBdUI7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sMkJBQTBCLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUE3Q0QsSUE2Q0M7Ozs7Ozs7SUE1Q0Msa0NBQWlDOztJQUVqQyw4QkFBeUI7O0lBRXpCLGlDQUF3Qjs7Ozs7SUFFWix5Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvY29tcG9uZW50cy9jb21tb24vbWVzc2FnZXNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9hc3RlciB9IGZyb20gJy4uL21vZGVscy90b2FzdGVyJztcblxuZXhwb3J0IGNsYXNzIEFic3RyYWN0VG9hc3RlcjxUID0gVG9hc3Rlci5PcHRpb25zPiB7XG4gIHN0YXR1cyQ6IFN1YmplY3Q8VG9hc3Rlci5TdGF0dXM+O1xuXG4gIGtleTogc3RyaW5nID0gJ2FicFRvYXN0JztcblxuICBzdGlja3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlKSB7fVxuXG4gIGluZm8obWVzc2FnZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBvcHRpb25zPzogVCk6IE9ic2VydmFibGU8VG9hc3Rlci5TdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93KG1lc3NhZ2UsIHRpdGxlLCAnaW5mbycsIG9wdGlvbnMpO1xuICB9XG5cbiAgc3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBUKTogT2JzZXJ2YWJsZTxUb2FzdGVyLlN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLnNob3cobWVzc2FnZSwgdGl0bGUsICdzdWNjZXNzJywgb3B0aW9ucyk7XG4gIH1cblxuICB3YXJuKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU6IHN0cmluZywgb3B0aW9ucz86IFQpOiBPYnNlcnZhYmxlPFRvYXN0ZXIuU3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyhtZXNzYWdlLCB0aXRsZSwgJ3dhcm4nLCBvcHRpb25zKTtcbiAgfVxuXG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU6IHN0cmluZywgb3B0aW9ucz86IFQpOiBPYnNlcnZhYmxlPFRvYXN0ZXIuU3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyhtZXNzYWdlLCB0aXRsZSwgJ2Vycm9yJywgb3B0aW9ucyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hvdyhtZXNzYWdlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIHNldmVyaXR5OiBUb2FzdGVyLlNldmVyaXR5LCBvcHRpb25zPzogVCk6IE9ic2VydmFibGU8VG9hc3Rlci5TdGF0dXM+IHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNsZWFyKHRoaXMua2V5KTtcblxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgIHNldmVyaXR5LFxuICAgICAgZGV0YWlsOiBtZXNzYWdlIHx8ICcnLFxuICAgICAgc3VtbWFyeTogdGl0bGUgfHwgJycsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgIC4uLih0eXBlb2YgKG9wdGlvbnMgfHwgKHt9IGFzIGFueSkpLnN0aWNreSA9PT0gJ3VuZGVmaW5lZCcgJiYgeyBzdGlja3k6IHRoaXMuc3RpY2t5IH0pLFxuICAgIH0pO1xuICAgIHRoaXMuc3RhdHVzJCA9IG5ldyBTdWJqZWN0PFRvYXN0ZXIuU3RhdHVzPigpO1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyQ7XG4gIH1cblxuICBjbGVhcihzdGF0dXM/OiBUb2FzdGVyLlN0YXR1cykge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIodGhpcy5rZXkpO1xuICAgIHRoaXMuc3RhdHVzJC5uZXh0KHN0YXR1cyB8fCBUb2FzdGVyLlN0YXR1cy5kaXNtaXNzKTtcbiAgICB0aGlzLnN0YXR1cyQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/animations/collapse.animations.js b/npm/ng-packs/dist/theme-shared/esm5/lib/animations/collapse.animations.js new file mode 100644 index 0000000000..aa8a75964f --- /dev/null +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/animations/collapse.animations.js @@ -0,0 +1,18 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { trigger, state, style, transition, animate } from '@angular/animations'; +/** @type {?} */ +export var collapse = trigger('collapse', [ + state('open', style({ + height: '*', + overflow: 'hidden', + })), + state('close', style({ + height: '0px', + overflow: 'hidden', + })), + transition("open <=> close", animate('{{duration}}ms'), { params: { duration: '350' } }), +]); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UuYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2FuaW1hdGlvbnMvY29sbGFwc2UuYW5pbWF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFakYsTUFBTSxLQUFPLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFO0lBQzFDLEtBQUssQ0FDSCxNQUFNLEVBQ04sS0FBSyxDQUFDO1FBQ0osTUFBTSxFQUFFLEdBQUc7UUFDWCxRQUFRLEVBQUUsUUFBUTtLQUNuQixDQUFDLENBQ0g7SUFDRCxLQUFLLENBQ0gsT0FBTyxFQUNQLEtBQUssQ0FBQztRQUNKLE1BQU0sRUFBRSxLQUFLO1FBQ2IsUUFBUSxFQUFFLFFBQVE7S0FDbkIsQ0FBQyxDQUNIO0lBQ0QsVUFBVSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Q0FDekYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyaWdnZXIsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgYW5pbWF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgY29sbGFwc2UgPSB0cmlnZ2VyKCdjb2xsYXBzZScsIFtcbiAgc3RhdGUoXG4gICAgJ29wZW4nLFxuICAgIHN0eWxlKHtcbiAgICAgIGhlaWdodDogJyonLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIH0pLFxuICApLFxuICBzdGF0ZShcbiAgICAnY2xvc2UnLFxuICAgIHN0eWxlKHtcbiAgICAgIGhlaWdodDogJzBweCcsXG4gICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgfSksXG4gICksXG4gIHRyYW5zaXRpb24oYG9wZW4gPD0+IGNsb3NlYCwgYW5pbWF0ZSgne3tkdXJhdGlvbn19bXMnKSwgeyBwYXJhbXM6IHsgZHVyYXRpb246ICczNTAnIH0gfSksXG5dKTtcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/animations/fade.animations.js b/npm/ng-packs/dist/theme-shared/esm5/lib/animations/fade.animations.js index 66f53ef249..fbbdaca597 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/animations/fade.animations.js +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/animations/fade.animations.js @@ -9,4 +9,16 @@ export var fade = trigger('fade', [ transition(':enter', [style({ opacity: 0 }), animate(250)]), transition(':leave', animate(250, style({ opacity: 0 }))), ]); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFkZS5hbmltYXRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvYW5pbWF0aW9ucy9mYWRlLmFuaW1hdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRWpGLE1BQU0sS0FBTyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRTtJQUNsQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztDQUMxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBmYWRlID0gdHJpZ2dlcignZmFkZScsIFtcbiAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxuICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbc3R5bGUoeyBvcGFjaXR5OiAwIH0pLCBhbmltYXRlKDI1MCldKSxcbiAgdHJhbnNpdGlvbignOmxlYXZlJywgYW5pbWF0ZSgyNTAsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSkpLFxuXSk7XG4iXX0= \ No newline at end of file +/** @type {?} */ +export var fadeWithStates = trigger('fadeInOut', [ + state('out', style({ opacity: 0 })), + state('in', style({ opacity: 1 })), + transition('in <=> out', [animate(250)]), +]); +/** @type {?} */ +export var fadeIn = trigger('fadeIn', [ + state('*', style({ opacity: 1 })), + transition('* => *', [style({ opacity: 0 }), animate(250)]), + transition(':enter', [style({ opacity: 0 }), animate(250)]), +]); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFkZS5hbmltYXRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvYW5pbWF0aW9ucy9mYWRlLmFuaW1hdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRWpGLE1BQU0sS0FBTyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRTtJQUNsQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztDQUMxRCxDQUFDOztBQUVGLE1BQU0sS0FBTyxjQUFjLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRTtJQUNqRCxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0NBQ3pDLENBQUM7O0FBRUYsTUFBTSxLQUFPLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFO0lBQ3RDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNELFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztDQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBmYWRlID0gdHJpZ2dlcignZmFkZScsIFtcbiAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxuICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbc3R5bGUoeyBvcGFjaXR5OiAwIH0pLCBhbmltYXRlKDI1MCldKSxcbiAgdHJhbnNpdGlvbignOmxlYXZlJywgYW5pbWF0ZSgyNTAsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSkpLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBmYWRlV2l0aFN0YXRlcyA9IHRyaWdnZXIoJ2ZhZGVJbk91dCcsIFtcbiAgc3RhdGUoJ291dCcsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSksXG4gIHN0YXRlKCdpbicsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSksXG4gIHRyYW5zaXRpb24oJ2luIDw9PiBvdXQnLCBbYW5pbWF0ZSgyNTApXSksXG5dKTtcblxuZXhwb3J0IGNvbnN0IGZhZGVJbiA9IHRyaWdnZXIoJ2ZhZGVJbicsIFtcbiAgc3RhdGUoJyonLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxuICB0cmFuc2l0aW9uKCcqID0+IConLCBbc3R5bGUoeyBvcGFjaXR5OiAwIH0pLCBhbmltYXRlKDI1MCldKSxcbiAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogMCB9KSwgYW5pbWF0ZSgyNTApXSksXG5dKTtcbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/animations/index.js b/npm/ng-packs/dist/theme-shared/esm5/lib/animations/index.js index 56c7f53734..df40701f78 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/animations/index.js +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/animations/index.js @@ -2,6 +2,7 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { fade } from './fade.animations'; +export { collapse } from './collapse.animations'; +export { fade, fadeWithStates, fadeIn } from './fade.animations'; export { slideFromBottom } from './slide.animations'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9hbmltYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxxQkFBYyxtQkFBbUIsQ0FBQztBQUNsQyxnQ0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmFkZS5hbmltYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc2xpZGUuYW5pbWF0aW9ucyc7XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9hbmltYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx5QkFBYyx1QkFBdUIsQ0FBQztBQUN0Qyw2Q0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxnQ0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29sbGFwc2UuYW5pbWF0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2ZhZGUuYW5pbWF0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3NsaWRlLmFuaW1hdGlvbnMnO1xuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/components/button/button.component.js b/npm/ng-packs/dist/theme-shared/esm5/lib/components/button/button.component.js index 88485470d2..70c67d6276 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/components/button/button.component.js +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/components/button/button.component.js @@ -15,7 +15,7 @@ var ButtonComponent = /** @class */ (function () { * @return {?} */ function () { - return "" + (this.loading ? 'fa fa-spin fa-spinner' : this.iconClass || 'd-none'); + return "" + (this.loading ? 'fa fa-pulse fa-spinner' : this.iconClass || 'd-none'); }, enumerable: true, configurable: true @@ -48,4 +48,4 @@ if (false) { /** @type {?} */ ButtonComponent.prototype.disabled; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpEO0lBQUE7UUFVRSxnQkFBVyxHQUFXLGlCQUFpQixDQUFDO1FBR3hDLFNBQUksR0FBVyxRQUFRLENBQUM7UUFNeEIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUd6QixhQUFRLEdBQVksS0FBSyxDQUFDO0lBSzVCLENBQUM7SUFIQyxzQkFBSSxpQ0FBSTs7OztRQUFSO1lBQ0UsT0FBTyxNQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBRSxDQUFDO1FBQ2xGLENBQUM7OztPQUFBOztnQkExQkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsK0xBSVQ7aUJBQ0Y7Ozs4QkFFRSxLQUFLO3VCQUdMLEtBQUs7NEJBR0wsS0FBSzswQkFHTCxLQUFLOzJCQUdMLEtBQUs7O0lBTVIsc0JBQUM7Q0FBQSxBQTNCRCxJQTJCQztTQW5CWSxlQUFlOzs7SUFDMUIsc0NBQ3dDOztJQUV4QywrQkFDd0I7O0lBRXhCLG9DQUNrQjs7SUFFbEIsa0NBQ3lCOztJQUV6QixtQ0FDMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1idXR0b24nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b24gW2F0dHIudHlwZV09XCJ0eXBlXCIgW25nQ2xhc3NdPVwiYnV0dG9uQ2xhc3NcIiBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBkaXNhYmxlZFwiPlxuICAgICAgPGkgW25nQ2xhc3NdPVwiaWNvblwiIGNsYXNzPVwibXItMVwiPjwvaT48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9idXR0b24+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGJ1dHRvbkNsYXNzOiBzdHJpbmcgPSAnYnRuIGJ0bi1wcmltYXJ5JztcblxuICBASW5wdXQoKVxuICB0eXBlOiBzdHJpbmcgPSAnYnV0dG9uJztcblxuICBASW5wdXQoKVxuICBpY29uQ2xhc3M6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBnZXQgaWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmxvYWRpbmcgPyAnZmEgZmEtc3BpbiBmYS1zcGlubmVyJyA6IHRoaXMuaWNvbkNsYXNzIHx8ICdkLW5vbmUnfWA7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpEO0lBQUE7UUFVRSxnQkFBVyxHQUFXLGlCQUFpQixDQUFDO1FBR3hDLFNBQUksR0FBVyxRQUFRLENBQUM7UUFNeEIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUd6QixhQUFRLEdBQVksS0FBSyxDQUFDO0lBSzVCLENBQUM7SUFIQyxzQkFBSSxpQ0FBSTs7OztRQUFSO1lBQ0UsT0FBTyxNQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBRSxDQUFDO1FBQ25GLENBQUM7OztPQUFBOztnQkExQkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsK0xBSVQ7aUJBQ0Y7Ozs4QkFFRSxLQUFLO3VCQUdMLEtBQUs7NEJBR0wsS0FBSzswQkFHTCxLQUFLOzJCQUdMLEtBQUs7O0lBTVIsc0JBQUM7Q0FBQSxBQTNCRCxJQTJCQztTQW5CWSxlQUFlOzs7SUFDMUIsc0NBQ3dDOztJQUV4QywrQkFDd0I7O0lBRXhCLG9DQUNrQjs7SUFFbEIsa0NBQ3lCOztJQUV6QixtQ0FDMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1idXR0b24nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b24gW2F0dHIudHlwZV09XCJ0eXBlXCIgW25nQ2xhc3NdPVwiYnV0dG9uQ2xhc3NcIiBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBkaXNhYmxlZFwiPlxuICAgICAgPGkgW25nQ2xhc3NdPVwiaWNvblwiIGNsYXNzPVwibXItMVwiPjwvaT48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9idXR0b24+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGJ1dHRvbkNsYXNzOiBzdHJpbmcgPSAnYnRuIGJ0bi1wcmltYXJ5JztcblxuICBASW5wdXQoKVxuICB0eXBlOiBzdHJpbmcgPSAnYnV0dG9uJztcblxuICBASW5wdXQoKVxuICBpY29uQ2xhc3M6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBnZXQgaWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmxvYWRpbmcgPyAnZmEgZmEtcHVsc2UgZmEtc3Bpbm5lcicgOiB0aGlzLmljb25DbGFzcyB8fCAnZC1ub25lJ31gO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/components/change-password/change-password.component.js b/npm/ng-packs/dist/theme-shared/esm5/lib/components/change-password/change-password.component.js index 5bf57c5b48..c77dee8ad4 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/components/change-password/change-password.component.js +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/components/change-password/change-password.component.js @@ -127,7 +127,7 @@ var ChangePasswordComponent = /** @class */ (function () { ChangePasswordComponent.decorators = [ { type: Component, args: [{ selector: 'abp-change-password', - template: "\n \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n" + template: "\n \n

    {{ 'AbpIdentity::ChangePassword' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n" }] } ]; /** @nocollapse */ @@ -174,4 +174,4 @@ if (false) { */ ChangePasswordComponent.prototype.toasterService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RCxJQUFBLGdDQUFTLEVBQUUsOEJBQVE7QUFFM0I7SUEyQkUsaUNBQW9CLEVBQWUsRUFBVSxLQUFZLEVBQVUsY0FBOEI7UUFBN0UsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQU87UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFUakcsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBTzVDLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFFeUUsQ0FBQztJQXBCckcsc0JBQ0ksNENBQU87Ozs7UUFEWDtZQUVFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDOzs7OztRQUVELFVBQVksS0FBYztZQUN4QixJ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Q0FBdUI7Ozs7O0lBQUUsd0NBQW9COzs7OztJQUFFLGlEQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZVBhc3N3b3JkIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tcGFyZVBhc3N3b3JkcyB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UnO1xuXG5jb25zdCB7IG1pbkxlbmd0aCwgcmVxdWlyZWQgfSA9IFZhbGlkYXRvcnM7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1jaGFuZ2UtcGFzc3dvcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByb3RlY3RlZCBfdmlzaWJsZTtcblxuICBASW5wdXQoKVxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtb2RhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cChcbiAgICAgIHtcbiAgICAgICAgcGFzc3dvcmQ6IFsnJywgcmVxdWlyZWRdLFxuICAgICAgICBuZXdQYXNzd29yZDogWycnLCByZXF1aXJlZF0sXG4gICAgICAgIHJlcGVhdE5ld1Bhc3N3b3JkOiBbJycsIHJlcXVpcmVkXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbGlkYXRvcnM6IFtjb21wYXJlUGFzc3dvcmRzKFsnbmV3UGFzc3dvcmQnLCAncmVwZWF0TmV3UGFzc3dvcmQnXSldLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKFxuICAgICAgICBuZXcgQ2hhbmdlUGFzc3dvcmQoe1xuICAgICAgICAgIGN1cnJlbnRQYXNzd29yZDogdGhpcy5mb3JtLmdldCgncGFzc3dvcmQnKS52YWx1ZSxcbiAgICAgICAgICBuZXdQYXNzd29yZDogdGhpcy5mb3JtLmdldCgnbmV3UGFzc3dvcmQnKS52YWx1ZSxcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihzbnEoKCkgPT4gZXJyLmVycm9yLmVycm9yLm1lc3NhZ2UsICdBYnBBY2NvdW50OjpEZWZhdWx0RXJyb3JNZXNzYWdlJyksICdFcnJvcicsIHtcbiAgICAgICAgICAgIGxpZmU6IDcwMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyB2aXNpYmxlIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXZpc2libGUpIHJldHVybjtcblxuICAgIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICB9IGVsc2UgaWYgKHZpc2libGUuY3VycmVudFZhbHVlID09PSBmYWxzZSAmJiB0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RCxJQUFBLGdDQUFTLEVBQUUsOEJBQVE7QUFFM0I7SUEyQkUsaUNBQW9CLEVBQWUsRUFBVSxLQUFZLEVBQVUsY0FBOEI7UUFBN0UsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQU87UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFUakcsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBTzVDLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFFeUUsQ0FBQztJQXBCckcsc0JBQ0ksNENBQU87Ozs7UUFEWDtZQUVFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDOzs7OztRQUVELFVBQVksS0FBYztZQUN4QixJ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Q0FBdUI7Ozs7O0lBQUUsd0NBQW9COzs7OztJQUFFLGlEQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZVBhc3N3b3JkIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tcGFyZVBhc3N3b3JkcyB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCBzbnEgZnJvbSAnc25xJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UnO1xuXG5jb25zdCB7IG1pbkxlbmd0aCwgcmVxdWlyZWQgfSA9IFZhbGlkYXRvcnM7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1jaGFuZ2UtcGFzc3dvcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByb3RlY3RlZCBfdmlzaWJsZTtcblxuICBASW5wdXQoKVxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtb2RhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cChcbiAgICAgIHtcbiAgICAgICAgcGFzc3dvcmQ6IFsnJywgcmVxdWlyZWRdLFxuICAgICAgICBuZXdQYXNzd29yZDogWycnLCByZXF1aXJlZF0sXG4gICAgICAgIHJlcGVhdE5ld1Bhc3N3b3JkOiBbJycsIHJlcXVpcmVkXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbGlkYXRvcnM6IFtjb21wYXJlUGFzc3dvcmRzKFsnbmV3UGFzc3dvcmQnLCAncmVwZWF0TmV3UGFzc3dvcmQnXSldLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKFxuICAgICAgICBuZXcgQ2hhbmdlUGFzc3dvcmQoe1xuICAgICAgICAgIGN1cnJlbnRQYXNzd29yZDogdGhpcy5mb3JtLmdldCgncGFzc3dvcmQnKS52YWx1ZSxcbiAgICAgICAgICBuZXdQYXNzd29yZDogdGhpcy5mb3JtLmdldCgnbmV3UGFzc3dvcmQnKS52YWx1ZSxcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubW9kYWxCdXN5ID0gZmFsc2U7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihzbnEoKCkgPT4gZXJyLmVycm9yLmVycm9yLm1lc3NhZ2UsICdBYnBBY2NvdW50OjpEZWZhdWx0RXJyb3JNZXNzYWdlJyksICdFcnJvcicsIHtcbiAgICAgICAgICAgIGxpZmU6IDcwMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyB2aXNpYmxlIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXZpc2libGUpIHJldHVybjtcblxuICAgIGlmICh2aXNpYmxlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgICB9IGVsc2UgaWYgKHZpc2libGUuY3VycmVudFZhbHVlID09PSBmYWxzZSAmJiB0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/components/chart/chart.component.js b/npm/ng-packs/dist/theme-shared/esm5/lib/components/chart/chart.component.js new file mode 100644 index 0000000000..9b205d67a8 --- /dev/null +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/components/chart/chart.component.js @@ -0,0 +1,222 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component, ElementRef, EventEmitter, Input, Output, ChangeDetectorRef, } from '@angular/core'; +import { BehaviorSubject } from 'rxjs'; +import { chartJsLoaded$ } from '../../utils/widget-utils'; +var ChartComponent = /** @class */ (function () { + function ChartComponent(el, cdRef) { + var _this = this; + this.el = el; + this.cdRef = cdRef; + this.options = {}; + this.plugins = []; + this.responsive = true; + this.onDataSelect = new EventEmitter(); + this.initialized = new BehaviorSubject(this); + this.onCanvasClick = (/** + * @param {?} event + * @return {?} + */ + function (event) { + if (_this.chart) { + /** @type {?} */ + var element = _this.chart.getElementAtEvent(event); + /** @type {?} */ + var dataset = _this.chart.getDatasetAtEvent(event); + if (element && element[0] && dataset) { + _this.onDataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset }); + } + } + }); + this.initChart = (/** + * @return {?} + */ + function () { + /** @type {?} */ + var opts = _this.options || {}; + opts.responsive = _this.responsive; + // allows chart to resize in responsive mode + if (opts.responsive && (_this.height || _this.width)) { + opts.maintainAspectRatio = false; + } + _this.chart = new Chart(_this.el.nativeElement.children[0].children[0], { + type: _this.type, + data: _this.data, + options: _this.options, + plugins: _this.plugins, + }); + _this.cdRef.detectChanges(); + }); + this.generateLegend = (/** + * @return {?} + */ + function () { + if (_this.chart) { + return _this.chart.generateLegend(); + } + }); + this.refresh = (/** + * @return {?} + */ + function () { + if (_this.chart) { + _this.chart.update(); + _this.cdRef.detectChanges(); + } + }); + this.reinit = (/** + * @return {?} + */ + function () { + if (_this.chart) { + _this.chart.destroy(); + _this.initChart(); + } + }); + } + Object.defineProperty(ChartComponent.prototype, "data", { + get: /** + * @return {?} + */ + function () { + return this._data; + }, + set: /** + * @param {?} val + * @return {?} + */ + function (val) { + this._data = val; + this.reinit(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ChartComponent.prototype, "canvas", { + get: /** + * @return {?} + */ + function () { + return this.el.nativeElement.children[0].children[0]; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ChartComponent.prototype, "base64Image", { + get: /** + * @return {?} + */ + function () { + return this.chart.toBase64Image(); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + ChartComponent.prototype.ngAfterViewInit = /** + * @return {?} + */ + function () { + var _this = this; + chartJsLoaded$.subscribe((/** + * @return {?} + */ + function () { + try { + Chart; + } + catch (error) { + console.error("Chart is not found. Import the Chart from app.module like shown below:\n import('chart.js');\n "); + return; + } + _this.initChart(); + _this._initialized = true; + })); + }; + /** + * @return {?} + */ + ChartComponent.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { + if (this.chart) { + this.chart.destroy(); + this._initialized = false; + this.chart = null; + } + }; + ChartComponent.decorators = [ + { type: Component, args: [{ + selector: 'abp-chart', + template: "\n \n\n" + }] } + ]; + /** @nocollapse */ + ChartComponent.ctorParameters = function () { return [ + { type: ElementRef }, + { type: ChangeDetectorRef } + ]; }; + ChartComponent.propDecorators = { + type: [{ type: Input }], + options: [{ type: Input }], + plugins: [{ type: Input }], + width: [{ type: Input }], + height: [{ type: Input }], + responsive: [{ type: Input }], + onDataSelect: [{ type: Output }], + initialized: [{ type: Output }], + data: [{ type: Input }] + }; + return ChartComponent; +}()); +export { ChartComponent }; +if (false) { + /** @type {?} */ + ChartComponent.prototype.type; + /** @type {?} */ + ChartComponent.prototype.options; + /** @type {?} */ + ChartComponent.prototype.plugins; + /** @type {?} */ + ChartComponent.prototype.width; + /** @type {?} */ + ChartComponent.prototype.height; + /** @type {?} */ + ChartComponent.prototype.responsive; + /** @type {?} */ + ChartComponent.prototype.onDataSelect; + /** @type {?} */ + ChartComponent.prototype.initialized; + /** + * @type {?} + * @private + */ + ChartComponent.prototype._initialized; + /** @type {?} */ + ChartComponent.prototype._data; + /** @type {?} */ + ChartComponent.prototype.chart; + /** @type {?} */ + ChartComponent.prototype.onCanvasClick; + /** @type {?} */ + ChartComponent.prototype.initChart; + /** @type {?} */ + ChartComponent.prototype.generateLegend; + /** @type {?} */ + ChartComponent.prototype.refresh; + /** @type {?} */ + ChartComponent.prototype.reinit; + /** @type {?} */ + ChartComponent.prototype.el; + /** + * @type {?} + * @private + */ + ChartComponent.prototype.cdRef; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUcxRDtJQTJCRSx3QkFBbUIsRUFBYyxFQUFVLEtBQXdCO1FBQW5FLGlCQUF1RTtRQUFwRCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFwQjFELFlBQU8sR0FBUSxFQUFFLENBQUM7UUFFbEIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQU1wQixlQUFVLEdBQVksSUFBSSxDQUFDO1FBRTFCLGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFckQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQTJDbEQsa0JBQWE7Ozs7UUFBRyxVQUFBLEtBQUs7WUFDbkIsSUFBSSxLQUFJLENBQUMsS0FBSyxFQUFFOztvQkFDVixPQUFPLEdBQUcsS0FBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7O29CQUM3QyxPQUFPLEdBQUcsS0FBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7Z0JBQ2pELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLEVBQUU7b0JBQ3BDLEtBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUss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QUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQzs7Z0JBckhGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsd1dBQXFDO2lCQUN0Qzs7OztnQkFkQyxVQUFVO2dCQUtWLGlCQUFpQjs7O3VCQVdoQixLQUFLOzBCQUVMLEtBQUs7MEJBRUwsS0FBSzt3QkFFTCxLQUFLO3lCQUVMLEtBQUs7NkJBRUwsS0FBSzsrQkFFTCxNQUFNOzhCQUVOLE1BQU07dUJBVU4sS0FBSzs7SUF5RlIscUJBQUM7Q0FBQSxBQXRIRCxJQXNIQztTQWxIWSxjQUFjOzs7SUFDekIsOEJBQXNCOztJQUV0QixpQ0FBMkI7O0lBRTNCLGlDQUE2Qjs7SUFFN0IsK0JBQXVCOztJQUV2QixnQ0FBd0I7O0lBRXhCLG9DQUFvQzs7SUFFcEMsc0NBQStEOztJQUUvRCxxQ0FBa0Q7Ozs7O0lBRWxELHNDQUE4Qjs7SUFFOUIsK0JBQVc7O0lBRVgsK0JBQVc7O0lBcUNYLHVDQVFFOztJQUVGLG1DQWlCRTs7SUFFRix3Q0FJRTs7SUFFRixpQ0FLRTs7SUFFRixnQ0FLRTs7SUFsRlUsNEJBQXFCOzs7OztJQUFFLCtCQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2hhcnRKc0xvYWRlZCQgfSBmcm9tICcuLi8uLi91dGlscy93aWRnZXQtdXRpbHMnO1xuZGVjbGFyZSBjb25zdCBDaGFydDogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZztcblxuICBASW5wdXQoKSBvcHRpb25zOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKSBwbHVnaW5zOiBhbnlbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcmVzcG9uc2l2ZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIG9uRGF0YVNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIGluaXRpYWxpemVkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzKTtcblxuICBwcml2YXRlIF9pbml0aWFsaXplZDogYm9vbGVhbjtcblxuICBfZGF0YTogYW55O1xuXG4gIGNoYXJ0OiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBASW5wdXQoKSBnZXQgZGF0YSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICB9XG5cbiAgc2V0IGRhdGEodmFsOiBhbnkpIHtcbiAgICB0aGlzLl9kYXRhID0gdmFsO1xuICAgIHRoaXMucmVpbml0KCk7XG4gIH1cblxuICBnZXQgY2FudmFzKCkge1xuICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF07XG4gIH1cblxuICBnZXQgYmFzZTY0SW1hZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnQudG9CYXNlNjRJbWFnZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNoYXJ0SnNMb2FkZWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBDaGFydDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYENoYXJ0IGlzIG5vdCBmb3VuZC4gSW1wb3J0IHRoZSBDaGFydCBmcm9tIGFwcC5tb2R1bGUgbGlrZSBzaG93biBiZWxvdzpcbiAgICAgICAgaW1wb3J0KCdjaGFydC5qcycpO1xuICAgICAgICBgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmluaXRDaGFydCgpO1xuICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgb25DYW52YXNDbGljayA9IGV2ZW50ID0+IHtcbiAgICBpZiAodGhpcy5jaGFydCkge1xuICAgICAgbGV0IGVsZW1lbnQgPSB0aGlzLmNoYXJ0LmdldEVsZW1lbnRBdEV2ZW50KGV2ZW50KTtcbiAgICAgIGxldCBkYXRhc2V0ID0gdGhpcy5jaGFydC5nZXREYXRhc2V0QXRFdmVudChldmVudCk7XG4gICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50WzBdICYmIGRhdGFzZXQpIHtcbiAgICAgICAgdGhpcy5vbkRhdGFTZWxlY3QuZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBlbGVtZW50OiBlbGVtZW50WzBdLCBkYXRhc2V0OiBkYXRhc2V0IH0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBpbml0Q2hhcnQgPSAoKSA9PiB7XG4gICAgbGV0IG9wdHMgPSB0aGlzLm9wdGlvbnMgfHwge307XG4gICAgb3B0cy5yZXNwb25zaXZlID0gdGhpcy5yZXNwb25zaXZlO1xuXG4gICAgLy8gYWxsb3dzIGNoYXJ0IHRvIHJlc2l6ZSBpbiByZXNwb25zaXZlIG1vZGVcbiAgICBpZiAob3B0cy5yZXNwb25zaXZlICYmICh0aGlzLmhlaWdodCB8fCB0aGlzLndpZHRoKSkge1xuICAgICAgb3B0cy5tYWludGFpbkFzcGVjdFJhdGlvID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0sIHtcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgIHBsdWdpbnM6IHRoaXMucGx1Z2lucyxcbiAgICB9KTtcblxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9O1xuXG4gIGdlbmVyYXRlTGVnZW5kID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLmNoYXJ0KSB7XG4gICAgICByZXR1cm4gdGhpcy5jaGFydC5nZW5lcmF0ZUxlZ2VuZCgpO1xuICAgIH1cbiAgfTtcblxuICByZWZyZXNoID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLmNoYXJ0KSB7XG4gICAgICB0aGlzLmNoYXJ0LnVwZGF0ZSgpO1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9O1xuXG4gIHJlaW5pdCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5jaGFydCkge1xuICAgICAgdGhpcy5jaGFydC5kZXN0cm95KCk7XG4gICAgICB0aGlzLmluaXRDaGFydCgpO1xuICAgIH1cbiAgfTtcblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5jaGFydCkge1xuICAgICAgdGhpcy5jaGFydC5kZXN0cm95KCk7XG4gICAgICB0aGlzLl9pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgdGhpcy5jaGFydCA9IG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/components/confirmation/confirmation.component.js b/npm/ng-packs/dist/theme-shared/esm5/lib/components/confirmation/confirmation.component.js index 91b23088cb..a294e46a40 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/components/confirmation/confirmation.component.js +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/components/confirmation/confirmation.component.js @@ -25,7 +25,7 @@ var ConfirmationComponent = /** @class */ (function () { ConfirmationComponent.decorators = [ { type: Component, args: [{ selector: 'abp-confirmation', - template: "\n \n \n
    \n

    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n

    \n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n
    \n " + template: "\n \n \n \n
    \n {{ message.summary | abpLocalization: message.titleLocalizationParams }}\n
    \n
    \n {{ message.detail | abpLocalization: message.messageLocalizationParams }}\n
    \n\n \n
    \n
    \n " }] } ]; /** @nocollapse */ @@ -48,4 +48,4 @@ if (false) { */ ConfirmationComponent.prototype.confirmationService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHMUU7SUE0Q0UsK0JBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBSjVELFlBQU8sMkJBQTBCO1FBQ2pDLFdBQU0seUJBQXlCO1FBQy9CLFlBQU8sMkJBQTBCO0lBRThCLENBQUM7Ozs7O0lBRWhFLHFDQUFLOzs7O0lBQUwsVUFBTSxNQUFzQjtRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O2dCQWhERixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLHF2Q0FtQ1Q7aUJBQ0Y7Ozs7Z0JBekNRLG1CQUFtQjs7SUFvRDVCLDRCQUFDO0NBQUEsQUFqREQsSUFpREM7U0FWWSxxQkFBcUI7OztJQUNoQyx3Q0FBaUM7O0lBQ2pDLHVDQUErQjs7SUFDL0Isd0NBQWlDOzs7OztJQUVyQixvREFBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maXJtYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RvYXN0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtY29uZmlybWF0aW9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cC10b2FzdFxuICAgICAgcG9zaXRpb249XCJjZW50ZXJcIlxuICAgICAga2V5PVwiYWJwQ29uZmlybWF0aW9uXCJcbiAgICAgIChvbkNsb3NlKT1cImNsb3NlKGRpc21pc3MpXCJcbiAgICAgIFttb2RhbF09XCJ0cnVlXCJcbiAgICAgIFtiYXNlWkluZGV4XT1cIjEwMDBcIlxuICAgICAgc3R5bGVDbGFzcz1cIlwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1tZXNzYWdlIHBUZW1wbGF0ZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2Uuc3VtbWFyeVwiIGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5cbiAgICAgICAgICAgIHt7IG1lc3NhZ2Uuc3VtbWFyeSB8IGFicExvY2FsaXphdGlvbjogbWVzc2FnZS50aXRsZUxvY2FsaXphdGlvblBhcmFtcyB9fVxuICAgICAgICAgIDwvaDQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICAgIHt7IG1lc3NhZ2UuZGV0YWlsIHwgYWJwTG9jYWxpemF0aW9uOiBtZXNzYWdlLm1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXMgfX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFtZXNzYWdlLmhpZGVDYW5jZWxCdG5cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJjbG9zZShyZWplY3QpXCI+XG4gICAgICAgICAgICB7eyBtZXNzYWdlLmNhbmNlbENvcHkgfHwgJ0FicElkZW50aXR5OjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCIhbWVzc2FnZS5oaWRlWWVzQnRuXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoY29uZmlybSlcIlxuICAgICAgICAgICAgYXV0b2ZvY3VzXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgbWVzc2FnZS55ZXNDb3B5IHx8ICdBYnBJZGVudGl0eTo6WWVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b2FzdD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uQ29tcG9uZW50IHtcbiAgY29uZmlybSA9IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm07XG4gIHJlamVjdCA9IFRvYXN0ZXIuU3RhdHVzLnJlamVjdDtcbiAgZGlzbWlzcyA9IFRvYXN0ZXIuU3RhdHVzLmRpc21pc3M7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlKSB7fVxuXG4gIGNsb3NlKHN0YXR1czogVG9hc3Rlci5TdGF0dXMpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY2xlYXIoc3RhdHVzKTtcbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcudGhlbWUuc2hhcmVkLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHMUU7SUEyQ0UsK0JBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBSjVELFlBQU8sMkJBQTBCO1FBQ2pDLFdBQU0seUJBQXlCO1FBQy9CLFlBQU8sMkJBQTBCO0lBRThCLENBQUM7Ozs7O0lBRWhFLHFDQUFLOzs7O0lBQUwsVUFBTSxNQUFzQjtRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O2dCQS9DRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLHl5Q0FrQ1Q7aUJBQ0Y7Ozs7Z0JBeENRLG1CQUFtQjs7SUFtRDVCLDRCQUFDO0NBQUEsQUFoREQsSUFnREM7U0FWWSxxQkFBcUI7OztJQUNoQyx3Q0FBaUM7O0lBQ2pDLHVDQUErQjs7SUFDL0Isd0NBQWlDOzs7OztJQUVyQixvREFBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maXJtYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RvYXN0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtY29uZmlybWF0aW9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cC10b2FzdFxuICAgICAgcG9zaXRpb249XCJjZW50ZXJcIlxuICAgICAga2V5PVwiYWJwQ29uZmlybWF0aW9uXCJcbiAgICAgIChvbkNsb3NlKT1cImNsb3NlKGRpc21pc3MpXCJcbiAgICAgIFttb2RhbF09XCJ0cnVlXCJcbiAgICAgIFtiYXNlWkluZGV4XT1cIjEwMDBcIlxuICAgICAgc3R5bGVDbGFzcz1cImFicC1jb25maXJtXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZSBhYnAtY29uZmlybS1pY29uXCI+PC9pPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibWVzc2FnZS5zdW1tYXJ5XCIgY2xhc3M9XCJhYnAtY29uZmlybS1zdW1tYXJ5XCI+XG4gICAgICAgICAge3sgbWVzc2FnZS5zdW1tYXJ5IHwgYWJwTG9jYWxpemF0aW9uOiBtZXNzYWdlLnRpdGxlTG9jYWxpemF0aW9uUGFyYW1zIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJwLWNvbmZpcm0tYm9keVwiPlxuICAgICAgICAgIHt7IG1lc3NhZ2UuZGV0YWlsIHwgYWJwTG9jYWxpemF0aW9uOiBtZXNzYWdlLm1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXMgfX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFicC1jb25maXJtLWZvb3RlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFtZXNzYWdlLmhpZGVDYW5jZWxCdG5cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImNsb3NlKHJlamVjdClcIj5cbiAgICAgICAgICAgIHt7IG1lc3NhZ2UuY2FuY2VsQ29weSB8fCAnQWJwSWRlbnRpdHk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiFtZXNzYWdlLmhpZGVZZXNCdG5cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKGNvbmZpcm0pXCJcbiAgICAgICAgICAgIGF1dG9mb2N1c1xuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPnt7IG1lc3NhZ2UueWVzQ29weSB8fCAnQWJwSWRlbnRpdHk6OlllcycgfCBhYnBMb2NhbGl6YXRpb24gfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3AtdG9hc3Q+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvbkNvbXBvbmVudCB7XG4gIGNvbmZpcm0gPSBUb2FzdGVyLlN0YXR1cy5jb25maXJtO1xuICByZWplY3QgPSBUb2FzdGVyLlN0YXR1cy5yZWplY3Q7XG4gIGRpc21pc3MgPSBUb2FzdGVyLlN0YXR1cy5kaXNtaXNzO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSkge31cblxuICBjbG9zZShzdGF0dXM6IFRvYXN0ZXIuU3RhdHVzKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNsZWFyKHN0YXR1cyk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/components/errors/validation-error.component.js b/npm/ng-packs/dist/theme-shared/esm5/lib/components/errors/validation-error.component.js deleted file mode 100644 index a44a93f69c..0000000000 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/components/errors/validation-error.component.js +++ /dev/null @@ -1,49 +0,0 @@ -/** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ -import * as tslib_1 from "tslib"; -import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; -import { ValidationErrorComponent as ErrorComponent } from '@ngx-validate/core'; -var ValidationErrorComponent = /** @class */ (function (_super) { - tslib_1.__extends(ValidationErrorComponent, _super); - function ValidationErrorComponent() { - return _super !== null && _super.apply(this, arguments) || this; - } - Object.defineProperty(ValidationErrorComponent.prototype, "abpErrors", { - get: /** - * @return {?} - */ - function () { - if (!this.errors || !this.errors.length) - return []; - return this.errors.map((/** - * @param {?} error - * @return {?} - */ - function (error) { - if (!error.message) - return error; - /** @type {?} */ - var index = error.message.indexOf('['); - if (index > -1) { - return tslib_1.__assign({}, error, { message: error.message.slice(0, index), interpoliteParams: error.message.slice(index + 1, error.message.length - 1).split(',') }); - } - return error; - })); - }, - enumerable: true, - configurable: true - }); - ValidationErrorComponent.decorators = [ - { type: Component, args: [{ - selector: 'abp-validation-error', - template: "\n
    \n {{ error.message | abpLocalization: error.interpoliteParams }}\n
    \n ", - changeDetection: ChangeDetectionStrategy.OnPush, - encapsulation: ViewEncapsulation.None - }] } - ]; - return ValidationErrorComponent; -}(ErrorComponent)); -export { ValidationErrorComponent }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Vycm9ycy92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFjLHdCQUF3QixJQUFJLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTVGO0lBVThDLG9EQUFjO0lBVjVEOztJQThCQSxDQUFDO0lBbkJDLHNCQUFJLCtDQUFTOzs7O1FBQWI7WUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUVuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRzs7OztZQUFDLFVBQUEsS0FBSztnQkFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO29CQUFFLE9BQU8sS0FBSyxDQUFDOztvQkFFM0IsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFFeEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ2QsNEJBQ0ssS0FBSyxJQUNSLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQ3RDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUN0RjtpQkFDSDtnQkFFRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUMsRUFBQyxDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7O2dCQTdCRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLG9MQUlUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7O0lBcUJELCtCQUFDO0NBQUEsQUE5QkQsQ0FVOEMsY0FBYyxHQW9CM0Q7U0FwQlksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRpb24sIFZhbGlkYXRpb25FcnJvckNvbXBvbmVudCBhcyBFcnJvckNvbXBvbmVudCB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC12YWxpZGF0aW9uLWVycm9yJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0Zvcj1cImxldCBlcnJvciBvZiBhYnBFcnJvcnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAge3sgZXJyb3IubWVzc2FnZSB8IGFicExvY2FsaXphdGlvbjogZXJyb3IuaW50ZXJwb2xpdGVQYXJhbXMgfX1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvckNvbXBvbmVudCBleHRlbmRzIEVycm9yQ29tcG9uZW50IHtcbiAgZ2V0IGFicEVycm9ycygpOiBWYWxpZGF0aW9uLkVycm9yW10gJiB7IGludGVycG9saXRlUGFyYW1zPzogc3RyaW5nW10gfSB7XG4gICAgaWYgKCF0aGlzLmVycm9ycyB8fCAhdGhpcy5lcnJvcnMubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgICByZXR1cm4gdGhpcy5lcnJvcnMubWFwKGVycm9yID0+IHtcbiAgICAgIGlmICghZXJyb3IubWVzc2FnZSkgcmV0dXJuIGVycm9yO1xuXG4gICAgICBjb25zdCBpbmRleCA9IGVycm9yLm1lc3NhZ2UuaW5kZXhPZignWycpO1xuXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmVycm9yLFxuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2Uuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgICAgIGludGVycG9saXRlUGFyYW1zOiBlcnJvci5tZXNzYWdlLnNsaWNlKGluZGV4ICsgMSwgZXJyb3IubWVzc2FnZS5sZW5ndGggLSAxKS5zcGxpdCgnLCcpLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZXJyb3I7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/components/index.js b/npm/ng-packs/dist/theme-shared/esm5/lib/components/index.js index 056a0009d9..c4d73d6aae 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/components/index.js +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/components/index.js @@ -2,12 +2,14 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export { ButtonComponent } from './button/button.component'; export { BreadcrumbComponent } from './breadcrumb/breadcrumb.component'; +export { ButtonComponent } from './button/button.component'; export { ChangePasswordComponent } from './change-password/change-password.component'; +export { ChartComponent } from './chart/chart.component'; export { ConfirmationComponent } from './confirmation/confirmation.component'; export { LoaderBarComponent } from './loader-bar/loader-bar.component'; export { ModalComponent } from './modal/modal.component'; export { ProfileComponent } from './profile/profile.component'; +export { TableEmptyMessageComponent } from './table-empty-message/table-empty-message.component'; export { ToastComponent } from './toast/toast.component'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxnQ0FBYywyQkFBMkIsQ0FBQztBQUMxQyxvQ0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCx3Q0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxzQ0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxtQ0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCwrQkFBYyx5QkFBeUIsQ0FBQztBQUN4QyxpQ0FBYyw2QkFBNkIsQ0FBQztBQUM1QywrQkFBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xvYWRlci1iYXIvbG9hZGVyLWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdG9hc3QvdG9hc3QuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxvQ0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxnQ0FBYywyQkFBMkIsQ0FBQztBQUMxQyx3Q0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCwrQkFBYyx5QkFBeUIsQ0FBQztBQUN4QyxzQ0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxtQ0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCwrQkFBYyx5QkFBeUIsQ0FBQztBQUN4QyxpQ0FBYyw2QkFBNkIsQ0FBQztBQUM1QywyQ0FBYyxxREFBcUQsQ0FBQztBQUNwRSwrQkFBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC9jaGFydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xvYWRlci1iYXIvbG9hZGVyLWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtZW1wdHktbWVzc2FnZS90YWJsZS1lbXB0eS1tZXNzYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/components/loader-bar/loader-bar.component.js b/npm/ng-packs/dist/theme-shared/esm5/lib/components/loader-bar/loader-bar.component.js index 4c8f351c31..806caaaa8c 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/components/loader-bar/loader-bar.component.js +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/components/loader-bar/loader-bar.component.js @@ -3,18 +3,20 @@ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { StartLoader, StopLoader } from '@abp/ng.core'; -import { Component, Input } from '@angular/core'; -import { NavigationEnd, NavigationStart, Router, NavigationError } from '@angular/router'; +import { ChangeDetectorRef, Component, Input } from '@angular/core'; +import { NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router'; import { takeUntilDestroy } from '@ngx-validate/core'; import { Actions, ofActionSuccessful } from '@ngxs/store'; +import { interval, timer } from 'rxjs'; import { filter } from 'rxjs/operators'; var LoaderBarComponent = /** @class */ (function () { - function LoaderBarComponent(actions, router) { + function LoaderBarComponent(actions, router, cdRef) { var _this = this; this.actions = actions; this.router = router; + this.cdRef = cdRef; this.containerClass = 'abp-loader-bar'; - this.progressClass = 'abp-progress'; + this.color = '#77b6ff'; this.isLoading = false; this.filter = (/** * @param {?} action @@ -53,13 +55,25 @@ var LoaderBarComponent = /** @class */ (function () { _this.stopLoading(); })); } + Object.defineProperty(LoaderBarComponent.prototype, "boxShadow", { + get: /** + * @return {?} + */ + function () { + return "0 0 10px rgba(" + this.color + ", 0.5)"; + }, + enumerable: true, + configurable: true + }); /** * @return {?} */ LoaderBarComponent.prototype.ngOnDestroy = /** * @return {?} */ - function () { }; + function () { + this.interval.unsubscribe(); + }; /** * @return {?} */ @@ -68,9 +82,10 @@ var LoaderBarComponent = /** @class */ (function () { */ function () { var _this = this; + if (this.isLoading || this.progressLevel !== 0) + return; this.isLoading = true; - /** @type {?} */ - var interval = setInterval((/** + this.interval = interval(350).subscribe((/** * @return {?} */ function () { @@ -84,10 +99,10 @@ var LoaderBarComponent = /** @class */ (function () { _this.progressLevel += 0.1; } else { - clearInterval(interval); + _this.interval.unsubscribe(); } - }), 300); - this.interval = interval; + _this.cdRef.detectChanges(); + })); }; /** * @return {?} @@ -97,31 +112,35 @@ var LoaderBarComponent = /** @class */ (function () { */ function () { var _this = this; - clearInterval(this.interval); + this.interval.unsubscribe(); this.progressLevel = 100; this.isLoading = false; - setTimeout((/** + if (this.timer && !this.timer.closed) + return; + this.timer = timer(820).subscribe((/** * @return {?} */ function () { _this.progressLevel = 0; - }), 800); + _this.cdRef.detectChanges(); + })); }; LoaderBarComponent.decorators = [ { type: Component, args: [{ selector: 'abp-loader-bar', - template: "\n
    \n
    \n
    \n ", - styles: [".abp-loader-bar{left:0;opacity:0;position:fixed;top:0;transition:opacity .4s linear .4s;z-index:99999}.abp-loader-bar.is-loading{opacity:1;transition:none}.abp-loader-bar .abp-progress{background:#77b6ff;box-shadow:0 0 10px rgba(119,182,255,.7);height:2px;left:0;position:fixed;top:0;transition:width .4s}"] + template: "\n
    \n
    \n \n ", + styles: [".abp-loader-bar{left:0;opacity:0;position:fixed;top:0;transition:opacity .4s linear .4s;z-index:99999}.abp-loader-bar.is-loading{opacity:1;transition:none}.abp-loader-bar .abp-progress{height:3px;left:0;position:fixed;top:0;transition:width .4s}"] }] } ]; /** @nocollapse */ LoaderBarComponent.ctorParameters = function () { return [ { type: Actions }, - { type: Router } + { type: Router }, + { type: ChangeDetectorRef } ]; }; LoaderBarComponent.propDecorators = { containerClass: [{ type: Input }], - progressClass: [{ type: Input }], + color: [{ type: Input }], isLoading: [{ type: Input }], filter: [{ type: Input }] }; @@ -132,7 +151,7 @@ if (false) { /** @type {?} */ LoaderBarComponent.prototype.containerClass; /** @type {?} */ - LoaderBarComponent.prototype.progressClass; + LoaderBarComponent.prototype.color; /** @type {?} */ LoaderBarComponent.prototype.isLoading; /** @type {?} */ @@ -141,6 +160,8 @@ if (false) { LoaderBarComponent.prototype.progressLevel; /** @type {?} */ LoaderBarComponent.prototype.interval; + /** @type {?} */ + LoaderBarComponent.prototype.timer; /** * @type {?} * @private @@ -151,5 +172,10 @@ if (false) { * @private */ LoaderBarComponent.prototype.router; + /** + * @type {?} + * @private + */ + LoaderBarComponent.prototype.cdRef; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2xvYWRlci1iYXIvbG9hZGVyLWJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QztJQTBCRSw0QkFBb0IsT0FBZ0IsRUFBVSxNQUFjO1FBQTVELGlCQXdCQztRQXhCbUIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFmNUQsbUJBQWMsR0FBVyxnQkFBZ0IsQ0FBQztRQUcxQyxrQkFBYSxHQUFXLGNBQWMsQ0FBQztRQUd2QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRzNCLFdBQU07Ozs7UUFBRyxVQUFDLE1BQWdDLElBQUssT0FBQSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLEVBQXRELENBQXNELEVBQUM7UUFFdEcsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFLeEIsT0FBTzthQUNKLElBQUksQ0FDSCxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEVBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQ25CLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUN2QjthQUNBLFNBQVM7Ozs7UUFBQyxVQUFBLE1BQU07WUFDZixJQUFJLE1BQU0sWUFBWSxXQUFXO2dCQUFFLEtBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7Z0JBQ2xELEtBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQixDQUFDLEVBQUMsQ0FBQztRQUVMLE1BQU0sQ0FBQyxNQUFNO2FBQ1YsSUFBSSxDQUNILE1BQU07Ozs7UUFDSixVQUFBLEtBQUs7WUFDSCxPQUFBLEtBQUssWUFBWSxlQUFlLElBQUksS0FBSyxZQUFZLGFBQWEsSUFBSSxLQUFLLFlBQVksZUFBZTtRQUF0RyxDQUFzRyxFQUN6RyxFQUNELGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUN2QjthQUNBLFNBQVM7Ozs7UUFBQyxVQUFBLEtBQUs7WUFDZCxJQUFJLEtBQUssWUFBWSxlQUFlO2dCQUFFLEtBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7Z0JBQ3JELEtBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQixDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7SUFFRCx3Q0FBVzs7O0lBQVgsY0FBZSxDQUFDOzs7O0lBRWhCLHlDQUFZOzs7SUFBWjtRQUFBLGlCQWVDO1FBZEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7O1lBQ2hCLFFBQVEsR0FBRyxXQUFXOzs7UUFBQztZQUMzQixJQUFJLEtBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxFQUFFO2dCQUMzQixLQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7YUFDMUM7aUJBQU0sSUFBSSxLQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsRUFBRTtnQkFDbEMsS0FBSSxDQUFDLGFBQWEsSUFBSSxHQUFHLENBQUM7YUFDM0I7aUJBQU0sSUFBSSxLQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFBRTtnQkFDbkMsS0FBSSxDQUFDLGFBQWEsSUFBSSxHQUFHLENBQUM7YUFDM0I7aUJBQU07Z0JBQ0wsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxHQUFFLEdBQUcsQ0FBQztRQUVQLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7Ozs7SUFFRCx3Q0FBVzs7O0lBQVg7UUFBQSxpQkFRQztRQVBDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdkIsVUFBVTs7O1FBQUM7WUFDVCxLQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOztnQkEvRUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxtTUFJVDs7aUJBRUY7Ozs7Z0JBWFEsT0FBTztnQkFGeUIsTUFBTTs7O2lDQWU1QyxLQUFLO2dDQUdMLEtBQUs7NEJBR0wsS0FBSzt5QkFHTCxLQUFLOztJQTZEUix5QkFBQztDQUFBLEFBaEZELElBZ0ZDO1NBdkVZLGtCQUFrQjs7O0lBQzdCLDRDQUMwQzs7SUFFMUMsMkNBQ3VDOztJQUV2Qyx1Q0FDMkI7O0lBRTNCLG9DQUNzRzs7SUFFdEcsMkNBQTBCOztJQUUxQixzQ0FBYzs7Ozs7SUFFRixxQ0FBd0I7Ozs7O0lBQUUsb0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhcnRMb2FkZXIsIFN0b3BMb2FkZXIgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciwgTmF2aWdhdGlvbkVycm9yIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3kgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgb2ZBY3Rpb25TdWNjZXNzZnVsIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtbG9hZGVyLWJhcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBpZD1cImFicC1sb2FkZXItYmFyXCIgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3NcIiBbY2xhc3MuaXMtbG9hZGluZ109XCJpc0xvYWRpbmdcIj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwicHJvZ3Jlc3NDbGFzc1wiIFtzdHlsZS53aWR0aC52d109XCJwcm9ncmVzc0xldmVsXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2xvYWRlci1iYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9hZGVyQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgY29udGFpbmVyQ2xhc3M6IHN0cmluZyA9ICdhYnAtbG9hZGVyLWJhcic7XG5cbiAgQElucHV0KClcbiAgcHJvZ3Jlc3NDbGFzczogc3RyaW5nID0gJ2FicC1wcm9ncmVzcyc7XG5cbiAgQElucHV0KClcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZmlsdGVyID0gKGFjdGlvbjogU3RhcnRMb2FkZXIgfCBTdG9wTG9hZGVyKSA9PiBhY3Rpb24ucGF5bG9hZC51cmwuaW5kZXhPZignb3BlbmlkLWNvbmZpZ3VyYXRpb24nKSA8IDA7XG5cbiAgcHJvZ3Jlc3NMZXZlbDogbnVtYmVyID0gMDtcblxuICBpbnRlcnZhbDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uczogQWN0aW9ucywgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIGFjdGlvbnNcbiAgICAgIC5waXBlKFxuICAgICAgICBvZkFjdGlvblN1Y2Nlc3NmdWwoU3RhcnRMb2FkZXIsIFN0b3BMb2FkZXIpLFxuICAgICAgICBmaWx0ZXIodGhpcy5maWx0ZXIpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95KHRoaXMpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShhY3Rpb24gPT4ge1xuICAgICAgICBpZiAoYWN0aW9uIGluc3RhbmNlb2YgU3RhcnRMb2FkZXIpIHRoaXMuc3RhcnRMb2FkaW5nKCk7XG4gICAgICAgIGVsc2UgdGhpcy5zdG9wTG9hZGluZygpO1xuICAgICAgfSk7XG5cbiAgICByb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGV2ZW50ID0+XG4gICAgICAgICAgICBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHwgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IsXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3kodGhpcyksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB0aGlzLnN0YXJ0TG9hZGluZygpO1xuICAgICAgICBlbHNlIHRoaXMuc3RvcExvYWRpbmcoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7fVxuXG4gIHN0YXJ0TG9hZGluZygpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5wcm9ncmVzc0xldmVsIDwgNzUpIHtcbiAgICAgICAgdGhpcy5wcm9ncmVzc0xldmVsICs9IE1hdGgucmFuZG9tKCkgKiAxMDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9ncmVzc0xldmVsIDwgOTApIHtcbiAgICAgICAgdGhpcy5wcm9ncmVzc0xldmVsICs9IDAuNDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9ncmVzc0xldmVsIDwgMTAwKSB7XG4gICAgICAgIHRoaXMucHJvZ3Jlc3NMZXZlbCArPSAwLjE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICAgIH1cbiAgICB9LCAzMDApO1xuXG4gICAgdGhpcy5pbnRlcnZhbCA9IGludGVydmFsO1xuICB9XG5cbiAgc3RvcExvYWRpbmcoKSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtcbiAgICB0aGlzLnByb2dyZXNzTGV2ZWwgPSAxMDA7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5wcm9ncmVzc0xldmVsID0gMDtcbiAgICB9LCA4MDApO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2xvYWRlci1iYXIvbG9hZGVyLWJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEM7SUF1Q0UsNEJBQW9CLE9BQWdCLEVBQVUsTUFBYyxFQUFVLEtBQXdCO1FBQTlGLGlCQXdCQztRQXhCbUIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQXJCOUYsbUJBQWMsR0FBVyxnQkFBZ0IsQ0FBQztRQUcxQyxVQUFLLEdBQVcsU0FBUyxDQUFDO1FBRzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFHM0IsV0FBTTs7OztRQUFHLFVBQUMsTUFBZ0MsSUFBSyxPQUFBLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsRUFBdEQsQ0FBc0QsRUFBQztRQUV0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QixRQUFRLEVBQUUscVVBV1Q7O2lCQUVGOzs7O2dCQW5CUSxPQUFPO2dCQUYwQyxNQUFNO2dCQUR2RCxpQkFBaUI7OztpQ0F3QnZCLEtBQUs7d0JBR0wsS0FBSzs0QkFHTCxLQUFLO3lCQUdMLEtBQUs7O0lBd0VSLHlCQUFDO0NBQUEsQUFsR0QsSUFrR0M7U0FsRlksa0JBQWtCOzs7SUFDN0IsNENBQzBDOztJQUUxQyxtQ0FDMEI7O0lBRTFCLHVDQUMyQjs7SUFFM0Isb0NBQ3NHOztJQUV0RywyQ0FBMEI7O0lBRTFCLHNDQUF1Qjs7SUFFdkIsbUNBQW9COzs7OztJQU1SLHFDQUF3Qjs7Ozs7SUFBRSxvQ0FBc0I7Ozs7O0lBQUUsbUNBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhcnRMb2FkZXIsIFN0b3BMb2FkZXIgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkVycm9yLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95IH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIG9mQWN0aW9uU3VjY2Vzc2Z1bCB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGludGVydmFsLCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1sb2FkZXItYmFyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGlkPVwiYWJwLWxvYWRlci1iYXJcIiBbbmdDbGFzc109XCJjb250YWluZXJDbGFzc1wiIFtjbGFzcy5pcy1sb2FkaW5nXT1cImlzTG9hZGluZ1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFicC1wcm9ncmVzc1wiXG4gICAgICAgIFtzdHlsZS53aWR0aC52d109XCJwcm9ncmVzc0xldmVsXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogY29sb3IsXG4gICAgICAgICAgJ2JveC1zaGFkb3cnOiBib3hTaGFkb3dcbiAgICAgICAgfVwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2xvYWRlci1iYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9hZGVyQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgY29udGFpbmVyQ2xhc3M6IHN0cmluZyA9ICdhYnAtbG9hZGVyLWJhcic7XG5cbiAgQElucHV0KClcbiAgY29sb3I6IHN0cmluZyA9ICcjNzdiNmZmJztcblxuICBASW5wdXQoKVxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBmaWx0ZXIgPSAoYWN0aW9uOiBTdGFydExvYWRlciB8IFN0b3BMb2FkZXIpID0+IGFjdGlvbi5wYXlsb2FkLnVybC5pbmRleE9mKCdvcGVuaWQtY29uZmlndXJhdGlvbicpIDwgMDtcblxuICBwcm9ncmVzc0xldmVsOiBudW1iZXIgPSAwO1xuXG4gIGludGVydmFsOiBTdWJzY3JpcHRpb247XG5cbiAgdGltZXI6IFN1YnNjcmlwdGlvbjtcblxuICBnZXQgYm94U2hhZG93KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAwIDAgMTBweCByZ2JhKCR7dGhpcy5jb2xvcn0sIDAuNSlgO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zOiBBY3Rpb25zLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIGFjdGlvbnNcbiAgICAgIC5waXBlKFxuICAgICAgICBvZkFjdGlvblN1Y2Nlc3NmdWwoU3RhcnRMb2FkZXIsIFN0b3BMb2FkZXIpLFxuICAgICAgICBmaWx0ZXIodGhpcy5maWx0ZXIpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95KHRoaXMpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShhY3Rpb24gPT4ge1xuICAgICAgICBpZiAoYWN0aW9uIGluc3RhbmNlb2YgU3RhcnRMb2FkZXIpIHRoaXMuc3RhcnRMb2FkaW5nKCk7XG4gICAgICAgIGVsc2UgdGhpcy5zdG9wTG9hZGluZygpO1xuICAgICAgfSk7XG5cbiAgICByb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGV2ZW50ID0+XG4gICAgICAgICAgICBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHwgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IsXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3kodGhpcyksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB0aGlzLnN0YXJ0TG9hZGluZygpO1xuICAgICAgICBlbHNlIHRoaXMuc3RvcExvYWRpbmcoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pbnRlcnZhbC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgc3RhcnRMb2FkaW5nKCkge1xuICAgIGlmICh0aGlzLmlzTG9hZGluZyB8fCB0aGlzLnByb2dyZXNzTGV2ZWwgIT09IDApIHJldHVybjtcblxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmludGVydmFsID0gaW50ZXJ2YWwoMzUwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucHJvZ3Jlc3NMZXZlbCA8IDc1KSB7XG4gICAgICAgIHRoaXMucHJvZ3Jlc3NMZXZlbCArPSBNYXRoLnJhbmRvbSgpICogMTA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMucHJvZ3Jlc3NMZXZlbCA8IDkwKSB7XG4gICAgICAgIHRoaXMucHJvZ3Jlc3NMZXZlbCArPSAwLjQ7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMucHJvZ3Jlc3NMZXZlbCA8IDEwMCkge1xuICAgICAgICB0aGlzLnByb2dyZXNzTGV2ZWwgKz0gMC4xO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnRlcnZhbC51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBzdG9wTG9hZGluZygpIHtcbiAgICB0aGlzLmludGVydmFsLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5wcm9ncmVzc0xldmVsID0gMTAwO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgaWYgKHRoaXMudGltZXIgJiYgIXRoaXMudGltZXIuY2xvc2VkKSByZXR1cm47XG5cbiAgICB0aGlzLnRpbWVyID0gdGltZXIoODIwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5wcm9ncmVzc0xldmVsID0gMDtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/components/modal/modal.component.js b/npm/ng-packs/dist/theme-shared/esm5/lib/components/modal/modal.component.js index 9317e0858b..815892e1d8 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/components/modal/modal.component.js +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/components/modal/modal.component.js @@ -19,6 +19,8 @@ var ModalComponent = /** @class */ (function () { this.size = 'lg'; this.visibleChange = new EventEmitter(); this.init = new EventEmitter(); + this.show = new EventEmitter(); + this.hide = new EventEmitter(); this._visible = false; this._busy = false; this.showModal = false; @@ -114,15 +116,22 @@ var ModalComponent = /** @class */ (function () { this._visible = value; this.visibleChange.emit(value); this.showModal = value; - value - ? timer(ANIMATION_TIMEOUT + 100) + if (value) { + timer(ANIMATION_TIMEOUT + 100) .pipe(take(1)) .subscribe((/** * @param {?} _ * @return {?} */ - function (_) { return (_this.closable = true); })) - : (this.closable = false); + function (_) { return (_this.closable = true); })); + this.renderer.addClass(document.body, 'modal-open'); + this.show.emit(); + } + else { + this.closable = false; + this.renderer.removeClass(document.body, 'modal-open'); + this.hide.emit(); + } }; /** * @return {?} @@ -204,7 +213,7 @@ var ModalComponent = /** @class */ (function () { ModalComponent.decorators = [ { type: Component, args: [{ selector: 'abp-modal', - template: "\n \n
    \n
    \n \n\n \n
    \n \n \n\n
    \n \n
    \n
    \n \n \n\n \n\n" + template: "\n \n
    \n
    \n \n\n \n
    \n \n \n
    \n
    \n \n
    \n \n \n\n \n\n" }] } ]; /** @nocollapse */ @@ -228,7 +237,9 @@ var ModalComponent = /** @class */ (function () { abpClose: [{ type: ContentChild, args: ['abpClose', { static: false, read: ElementRef },] }], abpSubmit: [{ type: ContentChild, args: [ButtonComponent, { static: false, read: ButtonComponent },] }], modalContent: [{ type: ViewChild, args: ['abpModalContent', { static: false },] }], - abpButtons: [{ type: ViewChildren, args: ['abp-button',] }] + abpButtons: [{ type: ViewChildren, args: ['abp-button',] }], + show: [{ type: Output }], + hide: [{ type: Output }] }; return ModalComponent; }()); @@ -263,6 +274,10 @@ if (false) { /** @type {?} */ ModalComponent.prototype.abpButtons; /** @type {?} */ + ModalComponent.prototype.show; + /** @type {?} */ + ModalComponent.prototype.hide; + /** @type {?} */ ModalComponent.prototype._visible; /** @type {?} */ ModalComponent.prototype._busy; @@ -308,4 +323,4 @@ function hasNgDirty(nodes) { */ function (node) { return (node.className || '').indexOf('ng-dirty') > -1; })) > -1; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztJQUl2RCxpQkFBaUIsR0FBRyxHQUFHO0FBRTdCO0lBdUZFLHdCQUFvQixRQUFtQixFQUFVLG1CQUF3QztRQUFyRSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXhDaEYsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXhCLFNBQUksR0FBYyxJQUFJLENBQUM7UUFNdEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTVDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBZ0IxQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFFdkIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFcEMs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QUFtQzs7SUFFbkMsb0NBQWlDOztJQUVqQyw4QkFBZ0M7O0lBRWhDLGdDQUF3Qjs7SUFFeEIsbUNBQTJCOztJQUUzQix1Q0FBc0Q7O0lBRXRELDhCQUEwQzs7SUFFMUMsbUNBQTBFOztJQUUxRSxpQ0FBc0U7O0lBRXRFLG1DQUEwRTs7SUFFMUUsa0NBQXlGOztJQUV6RixtQ0FBb0c7O0lBRXBHLHNDQUEwRTs7SUFFMUUsb0NBQXVDOztJQUV2QyxrQ0FBMEI7O0lBRTFCLCtCQUF1Qjs7SUFFdkIsbUNBQTJCOztJQUUzQiw0Q0FBb0M7O0lBRXBDLGtDQUEwQjs7SUFFMUIsa0NBQStCOzs7OztJQUVuQixrQ0FBMkI7Ozs7O0lBQUUsNkNBQWdEOzs7Ozs7QUFzRTNGLFNBQVMsWUFBWSxDQUFDLEtBQWU7SUFDbkMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU07Ozs7O0lBQzdCLFVBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSyx3QkFBSSxHQUFHLEVBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQTVGLENBQTZGLEdBQzNHLEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQzs7Ozs7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFvQjtJQUN0QyxPQUFPLEtBQUssQ0FBQyxTQUFTOzs7O0lBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUEvQyxDQUErQyxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlLCB0YWtlVW50aWwsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRvYXN0ZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdG9hc3Rlcic7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBNb2RhbFNpemUgPSAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnO1xuXG5jb25zdCBBTklNQVRJT05fVElNRU9VVCA9IDIwMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykgcmV0dXJuO1xuXG4gICAgaWYgKCF0aGlzLm1vZGFsQ29udGVudCkge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2hvd01vZGFsID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsdWU7XG4gICAgICAgIH0sIDApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zZXRWaXNpYmxlKHZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2FibGUgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5tb2RhbENvbnRlbnQubmF0aXZlRWxlbWVudCwgJ2ZhZGUtb3V0LXRvcCcpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcbiAgICAgIH0sIEFOSU1BVElPTl9USU1FT1VUIC0gMTApO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBidXN5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9idXN5O1xuICB9XG4gIHNldCBidXN5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuYWJwU3VibWl0ICYmIHRoaXMuYWJwU3VibWl0IGluc3RhbmNlb2YgQnV0dG9uQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLmFicFN1Ym1pdC5sb2FkaW5nID0gdmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5fYnVzeSA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KCkgY2VudGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBtb2RhbENsYXNzOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSBzaXplOiBNb2RhbFNpemUgPSAnbGcnO1xuXG4gIEBJbnB1dCgpIGhlaWdodDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIG1pbkhlaWdodDogbnVtYmVyO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBPdXRwdXQoKSBpbml0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FicEhlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBIZWFkZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgnYWJwQm9keScsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBCb2R5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FicEZvb3RlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBGb290ZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgnYWJwQ2xvc2UnLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IEVsZW1lbnRSZWYgfSkgYWJwQ2xvc2U6IEVsZW1lbnRSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKEJ1dHRvbkNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBCdXR0b25Db21wb25lbnQgfSkgYWJwU3VibWl0OiBCdXR0b25Db21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnYWJwTW9kYWxDb250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIG1vZGFsQ29udGVudDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkcmVuKCdhYnAtYnV0dG9uJykgYWJwQnV0dG9ucztcblxuICBfdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIF9idXN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgc2hvd01vZGFsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgaXNPcGVuQ29uZmlybWF0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY2xvc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICBzZXRWaXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLnNob3dNb2RhbCA9IHZhbHVlO1xuXG4gICAgdmFsdWVcbiAgICAgID8gdGltZXIoQU5JTUFUSU9OX1RJTUVPVVQgKyAxMDApXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKF8gPT4gKHRoaXMuY2xvc2FibGUgPSB0cnVlKSlcbiAgICAgIDogKHRoaXMuY2xvc2FibGUgPSBmYWxzZSk7XG4gIH1cblxuICBsaXN0ZW4oKSB7XG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5dXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDE1MCksXG4gICAgICAgIGZpbHRlcigoa2V5OiBLZXlib2FyZEV2ZW50KSA9PiBrZXkgJiYga2V5LmNvZGUgPT09ICdFc2NhcGUnICYmIHRoaXMuY2xvc2FibGUpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShfID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5hYnBDbG9zZSkgcmV0dXJuO1xuICAgICAgZnJvbUV2ZW50KHRoaXMuYWJwQ2xvc2UubmF0aXZlRWxlbWVudCwgJ2NsaWNrJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgIGZpbHRlcigoKSA9PiAhISh0aGlzLmNsb3NhYmxlICYmIHRoaXMubW9kYWxDb250ZW50KSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICAgIH0sIDApO1xuXG4gICAgdGhpcy5pbml0LmVtaXQoKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGlmICghdGhpcy5jbG9zYWJsZSB8fCB0aGlzLmJ1c3kpIHJldHVybjtcblxuICAgIGNvbnN0IG5vZGVzID0gZ2V0RmxhdE5vZGVzKFxuICAgICAgKHRoaXMubW9kYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignI2FicC1tb2RhbC1ib2R5JykgYXMgSFRNTEVsZW1lbnQpLmNoaWxkTm9kZXMsXG4gICAgKTtcblxuICAgIGlmIChoYXNOZ0RpcnR5KG5vZGVzKSkge1xuICAgICAgaWYgKHRoaXMuaXNPcGVuQ29uZmlybWF0aW9uKSByZXR1cm47XG5cbiAgICAgIHRoaXMuaXNPcGVuQ29uZmlybWF0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZVxuICAgICAgICAud2FybignQWJwQWNjb3VudDo6QXJlWW91U3VyZVlvdVdhbnRUb0NhbmNlbEVkaXRpbmdXYXJuaW5nTWVzc2FnZScsICdBYnBBY2NvdW50OjpBcmVZb3VTdXJlJylcbiAgICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBUb2FzdGVyLlN0YXR1cykgPT4ge1xuICAgICAgICAgIHRpbWVyKEFOSU1BVElPTl9USU1FT1VUKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc09wZW5Db25maXJtYXRpb24gPSBmYWxzZTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChzdGF0dXMgPT09IFRvYXN0ZXIuU3RhdHVzLmNvbmZpcm0pIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRGbGF0Tm9kZXMobm9kZXM6IE5vZGVMaXN0KTogSFRNTEVsZW1lbnRbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKG5vZGVzKS5yZWR1Y2UoXG4gICAgKGFjYywgdmFsKSA9PiBbLi4uYWNjLCAuLi4odmFsLmNoaWxkTm9kZXMgJiYgdmFsLmNoaWxkTm9kZXMubGVuZ3RoID8gZ2V0RmxhdE5vZGVzKHZhbC5jaGlsZE5vZGVzKSA6IFt2YWxdKV0sXG4gICAgW10sXG4gICk7XG59XG5cbmZ1bmN0aW9uIGhhc05nRGlydHkobm9kZXM6IEhUTUxFbGVtZW50W10pIHtcbiAgcmV0dXJuIG5vZGVzLmZpbmRJbmRleChub2RlID0+IChub2RlLmNsYXNzTmFtZSB8fCAnJykuaW5kZXhPZignbmctZGlydHknKSA+IC0xKSA+IC0xO1xufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztJQUl2RCxpQkFBaUIsR0FBRyxHQUFHO0FBRTdCO0lBNkZFLHdCQUFvQixRQUFtQixFQUFVLG1CQUF3QztRQUFyRSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQTlDaEYsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXhCLFNBQUksR0FBYyxJQUFJLENBQUM7UUFNdEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTVDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBaUIxQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUcxQixTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLFVBQUssR0FB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LEdBQUcsQ0FBQyxDQUFDLEdBQTVGLENBQTZGLEdBQzNHLEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQzs7Ozs7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFvQjtJQUN0QyxPQUFPLEtBQUssQ0FBQyxTQUFTOzs7O0lBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUEvQyxDQUErQyxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlLCB0YWtlVW50aWwsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRvYXN0ZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdG9hc3Rlcic7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBNb2RhbFNpemUgPSAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnO1xuXG5jb25zdCBBTklNQVRJT05fVElNRU9VVCA9IDIwMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykgcmV0dXJuO1xuXG4gICAgaWYgKCF0aGlzLm1vZGFsQ29udGVudCkge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2hvd01vZGFsID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsdWU7XG4gICAgICAgIH0sIDApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zZXRWaXNpYmxlKHZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2FibGUgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5tb2RhbENvbnRlbnQubmF0aXZlRWxlbWVudCwgJ2ZhZGUtb3V0LXRvcCcpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcbiAgICAgIH0sIEFOSU1BVElPTl9USU1FT1VUIC0gMTApO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBidXN5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9idXN5O1xuICB9XG4gIHNldCBidXN5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuYWJwU3VibWl0ICYmIHRoaXMuYWJwU3VibWl0IGluc3RhbmNlb2YgQnV0dG9uQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLmFicFN1Ym1pdC5sb2FkaW5nID0gdmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5fYnVzeSA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KCkgY2VudGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBtb2RhbENsYXNzOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSBzaXplOiBNb2RhbFNpemUgPSAnbGcnO1xuXG4gIEBJbnB1dCgpIGhlaWdodDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIG1pbkhlaWdodDogbnVtYmVyO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBPdXRwdXQoKSBpbml0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FicEhlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBIZWFkZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgnYWJwQm9keScsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBCb2R5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FicEZvb3RlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBGb290ZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgnYWJwQ2xvc2UnLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IEVsZW1lbnRSZWYgfSkgYWJwQ2xvc2U6IEVsZW1lbnRSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKEJ1dHRvbkNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBCdXR0b25Db21wb25lbnQgfSkgYWJwU3VibWl0OiBCdXR0b25Db21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnYWJwTW9kYWxDb250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIG1vZGFsQ29udGVudDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkcmVuKCdhYnAtYnV0dG9uJykgYWJwQnV0dG9ucztcblxuICBAT3V0cHV0KClcbiAgc2hvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgaGlkZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBfdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIF9idXN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgc2hvd01vZGFsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgaXNPcGVuQ29uZmlybWF0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY2xvc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICBzZXRWaXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLnNob3dNb2RhbCA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aW1lcihBTklNQVRJT05fVElNRU9VVCArIDEwMClcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZShfID0+ICh0aGlzLmNsb3NhYmxlID0gdHJ1ZSkpO1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksICdtb2RhbC1vcGVuJyk7XG4gICAgICB0aGlzLnNob3cuZW1pdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsb3NhYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGRvY3VtZW50LmJvZHksICdtb2RhbC1vcGVuJyk7XG4gICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIGxpc3RlbigpIHtcbiAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXl1cCcpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcbiAgICAgICAgZmlsdGVyKChrZXk6IEtleWJvYXJkRXZlbnQpID0+IGtleSAmJiBrZXkuY29kZSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5jbG9zYWJsZSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9KTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFicENsb3NlKSByZXR1cm47XG4gICAgICBmcm9tRXZlbnQodGhpcy5hYnBDbG9zZS5uYXRpdmVFbGVtZW50LCAnY2xpY2snKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgZmlsdGVyKCgpID0+ICEhKHRoaXMuY2xvc2FibGUgJiYgdGhpcy5tb2RhbENvbnRlbnQpKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XG4gICAgfSwgMCk7XG5cbiAgICB0aGlzLmluaXQuZW1pdCgpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgaWYgKCF0aGlzLmNsb3NhYmxlIHx8IHRoaXMuYnVzeSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgbm9kZXMgPSBnZXRGbGF0Tm9kZXMoXG4gICAgICAodGhpcy5tb2RhbENvbnRlbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjYWJwLW1vZGFsLWJvZHknKSBhcyBIVE1MRWxlbWVudCkuY2hpbGROb2RlcyxcbiAgICApO1xuXG4gICAgaWYgKGhhc05nRGlydHkobm9kZXMpKSB7XG4gICAgICBpZiAodGhpcy5pc09wZW5Db25maXJtYXRpb24pIHJldHVybjtcblxuICAgICAgdGhpcy5pc09wZW5Db25maXJtYXRpb24gPSB0cnVlO1xuICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlXG4gICAgICAgIC53YXJuKCdBYnBBY2NvdW50OjpBcmVZb3VTdXJlWW91V2FudFRvQ2FuY2VsRWRpdGluZ1dhcm5pbmdNZXNzYWdlJywgJ0FicEFjY291bnQ6OkFyZVlvdVN1cmUnKVxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IFRvYXN0ZXIuU3RhdHVzKSA9PiB7XG4gICAgICAgICAgdGltZXIoQU5JTUFUSU9OX1RJTUVPVVQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzT3BlbkNvbmZpcm1hdGlvbiA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gVG9hc3Rlci5TdGF0dXMuY29uZmlybSkge1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEZsYXROb2Rlcyhub2RlczogTm9kZUxpc3QpOiBIVE1MRWxlbWVudFtdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20obm9kZXMpLnJlZHVjZShcbiAgICAoYWNjLCB2YWwpID0+IFsuLi5hY2MsIC4uLih2YWwuY2hpbGROb2RlcyAmJiB2YWwuY2hpbGROb2Rlcy5sZW5ndGggPyBnZXRGbGF0Tm9kZXModmFsLmNoaWxkTm9kZXMpIDogW3ZhbF0pXSxcbiAgICBbXSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gaGFzTmdEaXJ0eShub2RlczogSFRNTEVsZW1lbnRbXSkge1xuICByZXR1cm4gbm9kZXMuZmluZEluZGV4KG5vZGUgPT4gKG5vZGUuY2xhc3NOYW1lIHx8ICcnKS5pbmRleE9mKCduZy1kaXJ0eScpID4gLTEpID4gLTE7XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/components/profile/profile.component.js b/npm/ng-packs/dist/theme-shared/esm5/lib/components/profile/profile.component.js index 6e6c8ae153..076df1223e 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/components/profile/profile.component.js +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/components/profile/profile.component.js @@ -113,7 +113,7 @@ var ProfileComponent = /** @class */ (function () { ProfileComponent.decorators = [ { type: Component, args: [{ selector: 'abp-profile', - template: "\n \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n" + template: "\n \n

    {{ 'AbpIdentity::PersonalInfo' | abpLocalization }}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {{ 'AbpIdentity::Save' | abpLocalization }}\n \n
    \n" }] } ]; /** @nocollapse */ @@ -157,4 +157,4 @@ if (false) { */ ProfileComponent.prototype.store; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQVcsVUFBVSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsSUFBQSxnQ0FBUyxFQUFFLDhCQUFRLEVBQUUsd0JBQUs7QUFFbEM7SUEyQkUsMEJBQW9CLEVBQWUsRUFBVSxLQUFZO1FBQXJDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBVHpELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQU81QyxjQUFTLEdBQVksS0FBSyxDQUFDO0lBRWlDLENBQUM7SUFwQjdELHNCQUNJLHFDQUFPOzs7O1FBRFg7WUFFRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQzs7Ozs7UUFFRCxVQUFZLEtBQWM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQzs7O09BTEE7Ozs7SUFtQkQs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bnRlbnQiOlsiaW1wb3J0IHsgUHJvZmlsZSwgR2V0UHJvZmlsZSwgUHJvZmlsZVN0YXRlLCBVcGRhdGVQcm9maWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IHsgbWF4TGVuZ3RoLCByZXF1aXJlZCwgZW1haWwgfSA9IFZhbGlkYXRvcnM7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1wcm9maWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9maWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJvdGVjdGVkIF92aXNpYmxlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl92aXNpYmxlID0gdmFsdWU7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFNlbGVjdChQcm9maWxlU3RhdGUuZ2V0UHJvZmlsZSlcbiAgcHJvZmlsZSQ6IE9ic2VydmFibGU8UHJvZmlsZS5SZXNwb25zZT47XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge31cblxuICBidWlsZEZvcm0oKSB7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBHZXRQcm9maWxlKCkpXG4gICAgICAucGlwZShcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5wcm9maWxlJCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbLCBwcm9maWxlXSkgPT4ge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICB1c2VyTmFtZTogW3Byb2ZpbGUudXNlck5hbWUsIFtyZXF1aXJlZCwgbWF4TGVuZ3RoKDI1NildXSxcbiAgICAgICAgICBlbWFpbDogW3Byb2ZpbGUuZW1haWwsIFtyZXF1aXJlZCwgZW1haWwsIG1heExlbmd0aCgyNTYpXV0sXG4gICAgICAgICAgbmFtZTogW3Byb2ZpbGUubmFtZSB8fCAnJywgW21heExlbmd0aCg2NCldXSxcbiAgICAgICAgICBzdXJuYW1lOiBbcHJvZmlsZS5zdXJuYW1lIHx8ICcnLCBbbWF4TGVuZ3RoKDY0KV1dLFxuICAgICAgICAgIHBob25lTnVtYmVyOiBbcHJvZmlsZS5waG9uZU51bWJlciB8fCAnJywgW21heExlbmd0aCgxNildXSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBVcGRhdGVQcm9maWxlKHRoaXMuZm9ybS52YWx1ZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm1vZGFsQnVzeSA9IGZhbHNlO1xuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xuICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyh7IHZpc2libGUgfTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghdmlzaWJsZSkgcmV0dXJuO1xuXG4gICAgaWYgKHZpc2libGUuY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICAgIH0gZWxzZSBpZiAodmlzaWJsZS5jdXJyZW50VmFsdWUgPT09IGZhbHNlICYmIHRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQVcsVUFBVSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsSUFBQSxnQ0FBUyxFQUFFLDhCQUFRLEVBQUUsd0JBQUs7QUFFbEM7SUEyQkUsMEJBQW9CLEVBQWUsRUFBVSxLQUFZO1FBQXJDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBVHpELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQU81QyxjQUFTLEdBQVksS0FBSyxDQUFDO0lBRWlDLENBQUM7SUFwQjdELHNCQUNJLHFDQUFPOzs7O1FBRFg7WUFFRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQzs7Ozs7UUFFRCxVQUFZLEtBQWM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQzs7O09BTEE7Ozs7SUFtQkQs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bnRlbnQiOlsiaW1wb3J0IHsgUHJvZmlsZSwgR2V0UHJvZmlsZSwgUHJvZmlsZVN0YXRlLCBVcGRhdGVQcm9maWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IHsgbWF4TGVuZ3RoLCByZXF1aXJlZCwgZW1haWwgfSA9IFZhbGlkYXRvcnM7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1wcm9maWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9maWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJvdGVjdGVkIF92aXNpYmxlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl92aXNpYmxlID0gdmFsdWU7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFNlbGVjdChQcm9maWxlU3RhdGUuZ2V0UHJvZmlsZSlcbiAgcHJvZmlsZSQ6IE9ic2VydmFibGU8UHJvZmlsZS5SZXNwb25zZT47XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge31cblxuICBidWlsZEZvcm0oKSB7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLmRpc3BhdGNoKG5ldyBHZXRQcm9maWxlKCkpXG4gICAgICAucGlwZShcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5wcm9maWxlJCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbLCBwcm9maWxlXSkgPT4ge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICB1c2VyTmFtZTogW3Byb2ZpbGUudXNlck5hbWUsIFtyZXF1aXJlZCwgbWF4TGVuZ3RoKDI1NildXSxcbiAgICAgICAgICBlbWFpbDogW3Byb2ZpbGUuZW1haWwsIFtyZXF1aXJlZCwgZW1haWwsIG1heExlbmd0aCgyNTYpXV0sXG4gICAgICAgICAgbmFtZTogW3Byb2ZpbGUubmFtZSB8fCAnJywgW21heExlbmd0aCg2NCldXSxcbiAgICAgICAgICBzdXJuYW1lOiBbcHJvZmlsZS5zdXJuYW1lIHx8ICcnLCBbbWF4TGVuZ3RoKDY0KV1dLFxuICAgICAgICAgIHBob25lTnVtYmVyOiBbcHJvZmlsZS5waG9uZU51bWJlciB8fCAnJywgW21heExlbmd0aCgxNildXSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcbiAgICB0aGlzLm1vZGFsQnVzeSA9IHRydWU7XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBVcGRhdGVQcm9maWxlKHRoaXMuZm9ybS52YWx1ZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm1vZGFsQnVzeSA9IGZhbHNlO1xuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xuICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyh7IHZpc2libGUgfTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghdmlzaWJsZSkgcmV0dXJuO1xuXG4gICAgaWYgKHZpc2libGUuY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICAgIH0gZWxzZSBpZiAodmlzaWJsZS5jdXJyZW50VmFsdWUgPT09IGZhbHNlICYmIHRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/components/table-empty-message/table-empty-message.component.js b/npm/ng-packs/dist/theme-shared/esm5/lib/components/table-empty-message/table-empty-message.component.js new file mode 100644 index 0000000000..d0e6f94f72 --- /dev/null +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/components/table-empty-message/table-empty-message.component.js @@ -0,0 +1,47 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Component, Input } from '@angular/core'; +var TableEmptyMessageComponent = /** @class */ (function () { + function TableEmptyMessageComponent() { + this.colspan = 2; + this.localizationResource = 'AbpAccount'; + this.localizationProp = 'NoDataAvailableInDatatable'; + } + Object.defineProperty(TableEmptyMessageComponent.prototype, "emptyMessage", { + get: /** + * @return {?} + */ + function () { + return this.message || this.localizationResource + "::" + this.localizationProp; + }, + enumerable: true, + configurable: true + }); + TableEmptyMessageComponent.decorators = [ + { type: Component, args: [{ + selector: '[abp-table-empty-message]', + template: "\n \n {{ emptyMessage | abpLocalization }}\n \n " + }] } + ]; + TableEmptyMessageComponent.propDecorators = { + colspan: [{ type: Input }], + message: [{ type: Input }], + localizationResource: [{ type: Input }], + localizationProp: [{ type: Input }] + }; + return TableEmptyMessageComponent; +}()); +export { TableEmptyMessageComponent }; +if (false) { + /** @type {?} */ + TableEmptyMessageComponent.prototype.colspan; + /** @type {?} */ + TableEmptyMessageComponent.prototype.message; + /** @type {?} */ + TableEmptyMessageComponent.prototype.localizationResource; + /** @type {?} */ + TableEmptyMessageComponent.prototype.localizationProp; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZW1wdHktbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLnRoZW1lLnNoYXJlZC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RhYmxlLWVtcHR5LW1lc3NhZ2UvdGFibGUtZW1wdHktbWVzc2FnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpEO0lBQUE7UUFVRSxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBTVoseUJBQW9CLEdBQVcsWUFBWSxDQUFDO1FBRzVDLHFCQUFnQixHQUFXLDRCQUE0QixDQUFDO0lBSzFELENBQUM7SUFIQyxzQkFBSSxvREFBWTs7OztRQUFoQjtZQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBTyxJQUFJLENBQUMsb0JBQW9CLFVBQUssSUFBSSxDQUFDLGdCQUFrQixDQUFDO1FBQ2xGLENBQUM7OztPQUFBOztnQkF2QkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSx3SEFJVDtpQkFDRjs7OzBCQUVFLEtBQUs7MEJBR0wsS0FBSzt1Q0FHTCxLQUFLO21DQUdMLEtBQUs7O0lBTVIsaUNBQUM7Q0FBQSxBQXhCRCxJQXdCQztTQWhCWSwwQkFBMEI7OztJQUNyQyw2Q0FDWTs7SUFFWiw2Q0FDZ0I7O0lBRWhCLDBEQUM0Qzs7SUFFNUMsc0RBQ3dEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1thYnAtdGFibGUtZW1wdHktbWVzc2FnZV0nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx0ZCBjbGFzcz1cInRleHQtY2VudGVyXCIgW2F0dHIuY29sc3Bhbl09XCJjb2xzcGFuXCI+XG4gICAgICB7eyBlbXB0eU1lc3NhZ2UgfCBhYnBMb2NhbGl6YXRpb24gfX1cbiAgICA8L3RkPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUVtcHR5TWVzc2FnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGNvbHNwYW4gPSAyO1xuXG4gIEBJbnB1dCgpXG4gIG1lc3NhZ2U6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBsb2NhbGl6YXRpb25SZXNvdXJjZTogc3RyaW5nID0gJ0FicEFjY291bnQnO1xuXG4gIEBJbnB1dCgpXG4gIGxvY2FsaXphdGlvblByb3A6IHN0cmluZyA9ICdOb0RhdGFBdmFpbGFibGVJbkRhdGF0YWJsZSc7XG5cbiAgZ2V0IGVtcHR5TWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2UgfHwgYCR7dGhpcy5sb2NhbGl6YXRpb25SZXNvdXJjZX06OiR7dGhpcy5sb2NhbGl6YXRpb25Qcm9wfWA7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/components/toast/toast.component.js b/npm/ng-packs/dist/theme-shared/esm5/lib/components/toast/toast.component.js index b44bf3a1b4..e4bd9ccf03 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/components/toast/toast.component.js +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/components/toast/toast.component.js @@ -9,10 +9,10 @@ var ToastComponent = /** @class */ (function () { ToastComponent.decorators = [ { type: Component, args: [{ selector: 'abp-toast', - template: "\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n " + template: "\n \n \n \n
    \n
    {{ message.summary | abpLocalization: message.titleLocalizationParams }}
    \n
    {{ message.detail | abpLocalization: message.messageLocalizationParams }}
    \n
    \n
    \n
    \n " }] } ]; return ToastComponent; }()); export { ToastComponent }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUM7SUFBQTtJQXNCNkIsQ0FBQzs7Z0JBdEI3QixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSx5MEJBa0JUO2lCQUNGOztJQUM0QixxQkFBQztDQUFBLEFBdEI5QixJQXNCOEI7U0FBakIsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtdG9hc3QnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxwLXRvYXN0IHBvc2l0aW9uPVwiYm90dG9tLXJpZ2h0XCIga2V5PVwiYWJwVG9hc3RcIiBbYmFzZVpJbmRleF09XCIxMDAwXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwidWktdG9hc3QtaWNvbiBwaVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3BpLWluZm8tY2lyY2xlJzogbWVzc2FnZS5zZXZlcml0eSA9PSAnaW5mbycsXG4gICAgICAgICAgICAncGktZXhjbGFtYXRpb24tdHJpYW5nbGUnOiBtZXNzYWdlLnNldmVyaXR5ID09ICd3YXJuJyxcbiAgICAgICAgICAgICdwaS10aW1lcyc6IG1lc3NhZ2Uuc2V2ZXJpdHkgPT0gJ2Vycm9yJyxcbiAgICAgICAgICAgICdwaS1jaGVjayc6IG1lc3NhZ2Uuc2V2ZXJpdHkgPT0gJ3N1Y2Nlc3MnXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aS10b2FzdC1tZXNzYWdlLXRleHQtY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aS10b2FzdC1zdW1tYXJ5XCI+e3sgbWVzc2FnZS5zdW1tYXJ5IHwgYWJwTG9jYWxpemF0aW9uOiBtZXNzYWdlLnRpdGxlTG9jYWxpemF0aW9uUGFyYW1zIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVpLXRvYXN0LWRldGFpbFwiPnt7IG1lc3NhZ2UuZGV0YWlsIHwgYWJwTG9jYWxpemF0aW9uOiBtZXNzYWdlLm1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXMgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b2FzdD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RDb21wb25lbnQge31cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy50aGVtZS5zaGFyZWQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUM7SUFBQTtJQXNCNkIsQ0FBQzs7Z0JBdEI3QixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxrMkJBa0JUO2lCQUNGOztJQUM0QixxQkFBQztDQUFBLEFBdEI5QixJQXNCOEI7U0FBakIsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtdG9hc3QnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxwLXRvYXN0IHBvc2l0aW9uPVwiYm90dG9tLXJpZ2h0XCIga2V5PVwiYWJwVG9hc3RcIiBzdHlsZUNsYXNzPVwiYWJwLXRvYXN0XCIgW2Jhc2VaSW5kZXhdPVwiMTAwMFwiPlxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1tZXNzYWdlIHBUZW1wbGF0ZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInVpLXRvYXN0LWljb24gcGlcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdwaS1pbmZvLWNpcmNsZSc6IG1lc3NhZ2Uuc2V2ZXJpdHkgPT0gJ2luZm8nLFxuICAgICAgICAgICAgJ3BpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJzogbWVzc2FnZS5zZXZlcml0eSA9PSAnd2FybicsXG4gICAgICAgICAgICAncGktdGltZXMnOiBtZXNzYWdlLnNldmVyaXR5ID09ICdlcnJvcicsXG4gICAgICAgICAgICAncGktY2hlY2snOiBtZXNzYWdlLnNldmVyaXR5ID09ICdzdWNjZXNzJ1xuICAgICAgICAgIH1cIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidWktdG9hc3QtbWVzc2FnZS10ZXh0LWNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidWktdG9hc3Qtc3VtbWFyeVwiPnt7IG1lc3NhZ2Uuc3VtbWFyeSB8IGFicExvY2FsaXphdGlvbjogbWVzc2FnZS50aXRsZUxvY2FsaXphdGlvblBhcmFtcyB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aS10b2FzdC1kZXRhaWxcIj57eyBtZXNzYWdlLmRldGFpbCB8IGFicExvY2FsaXphdGlvbjogbWVzc2FnZS5tZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3AtdG9hc3Q+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IHt9XG4iXX0= \ No newline at end of file diff --git a/npm/ng-packs/dist/theme-shared/esm5/lib/contants/styles.js b/npm/ng-packs/dist/theme-shared/esm5/lib/contants/styles.js index f1819c2696..9ae63873b9 100644 --- a/npm/ng-packs/dist/theme-shared/esm5/lib/contants/styles.js +++ b/npm/ng-packs/dist/theme-shared/esm5/lib/contants/styles.js @@ -2,5 +2,5 @@ * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ -export default "\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.modal {\n background-color: rgba(0, 0, 0, .6);\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/*