@js-smart/ng-kit 18.0.2 → 18.0.4

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 +3 -3
  6. package/esm2022/lib/components/buttons/delete-button/delete-button.component.mjs +3 -3
  7. package/esm2022/lib/components/buttons/edit-bs-button/edit-bs-button.component.mjs +3 -3
  8. package/esm2022/lib/components/buttons/edit-button/edit-button.component.mjs +3 -3
  9. package/esm2022/lib/components/buttons/edit-svg-icon-button/edit-svg-icon-button.component.mjs +3 -3
  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 +3 -3
  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 +3 -3
  14. package/esm2022/lib/components/buttons/save-primary-button/save-primary-button.component.mjs +3 -3
  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 +3 -3
  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 +3 -3
  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 +88 -88
  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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2l0L3NyYy9saWIvY29tcG9uZW50cy9idXR0b25zL2Jhc2UtYnV0dG9uL2Jhc2UtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXpELE1BQU0sT0FBTyxtQkFBbUI7SUFKaEM7UUFLQzs7V0FFRztRQUNILFlBQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRWpDOzs7Ozs7V0FNRztRQUNILFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdkI7O1dBRUc7UUFDSCxpQkFBWSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVsQzs7V0FFRztRQUNILFVBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEI7O1dBRUc7UUFDSCxTQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJCOztXQUVHO1FBQ0gsYUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2Qjs7V0FFRztRQUNILFVBQUssR0FBRyxLQUFLLEVBQThDLENBQUM7UUFFNUQ7O1dBRUc7UUFDSCxZQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZCOztXQUVHO1FBQ0gsV0FBTSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU5Qjs7V0FFRztRQUNILFlBQU8sR0FBRyxNQUFNLEVBQWMsQ0FBQztRQUUvQjs7V0FFRztRQUNILFlBQU8sR0FBRyxNQUFNLEVBQWMsQ0FBQztRQUUvQjs7V0FFRztRQUNILFdBQU0sR0FBRyxNQUFNLEVBQWMsQ0FBQztLQUM5Qjs4R0FyRVksbUJBQW1CO2tHQUFuQixtQkFBbUIsMjNDQUZyQixFQUFFOzsyRkFFQSxtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYGAsXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VCdXR0b25Db21wb25lbnQge1xuXHQvKipcblx0ICogIElzIHNlYXJjaCBpbiBwcm9ncmVzcyBhbmQgbG9hZGluZyB0aGUgZGF0YVxuXHQgKi9cblx0bG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuXHQvKipcblx0ICogIElzIGJ1dHRvbiBkaXNhYmxlZFxuXHQgKi9cblx0ZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cblx0LyoqXG5cdCAqIFR5cGUgb2YgdGhlIGJ1dHRvbi4gRm9sbG93aW5nIHZhbHVlcyBhcmUgc3VwcG9ydGVkLiBTZWUgQm9vdFN0cmFwIGRvY3MgZm9yIG1vcmUgaW5mb3JtYXRpb25cblx0ICogPHByZT5cblx0ICogICAxLiBidXR0b25cblx0ICogICAyLiBzdWJtaXRcblx0ICogPC9wcmU+XG5cdCAqL1xuXHR0eXBlID0gaW5wdXQoJ2J1dHRvbicpO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQsIHNob3dzIHdoZW4gYWN0aW9uIGluIFByb2dyZXNzXG5cdCAqL1xuXHRsb2FkaW5nTGFiZWwgPSBpbnB1dCgnU2F2aW5nLi4uJyk7XG5cblx0LyoqXG5cdCAqIElmIHNldCwgc2hvd3Mgd2hlbiBEZWxldGUgaXMgbm90IGluIHByb2dyZXNzXG5cdCAqL1xuXHRsYWJlbCA9IGlucHV0KCdTYXZlJyk7XG5cblx0LyoqXG5cdCAqIElmIHNldCwgc2hvd3MgdGhlIGljb24uIE90aGVyd2lzZSwgc2hvd3MgZGVsZXRlIGljb25cblx0ICovXG5cdGljb24gPSBpbnB1dCgnc2F2ZScpO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQsIHNob3dzIG1hdGVyaWFsIGljb24gb3RoZXJ3aXNlIGhpZGVzIHRoZSBpY29uc1xuXHQgKi9cblx0c2hvd0ljb24gPSBpbnB1dCh0cnVlKTtcblxuXHQvKipcblx0ICogSWYgc2V0LCBzZXRzIHRoZSBzdHlsZSBvZiB0aGUgYnV0dG9uXG5cdCAqL1xuXHRzdHlsZSA9IGlucHV0PHsgW25hbWU6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZD4oKTtcblxuXHQvKipcblx0ICogSWYgc2V0LCBzZXRzIHRoZSBjbGFzcyBvZiB0aGUgYnV0dG9uXG5cdCAqL1xuXHRjbGFzc2VzID0gaW5wdXQoJ2J0bicpO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQsIHNldHMgdGhlIGRhdGEtY3kgYXR0cmlidXRlIGZvciB0aGUgYnV0dG9uXG5cdCAqL1xuXHRkYXRhQ3kgPSBpbnB1dCgnc2F2ZS1idXR0b24nKTtcblxuXHQvKipcblx0ICogIE91dHB1dCBldmVudCB3aGVuIGJ1dHRvbiBpcyBjbGlja2VkXG5cdCAqL1xuXHRvbkNsaWNrID0gb3V0cHV0PE1vdXNlRXZlbnQ+KCk7XG5cblx0LyoqXG5cdCAqICBPdXRwdXQgZXZlbnQgd2hlbiBidXR0b24gaXMgZm9jdXNlZFxuXHQgKi9cblx0b25Gb2N1cyA9IG91dHB1dDxGb2N1c0V2ZW50PigpO1xuXG5cdC8qKlxuXHQgKiBPdXRwdXQgZXZlbnQgd2hlbiBidXR0b24gaXMgYmx1cnJlZFxuXHQgKi9cblx0b25CbHVyID0gb3V0cHV0PEZvY3VzRXZlbnQ+KCk7XG59XG4iXX0=
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() }}"
@@ -30,7 +30,7 @@ export class BsLinkButtonComponent extends BaseButtonComponent {
30
30
  </a>
31
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"] }] }); }
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
@@ -14,8 +14,8 @@ export class DeleteButtonComponent extends BaseButtonComponent {
14
14
  this.icon = input('delete');
15
15
  this.classes = input('delete-button');
16
16
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DeleteButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: DeleteButtonComponent, isStandalone: true, selector: "delete-button", inputs: { 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 }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DeleteButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: DeleteButtonComponent, isStandalone: true, selector: "delete-button", inputs: { 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 }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
19
19
  <button
20
20
  mat-raised-button
21
21
  class="btn {{ classes() }}"
@@ -36,7 +36,7 @@ export class DeleteButtonComponent extends BaseButtonComponent {
36
36
  </button>
37
37
  `, 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: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DeleteButtonComponent, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DeleteButtonComponent, decorators: [{
40
40
  type: Component,
41
41
  args: [{ selector: 'delete-button', standalone: true, imports: [MatButtonModule, MatIconModule, NgStyle], template: `
42
42
  <button
@@ -13,8 +13,8 @@ export class EditBsButtonComponent extends BaseButtonComponent {
13
13
  this.label = input('Edit');
14
14
  this.classes = input('text-primary');
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EditBsButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: EditBsButtonComponent, isStandalone: true, selector: "edit-bs-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: EditBsButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: EditBsButtonComponent, isStandalone: true, selector: "edit-bs-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
18
18
  <button
19
19
  color="primary"
20
20
  type="{{ type() }}"
@@ -32,7 +32,7 @@ export class EditBsButtonComponent extends BaseButtonComponent {
32
32
  </button>
33
33
  `, 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: EditSolidSvgComponent, selector: "edit-solid-svg" }] }); }
34
34
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EditBsButtonComponent, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: EditBsButtonComponent, decorators: [{
36
36
  type: Component,
37
37
  args: [{ selector: 'edit-bs-button', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, EditSolidSvgComponent], template: `
38
38
  <button