@js-smart/ng-kit 18.0.3 → 18.0.5

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 (34) hide show
  1. package/README.md +84 -102
  2. package/esm2022/lib/components/alert/alert.component.mjs +3 -3
  3. package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +4 -4
  4. package/esm2022/lib/components/buttons/base-button/base-button.component.mjs +5 -5
  5. package/esm2022/lib/components/buttons/bs-link-button/bs-link-button.component.mjs +7 -7
  6. package/esm2022/lib/components/buttons/delete-button/delete-button.component.mjs +7 -7
  7. package/esm2022/lib/components/buttons/edit-bs-button/edit-bs-button.component.mjs +8 -9
  8. package/esm2022/lib/components/buttons/edit-button/edit-button.component.mjs +7 -7
  9. package/esm2022/lib/components/buttons/edit-svg-icon-button/edit-svg-icon-button.component.mjs +7 -7
  10. package/esm2022/lib/components/buttons/excel-export-button/excel-export-button.component.mjs +3 -3
  11. package/esm2022/lib/components/buttons/manage-button/manage-button.component.mjs +7 -7
  12. package/esm2022/lib/components/buttons/pdf-export-button/pdf-export-button.component.mjs +3 -3
  13. package/esm2022/lib/components/buttons/primary-button/primary-button.component.mjs +7 -7
  14. package/esm2022/lib/components/buttons/save-primary-button/save-primary-button.component.mjs +7 -7
  15. package/esm2022/lib/components/buttons/search-button/search-button.component.mjs +3 -3
  16. package/esm2022/lib/components/buttons/success-button/success-button.component.mjs +7 -7
  17. package/esm2022/lib/components/buttons/view-button/view-button.component.mjs +3 -3
  18. package/esm2022/lib/components/buttons/view-primary-button/view-primary-button.component.mjs +7 -7
  19. package/esm2022/lib/components/confirm-dialog/confirm-dialog.component.mjs +3 -3
  20. package/esm2022/lib/components/ngx-spinner/ngx-spinner.component.mjs +3 -3
  21. package/esm2022/lib/components/ngx-spinner/ngx-spinner.service.mjs +3 -3
  22. package/esm2022/lib/components/ngx-spinner/safe-html.pipe.mjs +3 -3
  23. package/esm2022/lib/components/snack-bar/error-snack-bar/error-snack-bar.component.mjs +3 -3
  24. package/esm2022/lib/components/snack-bar/success-snack-bar/success-snack-bar.component.mjs +3 -3
  25. package/esm2022/lib/components/spinner/spinner.component.mjs +3 -3
  26. package/esm2022/lib/directives/ngx-print.directive.mjs +3 -3
  27. package/esm2022/lib/directives/prevent-multiple-clicks.directive.mjs +3 -3
  28. package/esm2022/lib/pipes/type-of.pipe.mjs +3 -3
  29. package/esm2022/lib/services/mat-snack-bar.service.mjs +3 -3
  30. package/esm2022/lib/svg-icons/edit-solid-svg/edit-solid-svg.component.mjs +3 -3
  31. package/fesm2022/js-smart-ng-kit.mjs +125 -126
  32. package/fesm2022/js-smart-ng-kit.mjs.map +1 -1
  33. package/lib/components/buttons/base-button/base-button.component.d.ts +2 -4
  34. package/package.json +3 -3
package/README.md CHANGED
@@ -1,4 +1,5 @@
1
1
  # NGX Smart utilities
2
+
2
3
  Reusable Angular components built with Angular Material and Bootstrap 5.x, Utility classes/functions for Date, Form and String operations
3
4
 
4
5
  <p align="center">
@@ -9,21 +10,28 @@ Reusable Angular components built with Angular Material and Bootstrap 5.x, Utili
9
10
  </p>
10
11
 
11
12
  ### Installation
13
+
12
14
  Install the library
15
+
13
16
  ```shell
14
17
  npm install @js-smart/ng-kit
15
18
  ```
16
- and use it as shown below in each section
17
19
 
20
+ and use it as shown below in each section
18
21
 
19
22
  ### Technologies
23
+
20
24
  1. Angular 17+
21
25
  2. Bootstrap 5+ (if applicable)
22
26
 
23
27
  ## Auto Complete
28
+
24
29
  Reusable Auto Complete that extends Mat Auto Complete component
30
+
25
31
  ### Demo
32
+
26
33
  https://main--js-smart-ng-kit.netlify.app/autocomplete-demo
34
+
27
35
  ### Usage
28
36
 
29
37
  The library has one `autocomplete` component. To use the Auto Complete component, add the following code to the HTML page
@@ -53,10 +61,10 @@ The library has one `autocomplete` component. To use the Auto Complete component
53
61
  Then define form group instances and object array (cities) and names (for string array)
54
62
 
55
63
  ```typescript
56
- // Define objects
64
+ // Define objects
57
65
  cities = [{id: 1001, location: 'New York'}, {id: 1002, location: 'Boston'}, {id: 1001, location: 'Washington DC'}];
58
66
 
59
- // Define Form Groups
67
+ // Define Form Groups
60
68
  inputFormGroup = this.fb.group({
61
69
  autocomplete: ['']
62
70
  })
@@ -69,6 +77,7 @@ displayFn(object: any): string {
69
77
  ```
70
78
 
71
79
  If you are using strings rather than objects, do not provide `bindLabel`, `bindValue` and `displayWith` inputs. See below sample
80
+
72
81
  ```
73
82
  <!-- Auto Complete with Strings -->
74
83
  <form [formGroup]="inputFormGroup">
@@ -82,85 +91,90 @@ If you are using strings rather than objects, do not provide `bindLabel`, `bindV
82
91
  </form>
83
92
  ```
84
93
 
85
-
86
94
  ### Auto Complete API
87
95
 
88
96
  #### List of selectors that can be used to select the component(s)
89
97
 
90
- | AutoComplete Selector |
91
- | ----------- |
92
- | autocomplete, lib-autocomplete |
93
-
98
+ | AutoComplete Selector |
99
+ |--------------------------------|
100
+ | autocomplete, lib-autocomplete |
94
101
 
95
102
  #### Properties
96
103
 
97
- | Property | Description | Type | Default Value |
98
- | ----------- | ----------- |----------- |----------- |
99
- | inputFormGroup | Input Form Group |FormGroup||
100
- | label | Label of the AutoComplete|string||
101
- | placeHolder | PlaceHolder of the AutoComplete|string||
102
- | appearance | Appearance of the AutoComplete, defaults to `fill` |string|fill|
103
- | classes | List of CSS classes that need to applied to autocomplete|string||
104
- | bindLabel | Applies only to AutoComplete with Objects. Attribute of the Object whose value would be shown when searching for data |string|id|
105
- | bindValue | Applies only to AutoComplete with Objects. Attribute of the Object whose value would be used for search. Defaults to `ID` |string|id|
106
- | displayWith | Applies only to AutoComplete with Objects. A function used to show display value in Input |boolean|false|
107
- | required | Provide `true` if AutoComplete is required, otherwise provide `false` |boolean|false|
108
- | data | List of Objects or String values that need to be bind and searched for |any[] or string[]|false|
109
-
104
+ | Property | Description | Type | Default Value |
105
+ |----------------|---------------------------------------------------------------------------------------------------------------------------|-------------------|---------------|
106
+ | inputFormGroup | Input Form Group | FormGroup | |
107
+ | label | Label of the AutoComplete | string | |
108
+ | placeHolder | PlaceHolder of the AutoComplete | string | |
109
+ | appearance | Appearance of the AutoComplete, defaults to `fill` | string | fill |
110
+ | classes | List of CSS classes that need to applied to autocomplete | string | |
111
+ | bindLabel | Applies only to AutoComplete with Objects. Attribute of the Object whose value would be shown when searching for data | string | id |
112
+ | bindValue | Applies only to AutoComplete with Objects. Attribute of the Object whose value would be used for search. Defaults to `ID` | string | id |
113
+ | displayWith | Applies only to AutoComplete with Objects. A function used to show display value in Input | boolean | false |
114
+ | required | Provide `true` if AutoComplete is required, otherwise provide `false` | boolean | false |
115
+ | data | List of Objects or String values that need to be bind and searched for | any[] or string[] | false |
110
116
 
111
117
  ## Alert
118
+
112
119
  Reusable alert component created with Bootstrap 5+ and Angular 17+
120
+
113
121
  ### Auto Complete API
114
- #### List of selectors that can be used to select the component
115
122
 
116
- | Selector |
117
- | ----------- |
118
- | alert,lib-alert |
123
+ #### List of selectors that can be used to select the component
119
124
 
125
+ | Selector |
126
+ |-----------------|
127
+ | alert,lib-alert |
120
128
 
121
129
  #### Properties
122
130
 
123
- | Property | Description | Type | Default Value |
124
- | ----------- | ----------- |----------- |----------- |
125
- | dismissible | If set, displays an inline "Close" button |boolean|false|
126
- | dismissOnTimeout | If set, dismisses the alert after Dismiss Timeout|boolean|true|
127
- | dismissTimeout | Number in milliseconds, after which alert will be closed|string or number|5000|
128
- | isOpen | Is alert visible |boolean|false|
129
- | type | Alert type. Provides one of four bootstrap supported contextual classes: success, info, warning and danger|string|info|
131
+ | Property | Description | Type | Default Value |
132
+ |------------------|------------------------------------------------------------------------------------------------------------|------------------|---------------|
133
+ | dismissible | If set, displays an inline "Close" button | boolean | false |
134
+ | dismissOnTimeout | If set, dismisses the alert after Dismiss Timeout | boolean | true |
135
+ | dismissTimeout | Number in milliseconds, after which alert will be closed | string or number | 5000 |
136
+ | isOpen | Is alert visible | boolean | false |
137
+ | type | Alert type. Provides one of four bootstrap supported contextual classes: success, info, warning and danger | string | info |
130
138
 
131
139
  ## Spinner
140
+
132
141
  Reusable Spinner component created with Bootstrap 5.x and Angular 17.x
133
142
 
134
143
  ### Demo
144
+
135
145
  https://main--js-smart-ng-kit.netlify.app/alert-demo
146
+
136
147
  ### API
137
- #### List of selectors that can be used to select the component
138
148
 
139
- | Selector |
140
- | ----------- |
141
- | spinner,lib-spinner |
149
+ #### List of selectors that can be used to select the component
142
150
 
151
+ | Selector |
152
+ |---------------------|
153
+ | spinner,lib-spinner |
143
154
 
144
155
  #### Properties
145
156
 
146
- | Property | Description | Type | Default Value |
147
- | ----------- | ----------- |----------- |----------- |
148
- | bootstrapSpinner | Use Boostrap Spinner. Default `true` |boolean|false|
149
- | diameter | Diameter of the Angular Material spinner|boolean|true|
150
- | color | Color of the Angular Material spinner|string or `ThemePalette`|5000|
151
- | strokeWidth | Stroke Width of the Angular Material spinner|boolean|false|
157
+ | Property | Description | Type | Default Value |
158
+ |------------------|----------------------------------------------|--------------------------|---------------|
159
+ | bootstrapSpinner | Use Boostrap Spinner. Default `true` | boolean | false |
160
+ | diameter | Diameter of the Angular Material spinner | boolean | true |
161
+ | color | Color of the Angular Material spinner | string or `ThemePalette` | 5000 |
162
+ | strokeWidth | Stroke Width of the Angular Material spinner | boolean | false |
152
163
 
153
164
  ## Print
165
+
154
166
  Angular (2++) directive that prints HTML section
167
+
155
168
  ### Usage
169
+
156
170
  Import the main module `NgxPrintModule` :
157
171
 
158
- ```js
172
+ ```js
159
173
  import {NgxPrintModule} from '@js-smart/print';
160
174
 
161
175
  @NgModule({
162
- ...
163
- imports:
176
+ ...
177
+ imports:
164
178
  [NgxPrintModule, ...],
165
179
  ...
166
180
  })
@@ -174,23 +188,22 @@ export class YourAppModule {
174
188
  - Assuming you want to print the following HTML section:
175
189
 
176
190
  ```html
177
-
178
191
  <div>
179
- <!--Your html stuff that you want to print-->
192
+ <!--Your html stuff that you want to print-->
180
193
  </div>
181
- <button>print</button> <!--Your relevant print button-->
182
-
194
+ <button>print</button>
195
+ <!--Your relevant print button-->
183
196
  ```
184
197
 
185
- - Now, what you have to do is tagging your *wanted-to-print* section by an `id` attribute, then link that `id` to a
198
+ - Now, what you have to do is tagging your _wanted-to-print_ section by an `id` attribute, then link that `id` to a
186
199
  directive parameter in your button :
187
200
 
188
201
  ```html
189
- <!--
202
+ <!--
190
203
  1)- Add an ID here
191
204
  -->
192
205
  <div id="print-section">
193
- <!--Your html stuff that you want to print-->
206
+ <!--Your html stuff that you want to print-->
194
207
  </div>
195
208
 
196
209
  <!--
@@ -198,7 +211,6 @@ export class YourAppModule {
198
211
  3)- Affect your ID to printSectionId
199
212
  -->
200
213
  <button printSectionId="print-section" ngxPrint>print</button>
201
-
202
214
  ```
203
215
 
204
216
  ### Optional properties
@@ -207,38 +219,22 @@ export class YourAppModule {
207
219
  button `printTitle`:
208
220
 
209
221
  ```html
210
-
211
222
  <div id="print-section">
212
-
213
- <!-- ... -->
214
-
223
+ <!-- ... -->
215
224
  </div>
216
225
 
217
- <button
218
- printTitle="MyTitle"
219
- printSectionId="print-section"
220
- ngxPrint>print
221
- </button>
222
-
226
+ <button printTitle="MyTitle" printSectionId="print-section" ngxPrint>print</button>
223
227
  ```
224
228
 
225
229
  - Also, would you like to customize the printing window style sheet (CSS) ? Hence you can do so by adding infinite
226
230
  styles to another attribute called `printStyle`:
227
231
 
228
232
  ```html
229
-
230
233
  <div id="print-section">
231
-
232
- <!-- ... -->
233
-
234
+ <!-- ... -->
234
235
  </div>
235
236
 
236
- <button
237
- [printStyle]="{h1 : {'color': 'red'}, h2 : {'border': 'solid 1px'}}"
238
- printSectionId="print-section"
239
- ngxPrint>print
240
- </button>
241
-
237
+ <button [printStyle]="{h1 : {'color': 'red'}, h2 : {'border': 'solid 1px'}}" printSectionId="print-section" ngxPrint>print</button>
242
238
  ```
243
239
 
244
240
  Here some simple styles were added to every `h1` & `h2` tags within the `div` where `print-section` is tagged to
@@ -247,50 +243,36 @@ its `id` attribute.
247
243
  - If you would like to use your existing CSS with media print you can add the `useExistingCss` attribute:
248
244
 
249
245
  ```html
250
-
251
246
  <div id="print-section">
252
-
253
- <!-- ... -->
254
-
247
+ <!-- ... -->
255
248
  </div>
256
249
 
257
- <button
258
- [useExistingCss]="true"
259
- printSectionId="print-section"
260
- ngxPrint>print
261
- </button>
262
-
250
+ <button [useExistingCss]="true" printSectionId="print-section" ngxPrint>print</button>
263
251
  ```
264
252
 
265
253
  - If you want to customize the printing window style sheet (CSS) by importing the css provided in assets/css
266
254
  use `styleSheetFile`:
267
255
 
268
256
  ```html
269
-
270
257
  <div id="print-section">
271
-
272
- <!-- ... -->
273
-
258
+ <!-- ... -->
274
259
  </div>
275
260
 
276
- <button
277
- styleSheetFile="assets/css/custom1.css,assets/css/custom2.css"
278
- printSectionId="print-section"
279
- ngxPrint>print
280
- </button>
281
-
261
+ <button styleSheetFile="assets/css/custom1.css,assets/css/custom2.css" printSectionId="print-section" ngxPrint>print</button>
282
262
  ```
263
+
283
264
  ### Publish library to NPM
265
+
284
266
  1. Build the library
285
- ```shell
286
- nx build ng-kit
287
- ```
267
+ ```shell
268
+ nx build ng-kit
269
+ ```
288
270
  2. If the NPM token is not configured, open `~/.npmrc` and add the following line:
289
- ```shell
290
- //registry.npmjs.org/:_authToken=<your npm token>
291
- ```
271
+ ```shell
272
+ //registry.npmjs.org/:_authToken=<your npm token>
273
+ ```
292
274
  3. Then navigate to `dist` directory anf publish the library to NPM. If prompted, enter the 2fa auth code from the Authenticator app.
293
- ```shell
294
- cd dist/libs/ng-kit && npm publish --tag latest
295
- ```
275
+ ```shell
276
+ cd dist/libs/ng-kit && npm publish --tag latest
277
+ ```
296
278
  For beta releases use tag `--tag beta`
@@ -85,10 +85,10 @@ export class AlertComponent {
85
85
  openAlert() {
86
86
  this.open.set(true);
87
87
  }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AlertComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: AlertComponent, isStandalone: true, selector: "lib-alert, alert", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, dismissOnTimeout: { classPropertyName: "dismissOnTimeout", publicName: "dismissOnTimeout", isSignal: true, isRequired: false, transformFunction: null }, dismissTimeout: { classPropertyName: "dismissTimeout", publicName: "dismissTimeout", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (open()) {\n\t<div class=\"row {{ class() }}\">\n\t\t<div class=\"col-xs-12 col-sm-12 col-md-auto mx-auto\">\n\t\t\t<div class=\"alert alert-{{ type() }} alert-dismissible alert_div\" role=\"alert\">\n\t\t\t\t<ng-content></ng-content>\n\t\t\t\t@if (dismissible()) {\n\t\t\t\t\t<button (click)=\"closeAlert()\" aria-label=\"Close\" class=\"btn-close\" data-bs-dismiss=\"alert\" type=\"button\"></button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t</div>\n}\n", styles: [".alert_div{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AlertComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: AlertComponent, isStandalone: true, selector: "lib-alert, alert", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, dismissOnTimeout: { classPropertyName: "dismissOnTimeout", publicName: "dismissOnTimeout", isSignal: true, isRequired: false, transformFunction: null }, dismissTimeout: { classPropertyName: "dismissTimeout", publicName: "dismissTimeout", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (open()) {\n\t<div class=\"row {{ class() }}\">\n\t\t<div class=\"col-xs-12 col-sm-12 col-md-auto mx-auto\">\n\t\t\t<div class=\"alert alert-{{ type() }} alert-dismissible alert_div\" role=\"alert\">\n\t\t\t\t<ng-content></ng-content>\n\t\t\t\t@if (dismissible()) {\n\t\t\t\t\t<button (click)=\"closeAlert()\" aria-label=\"Close\" class=\"btn-close\" data-bs-dismiss=\"alert\" type=\"button\"></button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t</div>\n}\n", styles: [".alert_div{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
90
90
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AlertComponent, decorators: [{
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AlertComponent, decorators: [{
92
92
  type: Component,
93
93
  args: [{ selector: 'lib-alert, alert', standalone: true, imports: [CommonModule], template: "@if (open()) {\n\t<div class=\"row {{ class() }}\">\n\t\t<div class=\"col-xs-12 col-sm-12 col-md-auto mx-auto\">\n\t\t\t<div class=\"alert alert-{{ type() }} alert-dismissible alert_div\" role=\"alert\">\n\t\t\t\t<ng-content></ng-content>\n\t\t\t\t@if (dismissible()) {\n\t\t\t\t\t<button (click)=\"closeAlert()\" aria-label=\"Close\" class=\"btn-close\" data-bs-dismiss=\"alert\" type=\"button\"></button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t</div>\n}\n", styles: [".alert_div{display:flex;align-items:center;justify-content:center}\n"] }]
94
94
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
@@ -144,10 +144,10 @@ export class AutocompleteComponent {
144
144
  emitSelectedValue($event) {
145
145
  this.onSelectionChange.emit($event.source.value);
146
146
  }
147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: AutocompleteComponent, isStandalone: true, selector: "autocomplete, lib-autocomplete", inputs: { inputFormGroup: { classPropertyName: "inputFormGroup", publicName: "inputFormGroup", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeHolder: { classPropertyName: "placeHolder", publicName: "placeHolder", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, bindLabel: { classPropertyName: "bindLabel", publicName: "bindLabel", isSignal: true, isRequired: false, transformFunction: null }, bindValue: { classPropertyName: "bindValue", publicName: "bindValue", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "displayWith", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange" }, viewQueries: [{ propertyName: "inputAutoComplete", first: true, predicate: ["inputAutoComplete"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"inputFormGroup\">\n\t<mat-form-field appearance=\"fill\" class=\"{{ classes() }}\">\n\t\t<mat-label>{{ label() }}</mat-label>\n\t\t<input\n\t\t\t#inputAutoComplete\n\t\t\t#trigger=\"matAutocompleteTrigger\"\n\t\t\t[matAutocomplete]=\"auto\"\n\t\t\t[placeholder]=\"placeHolder()\"\n\t\t\t[required]=\"required()\"\n\t\t\tformControlName=\"autocomplete\"\n\t\t\tmatInput\n\t\t\ttype=\"text\" />\n\n\t\t<div matSuffix style=\"display: flex\">\n\t\t\t@if (!!inputFormGroup.get('autocomplete')?.value) {\n\t\t\t\t<button (click)=\"clearInput($event)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t\t<mat-icon>clear</mat-icon>\n\t\t\t\t</button>\n\t\t\t}\n\t\t\t<button (click)=\"openOrClosePanel($event, trigger)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t<mat-icon>{{ arrowIconSubject.getValue() }}</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\n\t\t<mat-autocomplete\n\t\t\t#auto=\"matAutocomplete\"\n\t\t\t(closed)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t(opened)=\"arrowIconSubject.next('arrow_drop_up')\"\n\t\t\t(optionSelected)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t[displayWith]=\"displayFn\">\n\t\t\t@for (option of filteredOptions | async; track option[bindValue()]) {\n\t\t\t\t<mat-option (onSelectionChange)=\"emitSelectedValue($event)\" [value]=\"option\">\n\t\t\t\t\t@if ((option | typeOf) === 'string') {\n\t\t\t\t\t\t<ng-container>{{ option }}</ng-container>\n\t\t\t\t\t} @else if ((option | typeOf) === 'object') {\n\t\t\t\t\t\t<ng-container>{{ option[bindLabel()] }}</ng-container>\n\t\t\t\t\t}\n\t\t\t\t</mat-option>\n\t\t\t}\n\t\t</mat-autocomplete>\n\t</mat-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TypeOfPipe, name: "typeOf" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: AutocompleteComponent, isStandalone: true, selector: "autocomplete, lib-autocomplete", inputs: { inputFormGroup: { classPropertyName: "inputFormGroup", publicName: "inputFormGroup", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeHolder: { classPropertyName: "placeHolder", publicName: "placeHolder", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, bindLabel: { classPropertyName: "bindLabel", publicName: "bindLabel", isSignal: true, isRequired: false, transformFunction: null }, bindValue: { classPropertyName: "bindValue", publicName: "bindValue", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "displayWith", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange" }, viewQueries: [{ propertyName: "inputAutoComplete", first: true, predicate: ["inputAutoComplete"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"inputFormGroup\">\n\t<mat-form-field appearance=\"fill\" class=\"{{ classes() }}\">\n\t\t<mat-label>{{ label() }}</mat-label>\n\t\t<input\n\t\t\t#inputAutoComplete\n\t\t\t#trigger=\"matAutocompleteTrigger\"\n\t\t\t[matAutocomplete]=\"auto\"\n\t\t\t[placeholder]=\"placeHolder()\"\n\t\t\t[required]=\"required()\"\n\t\t\tformControlName=\"autocomplete\"\n\t\t\tmatInput\n\t\t\ttype=\"text\" />\n\n\t\t<div matSuffix style=\"display: flex\">\n\t\t\t@if (!!inputFormGroup.get('autocomplete')?.value) {\n\t\t\t\t<button (click)=\"clearInput($event)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t\t<mat-icon>clear</mat-icon>\n\t\t\t\t</button>\n\t\t\t}\n\t\t\t<button (click)=\"openOrClosePanel($event, trigger)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t<mat-icon>{{ arrowIconSubject.getValue() }}</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\n\t\t<mat-autocomplete\n\t\t\t#auto=\"matAutocomplete\"\n\t\t\t(closed)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t(opened)=\"arrowIconSubject.next('arrow_drop_up')\"\n\t\t\t(optionSelected)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t[displayWith]=\"displayFn\">\n\t\t\t@for (option of filteredOptions | async; track option[bindValue()]) {\n\t\t\t\t<mat-option (onSelectionChange)=\"emitSelectedValue($event)\" [value]=\"option\">\n\t\t\t\t\t@if ((option | typeOf) === 'string') {\n\t\t\t\t\t\t<ng-container>{{ option }}</ng-container>\n\t\t\t\t\t} @else if ((option | typeOf) === 'object') {\n\t\t\t\t\t\t<ng-container>{{ option[bindLabel()] }}</ng-container>\n\t\t\t\t\t}\n\t\t\t\t</mat-option>\n\t\t\t}\n\t\t</mat-autocomplete>\n\t</mat-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TypeOfPipe, name: "typeOf" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
149
149
  }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AutocompleteComponent, decorators: [{
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AutocompleteComponent, decorators: [{
151
151
  type: Component,
152
152
  args: [{ selector: 'autocomplete, lib-autocomplete', standalone: true, imports: [
153
153
  ReactiveFormsModule,
@@ -169,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
169
169
  }, {
170
170
  type: Optional
171
171
  }] } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raXQvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFZLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMscUJBQXFCLEVBQXlCLE1BQU0sZ0NBQWdDLENBQUM7QUFFN0YsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7O0FBRTFDOzs7OztHQUtHO0FBZ0JILE1BQU0sT0FBTyxxQkFBcUI7SUEwRWpDLFlBQW9CLEtBQXdCO1FBQXhCLFVBQUss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QUFVO3dCQUNWLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixTQUFTO3FCQUNUO3NGQU8rQixpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CO2dCQUtyQixjQUFjO3NCQUF0QixLQUFLO2dCQW1DZSxXQUFXO3NCQUEvQixLQUFLOztzQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIGlucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIG91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Rm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge21hcCwgc3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge01hdEF1dG9jb21wbGV0ZU1vZHVsZSwgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7TWF0T3B0aW9uU2VsZWN0aW9uQ2hhbmdlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7TWF0SW5wdXRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7VHlwZU9mUGlwZX0gZnJvbSAnLi4vLi4vcGlwZXMvdHlwZS1vZi5waXBlJztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7QXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIFJldXNhYmxlIEF1dG8gQ29tcGxldGUgY29tcG9uZW50IHRoYXQgZXh0ZW5kcyBNYXRBdXRvQ29tcGxldGUgdG8gc2hvdyBDbGVhciBpY29uIGFuZCBBcnJvdyBidXR0b25zXG4gKlxuICogQGF1dGhvciBQYXZhbiBLdW1hciBKYWRkYVxuICogQHNpbmNlIDEyLjAuMFxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhdXRvY29tcGxldGUsIGxpYi1hdXRvY29tcGxldGUnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbXG5cdFx0UmVhY3RpdmVGb3Jtc01vZHVsZSxcblx0XHRUeXBlT2ZQaXBlLFxuXHRcdE1hdEZvcm1GaWVsZE1vZHVsZSxcblx0XHRNYXRBdXRvY29tcGxldGVNb2R1bGUsXG5cdFx0TWF0SW5wdXRNb2R1bGUsXG5cdFx0TWF0QnV0dG9uTW9kdWxlLFxuXHRcdE1hdEljb25Nb2R1bGUsXG5cdFx0QXN5bmNQaXBlLFxuXHRdLFxuXHR0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyQ29udGVudENoZWNrZWQge1xuXHQvKipcblx0ICogR2V0cyByZWZlcmVuY2UgaW5wdXRBdXRvQ29tcGxldGUgSFRNTCBhdHRyaWJ1dGVcblx0ICovXG5cdEBWaWV3Q2hpbGQoJ2lucHV0QXV0b0NvbXBsZXRlJykgaW5wdXRBdXRvQ29tcGxldGUhOiBFbGVtZW50UmVmO1xuXG5cdC8qKlxuXHQgKiBJbnB1dCBmb3JtIGdyb3VwIG9mIHRoZSBhdXRvIGNvbXBsZXRlXG5cdCAqL1xuXHRASW5wdXQoKSBpbnB1dEZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcblxuXHQvKipcblx0ICogTGFiZWwgb2YgdGhlIEF1dG9Db21wbGV0ZVxuXHQgKi9cblx0bGFiZWwgPSBpbnB1dCgnJyk7XG5cblx0LyoqXG5cdCAqIFBsYWNlaG9sZGVyIG9mIHRoZSBBdXRvQ29tcGxldGVcblx0ICovXG5cdHBsYWNlSG9sZGVyID0gaW5wdXQoJycpO1xuXG5cdC8qKlxuXHQgKiBBcHBlYXJhbmNlIG9mIHRoZSBBdXRvQ29tcGxldGUsIGRlZmF1bHRzIHRvIGBmaWxsYFxuXHQgKi9cblx0YXBwZWFyYW5jZSA9IGlucHV0KCdmaWxsJyk7XG5cblx0LyoqXG5cdCAqIExpc3Qgb2YgQ1NTIGNsYXNzZXMgdGhhdCBuZWVkIHRvIGFwcGxpZWQgdG8gYXV0b2NvbXBsZXRlXG5cdCAqL1xuXHRjbGFzc2VzID0gaW5wdXQoJycpO1xuXG5cdC8qKlxuXHQgKiBBdHRyaWJ1dGUgb2YgdGhlIE9iamVjdCB3aG9zZSB2YWx1ZSB3b3VsZCBiZSBzaG93biB3aGVuIHNlYXJjaGluZyBmb3IgZGF0YS4gRGVmYXVsdHMgdG8gYElEYFxuXHQgKi9cblx0YmluZExhYmVsID0gaW5wdXQoJycpO1xuXG5cdC8qKlxuXHQgKiBBdHRyaWJ1dGUgb2YgdGhlIE9iamVjdCB3aG9zZSB2YWx1ZSB3b3VsZCBiZSB1c2VkIGZvciBzZWFyY2hcblx0ICovXG5cdGJpbmRWYWx1ZSA9IGlucHV0KCdpZCcpO1xuXG5cdC8qKlxuXHQgKiBGdW5jdGlvbiB0aGF0IG1hcHMgYW4gb3B0aW9uJ3MgY29udHJvbCB2YWx1ZSB0byBpdHMgZGlzcGxheSB2YWx1ZSBpbiB0aGUgdHJpZ2dlci5cblx0ICovXG5cdEBJbnB1dCgpIEBPcHRpb25hbCgpIGRpc3BsYXlXaXRoOiAoKHZhbHVlOiBhbnkpID0+IHN0cmluZykgfCBudWxsID0gbnVsbDtcblxuXHQvKipcblx0ICogU3BlY2lmaWVzIGlmIHRoZSBhdXRvY29tcGxldGUgaXMgcmVxdWlyZWQuIERlZmF1bHQgaXMgbm90IHJlcXVpcmVkLlxuXHQgKi9cblx0cmVxdWlyZWQgPSBpbnB1dChmYWxzZSk7XG5cblx0LyoqXG5cdCAqIExpc3Qgb2YgT2JqZWN0cyB0aGF0IG5lZWQgdG8gYmUgYmluZCBhbmQgc2VhcmNoZWQgZm9yXG5cdCAqL1xuXHRkYXRhID0gaW5wdXQ8c3RyaW5nW10gfCBhbnlbXT4oKTtcblxuXHQvKipcblx0ICogRW1pdCBzZWxlY3RlZCB2YWx1ZSBvbiBzZWxlY3Rpb24gY2hhbmdlc1xuXHQgKlxuXHQgKiBAYXV0aG9yIFBhdmFuIEt1bWFyIEphZGRhXG5cdCAqIEBzaW5jZSAxMy4wLjNcblx0ICovXG5cdG9uU2VsZWN0aW9uQ2hhbmdlID0gb3V0cHV0PGFueT4oKTtcblxuXHQvKipcblx0ICogQmVoYXZpb3JTdWJqZWN0IHRoYXQgc2hvd3MgdGhlIGN1cnJlbnQgYWN0aXZlIGFycm93IGljb25cblx0ICovXG5cdGFycm93SWNvblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCdhcnJvd19kcm9wX2Rvd24nKTtcblxuXHQvKipcblx0ICogRmlsdGVyZWQgb3B0aW9ucyB3aGVuIHVzZXJcblx0ICovXG5cdGZpbHRlcmVkT3B0aW9uczogT2JzZXJ2YWJsZTxhbnlbXSB8IHVuZGVmaW5lZD4gfCB1bmRlZmluZWQ7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cblx0bmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuXHRcdHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIERlZmluZSBhdXRvY29tcGxldGUgc2VhcmNoIGZpbHRlciBvbiBzZWFyY2ggdGV4dCBjaGFuZ2VzXG5cdCAqXG5cdCAqIEBhdXRob3IgUGF2YW4gS3VtYXIgSmFkZGFcblx0ICogQHNpbmNlIDEyLjAuMFxuXHQgKi9cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLmlucHV0Rm9ybUdyb3VwPy5nZXQoJ2F1dG9jb21wbGV0ZScpPy52YWx1ZUNoYW5nZXMucGlwZShcblx0XHRcdHN0YXJ0V2l0aCgnJyksXG5cdFx0XHRtYXAoKHZhbHVlKSA9PiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogdmFsdWUgIT09IG51bGwgPyB2YWx1ZVt0aGlzLmJpbmRMYWJlbCgpXSA6ICcnKSksXG5cdFx0XHRtYXAoXG5cdFx0XHRcdChwcm9wZXJ0eU5hbWUpID0+XG5cdFx0XHRcdFx0dGhpcy5kYXRhKCk/LmZpbHRlcigob3B0aW9uKSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZydcblx0XHRcdFx0XHRcdFx0PyBvcHRpb24/LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihwcm9wZXJ0eU5hbWUudG9Mb3dlckNhc2UoKSkgPT09IDBcblx0XHRcdFx0XHRcdFx0OiBvcHRpb25bdGhpcy5iaW5kTGFiZWwoKV0/LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihwcm9wZXJ0eU5hbWUudG9Mb3dlckNhc2UoKSkgPT09IDA7XG5cdFx0XHRcdFx0fSkgPz8gdGhpcy5kYXRhKCk/LnNsaWNlKCksXG5cdFx0XHQpLFxuXHRcdCk7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXHRcdHRoaXMuZGlzcGxheUZuID0gdGhpcy5kaXNwbGF5Rm4uYmluZCh0aGlzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDbGVhciBpbnB1dCBhbmQgUmVzZXQgYXV0b2NvbXBsZXRlIGZvcm0gY29udHJvbFxuXHQgKlxuXHQgKiBAYXV0aG9yIFBhdmFuIEt1bWFyIEphZGRhXG5cdCAqIEBzaW5jZSAxMi4wLjBcblx0ICovXG5cdGNsZWFySW5wdXQoZXZ0OiBhbnkpOiB2b2lkIHtcblx0XHRldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0dGhpcy5pbnB1dEZvcm1Hcm91cC5nZXQoJ2F1dG9jb21wbGV0ZScpPy5yZXNldCgpO1xuXHRcdHRoaXMuaW5wdXRBdXRvQ29tcGxldGU/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBPcGVuIG9yIENsb3NlIHBhbmVsXG5cdCAqXG5cdCAqIEBhdXRob3IgUGF2YW4gS3VtYXIgSmFkZGFcblx0ICogQHNpbmNlIDEyLjAuMFxuXHQgKi9cblx0b3Blbk9yQ2xvc2VQYW5lbChldnQ6IGFueSwgdHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcik6IHZvaWQge1xuXHRcdGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRpZiAodHJpZ2dlci5wYW5lbE9wZW4pIHRyaWdnZXIuY2xvc2VQYW5lbCgpO1xuXHRcdGVsc2UgdHJpZ2dlci5vcGVuUGFuZWwoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEaXNwbGF5IGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCB0byBzaG93IHRoZSB2YWx1ZXNcblx0ICpcblx0ICogQGF1dGhvciBQYXZhbiBLdW1hciBKYWRkYVxuXHQgKiBAc2luY2UgMTIuMC4wXG5cdCAqL1xuXHRkaXNwbGF5Rm4ob2JqZWN0OiBhbnkpOiBzdHJpbmcge1xuXHRcdGlmICh0aGlzLmRpc3BsYXlXaXRoICE9PSB1bmRlZmluZWQgJiYgdGhpcy5kaXNwbGF5V2l0aCAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5kaXNwbGF5V2l0aCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0dGhpcy5kaXNwbGF5Rm4gPSB0aGlzLmRpc3BsYXlXaXRoLmJpbmQodGhpcyk7XG5cdFx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5V2l0aChvYmplY3QpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAodHlwZW9mIG9iamVjdCA9PT0gJ3N0cmluZycpIHJldHVybiBvYmplY3Q7XG5cdFx0XHRyZXR1cm4gb2JqZWN0ICYmIG9iamVjdFt0aGlzLmJpbmRMYWJlbCgpXSA/IG9iamVjdFt0aGlzLmJpbmRMYWJlbCgpXSA6ICcnO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBFbWl0IHNlbGVjdGVkIHZhbHVlXG5cdCAqIEBwYXJhbSAkZXZlbnQgLSBFdmVudCBlbWl0dGVkIGJ5IGF1dG9jb21wbGV0ZVxuXHQgKlxuXHQgKiBAYXV0aG9yIFBhdmFuIEt1bWFyIEphZGRhXG5cdCAqIEBzaW5jZSAxMy4wLjNcblx0ICovXG5cdGVtaXRTZWxlY3RlZFZhbHVlKCRldmVudDogTWF0T3B0aW9uU2VsZWN0aW9uQ2hhbmdlKSB7XG5cdFx0dGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KCRldmVudC5zb3VyY2UudmFsdWUpO1xuXHR9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiaW5wdXRGb3JtR3JvdXBcIj5cblx0PG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJ7eyBjbGFzc2VzKCkgfX1cIj5cblx0XHQ8bWF0LWxhYmVsPnt7IGxhYmVsKCkgfX08L21hdC1sYWJlbD5cblx0XHQ8aW5wdXRcblx0XHRcdCNpbnB1dEF1dG9Db21wbGV0ZVxuXHRcdFx0I3RyaWdnZXI9XCJtYXRBdXRvY29tcGxldGVUcmlnZ2VyXCJcblx0XHRcdFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG5cdFx0XHRbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXIoKVwiXG5cdFx0XHRbcmVxdWlyZWRdPVwicmVxdWlyZWQoKVwiXG5cdFx0XHRmb3JtQ29udHJvbE5hbWU9XCJhdXRvY29tcGxldGVcIlxuXHRcdFx0bWF0SW5wdXRcblx0XHRcdHR5cGU9XCJ0ZXh0XCIgLz5cblxuXHRcdDxkaXYgbWF0U3VmZml4IHN0eWxlPVwiZGlzcGxheTogZmxleFwiPlxuXHRcdFx0QGlmICghIWlucHV0Rm9ybUdyb3VwLmdldCgnYXV0b2NvbXBsZXRlJyk/LnZhbHVlKSB7XG5cdFx0XHRcdDxidXR0b24gKGNsaWNrKT1cImNsZWFySW5wdXQoJGV2ZW50KVwiIGFyaWEtbGFiZWw9XCJDbGVhclwiIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCI+XG5cdFx0XHRcdFx0PG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj5cblx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHR9XG5cdFx0XHQ8YnV0dG9uIChjbGljayk9XCJvcGVuT3JDbG9zZVBhbmVsKCRldmVudCwgdHJpZ2dlcilcIiBhcmlhLWxhYmVsPVwiQ2xlYXJcIiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiPlxuXHRcdFx0XHQ8bWF0LWljb24+e3sgYXJyb3dJY29uU3ViamVjdC5nZXRWYWx1ZSgpIH19PC9tYXQtaWNvbj5cblx0XHRcdDwvYnV0dG9uPlxuXHRcdDwvZGl2PlxuXG5cdFx0PG1hdC1hdXRvY29tcGxldGVcblx0XHRcdCNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcblx0XHRcdChjbG9zZWQpPVwiYXJyb3dJY29uU3ViamVjdC5uZXh0KCdhcnJvd19kcm9wX2Rvd24nKVwiXG5cdFx0XHQob3BlbmVkKT1cImFycm93SWNvblN1YmplY3QubmV4dCgnYXJyb3dfZHJvcF91cCcpXCJcblx0XHRcdChvcHRpb25TZWxlY3RlZCk9XCJhcnJvd0ljb25TdWJqZWN0Lm5leHQoJ2Fycm93X2Ryb3BfZG93bicpXCJcblx0XHRcdFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5Rm5cIj5cblx0XHRcdEBmb3IgKG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnMgfCBhc3luYzsgdHJhY2sgb3B0aW9uW2JpbmRWYWx1ZSgpXSkge1xuXHRcdFx0XHQ8bWF0LW9wdGlvbiAob25TZWxlY3Rpb25DaGFuZ2UpPVwiZW1pdFNlbGVjdGVkVmFsdWUoJGV2ZW50KVwiIFt2YWx1ZV09XCJvcHRpb25cIj5cblx0XHRcdFx0XHRAaWYgKChvcHRpb24gfCB0eXBlT2YpID09PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lcj57eyBvcHRpb24gfX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHR9IEBlbHNlIGlmICgob3B0aW9uIHwgdHlwZU9mKSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXI+e3sgb3B0aW9uW2JpbmRMYWJlbCgpXSB9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0PC9tYXQtb3B0aW9uPlxuXHRcdFx0fVxuXHRcdDwvbWF0LWF1dG9jb21wbGV0ZT5cblx0PC9tYXQtZm9ybS1maWVsZD5cbjwvZGl2PlxuIl19
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raXQvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUscUJBQXFCLEVBQTBCLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7O0FBRTVDOzs7OztHQUtHO0FBZ0JILE1BQU0sT0FBTyxxQkFBcUI7SUEwRWpDLFlBQW9CLEtBQXdCO1FBQXhCLFVBQUss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QUFVO3dCQUNWLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixTQUFTO3FCQUNUO3NGQU8rQixpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CO2dCQUtyQixjQUFjO3NCQUF0QixLQUFLO2dCQW1DZSxXQUFXO3NCQUEvQixLQUFLOztzQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIGlucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIG91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUsIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0T3B0aW9uU2VsZWN0aW9uQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgVHlwZU9mUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3R5cGUtb2YucGlwZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBSZXVzYWJsZSBBdXRvIENvbXBsZXRlIGNvbXBvbmVudCB0aGF0IGV4dGVuZHMgTWF0QXV0b0NvbXBsZXRlIHRvIHNob3cgQ2xlYXIgaWNvbiBhbmQgQXJyb3cgYnV0dG9uc1xuICpcbiAqIEBhdXRob3IgUGF2YW4gS3VtYXIgSmFkZGFcbiAqIEBzaW5jZSAxMi4wLjBcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYXV0b2NvbXBsZXRlLCBsaWItYXV0b2NvbXBsZXRlJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW1xuXHRcdFJlYWN0aXZlRm9ybXNNb2R1bGUsXG5cdFx0VHlwZU9mUGlwZSxcblx0XHRNYXRGb3JtRmllbGRNb2R1bGUsXG5cdFx0TWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuXHRcdE1hdElucHV0TW9kdWxlLFxuXHRcdE1hdEJ1dHRvbk1vZHVsZSxcblx0XHRNYXRJY29uTW9kdWxlLFxuXHRcdEFzeW5jUGlwZSxcblx0XSxcblx0dGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRDaGVja2VkIHtcblx0LyoqXG5cdCAqIEdldHMgcmVmZXJlbmNlIGlucHV0QXV0b0NvbXBsZXRlIEhUTUwgYXR0cmlidXRlXG5cdCAqL1xuXHRAVmlld0NoaWxkKCdpbnB1dEF1dG9Db21wbGV0ZScpIGlucHV0QXV0b0NvbXBsZXRlITogRWxlbWVudFJlZjtcblxuXHQvKipcblx0ICogSW5wdXQgZm9ybSBncm91cCBvZiB0aGUgYXV0byBjb21wbGV0ZVxuXHQgKi9cblx0QElucHV0KCkgaW5wdXRGb3JtR3JvdXAhOiBGb3JtR3JvdXA7XG5cblx0LyoqXG5cdCAqIExhYmVsIG9mIHRoZSBBdXRvQ29tcGxldGVcblx0ICovXG5cdGxhYmVsID0gaW5wdXQoJycpO1xuXG5cdC8qKlxuXHQgKiBQbGFjZWhvbGRlciBvZiB0aGUgQXV0b0NvbXBsZXRlXG5cdCAqL1xuXHRwbGFjZUhvbGRlciA9IGlucHV0KCcnKTtcblxuXHQvKipcblx0ICogQXBwZWFyYW5jZSBvZiB0aGUgQXV0b0NvbXBsZXRlLCBkZWZhdWx0cyB0byBgZmlsbGBcblx0ICovXG5cdGFwcGVhcmFuY2UgPSBpbnB1dCgnZmlsbCcpO1xuXG5cdC8qKlxuXHQgKiBMaXN0IG9mIENTUyBjbGFzc2VzIHRoYXQgbmVlZCB0byBhcHBsaWVkIHRvIGF1dG9jb21wbGV0ZVxuXHQgKi9cblx0Y2xhc3NlcyA9IGlucHV0KCcnKTtcblxuXHQvKipcblx0ICogQXR0cmlidXRlIG9mIHRoZSBPYmplY3Qgd2hvc2UgdmFsdWUgd291bGQgYmUgc2hvd24gd2hlbiBzZWFyY2hpbmcgZm9yIGRhdGEuIERlZmF1bHRzIHRvIGBJRGBcblx0ICovXG5cdGJpbmRMYWJlbCA9IGlucHV0KCcnKTtcblxuXHQvKipcblx0ICogQXR0cmlidXRlIG9mIHRoZSBPYmplY3Qgd2hvc2UgdmFsdWUgd291bGQgYmUgdXNlZCBmb3Igc2VhcmNoXG5cdCAqL1xuXHRiaW5kVmFsdWUgPSBpbnB1dCgnaWQnKTtcblxuXHQvKipcblx0ICogRnVuY3Rpb24gdGhhdCBtYXBzIGFuIG9wdGlvbidzIGNvbnRyb2wgdmFsdWUgdG8gaXRzIGRpc3BsYXkgdmFsdWUgaW4gdGhlIHRyaWdnZXIuXG5cdCAqL1xuXHRASW5wdXQoKSBAT3B0aW9uYWwoKSBkaXNwbGF5V2l0aDogKCh2YWx1ZTogYW55KSA9PiBzdHJpbmcpIHwgbnVsbCA9IG51bGw7XG5cblx0LyoqXG5cdCAqIFNwZWNpZmllcyBpZiB0aGUgYXV0b2NvbXBsZXRlIGlzIHJlcXVpcmVkLiBEZWZhdWx0IGlzIG5vdCByZXF1aXJlZC5cblx0ICovXG5cdHJlcXVpcmVkID0gaW5wdXQoZmFsc2UpO1xuXG5cdC8qKlxuXHQgKiBMaXN0IG9mIE9iamVjdHMgdGhhdCBuZWVkIHRvIGJlIGJpbmQgYW5kIHNlYXJjaGVkIGZvclxuXHQgKi9cblx0ZGF0YSA9IGlucHV0PHN0cmluZ1tdIHwgYW55W10+KCk7XG5cblx0LyoqXG5cdCAqIEVtaXQgc2VsZWN0ZWQgdmFsdWUgb24gc2VsZWN0aW9uIGNoYW5nZXNcblx0ICpcblx0ICogQGF1dGhvciBQYXZhbiBLdW1hciBKYWRkYVxuXHQgKiBAc2luY2UgMTMuMC4zXG5cdCAqL1xuXHRvblNlbGVjdGlvbkNoYW5nZSA9IG91dHB1dDxhbnk+KCk7XG5cblx0LyoqXG5cdCAqIEJlaGF2aW9yU3ViamVjdCB0aGF0IHNob3dzIHRoZSBjdXJyZW50IGFjdGl2ZSBhcnJvdyBpY29uXG5cdCAqL1xuXHRhcnJvd0ljb25TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnYXJyb3dfZHJvcF9kb3duJyk7XG5cblx0LyoqXG5cdCAqIEZpbHRlcmVkIG9wdGlvbnMgd2hlbiB1c2VyXG5cdCAqL1xuXHRmaWx0ZXJlZE9wdGlvbnM6IE9ic2VydmFibGU8YW55W10gfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG5cdG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcblx0XHR0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEZWZpbmUgYXV0b2NvbXBsZXRlIHNlYXJjaCBmaWx0ZXIgb24gc2VhcmNoIHRleHQgY2hhbmdlc1xuXHQgKlxuXHQgKiBAYXV0aG9yIFBhdmFuIEt1bWFyIEphZGRhXG5cdCAqIEBzaW5jZSAxMi4wLjBcblx0ICovXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5pbnB1dEZvcm1Hcm91cD8uZ2V0KCdhdXRvY29tcGxldGUnKT8udmFsdWVDaGFuZ2VzLnBpcGUoXG5cdFx0XHRzdGFydFdpdGgoJycpLFxuXHRcdFx0bWFwKCh2YWx1ZSkgPT4gKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IHZhbHVlICE9PSBudWxsID8gdmFsdWVbdGhpcy5iaW5kTGFiZWwoKV0gOiAnJykpLFxuXHRcdFx0bWFwKFxuXHRcdFx0XHQocHJvcGVydHlOYW1lKSA9PlxuXHRcdFx0XHRcdHRoaXMuZGF0YSgpPy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHR5cGVvZiBvcHRpb24gPT09ICdzdHJpbmcnXG5cdFx0XHRcdFx0XHRcdD8gb3B0aW9uPy50b0xvd2VyQ2FzZSgpLmluZGV4T2YocHJvcGVydHlOYW1lLnRvTG93ZXJDYXNlKCkpID09PSAwXG5cdFx0XHRcdFx0XHRcdDogb3B0aW9uW3RoaXMuYmluZExhYmVsKCldPy50b0xvd2VyQ2FzZSgpLmluZGV4T2YocHJvcGVydHlOYW1lLnRvTG93ZXJDYXNlKCkpID09PSAwO1xuXHRcdFx0XHRcdH0pID8/IHRoaXMuZGF0YSgpPy5zbGljZSgpLFxuXHRcdFx0KSxcblx0XHQpO1xuXHR9XG5cblx0bmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHR0aGlzLmRpc3BsYXlGbiA9IHRoaXMuZGlzcGxheUZuLmJpbmQodGhpcyk7XG5cdH1cblxuXHQvKipcblx0ICogQ2xlYXIgaW5wdXQgYW5kIFJlc2V0IGF1dG9jb21wbGV0ZSBmb3JtIGNvbnRyb2xcblx0ICpcblx0ICogQGF1dGhvciBQYXZhbiBLdW1hciBKYWRkYVxuXHQgKiBAc2luY2UgMTIuMC4wXG5cdCAqL1xuXHRjbGVhcklucHV0KGV2dDogYW55KTogdm9pZCB7XG5cdFx0ZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdHRoaXMuaW5wdXRGb3JtR3JvdXAuZ2V0KCdhdXRvY29tcGxldGUnKT8ucmVzZXQoKTtcblx0XHR0aGlzLmlucHV0QXV0b0NvbXBsZXRlPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdH1cblxuXHQvKipcblx0ICogT3BlbiBvciBDbG9zZSBwYW5lbFxuXHQgKlxuXHQgKiBAYXV0aG9yIFBhdmFuIEt1bWFyIEphZGRhXG5cdCAqIEBzaW5jZSAxMi4wLjBcblx0ICovXG5cdG9wZW5PckNsb3NlUGFuZWwoZXZ0OiBhbnksIHRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpOiB2b2lkIHtcblx0XHRldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0aWYgKHRyaWdnZXIucGFuZWxPcGVuKSB0cmlnZ2VyLmNsb3NlUGFuZWwoKTtcblx0XHRlbHNlIHRyaWdnZXIub3BlblBhbmVsKCk7XG5cdH1cblxuXHQvKipcblx0ICogRGlzcGxheSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgdG8gc2hvdyB0aGUgdmFsdWVzXG5cdCAqXG5cdCAqIEBhdXRob3IgUGF2YW4gS3VtYXIgSmFkZGFcblx0ICogQHNpbmNlIDEyLjAuMFxuXHQgKi9cblx0ZGlzcGxheUZuKG9iamVjdDogYW55KTogc3RyaW5nIHtcblx0XHRpZiAodGhpcy5kaXNwbGF5V2l0aCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZGlzcGxheVdpdGggIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuZGlzcGxheVdpdGggPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdHRoaXMuZGlzcGxheUZuID0gdGhpcy5kaXNwbGF5V2l0aC5iaW5kKHRoaXMpO1xuXHRcdFx0cmV0dXJuIHRoaXMuZGlzcGxheVdpdGgob2JqZWN0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKHR5cGVvZiBvYmplY3QgPT09ICdzdHJpbmcnKSByZXR1cm4gb2JqZWN0O1xuXHRcdFx0cmV0dXJuIG9iamVjdCAmJiBvYmplY3RbdGhpcy5iaW5kTGFiZWwoKV0gPyBvYmplY3RbdGhpcy5iaW5kTGFiZWwoKV0gOiAnJztcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRW1pdCBzZWxlY3RlZCB2YWx1ZVxuXHQgKiBAcGFyYW0gJGV2ZW50IC0gRXZlbnQgZW1pdHRlZCBieSBhdXRvY29tcGxldGVcblx0ICpcblx0ICogQGF1dGhvciBQYXZhbiBLdW1hciBKYWRkYVxuXHQgKiBAc2luY2UgMTMuMC4zXG5cdCAqL1xuXHRlbWl0U2VsZWN0ZWRWYWx1ZSgkZXZlbnQ6IE1hdE9wdGlvblNlbGVjdGlvbkNoYW5nZSkge1xuXHRcdHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCgkZXZlbnQuc291cmNlLnZhbHVlKTtcblx0fVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImlucHV0Rm9ybUdyb3VwXCI+XG5cdDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwie3sgY2xhc3NlcygpIH19XCI+XG5cdFx0PG1hdC1sYWJlbD57eyBsYWJlbCgpIH19PC9tYXQtbGFiZWw+XG5cdFx0PGlucHV0XG5cdFx0XHQjaW5wdXRBdXRvQ29tcGxldGVcblx0XHRcdCN0cmlnZ2VyPVwibWF0QXV0b2NvbXBsZXRlVHJpZ2dlclwiXG5cdFx0XHRbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuXHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyKClcIlxuXHRcdFx0W3JlcXVpcmVkXT1cInJlcXVpcmVkKClcIlxuXHRcdFx0Zm9ybUNvbnRyb2xOYW1lPVwiYXV0b2NvbXBsZXRlXCJcblx0XHRcdG1hdElucHV0XG5cdFx0XHR0eXBlPVwidGV4dFwiIC8+XG5cblx0XHQ8ZGl2IG1hdFN1ZmZpeCBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cblx0XHRcdEBpZiAoISFpbnB1dEZvcm1Hcm91cC5nZXQoJ2F1dG9jb21wbGV0ZScpPy52YWx1ZSkge1xuXHRcdFx0XHQ8YnV0dG9uIChjbGljayk9XCJjbGVhcklucHV0KCRldmVudClcIiBhcmlhLWxhYmVsPVwiQ2xlYXJcIiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiPlxuXHRcdFx0XHRcdDxtYXQtaWNvbj5jbGVhcjwvbWF0LWljb24+XG5cdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0fVxuXHRcdFx0PGJ1dHRvbiAoY2xpY2spPVwib3Blbk9yQ2xvc2VQYW5lbCgkZXZlbnQsIHRyaWdnZXIpXCIgYXJpYS1sYWJlbD1cIkNsZWFyXCIgbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIj5cblx0XHRcdFx0PG1hdC1pY29uPnt7IGFycm93SWNvblN1YmplY3QuZ2V0VmFsdWUoKSB9fTwvbWF0LWljb24+XG5cdFx0XHQ8L2J1dHRvbj5cblx0XHQ8L2Rpdj5cblxuXHRcdDxtYXQtYXV0b2NvbXBsZXRlXG5cdFx0XHQjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG5cdFx0XHQoY2xvc2VkKT1cImFycm93SWNvblN1YmplY3QubmV4dCgnYXJyb3dfZHJvcF9kb3duJylcIlxuXHRcdFx0KG9wZW5lZCk9XCJhcnJvd0ljb25TdWJqZWN0Lm5leHQoJ2Fycm93X2Ryb3BfdXAnKVwiXG5cdFx0XHQob3B0aW9uU2VsZWN0ZWQpPVwiYXJyb3dJY29uU3ViamVjdC5uZXh0KCdhcnJvd19kcm9wX2Rvd24nKVwiXG5cdFx0XHRbZGlzcGxheVdpdGhdPVwiZGlzcGxheUZuXCI+XG5cdFx0XHRAZm9yIChvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmM7IHRyYWNrIG9wdGlvbltiaW5kVmFsdWUoKV0pIHtcblx0XHRcdFx0PG1hdC1vcHRpb24gKG9uU2VsZWN0aW9uQ2hhbmdlKT1cImVtaXRTZWxlY3RlZFZhbHVlKCRldmVudClcIiBbdmFsdWVdPVwib3B0aW9uXCI+XG5cdFx0XHRcdFx0QGlmICgob3B0aW9uIHwgdHlwZU9mKSA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXI+e3sgb3B0aW9uIH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0fSBAZWxzZSBpZiAoKG9wdGlvbiB8IHR5cGVPZikgPT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyPnt7IG9wdGlvbltiaW5kTGFiZWwoKV0gfX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHR9XG5cdFx0XHRcdDwvbWF0LW9wdGlvbj5cblx0XHRcdH1cblx0XHQ8L21hdC1hdXRvY29tcGxldGU+XG5cdDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj5cbiJdfQ==
@@ -5,7 +5,7 @@ export class BaseButtonComponent {
5
5
  /**
6
6
  * Is search in progress and loading the data
7
7
  */
8
- this.loading = input(false);
8
+ this.loading = input(false, { transform: (value) => value ?? false });
9
9
  /**
10
10
  * Is button disabled
11
11
  */
@@ -59,14 +59,14 @@ export class BaseButtonComponent {
59
59
  */
60
60
  this.onBlur = output();
61
61
  }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BaseButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: BaseButtonComponent, isStandalone: true, selector: "ng-component", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, dataCy: { classPropertyName: "dataCy", publicName: "dataCy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur" }, ngImport: i0, template: ``, isInline: true }); }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BaseButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: BaseButtonComponent, isStandalone: true, selector: "ng-component", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, dataCy: { classPropertyName: "dataCy", publicName: "dataCy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur" }, ngImport: i0, template: ``, isInline: true }); }
64
64
  }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BaseButtonComponent, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BaseButtonComponent, decorators: [{
66
66
  type: Component,
67
67
  args: [{
68
68
  standalone: true,
69
69
  template: ``,
70
70
  }]
71
71
  }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2l0L3NyYy9saWIvY29tcG9uZW50cy9idXR0b25zL2Jhc2UtYnV0dG9uL2Jhc2UtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXpELE1BQU0sT0FBTyxtQkFBbUI7SUFKaEM7UUFLQzs7V0FFRztRQUNILFlBQU8sR0FBRyxLQUFLLENBQW9CLEtBQUssQ0FBQyxDQUFDO1FBRTFDOztXQUVHO1FBQ0gsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVqQzs7Ozs7O1dBTUc7UUFDSCxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZCOztXQUVHO1FBQ0gsaUJBQVksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEM7O1dBRUc7UUFDSCxVQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRCOztXQUVHO1FBQ0gsU0FBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVyQjs7V0FFRztRQUNILGFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkI7O1dBRUc7UUFDSCxVQUFLLEdBQUcsS0FBSyxFQUE4QyxDQUFDO1FBRTVEOztXQUVHO1FBQ0gsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2Qjs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFOUI7O1dBRUc7UUFDSCxZQUFPLEdBQUcsTUFBTSxFQUFjLENBQUM7UUFFL0I7O1dBRUc7UUFDSCxZQUFPLEdBQUcsTUFBTSxFQUFjLENBQUM7UUFFL0I7O1dBRUc7UUFDSCxXQUFNLEdBQUcsTUFBTSxFQUFjLENBQUM7S0FDOUI7OEdBckVZLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDIzQ0FGckIsRUFBRTs7MkZBRUEsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNWLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBgLFxufSlcbmV4cG9ydCBjbGFzcyBCYXNlQnV0dG9uQ29tcG9uZW50IHtcblx0LyoqXG5cdCAqICBJcyBzZWFyY2ggaW4gcHJvZ3Jlc3MgYW5kIGxvYWRpbmcgdGhlIGRhdGFcblx0ICovXG5cdGxvYWRpbmcgPSBpbnB1dDxib29sZWFufHVuZGVmaW5lZD4oZmFsc2UpO1xuXG5cdC8qKlxuXHQgKiAgSXMgYnV0dG9uIGRpc2FibGVkXG5cdCAqL1xuXHRkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuXHQvKipcblx0ICogVHlwZSBvZiB0aGUgYnV0dG9uLiBGb2xsb3dpbmcgdmFsdWVzIGFyZSBzdXBwb3J0ZWQuIFNlZSBCb290U3RyYXAgZG9jcyBmb3IgbW9yZSBpbmZvcm1hdGlvblxuXHQgKiA8cHJlPlxuXHQgKiAgIDEuIGJ1dHRvblxuXHQgKiAgIDIuIHN1Ym1pdFxuXHQgKiA8L3ByZT5cblx0ICovXG5cdHR5cGUgPSBpbnB1dCgnYnV0dG9uJyk7XG5cblx0LyoqXG5cdCAqIElmIHNldCwgc2hvd3Mgd2hlbiBhY3Rpb24gaW4gUHJvZ3Jlc3Ncblx0ICovXG5cdGxvYWRpbmdMYWJlbCA9IGlucHV0KCdTYXZpbmcuLi4nKTtcblxuXHQvKipcblx0ICogSWYgc2V0LCBzaG93cyB3aGVuIERlbGV0ZSBpcyBub3QgaW4gcHJvZ3Jlc3Ncblx0ICovXG5cdGxhYmVsID0gaW5wdXQoJ1NhdmUnKTtcblxuXHQvKipcblx0ICogSWYgc2V0LCBzaG93cyB0aGUgaWNvbi4gT3RoZXJ3aXNlLCBzaG93cyBkZWxldGUgaWNvblxuXHQgKi9cblx0aWNvbiA9IGlucHV0KCdzYXZlJyk7XG5cblx0LyoqXG5cdCAqIElmIHNldCwgc2hvd3MgbWF0ZXJpYWwgaWNvbiBvdGhlcndpc2UgaGlkZXMgdGhlIGljb25zXG5cdCAqL1xuXHRzaG93SWNvbiA9IGlucHV0KHRydWUpO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQsIHNldHMgdGhlIHN0eWxlIG9mIHRoZSBidXR0b25cblx0ICovXG5cdHN0eWxlID0gaW5wdXQ8eyBbbmFtZTogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkPigpO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQsIHNldHMgdGhlIGNsYXNzIG9mIHRoZSBidXR0b25cblx0ICovXG5cdGNsYXNzZXMgPSBpbnB1dCgnYnRuJyk7XG5cblx0LyoqXG5cdCAqIElmIHNldCwgc2V0cyB0aGUgZGF0YS1jeSBhdHRyaWJ1dGUgZm9yIHRoZSBidXR0b25cblx0ICovXG5cdGRhdGFDeSA9IGlucHV0KCdzYXZlLWJ1dHRvbicpO1xuXG5cdC8qKlxuXHQgKiAgT3V0cHV0IGV2ZW50IHdoZW4gYnV0dG9uIGlzIGNsaWNrZWRcblx0ICovXG5cdG9uQ2xpY2sgPSBvdXRwdXQ8TW91c2VFdmVudD4oKTtcblxuXHQvKipcblx0ICogIE91dHB1dCBldmVudCB3aGVuIGJ1dHRvbiBpcyBmb2N1c2VkXG5cdCAqL1xuXHRvbkZvY3VzID0gb3V0cHV0PEZvY3VzRXZlbnQ+KCk7XG5cblx0LyoqXG5cdCAqIE91dHB1dCBldmVudCB3aGVuIGJ1dHRvbiBpcyBibHVycmVkXG5cdCAqL1xuXHRvbkJsdXIgPSBvdXRwdXQ8Rm9jdXNFdmVudD4oKTtcbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2l0L3NyYy9saWIvY29tcG9uZW50cy9idXR0b25zL2Jhc2UtYnV0dG9uL2Jhc2UtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXpELE1BQU0sT0FBTyxtQkFBbUI7SUFKaEM7UUFLQzs7V0FFRztRQUNILFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBMEIsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFdEY7O1dBRUc7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRWpDOzs7Ozs7V0FNRztRQUNILFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdkI7O1dBRUc7UUFDSCxpQkFBWSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVsQzs7V0FFRztRQUNILFVBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEI7O1dBRUc7UUFDSCxTQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJCOztXQUVHO1FBQ0gsYUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2Qjs7V0FFRztRQUNILFVBQUssR0FBRyxLQUFLLEVBQTBCLENBQUM7UUFFeEM7O1dBRUc7UUFDSCxZQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZCOztXQUVHO1FBQ0gsV0FBTSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU5Qjs7V0FFRztRQUNILFlBQU8sR0FBRyxNQUFNLEVBQWMsQ0FBQztRQUUvQjs7V0FFRztRQUNILFlBQU8sR0FBRyxNQUFNLEVBQWMsQ0FBQztRQUUvQjs7V0FFRztRQUNILFdBQU0sR0FBRyxNQUFNLEVBQWMsQ0FBQztLQUM5Qjs4R0FyRVksbUJBQW1CO2tHQUFuQixtQkFBbUIsMjNDQUZyQixFQUFFOzsyRkFFQSxtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYGAsXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VCdXR0b25Db21wb25lbnQge1xuXHQvKipcblx0ICogIElzIHNlYXJjaCBpbiBwcm9ncmVzcyBhbmQgbG9hZGluZyB0aGUgZGF0YVxuXHQgKi9cblx0bG9hZGluZyA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcblxuXHQvKipcblx0ICogIElzIGJ1dHRvbiBkaXNhYmxlZFxuXHQgKi9cblx0ZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cblx0LyoqXG5cdCAqIFR5cGUgb2YgdGhlIGJ1dHRvbi4gRm9sbG93aW5nIHZhbHVlcyBhcmUgc3VwcG9ydGVkLiBTZWUgQm9vdFN0cmFwIGRvY3MgZm9yIG1vcmUgaW5mb3JtYXRpb25cblx0ICogPHByZT5cblx0ICogICAxLiBidXR0b25cblx0ICogICAyLiBzdWJtaXRcblx0ICogPC9wcmU+XG5cdCAqL1xuXHR0eXBlID0gaW5wdXQoJ2J1dHRvbicpO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQsIHNob3dzIHdoZW4gYWN0aW9uIGluIFByb2dyZXNzXG5cdCAqL1xuXHRsb2FkaW5nTGFiZWwgPSBpbnB1dCgnU2F2aW5nLi4uJyk7XG5cblx0LyoqXG5cdCAqIElmIHNldCwgc2hvd3Mgd2hlbiBEZWxldGUgaXMgbm90IGluIHByb2dyZXNzXG5cdCAqL1xuXHRsYWJlbCA9IGlucHV0KCdTYXZlJyk7XG5cblx0LyoqXG5cdCAqIElmIHNldCwgc2hvd3MgdGhlIGljb24uIE90aGVyd2lzZSwgc2hvd3MgZGVsZXRlIGljb25cblx0ICovXG5cdGljb24gPSBpbnB1dCgnc2F2ZScpO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQsIHNob3dzIG1hdGVyaWFsIGljb24gb3RoZXJ3aXNlIGhpZGVzIHRoZSBpY29uc1xuXHQgKi9cblx0c2hvd0ljb24gPSBpbnB1dCh0cnVlKTtcblxuXHQvKipcblx0ICogSWYgc2V0LCBzZXRzIHRoZSBzdHlsZSBvZiB0aGUgYnV0dG9uXG5cdCAqL1xuXHRzdHlsZSA9IGlucHV0PGFueSB8IG51bGwgfCB1bmRlZmluZWQ+KCk7XG5cblx0LyoqXG5cdCAqIElmIHNldCwgc2V0cyB0aGUgY2xhc3Mgb2YgdGhlIGJ1dHRvblxuXHQgKi9cblx0Y2xhc3NlcyA9IGlucHV0KCdidG4nKTtcblxuXHQvKipcblx0ICogSWYgc2V0LCBzZXRzIHRoZSBkYXRhLWN5IGF0dHJpYnV0ZSBmb3IgdGhlIGJ1dHRvblxuXHQgKi9cblx0ZGF0YUN5ID0gaW5wdXQoJ3NhdmUtYnV0dG9uJyk7XG5cblx0LyoqXG5cdCAqICBPdXRwdXQgZXZlbnQgd2hlbiBidXR0b24gaXMgY2xpY2tlZFxuXHQgKi9cblx0b25DbGljayA9IG91dHB1dDxNb3VzZUV2ZW50PigpO1xuXG5cdC8qKlxuXHQgKiAgT3V0cHV0IGV2ZW50IHdoZW4gYnV0dG9uIGlzIGZvY3VzZWRcblx0ICovXG5cdG9uRm9jdXMgPSBvdXRwdXQ8Rm9jdXNFdmVudD4oKTtcblxuXHQvKipcblx0ICogT3V0cHV0IGV2ZW50IHdoZW4gYnV0dG9uIGlzIGJsdXJyZWRcblx0ICovXG5cdG9uQmx1ciA9IG91dHB1dDxGb2N1c0V2ZW50PigpO1xufVxuIl19
@@ -12,8 +12,8 @@ export class BsLinkButtonComponent extends BaseButtonComponent {
12
12
  this.icon = input('search');
13
13
  this.classes = input('btn text-primary');
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BsLinkButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: BsLinkButtonComponent, isStandalone: true, selector: "bs-link-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsLinkButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: BsLinkButtonComponent, isStandalone: true, selector: "bs-link-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
17
17
  <a
18
18
  type="{{ type() }}"
19
19
  class="{{ classes() }}"
@@ -22,15 +22,15 @@ export class BsLinkButtonComponent extends BaseButtonComponent {
22
22
  (blur)="onBlur.emit($event)"
23
23
  [disabled]="disabled()"
24
24
  [type]="type()"
25
- [ngStyle]="style()"
25
+ [style]="style()"
26
26
  [attr.data-cy]="'edit-link-button'"
27
27
  mat-button>
28
28
  <mat-icon>{{ icon() }}</mat-icon>
29
29
  {{ label() }}
30
30
  </a>
31
- `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
31
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }] }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BsLinkButtonComponent, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsLinkButtonComponent, decorators: [{
34
34
  type: Component,
35
35
  args: [{ selector: 'bs-link-button', standalone: true, imports: [MatButton, MatIcon, EditSolidSvgComponent, MatAnchor, NgStyle], template: `
36
36
  <a
@@ -41,7 +41,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
41
41
  (blur)="onBlur.emit($event)"
42
42
  [disabled]="disabled()"
43
43
  [type]="type()"
44
- [ngStyle]="style()"
44
+ [style]="style()"
45
45
  [attr.data-cy]="'edit-link-button'"
46
46
  mat-button>
47
47
  <mat-icon>{{ icon() }}</mat-icon>
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
49
49
  </a>
50
50
  `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"] }]
51
51
  }], ctorParameters: () => [] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtbGluay1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2l0L3NyYy9saWIvY29tcG9uZW50cy9idXR0b25zL2JzLWxpbmstYnV0dG9uL2JzLWxpbmstYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBd0IxQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1CO0lBSzdEO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFMQSxVQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkIsWUFBTyxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBSTdDLENBQUM7OEdBUFcscUJBQXFCO2tHQUFyQixxQkFBcUIsd2RBbEJ2Qjs7Ozs7Ozs7Ozs7Ozs7O0VBZVQsMHJCQWhCb0IsT0FBTywySUFBeUIsU0FBUyxpS0FBRSxPQUFPOzsyRkFtQjNELHFCQUFxQjtrQkF0QmpDLFNBQVM7K0JBQ0MsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFlBQzlEOzs7Ozs7Ozs7Ozs7Ozs7RUFlVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEFuY2hvciwgTWF0QnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IEVkaXRTb2xpZFN2Z0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3N2Zy1pY29ucy9lZGl0LXNvbGlkLXN2Zy9lZGl0LXNvbGlkLXN2Zy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtYnV0dG9uL2Jhc2UtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnMtbGluay1idXR0b24nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbTWF0QnV0dG9uLCBNYXRJY29uLCBFZGl0U29saWRTdmdDb21wb25lbnQsIE1hdEFuY2hvciwgTmdTdHlsZV0sXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGFcblx0XHRcdHR5cGU9XCJ7eyB0eXBlKCkgfX1cIlxuXHRcdFx0Y2xhc3M9XCJ7eyBjbGFzc2VzKCkgfX1cIlxuXHRcdFx0KGNsaWNrKT1cIm9uQ2xpY2suZW1pdCgkZXZlbnQpXCJcblx0XHRcdChmb2N1cyk9XCJvbkZvY3VzLmVtaXQoJGV2ZW50KVwiXG5cdFx0XHQoYmx1cik9XCJvbkJsdXIuZW1pdCgkZXZlbnQpXCJcblx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcblx0XHRcdFt0eXBlXT1cInR5cGUoKVwiXG5cdFx0XHRbbmdTdHlsZV09XCJzdHlsZSgpXCJcblx0XHRcdFthdHRyLmRhdGEtY3ldPVwiJ2VkaXQtbGluay1idXR0b24nXCJcblx0XHRcdG1hdC1idXR0b24+XG5cdFx0XHQ8bWF0LWljb24+e3sgaWNvbigpIH19PC9tYXQtaWNvbj5cblx0XHRcdHt7IGxhYmVsKCkgfX1cblx0XHQ8L2E+XG5cdGAsXG5cdHN0eWxlVXJsczogWycuLi8uLi8uLi8uLi9hc3NldHMvYXBwLWJ1dHRvbnMuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJzTGlua0J1dHRvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VCdXR0b25Db21wb25lbnQge1xuXHRvdmVycmlkZSBsYWJlbCA9IGlucHV0KCdFZGl0Jyk7XG5cdG92ZXJyaWRlIGljb24gPSBpbnB1dCgnc2VhcmNoJyk7XG5cdG92ZXJyaWRlIGNsYXNzZXMgPSBpbnB1dCgnYnRuIHRleHQtcHJpbWFyeScpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cbn1cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtbGluay1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2l0L3NyYy9saWIvY29tcG9uZW50cy9idXR0b25zL2JzLWxpbmstYnV0dG9uL2JzLWxpbmstYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBd0IxQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1CO0lBSzdEO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFMQSxVQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkIsWUFBTyxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBSTdDLENBQUM7OEdBUFcscUJBQXFCO2tHQUFyQixxQkFBcUIsd2RBbEJ2Qjs7Ozs7Ozs7Ozs7Ozs7O0VBZVQsMHJCQWhCb0IsT0FBTywySUFBeUIsU0FBUzs7MkZBbUJsRCxxQkFBcUI7a0JBdEJqQyxTQUFTOytCQUNDLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxZQUM5RDs7Ozs7Ozs7Ozs7Ozs7O0VBZVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRBbmNob3IsIE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBFZGl0U29saWRTdmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zdmctaWNvbnMvZWRpdC1zb2xpZC1zdmcvZWRpdC1zb2xpZC1zdmcuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWJ1dHRvbi9iYXNlLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2JzLWxpbmstYnV0dG9uJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW01hdEJ1dHRvbiwgTWF0SWNvbiwgRWRpdFNvbGlkU3ZnQ29tcG9uZW50LCBNYXRBbmNob3IsIE5nU3R5bGVdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxhXG5cdFx0XHR0eXBlPVwie3sgdHlwZSgpIH19XCJcblx0XHRcdGNsYXNzPVwie3sgY2xhc3NlcygpIH19XCJcblx0XHRcdChjbGljayk9XCJvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG5cdFx0XHQoZm9jdXMpPVwib25Gb2N1cy5lbWl0KCRldmVudClcIlxuXHRcdFx0KGJsdXIpPVwib25CbHVyLmVtaXQoJGV2ZW50KVwiXG5cdFx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG5cdFx0XHRbdHlwZV09XCJ0eXBlKClcIlxuXHRcdFx0W3N0eWxlXT1cInN0eWxlKClcIlxuXHRcdFx0W2F0dHIuZGF0YS1jeV09XCInZWRpdC1saW5rLWJ1dHRvbidcIlxuXHRcdFx0bWF0LWJ1dHRvbj5cblx0XHRcdDxtYXQtaWNvbj57eyBpY29uKCkgfX08L21hdC1pY29uPlxuXHRcdFx0e3sgbGFiZWwoKSB9fVxuXHRcdDwvYT5cblx0YCxcblx0c3R5bGVVcmxzOiBbJy4uLy4uLy4uLy4uL2Fzc2V0cy9hcHAtYnV0dG9ucy5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnNMaW5rQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUJ1dHRvbkNvbXBvbmVudCB7XG5cdG92ZXJyaWRlIGxhYmVsID0gaW5wdXQoJ0VkaXQnKTtcblx0b3ZlcnJpZGUgaWNvbiA9IGlucHV0KCdzZWFyY2gnKTtcblx0b3ZlcnJpZGUgY2xhc3NlcyA9IGlucHV0KCdidG4gdGV4dC1wcmltYXJ5Jyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxufVxuIl19