ngx-sp-infra 3.19.1 → 3.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,127 +1,24 @@
1
- # NgxSpInfra - Biblioteca de funcionalidades e componentes 🚀
2
- [![CI/CD](https://github.com/SISPROV6/infra-code-libs/actions/workflows/main.yml/badge.svg)](https://github.com/SISPROV6/infra-code-libs/actions/workflows/main.yml)
3
- [![versão mais recente](https://badge.fury.io/js/ngx-sp-infra.svg)](//npmjs.com/package/ngx-sp-infra)
4
- ![downloads](https://img.shields.io/npm/dm/ngx-sp-infra.svg)
1
+ # NgxSpInfra
5
2
 
6
- ## Índice
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.3.0.
7
4
 
8
- - [Introdução](#introdução)
9
- - [Uso](#uso)
10
- - [Testes](#testes)
11
- - [Publicação](#publicação)
12
- - [Manual](#manual)
13
- - [Automatizada](#automatizada)
14
- - [Automatização de Publicação](#automatização-de-publicação)
5
+ ## Code scaffolding
15
6
 
16
- ## Introdução
17
- Este projeto engloba funcionalidades genéricas da nossa infraestrutura como código (infra-as-code) que podem ser reutilizadas em outros projetos.
7
+ Run `ng generate component component-name --project ngx-sp-infra` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-sp-infra`.
8
+ > Note: Don't forget to add `--project ngx-sp-infra` or else it will be added to the default project in your `angular.json` file.
18
9
 
19
- ## Uso
20
- Para usar a biblioteca em um projeto Angular, siga estas etapas:
21
- 1. Instalar a biblioteca - utilizando o comando ```npm install ngx-sp-infra@latest --force``` _(O uso do --force é necessário por enquanto)_
22
- 2. Importar módulo - deve ter o InfraModule/ProjectModule nos imports do módulo/componente que está utilizando
23
- ```typescript
24
- // Em uma estrutura de uma tela de Usuários, por exemplo
25
- // No arquivo usuarios.module.ts:
26
- @NgModule( {
27
- declarations: [
28
- // ...outros componentes
29
- PainelUsuariosComponent,
30
- FormularioUsuarioComponent
31
- ],
32
- imports: [
33
- // ...outros imports
34
- ProjectModule,
35
- UsuariosRoutingModule
36
- ],
37
- exports: [
38
- // ...
39
- ]
40
- })
41
- export class UsuariosModule { }
42
- ```
43
- > [!IMPORTANT]
44
- > Nunca importe ambos os módulos ProjectModule e InfraModule juntos!
45
- > O InfraModule já está incluído dentro do ProjectModule, portanto, em projetos de Produtos, use apenas o ProjectModule.
10
+ ## Build
46
11
 
47
- ## Testes
48
- Antes de publicar a biblioteca para o NPM é muito importante realizar testes robustos do funcionamento da nova feature ou correção que foi realizada. Para realizar testes locais segue-se o seguinte passo-a-passo:
12
+ Run `ng build ngx-sp-infra` to build the project. The build artifacts will be stored in the `dist/` directory.
49
13
 
50
- 1. Com o projeto NgxSpInfra aberto em uma IDE execute o comando `ng build --watch`
51
- 2. No projeto que será usado para teste modifique o arquivo angular.json e adicione a propriedade "preserveSymlinks" dentro de `build > options` como no exemplo abaixo:
52
- ```json
53
- {
54
- // ...restante do conteúdo
55
- "build": {
56
- "builder": "@angular-devkit/build-angular:browser",
57
- "options": {
58
- "preserveSymlinks": true,
59
- // ...restante do conteúdo
60
- },
61
- // ...restante do conteúdo
62
- },
63
- }
64
- ```
65
- 3. Por fim, execute os dois comandos abaixo:
66
- ```bash
67
- npm uninstall ngx-sp-infra --force
68
- ```
69
- ```bash
70
- npm i "file:C:/SisproCloud/INFRA/Fontes/Sp_106_Imports/NgxSpInfra/dist/ngx-sp-infra"
71
- ```
14
+ ## Publishing
72
15
 
73
- > [!TIP]
74
- > Se for necessário, utilize o `--force` ...principalmente no uninstall
16
+ After building your library with `ng build ngx-sp-infra`, go to the dist folder `cd dist/ngx-sp-infra` and run `npm publish`.
75
17
 
76
- E pronto! Agora graças ao `ng build --watch` sempre que uma alteração for salva no projeto NgxSpInfra os arquivos na dist irão se atualizar também e a instalação no projeto de teste observavará exatamente estes arquivos.
18
+ ## Running unit tests
77
19
 
78
- ## Publicação
79
- A publicação do pacote no NPM pode ser feita de forma manual ou automatizada.
20
+ Run `ng test ngx-sp-infra` to execute the unit tests via [Karma](https://karma-runner.github.io).
80
21
 
81
- #### Manual
82
- Para a publicação manual (preferencialmente usando SVN ao invés de Git), siga estas etapas:
83
- 1. Executar o comando de build: No terminal, rode um dos seguintes comandos:
84
- - ```npm run build:patch``` _- incrementa uma versão PATCH (0.0.1) e faz o build_
85
- - ```npm run build:minor``` _- incrementa uma versão MINOR (0.1.0) e faz o build_
86
- - ```npm run build:major``` _- incrementa uma versão MAJOR (1.0.0) e faz o build_
22
+ ## Further help
87
23
 
88
- 2. O sistema deve perguntar ao usuário se ele deseja adicionar um sufixo à versão:
89
- - Para uma versão de teste, digite "test" ou "-test" e aperte ENTER
90
- - Para uma versão oficial, não é necessário digitar nada, apenas aperte ENTER
91
-
92
- 3. Logo depois, o sistema deve perguntar ao usuário se ele deseja realizar o commit da tag de versão, digite "N"
93
-
94
- 4. Independete das respostas anteriores, será feito um build da aplicação e por fim, o sistema deve perguntar ao usuário se ele deseja fazer um commit no repositório do GitHub, digite "N"
95
-
96
- 5. Publicar no NPM:
97
- - `cd dist/ngx-sp-infra`
98
- - `npm adduser` OU `npm login` _- depende se você já possui conta no NPM ou não_
99
- - `npm publish --access public --tag latest`
100
-
101
- #### Automatizada
102
- Para publicação automatizada (apenas quando utilizar git) devem ser seguidas as etapas abaixo:
103
- 1. Executar o comando de build: No terminal, rode um dos seguintes comandos:
104
- - ```npm run build:patch``` _- incrementa uma versão PATCH (0.0.1) e faz o build_
105
- - ```npm run build:minor``` _- incrementa uma versão MINOR (0.1.0) e faz o build_
106
- - ```npm run build:major``` _- incrementa uma versão MAJOR (1.0.0) e faz o build_
107
-
108
- 2. O sistema deve perguntar ao usuário se ele deseja adicionar um sufixo à versão:
109
- - Para uma versão de teste, digite "test" ou "-test" e aperte ENTER
110
- - Para uma versão oficial, não é necessário digitar nada, apenas aperte ENTER
111
-
112
- 3. Logo depois, o sistema deve perguntar ao usuário se ele deseja realizar o commit da tag de versão, digite "S" e pressione ENTER
113
-
114
- 4. Independete das respostas anteriores, será feito um build da aplicação e o sistema deve perguntar ao usuário se ele deseja fazer um commit no repositório do GitHub, digite "S" e pressione ENTER
115
-
116
- 5. Por fim o sistema perguntará ao usuário em que branch ele fará o commit, informe a branch correta (geralmente a atual) e pressione ENTER
117
-
118
- > [!IMPORTANT]
119
- > O deploy automático só será feito após commit nas branches `main`, `next` e `test`. Outras branches não realizarão o deploy para o NPM.
120
-
121
- ## Automatização de Publicação
122
- A automatização da publicação é realizada utilizando GitHub Actions.
123
-
124
- ### Como funciona:
125
- - Workflow: Um workflow específico é configurado para observar as branches main e test. Quando há um commit nessas branches, ele verifica as alterações e, caso o diretório dist tenha sido modificado, a ação de publicação no NPM é disparada automaticamente.
126
- - Etapas: O workflow inclui etapas como a instalação de dependências, execução de builds, e a publicação no NPM. Tudo é gerenciado através de scripts e do token de autenticação NPM armazenado nos segredos do GitHub.
127
- - Segurança: Apenas commits em branches específicas acionam a publicação, garantindo que somente código aprovado chegue ao NPM.
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -111,4 +111,4 @@ export class FormUtils {
111
111
  };
112
112
  }
113
113
  }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3V0aWxzL2Zvcm0tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRzNHOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFFcEIsd0RBQXdEO0lBQ3hELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxPQUFrQjtRQUM5QyxNQUFNLEdBQUcsR0FBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0RSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUErQjtRQUNuRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELHdGQUF3RjtJQUN4RixNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBK0I7UUFDeEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQTtZQUFDLENBQUM7aUJBQ3BFLENBQUM7Z0JBQUMsT0FBTyxLQUFLLENBQUE7WUFBQyxDQUFDO1FBQ3ZCLENBQUM7YUFDSSxDQUFDO1lBQUMsT0FBTyxLQUFLLENBQUE7UUFBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUE4QztRQUNsRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQyxNQUFNLFlBQVksR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBRXBDLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUVqQixPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBRXpCLE9BQU8sRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFaEMsSUFBSSxPQUFPLFlBQVksZ0JBQWdCLElBQUksT0FBTyxZQUFZLGdCQUFnQixFQUFFLENBQUM7Z0JBQy9FLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUVILENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVELDhEQUE4RDtJQUM5RCxNQUFNLENBQUMsZUFBZSxDQUFDLGFBQXFCLEVBQUUsY0FBb0IsRUFBRSxrQkFBMkIsRUFBRSxTQUFrQjtRQUNqSCxNQUFNLE1BQU0sR0FBUztZQUNuQixVQUFVLEVBQUUsMkJBQTJCO1lBQ3ZDLFdBQVcsRUFBRSxxQ0FBcUMsY0FBYyxDQUFDLGNBQWMsY0FBYztZQUM3RixXQUFXLEVBQUUscUNBQXFDLGNBQWMsQ0FBQyxjQUFjLGNBQWM7WUFDN0YsS0FBSyxFQUFFLGlDQUFpQyxjQUFjLENBQUMsR0FBRyxHQUFHO1lBQzdELEtBQUssRUFBRSxpQ0FBaUMsY0FBYyxDQUFDLEdBQUcsR0FBRztZQUM3RCxlQUFlLEVBQUUsUUFBUSxTQUFTLGlCQUFpQjtZQUNuRCxvQkFBb0IsRUFBRSxRQUFRLFNBQVMsMEJBQTBCO1lBQ2pFLFdBQVcsRUFBRSwyQkFBMkI7WUFDeEMsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxNQUFNLEVBQUUsdURBQXVEO1lBQy9ELFNBQVMsRUFBRSx3Q0FBd0MsY0FBYyxDQUFDLE9BQU8sRUFBRTtZQUMzRSxTQUFTLEVBQUUsd0NBQXdDLGNBQWMsQ0FBQyxPQUFPLEVBQUU7U0FDNUUsQ0FBQztRQUVGLE9BQU8sQ0FBQyxrQkFBa0I7WUFDeEIsQ0FBQyxDQUFDLGtCQUFrQjtZQUNwQixDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDckIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxvQkFBb0IsYUFBYSx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFJRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFzQ0U7SUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQWMsRUFBRSxTQUFvQjtRQUN4RCxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQUMsT0FBTyxJQUFJLENBQUM7UUFBQyxDQUFDO1FBRWxILE9BQU87WUFDTCxHQUFHLE1BQU07WUFDVCxHQUFHLFNBQVMsQ0FBQyxLQUFLO1NBQ25CLENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5nQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1BcnJheSwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5cbi8qKlxuICogQHN1bW1hcnkgQ29udMOpbSBkaXZlcnNvcyBtw6l0b2RvcyBkZSB1dGlsaWRhZGUgcGFyYSBmb3JtdWzDoXJpb3NcbiAqL1xuZXhwb3J0IGNsYXNzIEZvcm1VdGlscyB7XG5cbiAgLyoqIFZlcmlmaWNhIHNlIHVtIGNhbXBvIMOpIGludsOhbGlkbyAoVGVtcGxhdGUgRHJpdmVuKSAqL1xuICBzdGF0aWMgaXNJbnZhbGlkRmllbGRUZW1wbGF0ZShjb250cm9sOiBOZ0NvbnRyb2wpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXQ6IGFueSA9ICFjb250cm9sLnZhbGlkICYmIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCk7XG4gIFxuICAgIHJldHVybiAocmV0ID8gcmV0IDogZmFsc2UpXG4gIH1cbiAgXG4gIC8qKiBWZXJpZmljYSBzZSB1bSBjYW1wbyDDqSBpbnbDoWxpZG8gKERhdGEgRHJpdmVuKSAqL1xuICBzdGF0aWMgaXNJbnZhbGlkRmllbGQoY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoY29udHJvbCA/ICFjb250cm9sLnZhbGlkICYmIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCkgOiBmYWxzZSk7XG4gIH1cblxuICAvKiogVmVyaWZpY2Egc2UgdW0gY2FtcG8gw6kgaW52w6FsaWRvIG91IHNlIHBvc3N1aSBhbGd1bSBlcnJvIGN1c3RvbWl6YWRvIChEYXRhIERyaXZlbikgKi9cbiAgc3RhdGljIGlzSW52YWxpZEZpZWxkRXJyb3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsaWQgJiYgKGNvbnRyb2wuZGlydHkgfHwgY29udHJvbC50b3VjaGVkKSkgeyByZXR1cm4gdHJ1ZSB9XG4gICAgICBlbHNlIHsgcmV0dXJuIGZhbHNlIH1cbiAgICB9XG4gICAgZWxzZSB7IHJldHVybiBmYWxzZSB9XG4gIH1cblxuICAvKiogVmFsaWRhIHRvZG9zIG9zIGNhbXBvcyBkbyBmb3JtdWzDoXJpbyAqL1xuICBzdGF0aWMgdmFsaWRhdGVGaWVsZHMoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwIHwgVW50eXBlZEZvcm1BcnJheSk6IHZvaWQge1xuICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gIFxuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gY29udHJvbD8udmFsdWU7XG5cbiAgICAgIGNvbnRyb2w/LnJlc2V0KCk7XG5cbiAgICAgIGNvbnRyb2w/Lm1hcmtBc0RpcnR5KCk7XG4gICAgICBjb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG5cbiAgICAgIGNvbnRyb2w/LnNldFZhbHVlKGN1cnJlbnRWYWx1ZSk7XG4gICAgICBcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCB8fCBjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1BcnJheSkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlRmllbGRzKGNvbnRyb2wpO1xuICAgICAgfVxuICBcbiAgICB9KTtcbiAgXG4gIH0gICAgIFxuICAgICAgXG4gIC8qKiBPYnTDqW0gYSBtZW5zYWdlbSBkZSBlcnJvIGNvbmZvcm1lIG8gdmFsaWRhZG9yIHV0aWxpemFkbyAqL1xuICBzdGF0aWMgZ2V0RXJyb3JNZXNzYWdlKHZhbGlkYXRvck5hbWU6IHN0cmluZywgdmFsaWRhdG9yVmFsdWU/OiBhbnksIGN1c3RvbUVycm9yTWVzc2FnZT86IHN0cmluZywgZmllbGROYW1lPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb25maWcgOiBhbnkgPSB7XG4gICAgICAncmVxdWlyZWQnOiBgRXN0ZSBjYW1wbyDDqSBvYnJpZ2F0w7NyaW8uYCxcbiAgICAgICdtaW5sZW5ndGgnOiBgRXN0ZSBjYW1wbyBkZXZlIHBvc3N1aXIgbm8gbcOtbmltbyAke3ZhbGlkYXRvclZhbHVlLnJlcXVpcmVkTGVuZ3RofSBjYXJhY3RlcmVzLmAsXG4gICAgICAnbWF4bGVuZ3RoJzogYEVzdGUgY2FtcG8gZGV2ZSBwb3NzdWlyIG5vIG3DoXhpbW8gJHt2YWxpZGF0b3JWYWx1ZS5yZXF1aXJlZExlbmd0aH0gY2FyYWN0ZXJlcy5gLFxuICAgICAgJ21pbic6IGBFc3RlIGNhbXBvIGRldmUgc2VyIG5vIG3DrW5pbW8gJHt2YWxpZGF0b3JWYWx1ZS5taW59LmAsXG4gICAgICAnbWF4JzogYEVzdGUgY2FtcG8gZGV2ZSBzZXIgbm8gbcOheGltbyAke3ZhbGlkYXRvclZhbHVlLm1heH0uYCxcbiAgICAgICdjcGNucGpJbnZhbGlkJzogYEVzdGUgJHtmaWVsZE5hbWV9IGVzdMOhIGludsOhbGlkby5gLFxuICAgICAgJ2NwY25wakludmFsaWREaWdpdCc6IGBFc3RlICR7ZmllbGROYW1lfSB0ZW0gdW0gZMOtZ2l0byBpbnbDoWxpZG8uYCxcbiAgICAgICdpbmNvcnJlY3QnOiBgRXN0ZSBjYW1wbyBlc3TDoSBpbnbDoWxpZG8uYCxcbiAgICAgICdlbWFpbCc6IGBFc3RlIGUtbWFpbCBlc3TDoSBpbnbDoWxpZG8uYCxcbiAgICAgICdtYXNrJzogYE8gdmFsb3IgaW5mb3JtYWRvIG7Do28gY29ycmVzcG9uZGUgYW8gZm9ybWF0byBlc3BlcmFkb2AsXG4gICAgICAnbWluRGF0ZSc6IGBBIGRhdGEgaW5mb3JtYWRhIGRldmUgc2VyIHN1cGVyaW9yIMOgICR7dmFsaWRhdG9yVmFsdWUubWluRGF0ZX1gLFxuICAgICAgJ21heERhdGUnOiBgQSBkYXRhIGluZm9ybWFkYSBkZXZlIHNlciBpbmZlcmlvciDDoCAke3ZhbGlkYXRvclZhbHVlLm1heERhdGV9YFxuICAgIH07XG5cbiAgICByZXR1cm4gKGN1c3RvbUVycm9yTWVzc2FnZVxuICAgICAgPyBjdXN0b21FcnJvck1lc3NhZ2VcbiAgICAgIDogY29uZmlnW3ZhbGlkYXRvck5hbWVdXG4gICAgICAgID8gY29uZmlnW3ZhbGlkYXRvck5hbWVdXG4gICAgICAgIDogYEVzdGUgdmFsaWRhZG9yIC0gJHt2YWxpZGF0b3JOYW1lfSAtIG7Do28gZm9pIGltcGxlbWVudGFkb2ApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBNYXBlaWEgb3MgdmFsb3JlcyBkZSB1bSBmb3JtdWzDoXJpbyByZWF0aXZvIHBhcmEgdW0gb2JqZXRvIGRlIG1vZGVsby5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIE8gbcOpdG9kbyBgbWFwRm9ybVRvTW9kZWxgIHJlY2ViZSB1bSBvYmpldG8gZGUgbW9kZWxvIGUgdW0gYEZvcm1Hcm91cGAgZG8gQW5ndWxhciwgXG4gICAqIGUgcmV0b3JuYSB1bSBub3ZvIG9iamV0byBxdWUgY29tYmluYSBhcyBwcm9wcmllZGFkZXMgZG8gbW9kZWxvIG9yaWdpbmFsIGNvbSBvcyB2YWxvcmVzIFxuICAgKiBhdHVhaXMgZG8gZm9ybXVsw6FyaW8uIEVzdGUgbcOpdG9kbyDDqSDDunRpbCBwYXJhIGF0dWFsaXphciBkaW5hbWljYW1lbnRlIGFzIHByb3ByaWVkYWRlcyBcbiAgICogZGUgdW0gbW9kZWxvIGNvbSBiYXNlIG5vcyB2YWxvcmVzIGluc2VyaWRvcyBwZWxvIHVzdcOhcmlvIGVtIHVtIGZvcm11bMOhcmlvLlxuICAgKiBcbiAgICogU2UgbyBvYmpldG8gYHJlY29yZGAgb3UgbyBgZm9ybUdyb3VwYCBmb3JlbSBudWxvcyBvdSBpbmRlZmluaWRvcywgbyBtw6l0b2RvIHJldG9ybmFyw6EgYG51bGxgLlxuICAgKiBDYXNvIGNvbnRyw6FyaW8sIG8gbcOpdG9kbyByZXRvcm5hIHVtIG5vdm8gb2JqZXRvIHF1ZSBpbmNsdWkgdG9kYXMgYXMgcHJvcHJpZWRhZGVzIFxuICAgKiBkbyBvYmpldG8gb3JpZ2luYWwsIHNvYnJlc2NyZXZlbmRvLWFzIGNvbSBvcyB2YWxvcmVzIGF0dWFpcyBkbyBmb3JtdWzDoXJpbywgc2UgZGlzcG9uw612ZWlzLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gcmVjb3JkIC0gTyBvYmpldG8gZGUgbW9kZWxvIG9yaWdpbmFsIHF1ZSBzZXLDoSBhdHVhbGl6YWRvIGNvbSBvcyB2YWxvcmVzIGRvIGZvcm11bMOhcmlvLlxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cH0gZm9ybUdyb3VwIC0gTyBgRm9ybUdyb3VwYCBjb250ZW5kbyBvcyB2YWxvcmVzIGluc2VyaWRvcyBwZWxvIHVzdcOhcmlvLlxuICAgKiBAcmV0dXJucyB7b2JqZWN0IHwgbnVsbH0gLSBVbSBub3ZvIG9iamV0byBjb21iaW5hbmRvIG8gbW9kZWxvIG9yaWdpbmFsIGUgb3MgdmFsb3JlcyBkbyBmb3JtdWzDoXJpbywgb3UgYG51bGxgIHNlIGByZWNvcmRgIG91IGBmb3JtR3JvdXBgIGZvcmVtIG51bG9zIG91IGluZGVmaW5pZG9zLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBTdXBvbmhhIHF1ZSB2b2PDqiB0ZW5oYSB1bSBvYmpldG8gZGUgbW9kZWxvIGBwZXJzb25gIGUgdW0gYEZvcm1Hcm91cGAgY2hhbWFkbyBgcGVyc29uRm9ybWAuXG4gICAqIGNvbnN0IHBlcnNvbiA9IHtcbiAgICogICBuYW1lOiAnSm9obiBEb2UnLFxuICAgKiAgIGFnZTogMzAsXG4gICAqICAgZW1haWw6ICdqb2huLmRvZUBleGFtcGxlLmNvbSdcbiAgICogfTtcbiAgICogXG4gICAqIGNvbnN0IHBlcnNvbkZvcm06IEZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgKiAgIG5hbWU6IFsnSmFuZSBEb2UnXSxcbiAgICogICBhZ2U6IFsyNV0sXG4gICAqICAgZW1haWw6IFsnamFuZS5kb2VAZXhhbXBsZS5jb20nXVxuICAgKiB9KTtcbiAgICogXG4gICAqIGNvbnN0IHVwZGF0ZWRQZXJzb24gPSB0aGlzLm1hcEZvcm1Ub01vZGVsKHBlcnNvbiwgcGVyc29uRm9ybSk7XG4gICAqIC8vIGB1cGRhdGVkUGVyc29uYCBhZ29yYSBjb250w6ltOlxuICAgKiAvLyB7XG4gICAqIC8vICAgbmFtZTogJ0phbmUgRG9lJyxcbiAgICogLy8gICBhZ2U6IDI1LFxuICAgKiAvLyAgIGVtYWlsOiAnamFuZS5kb2VAZXhhbXBsZS5jb20nXG4gICAqIC8vIH1cbiAgKi9cbiAgc3RhdGljIG1hcEZvcm1Ub01vZGVsKHJlY29yZDogb2JqZWN0LCBmb3JtR3JvdXA6IEZvcm1Hcm91cCk6IG9iamVjdCB8IG51bGwge1xuICAgIGlmICgocmVjb3JkID09PSBudWxsIHx8IHJlY29yZCA9PT0gdW5kZWZpbmVkKSB8fCAoZm9ybUdyb3VwID09PSBudWxsIHx8IGZvcm1Hcm91cCA9PT0gdW5kZWZpbmVkKSkgeyByZXR1cm4gbnVsbDsgfVxuICAgIFxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZWNvcmQsXG4gICAgICAuLi5mb3JtR3JvdXAudmFsdWVcbiAgICB9O1xuICB9XG5cbn1cbiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3V0aWxzL2Zvcm0tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRzNHOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFFcEIsd0RBQXdEO0lBQ3hELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxPQUFrQjtRQUM5QyxNQUFNLEdBQUcsR0FBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0RSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUErQjtRQUNuRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELHdGQUF3RjtJQUN4RixNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBK0I7UUFDeEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFBQyxPQUFPLElBQUksQ0FBQTtZQUFDLENBQUM7aUJBQ3BFLENBQUM7Z0JBQUMsT0FBTyxLQUFLLENBQUE7WUFBQyxDQUFDO1FBQ3ZCLENBQUM7YUFDSSxDQUFDO1lBQUMsT0FBTyxLQUFLLENBQUE7UUFBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUE4QztRQUNsRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQyxNQUFNLFlBQVksR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBRXBDLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUVqQixPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBRXpCLE9BQU8sRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFaEMsSUFBSSxPQUFPLFlBQVksZ0JBQWdCLElBQUksT0FBTyxZQUFZLGdCQUFnQixFQUFFLENBQUM7Z0JBQy9FLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUVILENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVELDhEQUE4RDtJQUM5RCxNQUFNLENBQUMsZUFBZSxDQUFDLGFBQXFCLEVBQUUsY0FBb0IsRUFBRSxrQkFBMkIsRUFBRSxTQUFrQjtRQUNqSCxNQUFNLE1BQU0sR0FBUztZQUNuQixVQUFVLEVBQUUsMkJBQTJCO1lBQ3ZDLFdBQVcsRUFBRSxxQ0FBcUMsY0FBYyxDQUFDLGNBQWMsY0FBYztZQUM3RixXQUFXLEVBQUUscUNBQXFDLGNBQWMsQ0FBQyxjQUFjLGNBQWM7WUFDN0YsS0FBSyxFQUFFLGlDQUFpQyxjQUFjLENBQUMsR0FBRyxHQUFHO1lBQzdELEtBQUssRUFBRSxpQ0FBaUMsY0FBYyxDQUFDLEdBQUcsR0FBRztZQUM3RCxlQUFlLEVBQUUsUUFBUSxTQUFTLGlCQUFpQjtZQUNuRCxvQkFBb0IsRUFBRSxRQUFRLFNBQVMsMEJBQTBCO1lBQ2pFLFdBQVcsRUFBRSwyQkFBMkI7WUFDeEMsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxNQUFNLEVBQUUsdURBQXVEO1lBQy9ELFNBQVMsRUFBRSx3Q0FBd0MsY0FBYyxDQUFDLE9BQU8sRUFBRTtZQUMzRSxTQUFTLEVBQUUsd0NBQXdDLGNBQWMsQ0FBQyxPQUFPLEVBQUU7U0FDNUUsQ0FBQztRQUVGLE9BQU8sQ0FBQyxrQkFBa0I7WUFDeEIsQ0FBQyxDQUFDLGtCQUFrQjtZQUNwQixDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDckIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxvQkFBb0IsYUFBYSx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFJRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFzQ0U7SUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQWMsRUFBRSxTQUFvQjtRQUN4RCxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQUMsT0FBTyxJQUFJLENBQUM7UUFBQyxDQUFDO1FBRWxILE9BQU87WUFDTCxHQUFHLE1BQU07WUFDVCxHQUFHLFNBQVMsQ0FBQyxLQUFLO1NBQ25CLENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5nQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1BcnJheSwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5cbi8qKlxuICogQHN1bW1hcnkgQ29udMOpbSBkaXZlcnNvcyBtw6l0b2RvcyBkZSB1dGlsaWRhZGUgcGFyYSBmb3JtdWzDoXJpb3NcbiAqL1xuZXhwb3J0IGNsYXNzIEZvcm1VdGlscyB7XG5cbiAgLyoqIFZlcmlmaWNhIHNlIHVtIGNhbXBvIMOpIGludsOhbGlkbyAoVGVtcGxhdGUgRHJpdmVuKSAqL1xuICBzdGF0aWMgaXNJbnZhbGlkRmllbGRUZW1wbGF0ZShjb250cm9sOiBOZ0NvbnRyb2wpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXQ6IGFueSA9ICFjb250cm9sLnZhbGlkICYmIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCk7XG4gIFxuICAgIHJldHVybiAocmV0ID8gcmV0IDogZmFsc2UpXG4gIH1cbiAgXG4gIC8qKiBWZXJpZmljYSBzZSB1bSBjYW1wbyDDqSBpbnbDoWxpZG8gKERhdGEgRHJpdmVuKSAqL1xuICBzdGF0aWMgaXNJbnZhbGlkRmllbGQoY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoY29udHJvbCA/ICFjb250cm9sLnZhbGlkICYmIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCkgOiBmYWxzZSk7XG4gIH1cblxuICAvKiogVmVyaWZpY2Egc2UgdW0gY2FtcG8gw6kgaW52w6FsaWRvIG91IHNlIHBvc3N1aSBhbGd1bSBlcnJvIGN1c3RvbWl6YWRvIChEYXRhIERyaXZlbikgKi9cbiAgc3RhdGljIGlzSW52YWxpZEZpZWxkRXJyb3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsaWQgJiYgKGNvbnRyb2wuZGlydHkgfHwgY29udHJvbC50b3VjaGVkKSkgeyByZXR1cm4gdHJ1ZSB9XG4gICAgICBlbHNlIHsgcmV0dXJuIGZhbHNlIH1cbiAgICB9XG4gICAgZWxzZSB7IHJldHVybiBmYWxzZSB9XG4gIH1cblxuICAvKiogVmFsaWRhIHRvZG9zIG9zIGNhbXBvcyBkbyBmb3JtdWzDoXJpbyAqL1xuICBzdGF0aWMgdmFsaWRhdGVGaWVsZHMoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwIHwgVW50eXBlZEZvcm1BcnJheSk6IHZvaWQge1xuICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gIFxuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gY29udHJvbD8udmFsdWU7XG5cbiAgICAgIGNvbnRyb2w/LnJlc2V0KCk7XG5cbiAgICAgIGNvbnRyb2w/Lm1hcmtBc0RpcnR5KCk7XG4gICAgICBjb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG5cbiAgICAgIGNvbnRyb2w/LnNldFZhbHVlKGN1cnJlbnRWYWx1ZSk7XG4gICAgICBcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCB8fCBjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1BcnJheSkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlRmllbGRzKGNvbnRyb2wpO1xuICAgICAgfVxuICBcbiAgICB9KTtcbiAgXG4gIH0gICAgIFxuICAgICAgXG4gIC8qKiBPYnTDqW0gYSBtZW5zYWdlbSBkZSBlcnJvIGNvbmZvcm1lIG8gdmFsaWRhZG9yIHV0aWxpemFkbyAqL1xuICBzdGF0aWMgZ2V0RXJyb3JNZXNzYWdlKHZhbGlkYXRvck5hbWU6IHN0cmluZywgdmFsaWRhdG9yVmFsdWU/OiBhbnksIGN1c3RvbUVycm9yTWVzc2FnZT86IHN0cmluZywgZmllbGROYW1lPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb25maWcgOiBhbnkgPSB7XG4gICAgICAncmVxdWlyZWQnOiBgRXN0ZSBjYW1wbyDDqSBvYnJpZ2F0w7NyaW8uYCxcbiAgICAgICdtaW5sZW5ndGgnOiBgRXN0ZSBjYW1wbyBkZXZlIHBvc3N1aXIgbm8gbcOtbmltbyAke3ZhbGlkYXRvclZhbHVlLnJlcXVpcmVkTGVuZ3RofSBjYXJhY3RlcmVzLmAsXG4gICAgICAnbWF4bGVuZ3RoJzogYEVzdGUgY2FtcG8gZGV2ZSBwb3NzdWlyIG5vIG3DoXhpbW8gJHt2YWxpZGF0b3JWYWx1ZS5yZXF1aXJlZExlbmd0aH0gY2FyYWN0ZXJlcy5gLFxuICAgICAgJ21pbic6IGBFc3RlIGNhbXBvIGRldmUgc2VyIG5vIG3DrW5pbW8gJHt2YWxpZGF0b3JWYWx1ZS5taW59LmAsXG4gICAgICAnbWF4JzogYEVzdGUgY2FtcG8gZGV2ZSBzZXIgbm8gbcOheGltbyAke3ZhbGlkYXRvclZhbHVlLm1heH0uYCxcbiAgICAgICdjcGNucGpJbnZhbGlkJzogYEVzdGUgJHtmaWVsZE5hbWV9IGVzdMOhIGludsOhbGlkby5gLFxuICAgICAgJ2NwY25wakludmFsaWREaWdpdCc6IGBFc3RlICR7ZmllbGROYW1lfSB0ZW0gdW0gZMOtZ2l0byBpbnbDoWxpZG8uYCxcbiAgICAgICdpbmNvcnJlY3QnOiBgRXN0ZSBjYW1wbyBlc3TDoSBpbnbDoWxpZG8uYCxcbiAgICAgICdlbWFpbCc6IGBFc3RlIGUtbWFpbCBlc3TDoSBpbnbDoWxpZG8uYCxcbiAgICAgICdtYXNrJzogYE8gdmFsb3IgaW5mb3JtYWRvIG7Do28gY29ycmVzcG9uZGUgYW8gZm9ybWF0byBlc3BlcmFkb2AsXG4gICAgICAnbWluRGF0ZSc6IGBBIGRhdGEgaW5mb3JtYWRhIGRldmUgc2VyIHN1cGVyaW9yIMOgICR7dmFsaWRhdG9yVmFsdWUubWluRGF0ZX1gLFxuICAgICAgJ21heERhdGUnOiBgQSBkYXRhIGluZm9ybWFkYSBkZXZlIHNlciBpbmZlcmlvciDDoCAke3ZhbGlkYXRvclZhbHVlLm1heERhdGV9YFxuICAgIH07XG5cbiAgICByZXR1cm4gKGN1c3RvbUVycm9yTWVzc2FnZVxuICAgICAgPyBjdXN0b21FcnJvck1lc3NhZ2VcbiAgICAgIDogY29uZmlnW3ZhbGlkYXRvck5hbWVdXG4gICAgICAgID8gY29uZmlnW3ZhbGlkYXRvck5hbWVdXG4gICAgICAgIDogYEVzdGUgdmFsaWRhZG9yIC0gJHt2YWxpZGF0b3JOYW1lfSAtIG7Do28gZm9pIGltcGxlbWVudGFkb2ApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBNYXBlaWEgb3MgdmFsb3JlcyBkZSB1bSBmb3JtdWzDoXJpbyByZWF0aXZvIHBhcmEgdW0gb2JqZXRvIGRlIG1vZGVsby5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIE8gbcOpdG9kbyBgbWFwRm9ybVRvTW9kZWxgIHJlY2ViZSB1bSBvYmpldG8gZGUgbW9kZWxvIGUgdW0gYEZvcm1Hcm91cGAgZG8gQW5ndWxhcixcbiAgICogZSByZXRvcm5hIHVtIG5vdm8gb2JqZXRvIHF1ZSBjb21iaW5hIGFzIHByb3ByaWVkYWRlcyBkbyBtb2RlbG8gb3JpZ2luYWwgY29tIG9zIHZhbG9yZXNcbiAgICogYXR1YWlzIGRvIGZvcm11bMOhcmlvLiBFc3RlIG3DqXRvZG8gw6kgw7p0aWwgcGFyYSBhdHVhbGl6YXIgZGluYW1pY2FtZW50ZSBhcyBwcm9wcmllZGFkZXNcbiAgICogZGUgdW0gbW9kZWxvIGNvbSBiYXNlIG5vcyB2YWxvcmVzIGluc2VyaWRvcyBwZWxvIHVzdcOhcmlvIGVtIHVtIGZvcm11bMOhcmlvLlxuICAgKiBcbiAgICogU2UgbyBvYmpldG8gYHJlY29yZGAgb3UgbyBgZm9ybUdyb3VwYCBmb3JlbSBudWxvcyBvdSBpbmRlZmluaWRvcywgbyBtw6l0b2RvIHJldG9ybmFyw6EgYG51bGxgLlxuICAgKiBDYXNvIGNvbnRyw6FyaW8sIG8gbcOpdG9kbyByZXRvcm5hIHVtIG5vdm8gb2JqZXRvIHF1ZSBpbmNsdWkgdG9kYXMgYXMgcHJvcHJpZWRhZGVzIFxuICAgKiBkbyBvYmpldG8gb3JpZ2luYWwsIHNvYnJlc2NyZXZlbmRvLWFzIGNvbSBvcyB2YWxvcmVzIGF0dWFpcyBkbyBmb3JtdWzDoXJpbywgc2UgZGlzcG9uw612ZWlzLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gcmVjb3JkIC0gTyBvYmpldG8gZGUgbW9kZWxvIG9yaWdpbmFsIHF1ZSBzZXLDoSBhdHVhbGl6YWRvIGNvbSBvcyB2YWxvcmVzIGRvIGZvcm11bMOhcmlvLlxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cH0gZm9ybUdyb3VwIC0gTyBgRm9ybUdyb3VwYCBjb250ZW5kbyBvcyB2YWxvcmVzIGluc2VyaWRvcyBwZWxvIHVzdcOhcmlvLlxuICAgKiBAcmV0dXJucyB7b2JqZWN0IHwgbnVsbH0gLSBVbSBub3ZvIG9iamV0byBjb21iaW5hbmRvIG8gbW9kZWxvIG9yaWdpbmFsIGUgb3MgdmFsb3JlcyBkbyBmb3JtdWzDoXJpbywgb3UgYG51bGxgIHNlIGByZWNvcmRgIG91IGBmb3JtR3JvdXBgIGZvcmVtIG51bG9zIG91IGluZGVmaW5pZG9zLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBTdXBvbmhhIHF1ZSB2b2PDqiB0ZW5oYSB1bSBvYmpldG8gZGUgbW9kZWxvIGBwZXJzb25gIGUgdW0gYEZvcm1Hcm91cGAgY2hhbWFkbyBgcGVyc29uRm9ybWAuXG4gICAqIGNvbnN0IHBlcnNvbiA9IHtcbiAgICogICBuYW1lOiAnSm9obiBEb2UnLFxuICAgKiAgIGFnZTogMzAsXG4gICAqICAgZW1haWw6ICdqb2huLmRvZUBleGFtcGxlLmNvbSdcbiAgICogfTtcbiAgICogXG4gICAqIGNvbnN0IHBlcnNvbkZvcm06IEZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgKiAgIG5hbWU6IFsnSmFuZSBEb2UnXSxcbiAgICogICBhZ2U6IFsyNV0sXG4gICAqICAgZW1haWw6IFsnamFuZS5kb2VAZXhhbXBsZS5jb20nXVxuICAgKiB9KTtcbiAgICogXG4gICAqIGNvbnN0IHVwZGF0ZWRQZXJzb24gPSB0aGlzLm1hcEZvcm1Ub01vZGVsKHBlcnNvbiwgcGVyc29uRm9ybSk7XG4gICAqIC8vIGB1cGRhdGVkUGVyc29uYCBhZ29yYSBjb250w6ltOlxuICAgKiAvLyB7XG4gICAqIC8vICAgbmFtZTogJ0phbmUgRG9lJyxcbiAgICogLy8gICBhZ2U6IDI1LFxuICAgKiAvLyAgIGVtYWlsOiAnamFuZS5kb2VAZXhhbXBsZS5jb20nXG4gICAqIC8vIH1cbiAgKi9cbiAgc3RhdGljIG1hcEZvcm1Ub01vZGVsKHJlY29yZDogb2JqZWN0LCBmb3JtR3JvdXA6IEZvcm1Hcm91cCk6IG9iamVjdCB8IG51bGwge1xuICAgIGlmICgocmVjb3JkID09PSBudWxsIHx8IHJlY29yZCA9PT0gdW5kZWZpbmVkKSB8fCAoZm9ybUdyb3VwID09PSBudWxsIHx8IGZvcm1Hcm91cCA9PT0gdW5kZWZpbmVkKSkgeyByZXR1cm4gbnVsbDsgfVxuICAgIFxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZWNvcmQsXG4gICAgICAuLi5mb3JtR3JvdXAudmFsdWVcbiAgICB9O1xuICB9XG5cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import * as i1$1 from '@angular/common';
2
2
  import { DOCUMENT, CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { EventEmitter, Output, Input, Inject, Directive, Component, Pipe, forwardRef, HostListener, ViewChildren, input, ViewChild, output, Injectable, NgModule } from '@angular/core';
4
+ import { EventEmitter, Directive, Inject, Input, Output, Component, Pipe, forwardRef, ViewChildren, HostListener, input, ViewChild, output, Injectable, NgModule } from '@angular/core';
5
5
  import * as i2 from '@angular/forms';
6
6
  import { NG_VALUE_ACCESSOR, UntypedFormGroup, UntypedFormArray, FormControl, FormGroup, Validators, FormsModule, ReactiveFormsModule, NG_VALIDATORS } from '@angular/forms';
7
7
  import * as i1$3 from '@angular/router';