design-angular-kit 1.0.0-prerelease.1 → 1.0.0-prerelease.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.
Files changed (118) hide show
  1. package/README.md +193 -111
  2. package/esm2022/lib/abstracts/abstract-form.component.mjs +6 -6
  3. package/esm2022/lib/abstracts/abstract.component.mjs +5 -5
  4. package/esm2022/lib/components/core/accordion/accordion.component.mjs +7 -6
  5. package/esm2022/lib/components/core/alert/alert.component.mjs +5 -6
  6. package/esm2022/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.mjs +10 -10
  7. package/esm2022/lib/components/core/avatar/avatar-group/avatar-group.component.mjs +10 -10
  8. package/esm2022/lib/components/core/avatar/avatar.directive.mjs +4 -4
  9. package/esm2022/lib/components/core/avatar/avatar.module.mjs +33 -0
  10. package/esm2022/lib/components/core/badge/badge.directive.mjs +4 -4
  11. package/esm2022/lib/components/core/button/button.directive.mjs +6 -6
  12. package/esm2022/lib/components/core/callout/callout.component.mjs +6 -6
  13. package/esm2022/lib/components/core/card/card.component.mjs +6 -6
  14. package/esm2022/lib/components/core/carousel/carousel/carousel.component.mjs +13 -10
  15. package/esm2022/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +3 -3
  16. package/esm2022/lib/components/core/carousel/carousel.module.mjs +7 -12
  17. package/esm2022/lib/components/core/chip/chip.component.mjs +80 -40
  18. package/esm2022/lib/components/core/collapse/collapse.component.mjs +4 -4
  19. package/esm2022/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +3 -3
  20. package/esm2022/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +3 -3
  21. package/esm2022/lib/components/core/dimmer/dimmer.component.mjs +27 -31
  22. package/esm2022/lib/components/core/dimmer/dimmer.module.mjs +7 -15
  23. package/esm2022/lib/components/core/dropdown/dropdown/dropdown.component.mjs +10 -7
  24. package/esm2022/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +5 -6
  25. package/esm2022/lib/components/core/dropdown/dropdown.module.mjs +6 -6
  26. package/esm2022/lib/components/core/forward/forward.directive.mjs +6 -6
  27. package/esm2022/lib/components/core/link/link.component.mjs +6 -6
  28. package/esm2022/lib/components/core/list/list/list.component.mjs +6 -6
  29. package/esm2022/lib/components/core/list/list-item/list-item.component.mjs +6 -6
  30. package/esm2022/lib/components/core/list/list.module.mjs +7 -12
  31. package/esm2022/lib/components/core/modal/modal.component.mjs +6 -7
  32. package/esm2022/lib/components/core/notifications/notifications.component.mjs +8 -9
  33. package/esm2022/lib/components/core/pagination/pagination.component.mjs +19 -16
  34. package/esm2022/lib/components/core/popover/popover.directive.mjs +5 -5
  35. package/esm2022/lib/components/core/progress-bar/progress-bar.component.mjs +7 -7
  36. package/esm2022/lib/components/core/progress-button/progress-button.component.mjs +5 -6
  37. package/esm2022/lib/components/core/spinner/spinner.component.mjs +5 -6
  38. package/esm2022/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +15 -11
  39. package/esm2022/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +7 -6
  40. package/esm2022/lib/components/core/steppers/steppers.module.mjs +7 -12
  41. package/esm2022/lib/components/core/tab/tab-container/tab-container.component.mjs +12 -9
  42. package/esm2022/lib/components/core/tab/tab-item/tab-item.component.mjs +3 -3
  43. package/esm2022/lib/components/core/tab/tab.module.mjs +7 -12
  44. package/esm2022/lib/components/core/table/sort/sort-header/sort-header.component.mjs +10 -12
  45. package/esm2022/lib/components/core/table/sort/sort.directive.mjs +6 -6
  46. package/esm2022/lib/components/core/table/table.component.mjs +3 -3
  47. package/esm2022/lib/components/core/table/table.module.mjs +19 -0
  48. package/esm2022/lib/components/core/tooltip/tooltip.directive.mjs +5 -5
  49. package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +17 -6
  50. package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +6 -6
  51. package/esm2022/lib/components/form/form.module.mjs +4 -4
  52. package/esm2022/lib/components/form/input/input.component.mjs +6 -6
  53. package/esm2022/lib/components/form/password-input/password-input.component.mjs +8 -8
  54. package/esm2022/lib/components/form/radio-button/radio-button.component.mjs +9 -7
  55. package/esm2022/lib/components/form/range/range.component.mjs +11 -11
  56. package/esm2022/lib/components/form/rating/rating.component.mjs +5 -6
  57. package/esm2022/lib/components/form/select/select.component.mjs +6 -6
  58. package/esm2022/lib/components/form/textarea/textarea.component.mjs +6 -6
  59. package/esm2022/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +12 -10
  60. package/esm2022/lib/components/form/upload-file-list/upload-file-list.component.mjs +7 -7
  61. package/esm2022/lib/components/navigation/back-button/back-button.component.mjs +7 -7
  62. package/esm2022/lib/components/navigation/back-to-top/back-to-top.component.mjs +4 -4
  63. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +13 -17
  64. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
  65. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.module.mjs +6 -6
  66. package/esm2022/lib/components/navigation/header/header.component.mjs +21 -7
  67. package/esm2022/lib/components/navigation/megamenu/megamenu.component.mjs +27 -0
  68. package/esm2022/lib/components/navigation/navbar/navbar/navbar.component.mjs +5 -6
  69. package/esm2022/lib/components/navigation/navbar/navbar-item/navbar-item.component.mjs +5 -7
  70. package/esm2022/lib/components/navigation/navbar/navbar.module.mjs +6 -6
  71. package/esm2022/lib/components/utils/error-page/error-page.component.mjs +6 -7
  72. package/esm2022/lib/components/utils/icon/icon.component.mjs +18 -16
  73. package/esm2022/lib/components/utils/language-switcher/language-switcher.component.mjs +12 -9
  74. package/esm2022/lib/design-angular-kit.module.mjs +201 -56
  75. package/esm2022/lib/interfaces/design-angular-kit-config.mjs +7 -0
  76. package/esm2022/lib/pipes/date-ago.pipe.mjs +5 -5
  77. package/esm2022/lib/pipes/duration.pipe.mjs +4 -4
  78. package/esm2022/lib/pipes/mark-matching-text.pipe.mjs +5 -5
  79. package/esm2022/lib/provide-design-angular-kit.mjs +61 -0
  80. package/esm2022/lib/services/notification/notification.service.mjs +3 -3
  81. package/esm2022/lib/utils/date-utils.mjs +1 -1
  82. package/esm2022/lib/utils/file-utils.mjs +1 -1
  83. package/esm2022/lib/validators/it-validators.mjs +1 -1
  84. package/esm2022/public_api.mjs +10 -9
  85. package/fesm2022/design-angular-kit.mjs +1500 -1394
  86. package/fesm2022/design-angular-kit.mjs.map +1 -1
  87. package/lib/components/core/accordion/accordion.component.d.ts +1 -1
  88. package/lib/components/core/avatar/avatar.module.d.ts +9 -0
  89. package/lib/components/core/chip/chip.component.d.ts +24 -13
  90. package/lib/components/core/dimmer/dimmer.component.d.ts +2 -2
  91. package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +7 -1
  92. package/lib/components/core/pagination/pagination.component.d.ts +1 -1
  93. package/lib/components/core/progress-bar/progress-bar.component.d.ts +1 -1
  94. package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +1 -1
  95. package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +1 -1
  96. package/lib/components/core/table/sort/sort-header/sort-header.component.d.ts +2 -2
  97. package/lib/components/core/table/table.module.d.ts +9 -0
  98. package/lib/components/form/autocomplete/autocomplete.component.d.ts +7 -1
  99. package/lib/components/form/radio-button/radio-button.component.d.ts +1 -1
  100. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +13 -7
  101. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +1 -1
  102. package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +0 -5
  103. package/lib/components/navigation/header/header.component.d.ts +7 -1
  104. package/lib/components/navigation/megamenu/megamenu.component.d.ts +22 -0
  105. package/lib/components/utils/icon/icon.component.d.ts +14 -6
  106. package/lib/components/utils/language-switcher/language-switcher.component.d.ts +1 -1
  107. package/lib/design-angular-kit.module.d.ts +43 -8
  108. package/lib/interfaces/design-angular-kit-config.d.ts +30 -0
  109. package/lib/pipes/date-ago.pipe.d.ts +3 -3
  110. package/lib/provide-design-angular-kit.d.ts +7 -0
  111. package/package.json +8 -7
  112. package/public_api.d.ts +9 -7
  113. package/esm2022/lib/components/components.module.mjs +0 -218
  114. package/esm2022/lib/design-angular-kit-config.mjs +0 -15
  115. package/esm2022/lib/interfaces/design-angular-kit-init.mjs +0 -2
  116. package/lib/components/components.module.d.ts +0 -45
  117. package/lib/design-angular-kit-config.d.ts +0 -16
  118. package/lib/interfaces/design-angular-kit-init.d.ts +0 -7
package/README.md CHANGED
@@ -26,25 +26,14 @@
26
26
  </p>
27
27
 
28
28
  <p align="center">
29
- <a href="https://github.com/semantic-release/semantic-release">
30
- <img src="https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release" alt="semantic-release: angular" />
31
- </a>
32
- <a href="https://github.com/prettier/prettier">
33
- <img src="https://img.shields.io/badge/code%20style-prettier-ff69b4?logo=Prettier" alt="code style: prettier" />
34
- </a>
35
- <a href="https://github.com/eslint/eslint">
36
- <img src="https://img.shields.io/badge/formatter-angular--eslint-4B32C3?logo=eslint" alt="formatter: angular-eslint" />
37
- </a>
29
+ <a href="https://github.com/semantic-release/semantic-release"><img src="https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release" alt="semantic-release: angular" /></a>
30
+ <a href="https://github.com/prettier/prettier"><img src="https://img.shields.io/badge/code%20style-prettier-ff69b4?logo=Prettier" alt="code style: prettier" /></a>
31
+ <a href="https://github.com/eslint/eslint"><img src="https://img.shields.io/badge/formatter-angular--eslint-4B32C3?logo=eslint" alt="formatter: angular-eslint" /></a>
38
32
  </p>
39
33
 
40
34
  <p align="center">
41
- <a href="https://developersitalia.slack.com/messages/C04H3C19D52/">
42
- <img src="https://img.shields.io/badge/Slack%20channel-%23design--dev--angular-blue.svg" alt="Join the #design-dev-angular channel" />
43
- </a>
44
- <a href="https://slack.developers.italia.it/">
45
- <img src="https://slack.developers.italia.it/badge.svg" alt="Get invited" />
46
- </a>
47
- </p>
35
+ <a href="https://developersitalia.slack.com/messages/C04H3C19D52/"><img src="https://img.shields.io/badge/Slack%20channel-%23design--dev--angular-blue.svg" alt="Join the #design-dev-angular channel" /></a>
36
+ <a href="https://slack.developers.italia.it/"><img src="https://slack.developers.italia.it/badge.svg" alt="Get invited" /></a></p>
48
37
 
49
38
  _⚠️ Attenzione: questo codice è ancora in fase di sviluppo e non è pronto per essere utilizzato! Stiamo lavorando all'aggiornamento per portare il kit alla versione 1.0.0, commenti e contributi di tutta la community sono più che benvenuti! Se si necessita della vecchia versione il codice e la sua documentazione possono essere reperiti [qua](https://github.com/italia/design-angular-kit/tree/0.x)._
50
39
 
@@ -53,7 +42,9 @@ _⚠️ Attenzione: questo codice è ancora in fase di sviluppo e non è pronto
53
42
  Sono partite le lavorazioni per l'aggiornamento del kit Angular a Bootstrap Italia 2 (basato su Bootstrap 5).
54
43
  Sul branch `main` potete trovare il codice dei lavori in corso e nella [milestone Version 1.0.0](https://github.com/italia/design-angular-kit/milestone/3) un piano preliminare delle attività. La vecchia versione è da considerarsi deprecata.
55
44
 
56
- 👉🏻 È possibile contribuire a questa nuova versione in vari modi:
45
+ ## Come contribuire 💙
46
+
47
+ 👉🏻 È possibile contribuire alla libreria in vari modi:
57
48
 
58
49
  * Con il proprio codice, prendendo in carico una issue tra quelle aperte e non già assegnate tra [le issue](https://github.com/italia/design-angular-kit/issues) di Angular Kit (è sufficiente anche un commento sulla issue per notificare la volontà di presa in carico).
59
50
  * Attraverso la segnalazione di bug o miglioramenti al [repository ufficiale](https://github.com/italia/design-angular-kit/) di Angular Kit.
@@ -62,14 +53,16 @@ Sul branch `main` potete trovare il codice dei lavori in corso e nella [mileston
62
53
  **Commenti e contributi di tutta la community sono più che benvenuti!** 🎉
63
54
 
64
55
  ## Link utili
56
+
57
+ - [Playground Angular Kit](https://github.com/italia/design-angular-kit-playground)
58
+ - [Preview di Vercel (aggiornata ad ogni commit)](https://design-angular-kit.vercel.app/)
59
+
60
+ ### Dalla community
61
+
65
62
  - [Video Commit University: Sviluppare da zero una Angular Web App per la PA](https://www.youtube.com/watch?v=gH-0P36E5jk&t=385s) ([slide](https://www.slideshare.net/commitsoftware/sviluppare-da-zero-una-angular-web-app-per-la-pa))
66
63
  - [Video Meetup Angular Roma: Angular, Bootstrap Italia e non solo..](https://www.youtube.com/live/asGk-mYU-zM?feature=share)
67
- - [Demo Design Angular Kit](https://github.com/cri99/demo-design-angular-kit)
68
- - [Preview di Vercel (aggiornata ad ogni commit)](https://design-angular-kit.vercel.app/)
69
- - [Discussione sulla nuova release](https://github.com/italia/design-angular-kit/discussions/127)
70
- - [Milestone 1.0.0](https://github.com/italia/design-angular-kit/milestone/3)
71
64
 
72
- ## Come iniziare
65
+ ## Installazione
73
66
 
74
67
  Design Angular Kit è disponibile su NPM, per installarlo su una applicazione esistente sulla quale provare la libreria (attualmente non stabile) esegui il comando
75
68
 
@@ -77,66 +70,128 @@ Design Angular Kit è disponibile su NPM, per installarlo su una applicazione es
77
70
  npm install design-angular-kit@prerelease --save
78
71
  ```
79
72
 
80
- Procedi a registrare `DesignAngularKitModule` nel tuo **app.module.ts**.
73
+ Scegli la versione corrispondente alla tua versione Angular:
74
+
75
+ | Angular | design-angular-kit |
76
+ |---------|-----------------------|
77
+ | 17+ | v1.0.0-prerelease.2 + |
78
+ | 16+ | v1.0.0-17 + |
79
+ | 15+ | v1.0.0-2 + |
80
+
81
+ ## Configurazione
82
+
83
+ ### Configurazione app
84
+
85
+ La libreria `design-angular-kit` può essere utilizzata con i componenti _standalone_ o con l'applicazione che utilizza i moduli. Segui la sezione di
86
+ configurazione che corrisponde alla tua applicazione.
87
+
88
+ #### Applicazione standalone
89
+
90
+ Utilizza la funzione `provideDesignAngularKit` nella configurazione dell'applicazione `ApplicationConfig` per
91
+ poter inizializzare le funzionalità della libreria.
81
92
 
82
93
  ```typescript
83
- import {DesignAngularKitModule, ItComponentsModule} from 'design-angular-kit';
94
+ import { provideHttpClient } from '@angular/common/http';
95
+ import { provideAnimations } from '@angular/platform-browser/animations';
96
+ import { provideDesignAngularKit } from 'design-angular-kit';
97
+
98
+ export const appConfig: ApplicationConfig = {
99
+ providers: [
100
+ ...
101
+ provideAnimations(), // Necessario per il funzionamento della libreria
102
+ provideHttpClient(), // Necessario per il funzionamento della libreria
103
+ provideDesignAngularKit(),
104
+ ]
105
+ }
106
+ ```
107
+
108
+ #### Applicazione modulare
109
+
110
+ È necessario importare `DesignAngularKitModule` all'interno del modulo principale dell'applicazione (solitamente denominato **AppModule**)
111
+ utilizzando il metodo `forRoot` per poter inizializzare le funzionalità della libreria e importare tutti i componenti.
112
+
113
+ ```typescript
114
+ import { HttpClientModule } from '@angular/common/http';
115
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
116
+ import { DesignAngularKitModule } from 'design-angular-kit';
84
117
 
85
118
  @NgModule({
86
119
  imports: [
87
120
  ...
88
- DesignAngularKitModule,
89
- ItComponentsModule // importa tutti i componenti della libreria
121
+ HttpClientModule, // Necessario per il funzionamento della libreria
122
+ BrowserAnimationsModule, // Necessario per il funzionamento della libreria
123
+ DesignAngularKitModule.forRoot()
90
124
  ]
91
125
  })
126
+ export class AppModule { }
92
127
  ```
93
- <details>
94
- <summary>Configurazione custom della libreria</summary>
95
128
 
96
- ```typescript
97
- import {DesignAngularKitModule, DesignAngularKitInit} from 'design-angular-kit';
98
-
99
- // Puoi aggiungere alla libreria una configurazione iniziale
100
- const initConfig: DesignAngularKitInit | undefined = {
101
- /**
102
- * The initial path in the `href` attribute in the `IconComponent` component
103
- * @default './bootstrap-italia/dist/svg/sprites.svg'
104
- */
105
- iconHref: string | undefined,
106
- };
107
-
108
- @NgModule({
109
- imports: [
110
- ...
111
- DesignAngularKitModule.forRoot(initConfig)
112
- ]
113
- })
114
- ```
115
- </details>
129
+ Utilizza il metodo `forChild` durante l'importazione del modulo `DesignAngularKitModule` in altri moduli dell'applicazione per importare tutti i componenti della libreria.
116
130
 
117
- Usa `ItComponentsModule` per importare tutti i componenti della libreria, in alternativa puoi importare solo i componenti/moduli di cui hai bisogno, ad es. Alert, Paginazione e Breadcrumb.
118
131
 
119
132
  ```typescript
120
- import {ItAlertComponent, ItPaginationComponent, ItBreadcrumbsModule} from 'design-angular-kit';
133
+ import { DesignAngularKitModule } from 'design-angular-kit';
121
134
 
122
135
  @NgModule({
123
136
  imports: [
124
- ItAlertComponent,
125
- ItPaginationComponent,
126
- ItBreadcrumbsModule // Include ItBreadcrumbComponent e ItBreadcrumbItemComponent
137
+ ...
138
+ DesignAngularKitModule.forChild()
127
139
  ],
140
+ exports: [DesignAngularKitModule],
128
141
  })
129
- export class YourAppModule {
130
- }
142
+ export class SharedModule { }
143
+ ```
131
144
 
132
- @Component({
133
- selector: 'app-product',
134
- standalone: true,
135
- imports: [ItAlertComponent],
136
- templateUrl: './product.component.html'
145
+ #### Applicazione ibrida
146
+
147
+ Se nella tua applicazione è presente il modulo **AppModule** ma vuoi utilizzare i nostri componenti con la configurazione _standalone_,
148
+ utilizza la funzione `provideDesignAngularKit` all'interno del modulo principale dell'applicazione per poter inizializzare le funzionalità della libreria.
149
+
150
+ ```typescript
151
+ import { HttpClientModule } from '@angular/common/http';
152
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
153
+ import { provideDesignAngularKit } from 'design-angular-kit';
154
+
155
+ @NgModule({
156
+ imports: [
157
+ ...
158
+ HttpClientModule, // Necessario per il funzionamento della libreria
159
+ BrowserAnimationsModule, // Necessario per il funzionamento della libreria
160
+ ],
161
+ providers: [
162
+ provideDesignAngularKit(),
163
+ ]
137
164
  })
138
- export class ProductComponent {
139
- }
165
+ export class AppModule { }
166
+ ```
167
+
168
+ #### Parametri di configurazione
169
+
170
+ Sia per la funzione `provideDesignAngularKit` che per il modulo `DesignAngularKitModule.forRoot()` è possibile utilizzare una configurazione iniziale [`DesignAngularKitConfig`](/projects/design-angular-kit/src/lib/interfaces/design-angular-kit-config.ts).
171
+
172
+ ```typescript
173
+ import { provideDesignAngularKit, DesignAngularKitModule, DesignAngularKitConfig } from 'design-angular-kit';
174
+
175
+ // Puoi aggiungere alla libreria una configurazione iniziale
176
+ const initConfig: DesignAngularKitConfig | undefined = {
177
+ /**
178
+ * The bootstrap-italia asset folder path
179
+ * @default ./bootstrap-italia
180
+ */
181
+ assetBasePath: string | undefined,
182
+
183
+ /**
184
+ * Load the <a href="https://italia.github.io/bootstrap-italia/docs/come-iniziare/introduzione/#fonts">bootstrap-italia fonts</a>
185
+ * @default true
186
+ */
187
+ loadFont: boolean | undefined,
188
+
189
+ ...
190
+ };
191
+
192
+ provideDesignAngularKit(initConfig)
193
+
194
+ DesignAngularKitModule.forRoot(initConfig)
140
195
  ```
141
196
 
142
197
  ### Importazione stili bootstrap-italia
@@ -150,8 +205,8 @@ Configura gli stili richiesti nel file `styles.scss`. Importa la libreria SCSS c
150
205
  <details>
151
206
  <summary>Come personalizzare e sovrascrivere le variabili di default della libreria (es. colori, font-family, misure, ecc.)</summary>
152
207
 
153
- Bootstrap Italia eredita ed estende tutte le variabili di default di Bootstrap, sovrascrivendo
154
- alcuni valori in fase di compilazione e impostandone di nuovi all’occorenza. Un esempio fra tutti è
208
+ Bootstrap Italia eredita ed estende tutte le variabili di default di Bootstrap, sovrascrivendo
209
+ alcuni valori in fase di compilazione e impostandone di nuovi all’occorenza. Un esempio fra tutti è
155
210
  il valore del colore $primary che in Bootstrap Italia è rappresentato dal colore blu #0066CC,
156
211
  tipico della libreria.
157
212
 
@@ -188,7 +243,8 @@ $font-family-monospace: 'Custom Font', 'Courier New', Courier, monospace;
188
243
 
189
244
  Per aggiungere il supporto icone/assets, modifica il tuo `angular.json` aggiungendo:
190
245
 
191
- ```
246
+ ```json
247
+ {
192
248
  "assets": [
193
249
  ...
194
250
  {
@@ -197,7 +253,8 @@ Per aggiungere il supporto icone/assets, modifica il tuo `angular.json` aggiunge
197
253
  "output": "/bootstrap-italia/"
198
254
  }
199
255
  ]
200
- ```
256
+ }
257
+ ```
201
258
 
202
259
  ### Supporto i18n (localizzazione)
203
260
 
@@ -205,8 +262,9 @@ La libreria usa [ngx-translate](https://github.com/ngx-translate/core) per aggiu
205
262
 
206
263
  Modifica il tuo `angular.json` aggiungendo:
207
264
 
208
- ```
209
- "assets": [
265
+ ```json
266
+ {
267
+ "assets": [
210
268
  ...
211
269
  {
212
270
  "glob": "**/*",
@@ -214,71 +272,95 @@ Modifica il tuo `angular.json` aggiungendo:
214
272
  "output": "/bootstrap-italia/i18n/"
215
273
  }
216
274
  ]
217
- ```
275
+ }
276
+ ```
277
+ Puoi utilizzare le label localizzate della libreria `design-angular-kit` nella tua applicazione, ad esempio `{{'it.errors.required-field' | translate}}`. [Vedi le nostre label](projects/design-angular-kit/assets/i18n/it.json)
218
278
 
219
279
  #### Localizzazione esistente
220
280
 
221
281
  Se utilizzi già i file di localizzazione nella tua app, puoi utilizzare la libreria [ngx-translate-multi-http-loader](https://www.npmjs.com/package/ngx-translate-multi-http-loader)
222
- per caricare i file di localizzazione dell'app e di `design-angular-kit`
282
+ per caricare sia i file di localizzazione dell'app che quelli della libreria `design-angular-kit`
283
+
223
284
 
224
- Modifica nel tuo `app.module.ts`:
285
+ **Utilizzando la funzione `provideDesignAngularKit`:**
225
286
 
226
287
  ```typescript
227
- @NgModule({
228
- imports: [
229
- ...
230
- HttpClientModule,
231
- TranslateModule.forRoot({
232
- loader: {
233
- provide: TranslateLoader,
234
- useFactory: (http: HttpBackend) => new MultiTranslateHttpLoader(http, [
235
- './bootstrap-italia/i18n/', // Load library translations first, so you can edit the keys in your localization file
236
- './assets/i18n/' // Your i18n location
237
- ]),
238
- deps: [HttpBackend]
239
- },
240
- defaultLanguage: 'it'
241
- }),
242
- DesignAngularKitModule
243
- ]
288
+ import { HttpBackend } from '@angular/common/http';
289
+ import { TranslateLoader } from '@ngx-translate/core';
290
+ import { MultiTranslateHttpLoader } from 'ngx-translate-multi-http-loader';
291
+ import { provideDesignAngularKit } from 'design-angular-kit';
292
+
293
+ provideDesignAngularKit({
294
+ translateLoader: (itPrefix: string, itSuffix: string) => ({
295
+ provide: TranslateLoader,
296
+ useFactory: (http: HttpBackend) => new MultiTranslateHttpLoader(http, [
297
+ { prefix: itPrefix, suffix: itSuffix }, // Load library translations first, so you can edit the keys in your localization file
298
+ { prefix: './assets/i18n/' }, // Your i18n location
299
+ ]),
300
+ deps: [HttpBackend]
301
+ }),
244
302
  })
245
303
  ```
246
304
 
247
- Se vuoi personalizzare le nostre label puoi aggiungere le localizzazioni nei tuoi file json, sovrascrivendo le [chiavi del json della libreria](projects/design-angular-kit/assets/i18n/it.json).
305
+ **Utilizzando il modulo `DesignAngularKitModule`:**
306
+ ```typescript
307
+ import { HttpBackend } from '@angular/common/http';
308
+ import { TranslateLoader } from '@ngx-translate/core';
309
+ import { MultiTranslateHttpLoader } from 'ngx-translate-multi-http-loader';
310
+ import { DesignAngularKitModule } from 'design-angular-kit';
311
+
312
+ DesignAngularKitModule.forRoot({
313
+ translateLoader: (itPrefix: string, itSuffix: string) => ({
314
+ provide: TranslateLoader,
315
+ useFactory: (http: HttpBackend) => new MultiTranslateHttpLoader(http, [
316
+ { prefix: itPrefix, suffix: itSuffix }, // Load library translations first, so you can edit the keys in your localization file
317
+ { prefix: './assets/i18n/' }, // Your i18n location
318
+ ]),
319
+ deps: [HttpBackend]
320
+ }),
321
+ })
322
+ ```
248
323
 
249
- Puoi utilizzare le label localizzate di `design-angular-kit` nella tua applicazione, ad esempio `{{'it.errors.required-field' | translate}}`. [Vedi le nostre label](projects/design-angular-kit/assets/i18n/it.json)
324
+ #### Personalizzazione della localizzazione
250
325
 
251
- #### Localizzazione non esistente
326
+ Se vuoi personalizzare le nostre label:
327
+ - Non includere il supporto i18n nel tuo `angular.json`
328
+ - Crea i tuoi file di localizzazione personalizzati nella tua cartella `assets/bootstrap-italia/i18n/` (crea il percorso se non esiste)
329
+ - Il json deve avere [questo formato](projects/design-angular-kit/assets/i18n/it.json).
330
+ - Aggiungi nella configurazione iniziale della libreria il `translateLoader` custom, sostituendo la stringa `assets/bootstrap-italia/i18n/` all'attributo `itPrefix`
331
+ - Oppure, aggiungi le localizzazioni nei tuoi file json, sovrascrivendo le [chiavi del json della libreria](projects/design-angular-kit/assets/i18n/it.json).
252
332
 
253
- Se non utilizzi i file di localizzazione nella tua app, devi aggiungere il provider `TranslateStore` nel tuo `app.module.ts`:
333
+ ## Utilizzo
334
+
335
+ Utilizzando il modulo `DesignAngularKitModule` tutti i componenti della libreria verranno importati nell'applicazione.
336
+
337
+ In alternativa, poiché tutti i nostri componenti e direttive sono _standalone_, puoi importare solo i componenti/moduli di cui hai bisogno, ad es. Alert, Paginazione e Breadcrumb.
254
338
 
255
339
  ```typescript
340
+ import { ItAlertComponent, ItPaginationComponent, ItBreadcrumbsModule } from 'design-angular-kit';
341
+
256
342
  @NgModule({
257
343
  imports: [
258
- ...
259
- DesignAngularKitModule,
260
- ],
261
- providers: [
262
- TranslateStore
344
+ ItAlertComponent,
345
+ ItPaginationComponent,
346
+ ItBreadcrumbsModule // Include ItBreadcrumbComponent e ItBreadcrumbItemComponent
263
347
  ],
264
348
  })
349
+ export class YourAppModule {
350
+ }
265
351
  ```
266
352
 
267
- Se vuoi personalizzare le nostre label:
268
- - Non includere il supporto i18n nel tuo `angular.json` ma crea i tuoi file di localizzazione personalizzati nella tua cartella `assets/bootstrap-italia/i18n/` (crea il percorso se non esiste).
269
- - Il json deve avere [questo formato](projects/design-angular-kit/assets/i18n/it.json).
270
-
271
- ### Supporto animazione
272
-
273
- La libreria usa BrowserAnimationsModule per gestire alcune animazioni.
274
-
275
- Per abilitarle, bisogna aggiungere al tuo `app.module.ts` il modulo :
276
-
277
353
  ```typescript
278
- imports: [
279
- ...
280
- BrowserAnimationsModule
281
- ]
354
+ import { ItAlertComponent, ItPaginationComponent, ItBreadcrumbsModule } from 'design-angular-kit';
355
+
356
+ @Component({
357
+ selector: 'app-product',
358
+ standalone: true,
359
+ imports: [ItAlertComponent, ItPaginationComponent, ItBreadcrumbsModule],
360
+ templateUrl: './product.component.html'
361
+ })
362
+ export class ProductComponent {
363
+ }
282
364
  ```
283
365
 
284
366
  ## Segnalazione bug e richieste di aiuto
@@ -166,17 +166,17 @@ export class ItAbstractFormComponent extends ItAbstractComponent {
166
166
  }
167
167
  return this.control.getError(errorCode, path);
168
168
  }
169
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItAbstractFormComponent, deps: [{ token: i1.TranslateService }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
170
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.7", type: ItAbstractFormComponent, selector: "ng-component", inputs: { label: "label", validationMode: "validationMode", disabled: ["disabled", "disabled", inputToBoolean] }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
169
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAbstractFormComponent, deps: [{ token: i1.TranslateService }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
170
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.1.2", type: ItAbstractFormComponent, selector: "ng-component", inputs: { label: "label", validationMode: "validationMode", disabled: ["disabled", "disabled", inputToBoolean] }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
171
171
  }
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItAbstractFormComponent, decorators: [{
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAbstractFormComponent, decorators: [{
173
173
  type: Component,
174
174
  args: [{ template: '' }]
175
- }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.NgControl, decorators: [{
175
+ }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.NgControl, decorators: [{
176
176
  type: Self
177
177
  }, {
178
178
  type: Optional
179
- }] }]; }, propDecorators: { label: [{
179
+ }] }], propDecorators: { label: [{
180
180
  type: Input
181
181
  }], validationMode: [{
182
182
  type: Input
@@ -184,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
184
184
  type: Input,
185
185
  args: [{ transform: inputToBoolean }]
186
186
  }] } });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9hYnN0cmFjdHMvYWJzdHJhY3QtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixXQUFXLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBVyxLQUFLLEVBQVUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFHbkQsTUFBTSxPQUFnQix1QkFBaUMsU0FBUSxtQkFBbUI7SUFpQmhGOztPQUVHO0lBQ0gsSUFBMEMsUUFBUSxDQUFDLFVBQW1CO1FBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBT0QsWUFDcUIsaUJBQW1DLEVBQ2YsVUFBcUI7UUFFNUQsS0FBSyxFQUFFLENBQUM7UUFIVyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQXhCOUQ7Ozs7Ozs7V0FPRztRQUNNLG1CQUFjLEdBQTRDLGNBQWMsQ0FBQztRQW9FbEYsYUFBUSxHQUFHLENBQUMsQ0FBSSxFQUFFLEVBQUU7UUFDcEIsQ0FBQyxDQUFDO1FBRUYsY0FBUyxHQUFHLEdBQUcsRUFBRTtRQUNqQixDQUFDLENBQUM7UUFyREEsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFNBQVM7UUFDWCxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDNUcsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDO1NBQzVHO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE9BQU87UUFDVCxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDNUcsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDO1NBQzFHO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLGNBQWM7UUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFO1lBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNoRjtJQUNILENBQUM7SUFRRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxVQUFVLEVBQUU7WUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDL0I7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBUTtRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUN6QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRTtZQUM1QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUMxQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlDLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRTtvQkFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDOUI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztpQkFDaEM7YUFDRjtZQUNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLFFBQVEsRUFBRTtnQkFDaEQsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFO29CQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUMvQjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUM1QjthQUNGO1NBQ0Y7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxhQUFhLENBQUMsVUFBdUM7UUFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDOUIsVUFBVSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDM0I7UUFFRCxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDdkM7WUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNoRixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDbEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksUUFBUSxDQUFDLFNBQWlCLEVBQUUsSUFBc0M7UUFDdkUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxRQUFRLENBQUMsU0FBaUIsRUFBRSxJQUFzQztRQUN2RSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDbEQ7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDOzhHQWhNbUIsdUJBQXVCO2tHQUF2Qix1QkFBdUIsMkhBb0J2QixjQUFjLG9EQXJCYixFQUFFOzsyRkFDSCx1QkFBdUI7a0JBRDVDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzswQkFnQ3RCLElBQUk7OzBCQUFJLFFBQVE7NENBMUJWLEtBQUs7c0JBQWIsS0FBSztnQkFVRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtvQyxRQUFRO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTmdDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBvbmVudCwgRG9DaGVjaywgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEl0QWJzdHJhY3RDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBpbnB1dFRvQm9vbGVhbiB9IGZyb20gJy4uL3V0aWxzL2NvZXJjaW9uJztcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEl0QWJzdHJhY3RGb3JtQ29tcG9uZW50PFQgPSBhbnk+IGV4dGVuZHMgSXRBYnN0cmFjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIERvQ2hlY2sge1xuXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgZm9ybSBjb250cm9sXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogVmFsaWRhdGlvbiBjb2xvciBkaXNwbGF5IG1vZGUgKHZhbGlkYXRpb24gdHJpZ2dlcmVkIGlmIGZpZWxkIGlzIHRvdWNoZWQgb3Igbm90IHByaXN0aW5lKVxuICAgKiAtIDxiPnRydWU8L2I+OiBBbHdheXMgc2hvdyB0aGUgdmFsaWRhdGlvbiBjb2xvclxuICAgKiAtIDxiPmZhbHNlPC9iPjogTmV2ZXIgc2hvdyB2YWxpZGF0aW9uIGNvbG9yXG4gICAqIC0gPGI+b25seS12YWxpZDwvYj46IFNob3cgb25seSB2YWxpZCB2YWxpZGF0aW9uIGNvbG9yXG4gICAqIC0gPGI+b25seS1pbnZhbGlkPC9iPjogU2hvdyBvbmx5IGludmFsaWQgdmFsaWRhdGlvbiBjb2xvclxuICAgKiBAZGVmYXVsdCA8Yj5vbmx5LWludmFsaWQ8L2I+OiBTaG93IG9ubHkgaW52YWxpZCB2YWxpZGF0aW9uIGNvbG9yXG4gICAqL1xuICBASW5wdXQoKSB2YWxpZGF0aW9uTW9kZTogYm9vbGVhbiB8ICdvbmx5LXZhbGlkJyB8ICdvbmx5LWludmFsaWQnID0gJ29ubHktaW52YWxpZCc7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGlzYWJsZWQgc3RhdGVcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogaW5wdXRUb0Jvb2xlYW4gfSkgc2V0IGRpc2FibGVkKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZCk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgZm9ybSBjb250cm9sXG4gICAqL1xuICBwcm90ZWN0ZWQgY29udHJvbDogRm9ybUNvbnRyb2w8VD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIHJlYWRvbmx5IF9uZ0NvbnRyb2w6IE5nQ29udHJvbFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHRoaXMuX25nQ29udHJvbCAmJiAodGhpcy5fbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBmaWVsZCBpcyBpbnZhbGlkIChWYWxpZGF0aW9uIGZhaWxlZClcbiAgICovXG4gIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMudmFsaWRhdGlvbk1vZGUgPT09ICdvbmx5LXZhbGlkJyB8fCAodGhpcy52YWxpZGF0aW9uTW9kZSAhPT0gJ29ubHktaW52YWxpZCcgJiYgIXRoaXMudmFsaWRhdGlvbk1vZGUpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9uZ0NvbnRyb2wpIHtcbiAgICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2wuaW52YWxpZCA9PT0gdHJ1ZSAmJiAoIXRoaXMuX25nQ29udHJvbC5wcmlzdGluZSB8fCB0aGlzLl9uZ0NvbnRyb2wudG91Y2hlZCA9PT0gdHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiAoIXRoaXMuY29udHJvbC5wcmlzdGluZSB8fCB0aGlzLmNvbnRyb2wudG91Y2hlZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgZmllbGQgaXMgdmFsaWQgKFZhbGlkYXRpb24gc3VjY2Vzc2Z1bClcbiAgICovXG4gIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLnZhbGlkYXRpb25Nb2RlID09PSAnb25seS1pbnZhbGlkJyB8fCAodGhpcy52YWxpZGF0aW9uTW9kZSAhPT0gJ29ubHktdmFsaWQnICYmICF0aGlzLnZhbGlkYXRpb25Nb2RlKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbmdDb250cm9sKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbmdDb250cm9sLnZhbGlkID09PSB0cnVlICYmICghdGhpcy5fbmdDb250cm9sLnByaXN0aW5lIHx8IHRoaXMuX25nQ29udHJvbC50b3VjaGVkID09PSB0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC52YWxpZCAmJiAoIXRoaXMuY29udHJvbC5wcmlzdGluZSB8fCB0aGlzLmNvbnRyb2wudG91Y2hlZCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBpbnZhbGlkIG1lc3NhZ2Ugc3RyaW5nIGZyb20gVHJhbnNsYXRlU2VydmljZVxuICAgKi9cbiAgZ2V0IGludmFsaWRNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLnJlcXVpcmVkLWZpZWxkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMuaW52YWxpZC1maWVsZCcpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX25nQ29udHJvbD8uY29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbGlkYXRvcnMoKHRoaXMuX25nQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sKS52YWxpZGF0b3IpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlID0gKF86IFQpID0+IHtcbiAgfTtcblxuICBvblRvdWNoZWQgPSAoKSA9PiB7XG4gIH07XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoZm4pO1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH1cbiAgICB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgdGhlIGNvbnRyb2wgYXMgdG91Y2hlZFxuICAgKi9cbiAgbWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbC50b3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlZCB0byBjaGVjayBpZiBmb3JtIGNvbnRyb2wgaXMgdG91Y2hlZFxuICAgKi9cbiAgbmdEb0NoZWNrKCkge1xuICAgIGlmICh0aGlzLl9uZ0NvbnRyb2w/LmNvbnRyb2wpIHtcbiAgICAgIGNvbnN0IG5nQ29udHJvbCA9IHRoaXMuX25nQ29udHJvbC5jb250cm9sO1xuICAgICAgaWYgKHRoaXMuY29udHJvbC50b3VjaGVkICE9PSBuZ0NvbnRyb2wudG91Y2hlZCkge1xuICAgICAgICBpZiAobmdDb250cm9sLnRvdWNoZWQpIHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY29udHJvbC5wcmlzdGluZSAhPT0gbmdDb250cm9sLnByaXN0aW5lKSB7XG4gICAgICAgIGlmIChuZ0NvbnRyb2wucHJpc3RpbmUpIHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHRoZSB2YWxpZGF0b3JzIGluIGNvbnRyb2wgYW5kIHBhcmVudCBjb250cm9sXG4gICAqIEBwYXJhbSB2YWxpZGF0b3JzIHRoZSB2YWxpZGF0b3JzXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBhZGRWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSk6IHZvaWQge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWxpZGF0b3JzKSkge1xuICAgICAgdmFsaWRhdG9ycyA9IFt2YWxpZGF0b3JzXTtcbiAgICB9XG5cbiAgICB2YWxpZGF0b3JzLmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgIGlmICghdGhpcy5jb250cm9sLmhhc1ZhbGlkYXRvcih2YWxpZGF0b3IpKSB7XG4gICAgICAgIHRoaXMuY29udHJvbC5hZGRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9uZ0NvbnRyb2w/LmNvbnRyb2wgJiYgIXRoaXMuX25nQ29udHJvbC5jb250cm9sLmhhc1ZhbGlkYXRvcih2YWxpZGF0b3IpKSB7XG4gICAgICAgIHRoaXMuX25nQ29udHJvbC5jb250cm9sLmFkZFZhbGlkYXRvcnModmFsaWRhdG9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnRzIHdoZXRoZXIgdGhlIGNvbnRyb2wgd2l0aCB0aGUgZ2l2ZW4gcGF0aCBoYXMgdGhlIGVycm9yIHNwZWNpZmllZC4gPGJyLz5cbiAgICogSWYgdGhlIGNvbnRyb2wgaXMgbm90IHByZXNlbnQsIGZhbHNlIGlzIHJldHVybmVkLlxuICAgKiBAcGFyYW0gZXJyb3JDb2RlIFRoZSBjb2RlIG9mIHRoZSBlcnJvciB0byBjaGVja1xuICAgKiBAcGFyYW0gcGF0aCBBIGxpc3Qgb2YgY29udHJvbCBuYW1lcyB0aGF0IGRlc2lnbmF0ZXMgaG93IHRvIG1vdmUgZnJvbSB0aGUgY3VycmVudCBjb250cm9sXG4gICAqIHRvIHRoZSBjb250cm9sIHRoYXQgc2hvdWxkIGJlIHF1ZXJpZWQgZm9yIGVycm9ycy5cbiAgICogQHJldHVybnMgd2hldGhlciB0aGUgZ2l2ZW4gZXJyb3IgaXMgcHJlc2VudCBpbiB0aGUgY29udHJvbCBhdCB0aGUgZ2l2ZW4gcGF0aC5cbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcihlcnJvckNvZGU6IHN0cmluZywgcGF0aD86IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fbmdDb250cm9sKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbmdDb250cm9sLmhhc0Vycm9yKGVycm9yQ29kZSwgcGF0aCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuaGFzRXJyb3IoZXJyb3JDb2RlLCBwYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnRzIGVycm9yIGRhdGEgZm9yIHRoZSBjb250cm9sIHdpdGggdGhlIGdpdmVuIHBhdGguXG4gICAqIEBwYXJhbSBlcnJvckNvZGUgVGhlIGNvZGUgb2YgdGhlIGVycm9yIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBwYXRoIEEgbGlzdCBvZiBjb250cm9sIG5hbWVzIHRoYXQgZGVzaWduYXRlcyBob3cgdG8gbW92ZSBmcm9tIHRoZSBjdXJyZW50IGNvbnRyb2xcbiAgICogdG8gdGhlIGNvbnRyb2wgdGhhdCBzaG91bGQgYmUgcXVlcmllZCBmb3IgZXJyb3JzLlxuICAgKiBAcmV0dXJucyBlcnJvciBkYXRhIGZvciB0aGF0IHBhcnRpY3VsYXIgZXJyb3IuIElmIHRoZSBjb250cm9sIG9yIGVycm9yIGlzIG5vdCBwcmVzZW50LFxuICAgKiBudWxsIGlzIHJldHVybmVkLlxuICAgKi9cbiAgcHVibGljIGdldEVycm9yKGVycm9yQ29kZTogc3RyaW5nLCBwYXRoPzogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHN0cmluZyk6IGFueSB7XG4gICAgaWYgKHRoaXMuX25nQ29udHJvbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbC5nZXRFcnJvcihlcnJvckNvZGUsIHBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmdldEVycm9yKGVycm9yQ29kZSwgcGF0aCk7XG4gIH1cbn1cbiJdfQ==
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9hYnN0cmFjdHMvYWJzdHJhY3QtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixXQUFXLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBVyxLQUFLLEVBQVUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFHbkQsTUFBTSxPQUFnQix1QkFBaUMsU0FBUSxtQkFBbUI7SUFpQmhGOztPQUVHO0lBQ0gsSUFBMEMsUUFBUSxDQUFDLFVBQW1CO1FBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBT0QsWUFDcUIsaUJBQW1DLEVBQ2YsVUFBcUI7UUFFNUQsS0FBSyxFQUFFLENBQUM7UUFIVyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQXhCOUQ7Ozs7Ozs7V0FPRztRQUNNLG1CQUFjLEdBQTRDLGNBQWMsQ0FBQztRQW9FbEYsYUFBUSxHQUFHLENBQUMsQ0FBSSxFQUFFLEVBQUU7UUFDcEIsQ0FBQyxDQUFDO1FBRUYsY0FBUyxHQUFHLEdBQUcsRUFBRTtRQUNqQixDQUFDLENBQUM7UUFyREEsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM1RCxD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Qix1QkFBdUI7a0dBQXZCLHVCQUF1QiwySEFvQnZCLGNBQWMsb0RBckJiLEVBQUU7OzJGQUNILHVCQUF1QjtrQkFENUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OzBCQWdDdEIsSUFBSTs7MEJBQUksUUFBUTt5Q0ExQlYsS0FBSztzQkFBYixLQUFLO2dCQVVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS29DLFFBQVE7c0JBQWpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEb0NoZWNrLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXRBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3QuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGlucHV0VG9Cb29sZWFuIH0gZnJvbSAnLi4vdXRpbHMvY29lcmNpb24nO1xuXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSXRBYnN0cmFjdEZvcm1Db21wb25lbnQ8VCA9IGFueT4gZXh0ZW5kcyBJdEFic3RyYWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRG9DaGVjayB7XG5cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiBmb3JtIGNvbnRyb2xcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0aW9uIGNvbG9yIGRpc3BsYXkgbW9kZSAodmFsaWRhdGlvbiB0cmlnZ2VyZWQgaWYgZmllbGQgaXMgdG91Y2hlZCBvciBub3QgcHJpc3RpbmUpXG4gICAqIC0gPGI+dHJ1ZTwvYj46IEFsd2F5cyBzaG93IHRoZSB2YWxpZGF0aW9uIGNvbG9yXG4gICAqIC0gPGI+ZmFsc2U8L2I+OiBOZXZlciBzaG93IHZhbGlkYXRpb24gY29sb3JcbiAgICogLSA8Yj5vbmx5LXZhbGlkPC9iPjogU2hvdyBvbmx5IHZhbGlkIHZhbGlkYXRpb24gY29sb3JcbiAgICogLSA8Yj5vbmx5LWludmFsaWQ8L2I+OiBTaG93IG9ubHkgaW52YWxpZCB2YWxpZGF0aW9uIGNvbG9yXG4gICAqIEBkZWZhdWx0IDxiPm9ubHktaW52YWxpZDwvYj46IFNob3cgb25seSBpbnZhbGlkIHZhbGlkYXRpb24gY29sb3JcbiAgICovXG4gIEBJbnB1dCgpIHZhbGlkYXRpb25Nb2RlOiBib29sZWFuIHwgJ29ubHktdmFsaWQnIHwgJ29ubHktaW52YWxpZCcgPSAnb25seS1pbnZhbGlkJztcblxuICAvKipcbiAgICogU2V0IHRoZSBkaXNhYmxlZCBzdGF0ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBpbnB1dFRvQm9vbGVhbiB9KSBzZXQgZGlzYWJsZWQoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCBmb3JtIGNvbnRyb2xcbiAgICovXG4gIHByb3RlY3RlZCBjb250cm9sOiBGb3JtQ29udHJvbDxUPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgcmVhZG9ubHkgX25nQ29udHJvbDogTmdDb250cm9sXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5jb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgdGhpcy5fbmdDb250cm9sICYmICh0aGlzLl9uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGZpZWxkIGlzIGludmFsaWQgKFZhbGlkYXRpb24gZmFpbGVkKVxuICAgKi9cbiAgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy52YWxpZGF0aW9uTW9kZSA9PT0gJ29ubHktdmFsaWQnIHx8ICh0aGlzLnZhbGlkYXRpb25Nb2RlICE9PSAnb25seS1pbnZhbGlkJyAmJiAhdGhpcy52YWxpZGF0aW9uTW9kZSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX25nQ29udHJvbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbC5pbnZhbGlkID09PSB0cnVlICYmICghdGhpcy5fbmdDb250cm9sLnByaXN0aW5lIHx8IHRoaXMuX25nQ29udHJvbC50b3VjaGVkID09PSB0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5pbnZhbGlkICYmICghdGhpcy5jb250cm9sLnByaXN0aW5lIHx8IHRoaXMuY29udHJvbC50b3VjaGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBmaWVsZCBpcyB2YWxpZCAoVmFsaWRhdGlvbiBzdWNjZXNzZnVsKVxuICAgKi9cbiAgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMudmFsaWRhdGlvbk1vZGUgPT09ICdvbmx5LWludmFsaWQnIHx8ICh0aGlzLnZhbGlkYXRpb25Nb2RlICE9PSAnb25seS12YWxpZCcgJiYgIXRoaXMudmFsaWRhdGlvbk1vZGUpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9uZ0NvbnRyb2wpIHtcbiAgICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2wudmFsaWQgPT09IHRydWUgJiYgKCF0aGlzLl9uZ0NvbnRyb2wucHJpc3RpbmUgfHwgdGhpcy5fbmdDb250cm9sLnRvdWNoZWQgPT09IHRydWUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb250cm9sLnZhbGlkICYmICghdGhpcy5jb250cm9sLnByaXN0aW5lIHx8IHRoaXMuY29udHJvbC50b3VjaGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGludmFsaWQgbWVzc2FnZSBzdHJpbmcgZnJvbSBUcmFuc2xhdGVTZXJ2aWNlXG4gICAqL1xuICBnZXQgaW52YWxpZE1lc3NhZ2UoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBpZiAodGhpcy5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMucmVxdWlyZWQtZmllbGQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5pbnZhbGlkLWZpZWxkJyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fbmdDb250cm9sPy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsaWRhdG9ycygodGhpcy5fbmdDb250cm9sLmNvbnRyb2wgYXMgRm9ybUNvbnRyb2wpLnZhbGlkYXRvcik7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2UgPSAoXzogVCkgPT4ge1xuICB9O1xuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHtcbiAgfTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShmbik7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XG4gICAgfVxuICAgIHRoaXMuY29udHJvbC5lbmFibGUoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFyayB0aGUgY29udHJvbCBhcyB0b3VjaGVkXG4gICAqL1xuICBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250cm9sLnRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHRvIGNoZWNrIGlmIGZvcm0gY29udHJvbCBpcyB0b3VjaGVkXG4gICAqL1xuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuX25nQ29udHJvbD8uY29udHJvbCkge1xuICAgICAgY29uc3QgbmdDb250cm9sID0gdGhpcy5fbmdDb250cm9sLmNvbnRyb2w7XG4gICAgICBpZiAodGhpcy5jb250cm9sLnRvdWNoZWQgIT09IG5nQ29udHJvbC50b3VjaGVkKSB7XG4gICAgICAgIGlmIChuZ0NvbnRyb2wudG91Y2hlZCkge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jb250cm9sLnByaXN0aW5lICE9PSBuZ0NvbnRyb2wucHJpc3RpbmUpIHtcbiAgICAgICAgaWYgKG5nQ29udHJvbC5wcmlzdGluZSkge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIHZhbGlkYXRvcnMgaW4gY29udHJvbCBhbmQgcGFyZW50IGNvbnRyb2xcbiAgICogQHBhcmFtIHZhbGlkYXRvcnMgdGhlIHZhbGlkYXRvcnNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGFkZFZhbGlkYXRvcnModmFsaWRhdG9yczogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdKTogdm9pZCB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbGlkYXRvcnMpKSB7XG4gICAgICB2YWxpZGF0b3JzID0gW3ZhbGlkYXRvcnNdO1xuICAgIH1cblxuICAgIHZhbGlkYXRvcnMuZm9yRWFjaCh2YWxpZGF0b3IgPT4ge1xuICAgICAgaWYgKCF0aGlzLmNvbnRyb2wuaGFzVmFsaWRhdG9yKHZhbGlkYXRvcikpIHtcbiAgICAgICAgdGhpcy5jb250cm9sLmFkZFZhbGlkYXRvcnModmFsaWRhdG9yKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX25nQ29udHJvbD8uY29udHJvbCAmJiAhdGhpcy5fbmdDb250cm9sLmNvbnRyb2wuaGFzVmFsaWRhdG9yKHZhbGlkYXRvcikpIHtcbiAgICAgICAgdGhpcy5fbmdDb250cm9sLmNvbnRyb2wuYWRkVmFsaWRhdG9ycyh2YWxpZGF0b3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcG9ydHMgd2hldGhlciB0aGUgY29udHJvbCB3aXRoIHRoZSBnaXZlbiBwYXRoIGhhcyB0aGUgZXJyb3Igc3BlY2lmaWVkLiA8YnIvPlxuICAgKiBJZiB0aGUgY29udHJvbCBpcyBub3QgcHJlc2VudCwgZmFsc2UgaXMgcmV0dXJuZWQuXG4gICAqIEBwYXJhbSBlcnJvckNvZGUgVGhlIGNvZGUgb2YgdGhlIGVycm9yIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBwYXRoIEEgbGlzdCBvZiBjb250cm9sIG5hbWVzIHRoYXQgZGVzaWduYXRlcyBob3cgdG8gbW92ZSBmcm9tIHRoZSBjdXJyZW50IGNvbnRyb2xcbiAgICogdG8gdGhlIGNvbnRyb2wgdGhhdCBzaG91bGQgYmUgcXVlcmllZCBmb3IgZXJyb3JzLlxuICAgKiBAcmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBlcnJvciBpcyBwcmVzZW50IGluIHRoZSBjb250cm9sIGF0IHRoZSBnaXZlbiBwYXRoLlxuICAgKi9cbiAgcHVibGljIGhhc0Vycm9yKGVycm9yQ29kZTogc3RyaW5nLCBwYXRoPzogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9uZ0NvbnRyb2wpIHtcbiAgICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2wuaGFzRXJyb3IoZXJyb3JDb2RlLCBwYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5oYXNFcnJvcihlcnJvckNvZGUsIHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcG9ydHMgZXJyb3IgZGF0YSBmb3IgdGhlIGNvbnRyb2wgd2l0aCB0aGUgZ2l2ZW4gcGF0aC5cbiAgICogQHBhcmFtIGVycm9yQ29kZSBUaGUgY29kZSBvZiB0aGUgZXJyb3IgdG8gY2hlY2tcbiAgICogQHBhcmFtIHBhdGggQSBsaXN0IG9mIGNvbnRyb2wgbmFtZXMgdGhhdCBkZXNpZ25hdGVzIGhvdyB0byBtb3ZlIGZyb20gdGhlIGN1cnJlbnQgY29udHJvbFxuICAgKiB0byB0aGUgY29udHJvbCB0aGF0IHNob3VsZCBiZSBxdWVyaWVkIGZvciBlcnJvcnMuXG4gICAqIEByZXR1cm5zIGVycm9yIGRhdGEgZm9yIHRoYXQgcGFydGljdWxhciBlcnJvci4gSWYgdGhlIGNvbnRyb2wgb3IgZXJyb3IgaXMgbm90IHByZXNlbnQsXG4gICAqIG51bGwgaXMgcmV0dXJuZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0RXJyb3IoZXJyb3JDb2RlOiBzdHJpbmcsIHBhdGg/OiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nKTogYW55IHtcbiAgICBpZiAodGhpcy5fbmdDb250cm9sKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbmdDb250cm9sLmdldEVycm9yKGVycm9yQ29kZSwgcGF0aCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZ2V0RXJyb3IoZXJyb3JDb2RlLCBwYXRoKTtcbiAgfVxufVxuIl19
@@ -31,15 +31,15 @@ export class ItAbstractComponent {
31
31
  const kebabName = name.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());
32
32
  return `${kebabName}-${ItAbstractComponent.instances++}`;
33
33
  }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItAbstractComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ItAbstractComponent, selector: "ng-component", inputs: { id: "id" }, outputs: { valueChanges: "valueChanges" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAbstractComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ItAbstractComponent, selector: "ng-component", inputs: { id: "id" }, outputs: { valueChanges: "valueChanges" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItAbstractComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAbstractComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{ template: '' }]
40
- }], ctorParameters: function () { return []; }, propDecorators: { id: [{
40
+ }], ctorParameters: () => [], propDecorators: { id: [{
41
41
  type: Input
42
42
  }], valueChanges: [{
43
43
  type: Output
44
44
  }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvYWJzdHJhY3RzL2Fic3RyYWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQzs7QUFHdkIsTUFBTSxPQUFnQixtQkFBbUI7SUFZdkM7OztPQUdHO2FBQ1ksY0FBUyxHQUFHLENBQUMsQUFBSixDQUFLO0lBTzdCO1FBckJBOztXQUVHO1FBQ00sT0FBRSxHQUFXLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQW1CeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtJQUN0RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWTtRQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6RyxPQUFPLEdBQUcsU0FBUyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7SUFDM0QsQ0FBQzs4R0EvQ21CLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDBJQURsQixFQUFFOzsyRkFDSCxtQkFBbUI7a0JBRHhDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzBFQU1oQixFQUFFO3NCQUFWLEtBQUs7Z0JBS1csWUFBWTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEl0QWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCBJRFxuICAgKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9IHRoaXMuZ2V0RGVmYXVsdElkKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gY29tcG9uZW50IGlucHV0IGF0dHJpYnV0ZXMgd2FzIGNoYW5nZWRcbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgdmFsdWVDaGFuZ2VzOiBFdmVudEVtaXR0ZXI8dm9pZD47XG5cbiAgLyoqXG4gICAqIENvdW50ZXIgb2YgYWN0aXZlIGluc3RhbmNlc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaW5zdGFuY2VzID0gMDtcblxuXG4gIHByb3RlY3RlZCByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMjsgLy8gSW5qZWN0ZWRcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmOyAvLyBJbmplY3RlZFxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjsgLy8gSW5qZWN0ZWRcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9yZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHRoaXMuX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgdGhpcy52YWx1ZUNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2lkJyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dCgpOyAvLyBUaGUgaW5wdXRzIHdlcmUgY2hhbmdlZFxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgY29tcG9uZW50c1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXREZWZhdWx0SWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lLnJlcGxhY2UoJ0NvbXBvbmVudCcsICcnKTtcbiAgICBjb25zdCBrZWJhYk5hbWUgPSBuYW1lLnJlcGxhY2UoL1tBLVpdKyg/IVthLXpdKXxbQS1aXS9nLCAoJCwgb2ZzKSA9PiAob2ZzID8gJy0nIDogJycpICsgJC50b0xvd2VyQ2FzZSgpKTtcbiAgICByZXR1cm4gYCR7a2ViYWJOYW1lfS0ke0l0QWJzdHJhY3RDb21wb25lbnQuaW5zdGFuY2VzKyt9YDtcbiAgfVxufVxuIl19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvYWJzdHJhY3RzL2Fic3RyYWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQzs7QUFHdkIsTUFBTSxPQUFnQixtQkFBbUI7SUFZdkM7OztPQUdHO2FBQ1ksY0FBUyxHQUFHLENBQUMsQUFBSixDQUFLO0lBTzdCO1FBckJBOztXQUVHO1FBQ00sT0FBRSxHQUFXLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQW1CeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtJQUN0RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWTtRQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6RyxPQUFPLEdBQUcsU0FBUyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7SUFDM0QsQ0FBQzs4R0EvQ21CLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDBJQURsQixFQUFFOzsyRkFDSCxtQkFBbUI7a0JBRHhDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO3dEQU1oQixFQUFFO3NCQUFWLEtBQUs7Z0JBS1csWUFBWTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEl0QWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCBJRFxuICAgKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9IHRoaXMuZ2V0RGVmYXVsdElkKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gY29tcG9uZW50IGlucHV0IGF0dHJpYnV0ZXMgd2FzIGNoYW5nZWRcbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgdmFsdWVDaGFuZ2VzOiBFdmVudEVtaXR0ZXI8dm9pZD47XG5cbiAgLyoqXG4gICAqIENvdW50ZXIgb2YgYWN0aXZlIGluc3RhbmNlc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaW5zdGFuY2VzID0gMDtcblxuXG4gIHByb3RlY3RlZCByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMjsgLy8gSW5qZWN0ZWRcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmOyAvLyBJbmplY3RlZFxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjsgLy8gSW5qZWN0ZWRcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9yZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHRoaXMuX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgdGhpcy52YWx1ZUNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2lkJyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dCgpOyAvLyBUaGUgaW5wdXRzIHdlcmUgY2hhbmdlZFxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgY29tcG9uZW50c1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXREZWZhdWx0SWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lLnJlcGxhY2UoJ0NvbXBvbmVudCcsICcnKTtcbiAgICBjb25zdCBrZWJhYk5hbWUgPSBuYW1lLnJlcGxhY2UoL1tBLVpdKyg/IVthLXpdKXxbQS1aXS9nLCAoJCwgb2ZzKSA9PiAob2ZzID8gJy0nIDogJycpICsgJC50b0xvd2VyQ2FzZSgpKTtcbiAgICByZXR1cm4gYCR7a2ViYWJOYW1lfS0ke0l0QWJzdHJhY3RDb21wb25lbnQuaW5zdGFuY2VzKyt9YDtcbiAgfVxufVxuIl19
@@ -23,16 +23,17 @@ export class ItAccordionComponent extends ItCollapseComponent {
23
23
  this._changeDetectorRef.detectChanges();
24
24
  });
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItAccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ItAccordionComponent, isStandalone: true, selector: "it-accordion[title]", inputs: { title: "title" }, viewQueries: [{ propertyName: "collapseDiv", first: true, predicate: ["collapse"], descendants: true }], exportAs: ["itAccordion"], usesInheritance: true, ngImport: i0, template: "<div class=\"accordion\">\n <div class=\"accordion-item\">\n\n <h2 class=\"accordion-header\" id=\"collapse-{{id}}-heading\">\n <button\n class=\"accordion-button\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [class.collapsed]=\"isCollapsed\"\n [attr.data-bs-target]=\"'#collapse-' + id\"\n [attr.aria-controls]=\"'collapse-' + id\"\n [attr.aria-expanded]=\"opened ? 'true' : 'false'\">\n {{title}}\n </button>\n </h2>\n\n <div #collapse id=\"collapse-{{id}}\" role=\"region\"\n class=\"accordion-collapse collapse {{class}}\"\n [attr.aria-labelledby]=\"'collapse-' + id + '-heading'\">\n\n <div class=\"accordion-body\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ItAccordionComponent, isStandalone: true, selector: "it-accordion", inputs: { title: "title" }, viewQueries: [{ propertyName: "collapseDiv", first: true, predicate: ["collapse"], descendants: true }], exportAs: ["itAccordion"], usesInheritance: true, ngImport: i0, template: "<div class=\"accordion\">\n <div class=\"accordion-item\">\n\n <h2 class=\"accordion-header\" id=\"collapse-{{id}}-heading\">\n <button\n class=\"accordion-button\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [class.collapsed]=\"isCollapsed\"\n [attr.data-bs-target]=\"'#collapse-' + id\"\n [attr.aria-controls]=\"'collapse-' + id\"\n [attr.aria-expanded]=\"opened ? 'true' : 'false'\">\n {{title}}\n </button>\n </h2>\n\n <div #collapse id=\"collapse-{{id}}\" role=\"region\"\n class=\"accordion-collapse collapse {{class}}\"\n [attr.aria-labelledby]=\"'collapse-' + id + '-heading'\">\n\n <div class=\"accordion-body\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItAccordionComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAccordionComponent, decorators: [{
30
30
  type: Component,
31
- args: [{ standalone: true, selector: 'it-accordion[title]', exportAs: 'itAccordion', changeDetection: ChangeDetectionStrategy.OnPush, imports: [], template: "<div class=\"accordion\">\n <div class=\"accordion-item\">\n\n <h2 class=\"accordion-header\" id=\"collapse-{{id}}-heading\">\n <button\n class=\"accordion-button\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [class.collapsed]=\"isCollapsed\"\n [attr.data-bs-target]=\"'#collapse-' + id\"\n [attr.aria-controls]=\"'collapse-' + id\"\n [attr.aria-expanded]=\"opened ? 'true' : 'false'\">\n {{title}}\n </button>\n </h2>\n\n <div #collapse id=\"collapse-{{id}}\" role=\"region\"\n class=\"accordion-collapse collapse {{class}}\"\n [attr.aria-labelledby]=\"'collapse-' + id + '-heading'\">\n\n <div class=\"accordion-body\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n\n" }]
31
+ args: [{ standalone: true, selector: 'it-accordion', exportAs: 'itAccordion', changeDetection: ChangeDetectionStrategy.OnPush, imports: [], template: "<div class=\"accordion\">\n <div class=\"accordion-item\">\n\n <h2 class=\"accordion-header\" id=\"collapse-{{id}}-heading\">\n <button\n class=\"accordion-button\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [class.collapsed]=\"isCollapsed\"\n [attr.data-bs-target]=\"'#collapse-' + id\"\n [attr.aria-controls]=\"'collapse-' + id\"\n [attr.aria-expanded]=\"opened ? 'true' : 'false'\">\n {{title}}\n </button>\n </h2>\n\n <div #collapse id=\"collapse-{{id}}\" role=\"region\"\n class=\"accordion-collapse collapse {{class}}\"\n [attr.aria-labelledby]=\"'collapse-' + id + '-heading'\">\n\n <div class=\"accordion-body\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n\n" }]
32
32
  }], propDecorators: { title: [{
33
- type: Input
33
+ type: Input,
34
+ args: [{ required: true }]
34
35
  }], collapseDiv: [{
35
36
  type: ViewChild,
36
37
  args: ['collapse']
37
38
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXJFOzs7R0FHRztBQVNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFSN0Q7O1FBaUJZLGdCQUFXLEdBQVksSUFBSSxDQUFDO0tBaUJ2QztJQWZVLGVBQWU7UUFDdEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F4QlUsb0JBQW9CO2tHQUFwQixvQkFBb0Isc1FDZmpDLHl5QkEyQkE7OzJGRFphLG9CQUFvQjtrQkFSaEMsU0FBUztpQ0FDSSxJQUFJLFlBQ04scUJBQXFCLFlBRXJCLGFBQWEsbUJBQ04sdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxFQUFFOzhCQU9GLEtBQUs7c0JBQWIsS0FBSztnQkFFb0MsV0FBVztzQkFBcEQsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXRDb2xsYXBzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbGxhcHNlL2NvbGxhcHNlLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQWNjb3JkaW9uXG4gKiBAZGVzY3JpcHRpb24gQnVpbGQgdmVydGljYWxseSBjb2xsYXBzaWJsZSBhY2NvcmRpb25zIGJhc2VkIG9uIENvbGxhcHNlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdpdC1hY2NvcmRpb25bdGl0bGVdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGV4cG9ydEFzOiAnaXRBY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgSXRBY2NvcmRpb25Db21wb25lbnQgZXh0ZW5kcyBJdENvbGxhcHNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqXG4gICAqIEFjY29yZGlvbiBUaXRsZVxuICAgKi9cbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnY29sbGFwc2UnKSBwcm90ZWN0ZWQgb3ZlcnJpZGUgY29sbGFwc2VEaXY/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBwcm90ZWN0ZWQgaXNDb2xsYXBzZWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndGl0bGUnKTtcblxuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5vcGVuZWQ7XG4gICAgdGhpcy5oaWRlRXZlbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICAgIHRoaXMuc2hvd0V2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmlzQ29sbGFwc2VkID0gZmFsc2U7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImFjY29yZGlvblwiPlxuICA8ZGl2IGNsYXNzPVwiYWNjb3JkaW9uLWl0ZW1cIj5cblxuICAgIDxoMiBjbGFzcz1cImFjY29yZGlvbi1oZWFkZXJcIiBpZD1cImNvbGxhcHNlLXt7aWR9fS1oZWFkaW5nXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYWNjb3JkaW9uLWJ1dHRvblwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcbiAgICAgICAgW2NsYXNzLmNvbGxhcHNlZF09XCJpc0NvbGxhcHNlZFwiXG4gICAgICAgIFthdHRyLmRhdGEtYnMtdGFyZ2V0XT1cIicjY29sbGFwc2UtJyArIGlkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCInY29sbGFwc2UtJyArIGlkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuZWQgPyAndHJ1ZScgOiAnZmFsc2UnXCI+XG4gICAgICAgIHt7dGl0bGV9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9oMj5cblxuICAgIDxkaXYgI2NvbGxhcHNlIGlkPVwiY29sbGFwc2Ute3tpZH19XCIgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICBjbGFzcz1cImFjY29yZGlvbi1jb2xsYXBzZSBjb2xsYXBzZSB7e2NsYXNzfX1cIlxuICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidjb2xsYXBzZS0nICsgaWQgKyAnLWhlYWRpbmcnXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY2NvcmRpb24tYm9keVwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXJFOzs7R0FHRztBQVNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFSN0Q7O1FBZ0JZLGdCQUFXLEdBQVksSUFBSSxDQUFDO0tBZ0J2QztJQWRVLGVBQWU7UUFDdEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F2QlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsK1BDZmpDLHl5QkEyQkE7OzJGRFphLG9CQUFvQjtrQkFSaEMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sY0FBYyxZQUVkLGFBQWEsbUJBQ04sdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxFQUFFOzhCQU1nQixLQUFLO3NCQUEvQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFaUIsV0FBVztzQkFBcEQsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXRDb2xsYXBzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbGxhcHNlL2NvbGxhcHNlLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQWNjb3JkaW9uXG4gKiBAZGVzY3JpcHRpb24gQnVpbGQgdmVydGljYWxseSBjb2xsYXBzaWJsZSBhY2NvcmRpb25zIGJhc2VkIG9uIENvbGxhcHNlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdpdC1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdpdEFjY29yZGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgSXRBY2NvcmRpb25Db21wb25lbnQgZXh0ZW5kcyBJdENvbGxhcHNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKlxuICAgKiBBY2NvcmRpb24gVGl0bGVcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHRpdGxlITogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbGxhcHNlJykgcHJvdGVjdGVkIG92ZXJyaWRlIGNvbGxhcHNlRGl2PzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgcHJvdGVjdGVkIGlzQ29sbGFwc2VkOiBib29sZWFuID0gdHJ1ZTtcblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RpdGxlJyk7XG5cbiAgICB0aGlzLmlzQ29sbGFwc2VkID0gIXRoaXMub3BlbmVkO1xuICAgIHRoaXMuaGlkZUV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmlzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgICB0aGlzLnNob3dFdmVudC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWNjb3JkaW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJhY2NvcmRpb24taXRlbVwiPlxuXG4gICAgPGgyIGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRlclwiIGlkPVwiY29sbGFwc2Ute3tpZH19LWhlYWRpbmdcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJhY2NvcmRpb24tYnV0dG9uXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIlxuICAgICAgICBbY2xhc3MuY29sbGFwc2VkXT1cImlzQ29sbGFwc2VkXCJcbiAgICAgICAgW2F0dHIuZGF0YS1icy10YXJnZXRdPVwiJyNjb2xsYXBzZS0nICsgaWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIidjb2xsYXBzZS0nICsgaWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW5lZCA/ICd0cnVlJyA6ICdmYWxzZSdcIj5cbiAgICAgICAge3t0aXRsZX19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2gyPlxuXG4gICAgPGRpdiAjY29sbGFwc2UgaWQ9XCJjb2xsYXBzZS17e2lkfX1cIiByb2xlPVwicmVnaW9uXCJcbiAgICAgICAgIGNsYXNzPVwiYWNjb3JkaW9uLWNvbGxhcHNlIGNvbGxhcHNlIHt7Y2xhc3N9fVwiXG4gICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ2NvbGxhcHNlLScgKyBpZCArICctaGVhZGluZydcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImFjY29yZGlvbi1ib2R5XCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG4iXX0=