@js-smart/ng-kit 18.6.1 → 19.0.0

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 (38) hide show
  1. package/fesm2022/js-smart-ng-kit.mjs +109 -110
  2. package/fesm2022/js-smart-ng-kit.mjs.map +1 -1
  3. package/lib/util/progress-util.d.ts +0 -6
  4. package/package.json +5 -6
  5. package/esm2022/js-smart-ng-kit.mjs +0 -5
  6. package/esm2022/lib/components/alert/alert.component.mjs +0 -95
  7. package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +0 -172
  8. package/esm2022/lib/components/buttons/base-button/base-button.component.mjs +0 -72
  9. package/esm2022/lib/components/buttons/bs-link-button/bs-link-button.component.mjs +0 -52
  10. package/esm2022/lib/components/buttons/delete-button/delete-button.component.mjs +0 -62
  11. package/esm2022/lib/components/buttons/edit-bs-button/edit-bs-button.component.mjs +0 -54
  12. package/esm2022/lib/components/buttons/edit-button/edit-button.component.mjs +0 -49
  13. package/esm2022/lib/components/buttons/edit-svg-icon-button/edit-svg-icon-button.component.mjs +0 -51
  14. package/esm2022/lib/components/buttons/excel-export-button/excel-export-button.component.mjs +0 -14
  15. package/esm2022/lib/components/buttons/manage-button/manage-button.component.mjs +0 -49
  16. package/esm2022/lib/components/buttons/pdf-export-button/pdf-export-button.component.mjs +0 -13
  17. package/esm2022/lib/components/buttons/primary-button/primary-button.component.mjs +0 -61
  18. package/esm2022/lib/components/buttons/save-primary-button/save-primary-button.component.mjs +0 -60
  19. package/esm2022/lib/components/buttons/search-button/search-button.component.mjs +0 -52
  20. package/esm2022/lib/components/buttons/success-button/success-button.component.mjs +0 -65
  21. package/esm2022/lib/components/buttons/view-button/view-button.component.mjs +0 -41
  22. package/esm2022/lib/components/buttons/view-primary-button/view-primary-button.component.mjs +0 -49
  23. package/esm2022/lib/components/confirm-dialog/confirm-dialog.component.mjs +0 -63
  24. package/esm2022/lib/components/ngx-spinner/ngx-spinner.component.mjs +0 -195
  25. package/esm2022/lib/components/ngx-spinner/ngx-spinner.enum.mjs +0 -16
  26. package/esm2022/lib/components/ngx-spinner/ngx-spinner.service.mjs +0 -71
  27. package/esm2022/lib/components/ngx-spinner/safe-html.pipe.mjs +0 -24
  28. package/esm2022/lib/components/snack-bar/error-snack-bar/error-snack-bar.component.mjs +0 -50
  29. package/esm2022/lib/components/snack-bar/success-snack-bar/success-snack-bar.component.mjs +0 -50
  30. package/esm2022/lib/components/spinner/spinner.component.mjs +0 -31
  31. package/esm2022/lib/directives/ngx-print.directive.mjs +0 -255
  32. package/esm2022/lib/directives/prevent-multiple-clicks.directive.mjs +0 -44
  33. package/esm2022/lib/pipes/type-of.pipe.mjs +0 -17
  34. package/esm2022/lib/services/mat-snack-bar.service.mjs +0 -82
  35. package/esm2022/lib/svg-icons/edit-solid-svg/edit-solid-svg.component.mjs +0 -22
  36. package/esm2022/lib/types/progress-state.mjs +0 -2
  37. package/esm2022/lib/util/progress-util.mjs +0 -80
  38. package/esm2022/public-api.mjs +0 -33
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@js-smart/ng-kit",
3
- "version": "18.6.1",
3
+ "version": "19.0.0",
4
4
  "license": "MIT",
5
5
  "author": "Pavan Kumar Jadda",
6
6
  "private": false,
@@ -9,7 +9,8 @@
9
9
  "angular-15",
10
10
  "angular-16",
11
11
  "angular-17",
12
- "angular-18"
12
+ "angular-18",
13
+ "angular-19"
13
14
  ],
14
15
  "contributors": [
15
16
  {
@@ -24,8 +25,8 @@
24
25
  "url": "https://github.com/js-smart/ng-kit/issues"
25
26
  },
26
27
  "peerDependencies": {
27
- "@angular/common": ">18.2.0",
28
- "@angular/core": ">18.2.0"
28
+ "@angular/common": ">19.0.0",
29
+ "@angular/core": ">19.0.0"
29
30
  },
30
31
  "dependencies": {
31
32
  "tslib": "^2.6.2"
@@ -39,8 +40,6 @@
39
40
  },
40
41
  ".": {
41
42
  "types": "./index.d.ts",
42
- "esm2022": "./esm2022/js-smart-ng-kit.mjs",
43
- "esm": "./esm2022/js-smart-ng-kit.mjs",
44
43
  "default": "./fesm2022/js-smart-ng-kit.mjs"
45
44
  }
46
45
  }
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMtc21hcnQtbmcta2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbmcta2l0L3NyYy9qcy1zbWFydC1uZy1raXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,95 +0,0 @@
1
- import { Component, input, signal } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Boostrap Alert component that can be used to alert messages to the user
6
- *
7
- * @author Pavan Kumar Jadda
8
- * @since 12.0.0
9
- */
10
- export class AlertComponent {
11
- constructor(cdr) {
12
- this.cdr = cdr;
13
- /**
14
- * Type of the BootStrap Alert. Following values are supported. See BootStrap docs for more information
15
- * <pre>
16
- * 1. info
17
- * 2. primary
18
- * 3. secondary
19
- * 4. success
20
- * 5. warning
21
- * 6. danger
22
- * 7. dark
23
- * 8. light
24
- * </pre>
25
- */
26
- this.type = input('info');
27
- /**
28
- * Is alert visible or open
29
- */
30
- this.isOpen = input(true);
31
- /**
32
- * Writable signal for isOpen
33
- */
34
- this.open = signal(this.isOpen());
35
- /**
36
- * If set, displays an inline “Close” button
37
- */
38
- this.dismissible = input(true);
39
- /**
40
- * If set, dismisses the alert after Dismiss Timeout
41
- */
42
- this.dismissOnTimeout = input(true);
43
- /**
44
- * Number in milliseconds, after which alert will be closed. Default value is 5000 ms
45
- */
46
- this.dismissTimeout = input(5000);
47
- /**
48
- * Additional classes to be added to the alert. This can be used to add custom styles to the alert
49
- */
50
- this.class = input('');
51
- }
52
- /**
53
- * Initialize the component and settings
54
- *
55
- * @author Pavan Kumar Jadda
56
- * @since 12.0.0
57
- */
58
- ngOnInit() {
59
- this.openAlert();
60
- if (this.dismissOnTimeout()) {
61
- setTimeout(() => {
62
- this.closeAlert();
63
- this.cdr.markForCheck();
64
- }, this.dismissTimeout());
65
- }
66
- }
67
- /**
68
- * Closes BootStrap Alert if not open
69
- *
70
- * @author Pavan Kumar Jadda
71
- * @since 12.0.0
72
- */
73
- closeAlert() {
74
- if (!this.isOpen()) {
75
- return;
76
- }
77
- this.open.set(false);
78
- }
79
- /**
80
- * Opens Bootstrap Alert
81
- *
82
- * @author Pavan Kumar Jadda
83
- * @since 12.0.0
84
- */
85
- openAlert() {
86
- this.open.set(true);
87
- }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AlertComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", 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
- }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AlertComponent, decorators: [{
92
- type: Component,
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
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2l0L3NyYy9saWIvY29tcG9uZW50cy9hbGVydC9hbGVydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raXQvc3JjL2xpYi9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUvQzs7Ozs7R0FLRztBQVFILE1BQU0sT0FBTyxjQUFjO0lBOEMxQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTdDMUM7Ozs7Ozs7Ozs7OztXQVlHO1FBQ0gsU0FBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVyQjs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckI7O1dBRUc7UUFDSCxTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRTdCOztXQUVHO1FBQ0gsZ0JBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUI7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0I7O1dBRUc7UUFDSCxtQkFBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3Qjs7V0FFRztRQUNILFVBQUssR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFMkIsQ0FBQztJQUU5Qzs7Ozs7T0FLRztJQUNILFFBQVE7UUFDUCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDO1lBQzdCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pCLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1IsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLFNBQVM7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsQ0FBQzs4R0F0RlcsY0FBYztrR0FBZCxjQUFjLHMzQkNoQjNCLDRjQVlBLDZIREFXLFlBQVk7OzJGQUlWLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0Msa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBCb29zdHJhcCBBbGVydCBjb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCB0byBhbGVydCBtZXNzYWdlcyB0byB0aGUgdXNlclxuICpcbiAqIEBhdXRob3IgUGF2YW4gS3VtYXIgSmFkZGFcbiAqIEBzaW5jZSAxMi4wLjBcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbGliLWFsZXJ0LCBhbGVydCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuXHR0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9hbGVydC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBbGVydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdC8qKlxuXHQgKiBUeXBlIG9mIHRoZSBCb290U3RyYXAgQWxlcnQuIEZvbGxvd2luZyB2YWx1ZXMgYXJlIHN1cHBvcnRlZC4gU2VlIEJvb3RTdHJhcCBkb2NzIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cdCAqIDxwcmU+XG5cdCAqICAgMS4gaW5mb1xuXHQgKiAgIDIuIHByaW1hcnlcblx0ICogICAzLiBzZWNvbmRhcnlcblx0ICogICA0LiBzdWNjZXNzXG5cdCAqICAgNS4gd2FybmluZ1xuXHQgKiAgIDYuIGRhbmdlclxuXHQgKiAgIDcuIGRhcmtcblx0ICogICA4LiBsaWdodFxuXHQgKiA8L3ByZT5cblx0ICovXG5cdHR5cGUgPSBpbnB1dCgnaW5mbycpO1xuXG5cdC8qKlxuXHQgKiAgSXMgYWxlcnQgdmlzaWJsZSBvciBvcGVuXG5cdCAqL1xuXHRpc09wZW4gPSBpbnB1dCh0cnVlKTtcblxuXHQvKipcblx0ICogIFdyaXRhYmxlIHNpZ25hbCBmb3IgaXNPcGVuXG5cdCAqL1xuXHRvcGVuID0gc2lnbmFsKHRoaXMuaXNPcGVuKCkpO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQsIGRpc3BsYXlzIGFuIGlubGluZSDigJxDbG9zZeKAnSBidXR0b25cblx0ICovXG5cdGRpc21pc3NpYmxlID0gaW5wdXQodHJ1ZSk7XG5cblx0LyoqXG5cdCAqIElmIHNldCwgZGlzbWlzc2VzIHRoZSBhbGVydCBhZnRlciBEaXNtaXNzIFRpbWVvdXRcblx0ICovXG5cdGRpc21pc3NPblRpbWVvdXQgPSBpbnB1dCh0cnVlKTtcblxuXHQvKipcblx0ICogTnVtYmVyIGluIG1pbGxpc2Vjb25kcywgYWZ0ZXIgd2hpY2ggYWxlcnQgd2lsbCBiZSBjbG9zZWQuIERlZmF1bHQgdmFsdWUgaXMgNTAwMCBtc1xuXHQgKi9cblx0ZGlzbWlzc1RpbWVvdXQgPSBpbnB1dCg1MDAwKTtcblxuXHQvKipcblx0ICogQWRkaXRpb25hbCBjbGFzc2VzIHRvIGJlIGFkZGVkIHRvIHRoZSBhbGVydC4gVGhpcyBjYW4gYmUgdXNlZCB0byBhZGQgY3VzdG9tIHN0eWxlcyB0byB0aGUgYWxlcnRcblx0ICovXG5cdGNsYXNzID0gaW5wdXQoJycpO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuXHQvKipcblx0ICogSW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50IGFuZCBzZXR0aW5nc1xuXHQgKlxuXHQgKiBAYXV0aG9yIFBhdmFuIEt1bWFyIEphZGRhXG5cdCAqIEBzaW5jZSAxMi4wLjBcblx0ICovXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdHRoaXMub3BlbkFsZXJ0KCk7XG5cblx0XHRpZiAodGhpcy5kaXNtaXNzT25UaW1lb3V0KCkpIHtcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmNsb3NlQWxlcnQoKTtcblx0XHRcdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdFx0XHR9LCB0aGlzLmRpc21pc3NUaW1lb3V0KCkpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDbG9zZXMgQm9vdFN0cmFwIEFsZXJ0IGlmIG5vdCBvcGVuXG5cdCAqXG5cdCAqIEBhdXRob3IgUGF2YW4gS3VtYXIgSmFkZGFcblx0ICogQHNpbmNlIDEyLjAuMFxuXHQgKi9cblx0Y2xvc2VBbGVydCgpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuaXNPcGVuKCkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5vcGVuLnNldChmYWxzZSk7XG5cdH1cblxuXHQvKipcblx0ICogT3BlbnMgQm9vdHN0cmFwIEFsZXJ0XG5cdCAqXG5cdCAqIEBhdXRob3IgUGF2YW4gS3VtYXIgSmFkZGFcblx0ICogQHNpbmNlIDEyLjAuMFxuXHQgKi9cblx0cHJpdmF0ZSBvcGVuQWxlcnQoKTogdm9pZCB7XG5cdFx0dGhpcy5vcGVuLnNldCh0cnVlKTtcblx0fVxufVxuIiwiQGlmIChvcGVuKCkpIHtcblx0PGRpdiBjbGFzcz1cInJvdyB7eyBjbGFzcygpIH19XCI+XG5cdFx0PGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMTIgY29sLW1kLWF1dG8gbXgtYXV0b1wiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXt7IHR5cGUoKSB9fSBhbGVydC1kaXNtaXNzaWJsZSBhbGVydF9kaXZcIiByb2xlPVwiYWxlcnRcIj5cblx0XHRcdFx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXHRcdFx0XHRAaWYgKGRpc21pc3NpYmxlKCkpIHtcblx0XHRcdFx0XHQ8YnV0dG9uIChjbGljayk9XCJjbG9zZUFsZXJ0KClcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0bi1jbG9zZVwiIGRhdGEtYnMtZGlzbWlzcz1cImFsZXJ0XCIgdHlwZT1cImJ1dHRvblwiPjwvYnV0dG9uPlxuXHRcdFx0XHR9XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG59XG4iXX0=
@@ -1,172 +0,0 @@
1
- import { Component, Input, input, Optional, output, ViewChild, } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { ReactiveFormsModule } from '@angular/forms';
4
- import { map, startWith } from 'rxjs/operators';
5
- import { MatAutocompleteModule } from '@angular/material/autocomplete';
6
- import { MatFormFieldModule } from '@angular/material/form-field';
7
- import { MatInputModule } from '@angular/material/input';
8
- import { TypeOfPipe } from '../../pipes/type-of.pipe';
9
- import { MatButtonModule } from '@angular/material/button';
10
- import { MatIconModule } from '@angular/material/icon';
11
- import { AsyncPipe } from '@angular/common';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/forms";
14
- import * as i2 from "@angular/material/form-field";
15
- import * as i3 from "@angular/material/autocomplete";
16
- import * as i4 from "@angular/material/core";
17
- import * as i5 from "@angular/material/input";
18
- import * as i6 from "@angular/material/button";
19
- import * as i7 from "@angular/material/icon";
20
- /**
21
- * Reusable Auto Complete component that extends MatAutoComplete to show Clear icon and Arrow buttons
22
- *
23
- * @author Pavan Kumar Jadda
24
- * @since 12.0.0
25
- */
26
- export class AutocompleteComponent {
27
- constructor(cdRef) {
28
- this.cdRef = cdRef;
29
- /**
30
- * Label of the AutoComplete
31
- */
32
- this.label = input('');
33
- /**
34
- * Placeholder of the AutoComplete
35
- */
36
- this.placeHolder = input('');
37
- /**
38
- * Appearance of the AutoComplete, defaults to `fill`
39
- */
40
- this.appearance = input('fill');
41
- /**
42
- * List of CSS classes that need to applied to autocomplete
43
- */
44
- this.classes = input('');
45
- /**
46
- * Attribute of the Object whose value would be shown when searching for data. Defaults to `ID`
47
- */
48
- this.bindLabel = input('');
49
- /**
50
- * Attribute of the Object whose value would be used for search
51
- */
52
- this.bindValue = input('id');
53
- /**
54
- * Function that maps an option's control value to its display value in the trigger.
55
- */
56
- this.displayWith = null;
57
- /**
58
- * Specifies if the autocomplete is required. Default is not required.
59
- */
60
- this.required = input(false);
61
- /**
62
- * List of Objects that need to be bind and searched for
63
- */
64
- this.data = input();
65
- /**
66
- * Emit selected value on selection changes
67
- *
68
- * @author Pavan Kumar Jadda
69
- * @since 13.0.3
70
- */
71
- this.onSelectionChange = output();
72
- /**
73
- * BehaviorSubject that shows the current active arrow icon
74
- */
75
- this.arrowIconSubject = new BehaviorSubject('arrow_drop_down');
76
- }
77
- ngAfterContentChecked() {
78
- this.cdRef.detectChanges();
79
- }
80
- /**
81
- * Define autocomplete search filter on search text changes
82
- *
83
- * @author Pavan Kumar Jadda
84
- * @since 12.0.0
85
- */
86
- ngOnInit() {
87
- this.filteredOptions = this.inputFormGroup?.get('autocomplete')?.valueChanges.pipe(startWith(''), map((value) => (typeof value === 'string' ? value : value !== null ? value[this.bindLabel()] : '')), map((propertyName) => this.data()?.filter((option) => {
88
- return typeof option === 'string'
89
- ? option?.toLowerCase().indexOf(propertyName.toLowerCase()) === 0
90
- : option[this.bindLabel()]?.toLowerCase().indexOf(propertyName.toLowerCase()) === 0;
91
- }) ?? this.data()?.slice()));
92
- }
93
- ngOnChanges(_changes) {
94
- this.displayFn = this.displayFn.bind(this);
95
- }
96
- /**
97
- * Clear input and Reset autocomplete form control
98
- *
99
- * @author Pavan Kumar Jadda
100
- * @since 12.0.0
101
- */
102
- clearInput(evt) {
103
- evt.stopPropagation();
104
- this.inputFormGroup.get('autocomplete')?.reset();
105
- this.inputAutoComplete?.nativeElement.focus();
106
- }
107
- /**
108
- * Open or Close panel
109
- *
110
- * @author Pavan Kumar Jadda
111
- * @since 12.0.0
112
- */
113
- openOrClosePanel(evt, trigger) {
114
- evt.stopPropagation();
115
- if (trigger.panelOpen)
116
- trigger.closePanel();
117
- else
118
- trigger.openPanel();
119
- }
120
- /**
121
- * Display function that is used to show the values
122
- *
123
- * @author Pavan Kumar Jadda
124
- * @since 12.0.0
125
- */
126
- displayFn(object) {
127
- if (this.displayWith !== undefined && this.displayWith !== null && typeof this.displayWith === 'function') {
128
- this.displayFn = this.displayWith.bind(this);
129
- return this.displayWith(object);
130
- }
131
- else {
132
- if (typeof object === 'string')
133
- return object;
134
- return object && object[this.bindLabel()] ? object[this.bindLabel()] : '';
135
- }
136
- }
137
- /**
138
- * Emit selected value
139
- * @param $event - Event emitted by autocomplete
140
- *
141
- * @author Pavan Kumar Jadda
142
- * @since 13.0.3
143
- */
144
- emitSelectedValue($event) {
145
- this.onSelectionChange.emit($event.source.value);
146
- }
147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", 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
- }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AutocompleteComponent, decorators: [{
151
- type: Component,
152
- args: [{ selector: 'autocomplete, lib-autocomplete', standalone: true, imports: [
153
- ReactiveFormsModule,
154
- TypeOfPipe,
155
- MatFormFieldModule,
156
- MatAutocompleteModule,
157
- MatInputModule,
158
- MatButtonModule,
159
- MatIconModule,
160
- AsyncPipe,
161
- ], 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" }]
162
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { inputAutoComplete: [{
163
- type: ViewChild,
164
- args: ['inputAutoComplete']
165
- }], inputFormGroup: [{
166
- type: Input
167
- }], displayWith: [{
168
- type: Input
169
- }, {
170
- type: Optional
171
- }] } });
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==
@@ -1,72 +0,0 @@
1
- import { Component, input, output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BaseButtonComponent {
4
- constructor() {
5
- /**
6
- * Is search in progress and loading the data
7
- */
8
- this.loading = input(false, { transform: (value) => value ?? false });
9
- /**
10
- * Is button disabled
11
- */
12
- this.disabled = input(false);
13
- /**
14
- * Type of the button. Following values are supported. See BootStrap docs for more information
15
- * <pre>
16
- * 1. button
17
- * 2. submit
18
- * </pre>
19
- */
20
- this.type = input('button');
21
- /**
22
- * If set, shows when action in Progress
23
- */
24
- this.loadingLabel = input('Saving...');
25
- /**
26
- * If set, shows when Delete is not in progress
27
- */
28
- this.label = input('Save');
29
- /**
30
- * If set, shows the icon. Otherwise, shows delete icon
31
- */
32
- this.icon = input('save');
33
- /**
34
- * If set, shows material icon otherwise hides the icons
35
- */
36
- this.showIcon = input(true);
37
- /**
38
- * If set, sets the style of the button
39
- */
40
- this.style = input();
41
- /**
42
- * If set, sets the class of the button
43
- */
44
- this.classes = input('btn');
45
- /**
46
- * If set, sets the data-cy attribute for the button
47
- */
48
- this.dataCy = input('save-button');
49
- /**
50
- * Output event when button is clicked
51
- */
52
- this.onClick = output();
53
- /**
54
- * Output event when button is focused
55
- */
56
- this.onFocus = output();
57
- /**
58
- * Output event when button is blurred
59
- */
60
- this.onBlur = output();
61
- }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BaseButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", 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
- }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BaseButtonComponent, decorators: [{
66
- type: Component,
67
- args: [{
68
- standalone: true,
69
- template: ``,
70
- }]
71
- }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2l0L3NyYy9saWIvY29tcG9uZW50cy9idXR0b25zL2Jhc2UtYnV0dG9uL2Jhc2UtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXpELE1BQU0sT0FBTyxtQkFBbUI7SUFKaEM7UUFLQzs7V0FFRztRQUNILFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBMEIsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFdEY7O1dBRUc7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRWpDOzs7Ozs7V0FNRztRQUNILFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdkI7O1dBRUc7UUFDSCxpQkFBWSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVsQzs7V0FFRztRQUNILFVBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEI7O1dBRUc7UUFDSCxTQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJCOztXQUVHO1FBQ0gsYUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2Qjs7V0FFRztRQUNILFVBQUssR0FBRyxLQUFLLEVBQTBCLENBQUM7UUFFeEM7O1dBRUc7UUFDSCxZQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZCOztXQUVHO1FBQ0gsV0FBTSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU5Qjs7V0FFRztRQUNILFlBQU8sR0FBRyxNQUFNLEVBQWMsQ0FBQztRQUUvQjs7V0FFRztRQUNILFlBQU8sR0FBRyxNQUFNLEVBQWMsQ0FBQztRQUUvQjs7V0FFRztRQUNILFdBQU0sR0FBRyxNQUFNLEVBQWMsQ0FBQztLQUM5Qjs4R0FyRVksbUJBQW1CO2tHQUFuQixtQkFBbUIsMjNDQUZyQixFQUFFOzsyRkFFQSxtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYGAsXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VCdXR0b25Db21wb25lbnQge1xuXHQvKipcblx0ICogIElzIHNlYXJjaCBpbiBwcm9ncmVzcyBhbmQgbG9hZGluZyB0aGUgZGF0YVxuXHQgKi9cblx0bG9hZGluZyA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcblxuXHQvKipcblx0ICogIElzIGJ1dHRvbiBkaXNhYmxlZFxuXHQgKi9cblx0ZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cblx0LyoqXG5cdCAqIFR5cGUgb2YgdGhlIGJ1dHRvbi4gRm9sbG93aW5nIHZhbHVlcyBhcmUgc3VwcG9ydGVkLiBTZWUgQm9vdFN0cmFwIGRvY3MgZm9yIG1vcmUgaW5mb3JtYXRpb25cblx0ICogPHByZT5cblx0ICogICAxLiBidXR0b25cblx0ICogICAyLiBzdWJtaXRcblx0ICogPC9wcmU+XG5cdCAqL1xuXHR0eXBlID0gaW5wdXQoJ2J1dHRvbicpO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQsIHNob3dzIHdoZW4gYWN0aW9uIGluIFByb2dyZXNzXG5cdCAqL1xuXHRsb2FkaW5nTGFiZWwgPSBpbnB1dCgnU2F2aW5nLi4uJyk7XG5cblx0LyoqXG5cdCAqIElmIHNldCwgc2hvd3Mgd2hlbiBEZWxldGUgaXMgbm90IGluIHByb2dyZXNzXG5cdCAqL1xuXHRsYWJlbCA9IGlucHV0KCdTYXZlJyk7XG5cblx0LyoqXG5cdCAqIElmIHNldCwgc2hvd3MgdGhlIGljb24uIE90aGVyd2lzZSwgc2hvd3MgZGVsZXRlIGljb25cblx0ICovXG5cdGljb24gPSBpbnB1dCgnc2F2ZScpO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQsIHNob3dzIG1hdGVyaWFsIGljb24gb3RoZXJ3aXNlIGhpZGVzIHRoZSBpY29uc1xuXHQgKi9cblx0c2hvd0ljb24gPSBpbnB1dCh0cnVlKTtcblxuXHQvKipcblx0ICogSWYgc2V0LCBzZXRzIHRoZSBzdHlsZSBvZiB0aGUgYnV0dG9uXG5cdCAqL1xuXHRzdHlsZSA9IGlucHV0PGFueSB8IG51bGwgfCB1bmRlZmluZWQ+KCk7XG5cblx0LyoqXG5cdCAqIElmIHNldCwgc2V0cyB0aGUgY2xhc3Mgb2YgdGhlIGJ1dHRvblxuXHQgKi9cblx0Y2xhc3NlcyA9IGlucHV0KCdidG4nKTtcblxuXHQvKipcblx0ICogSWYgc2V0LCBzZXRzIHRoZSBkYXRhLWN5IGF0dHJpYnV0ZSBmb3IgdGhlIGJ1dHRvblxuXHQgKi9cblx0ZGF0YUN5ID0gaW5wdXQoJ3NhdmUtYnV0dG9uJyk7XG5cblx0LyoqXG5cdCAqICBPdXRwdXQgZXZlbnQgd2hlbiBidXR0b24gaXMgY2xpY2tlZFxuXHQgKi9cblx0b25DbGljayA9IG91dHB1dDxNb3VzZUV2ZW50PigpO1xuXG5cdC8qKlxuXHQgKiAgT3V0cHV0IGV2ZW50IHdoZW4gYnV0dG9uIGlzIGZvY3VzZWRcblx0ICovXG5cdG9uRm9jdXMgPSBvdXRwdXQ8Rm9jdXNFdmVudD4oKTtcblxuXHQvKipcblx0ICogT3V0cHV0IGV2ZW50IHdoZW4gYnV0dG9uIGlzIGJsdXJyZWRcblx0ICovXG5cdG9uQmx1ciA9IG91dHB1dDxGb2N1c0V2ZW50PigpO1xufVxuIl19
@@ -1,52 +0,0 @@
1
- import { Component, input } from '@angular/core';
2
- import { MatIcon } from '@angular/material/icon';
3
- import { MatAnchor, MatButton } from '@angular/material/button';
4
- import { EditSolidSvgComponent } from '../../../svg-icons/edit-solid-svg/edit-solid-svg.component';
5
- import { BaseButtonComponent } from '../base-button/base-button.component';
6
- import { NgStyle } from '@angular/common';
7
- import * as i0 from "@angular/core";
8
- export class BsLinkButtonComponent extends BaseButtonComponent {
9
- constructor() {
10
- super();
11
- this.label = input('Edit');
12
- this.icon = input('search');
13
- this.classes = input('btn text-primary');
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BsLinkButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", 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
- <a
18
- type="{{ type() }}"
19
- class="{{ classes() }}"
20
- (click)="onClick.emit($event)"
21
- (focus)="onFocus.emit($event)"
22
- (blur)="onBlur.emit($event)"
23
- [disabled]="disabled()"
24
- [type]="type()"
25
- [style]="style()"
26
- [attr.data-cy]="'edit-link-button'"
27
- mat-button>
28
- <mat-icon>{{ icon() }}</mat-icon>
29
- {{ label() }}
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"] }] }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BsLinkButtonComponent, decorators: [{
34
- type: Component,
35
- args: [{ selector: 'bs-link-button', standalone: true, imports: [MatButton, MatIcon, EditSolidSvgComponent, MatAnchor, NgStyle], template: `
36
- <a
37
- type="{{ type() }}"
38
- class="{{ classes() }}"
39
- (click)="onClick.emit($event)"
40
- (focus)="onFocus.emit($event)"
41
- (blur)="onBlur.emit($event)"
42
- [disabled]="disabled()"
43
- [type]="type()"
44
- [style]="style()"
45
- [attr.data-cy]="'edit-link-button'"
46
- mat-button>
47
- <mat-icon>{{ icon() }}</mat-icon>
48
- {{ label() }}
49
- </a>
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
- }], ctorParameters: () => [] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtbGluay1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2l0L3NyYy9saWIvY29tcG9uZW50cy9idXR0b25zL2JzLWxpbmstYnV0dG9uL2JzLWxpbmstYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBd0IxQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1CO0lBSzdEO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFMQSxVQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkIsWUFBTyxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBSTdDLENBQUM7OEdBUFcscUJBQXFCO2tHQUFyQixxQkFBcUIsd2RBbEJ2Qjs7Ozs7Ozs7Ozs7Ozs7O0VBZVQsMHJCQWhCb0IsT0FBTywySUFBeUIsU0FBUzs7MkZBbUJsRCxxQkFBcUI7a0JBdEJqQyxTQUFTOytCQUNDLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxZQUM5RDs7Ozs7Ozs7Ozs7Ozs7O0VBZVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRBbmNob3IsIE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBFZGl0U29saWRTdmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zdmctaWNvbnMvZWRpdC1zb2xpZC1zdmcvZWRpdC1zb2xpZC1zdmcuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWJ1dHRvbi9iYXNlLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2JzLWxpbmstYnV0dG9uJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW01hdEJ1dHRvbiwgTWF0SWNvbiwgRWRpdFNvbGlkU3ZnQ29tcG9uZW50LCBNYXRBbmNob3IsIE5nU3R5bGVdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxhXG5cdFx0XHR0eXBlPVwie3sgdHlwZSgpIH19XCJcblx0XHRcdGNsYXNzPVwie3sgY2xhc3NlcygpIH19XCJcblx0XHRcdChjbGljayk9XCJvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG5cdFx0XHQoZm9jdXMpPVwib25Gb2N1cy5lbWl0KCRldmVudClcIlxuXHRcdFx0KGJsdXIpPVwib25CbHVyLmVtaXQoJGV2ZW50KVwiXG5cdFx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG5cdFx0XHRbdHlwZV09XCJ0eXBlKClcIlxuXHRcdFx0W3N0eWxlXT1cInN0eWxlKClcIlxuXHRcdFx0W2F0dHIuZGF0YS1jeV09XCInZWRpdC1saW5rLWJ1dHRvbidcIlxuXHRcdFx0bWF0LWJ1dHRvbj5cblx0XHRcdDxtYXQtaWNvbj57eyBpY29uKCkgfX08L21hdC1pY29uPlxuXHRcdFx0e3sgbGFiZWwoKSB9fVxuXHRcdDwvYT5cblx0YCxcblx0c3R5bGVVcmxzOiBbJy4uLy4uLy4uLy4uL2Fzc2V0cy9hcHAtYnV0dG9ucy5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnNMaW5rQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUJ1dHRvbkNvbXBvbmVudCB7XG5cdG92ZXJyaWRlIGxhYmVsID0gaW5wdXQoJ0VkaXQnKTtcblx0b3ZlcnJpZGUgaWNvbiA9IGlucHV0KCdzZWFyY2gnKTtcblx0b3ZlcnJpZGUgY2xhc3NlcyA9IGlucHV0KCdidG4gdGV4dC1wcmltYXJ5Jyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxufVxuIl19
@@ -1,62 +0,0 @@
1
- import { Component, input } from '@angular/core';
2
- import { MatIconModule } from '@angular/material/icon';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { BaseButtonComponent } from '../base-button/base-button.component';
5
- import { NgStyle } from '@angular/common';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/material/button";
8
- import * as i2 from "@angular/material/icon";
9
- export class DeleteButtonComponent extends BaseButtonComponent {
10
- constructor() {
11
- super();
12
- this.loadingLabel = input('Deleting...');
13
- this.label = input('Delete');
14
- this.icon = input('delete');
15
- this.classes = input('delete-button');
16
- }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DeleteButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", 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
- <button
20
- mat-raised-button
21
- class="btn {{ classes() }}"
22
- (click)="onClick.emit($event)"
23
- (focus)="onFocus.emit($event)"
24
- (blur)="onBlur.emit($event)"
25
- [disabled]="disabled() || loading()"
26
- [type]="type()"
27
- [style]="style()"
28
- [attr.data-cy]="'delete-button'">
29
- @if (loading()) {
30
- <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
31
- }
32
- @if (!loading()) {
33
- <mat-icon>{{ icon() }}</mat-icon>
34
- }
35
- {{ loading() ? loadingLabel() : label() }}
36
- </button>
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"] }] }); }
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DeleteButtonComponent, decorators: [{
40
- type: Component,
41
- args: [{ selector: 'delete-button', standalone: true, imports: [MatButtonModule, MatIconModule, NgStyle], template: `
42
- <button
43
- mat-raised-button
44
- class="btn {{ classes() }}"
45
- (click)="onClick.emit($event)"
46
- (focus)="onFocus.emit($event)"
47
- (blur)="onBlur.emit($event)"
48
- [disabled]="disabled() || loading()"
49
- [type]="type()"
50
- [style]="style()"
51
- [attr.data-cy]="'delete-button'">
52
- @if (loading()) {
53
- <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
54
- }
55
- @if (!loading()) {
56
- <mat-icon>{{ icon() }}</mat-icon>
57
- }
58
- {{ loading() ? loadingLabel() : label() }}
59
- </button>
60
- `, 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"] }]
61
- }], ctorParameters: () => [] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raXQvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbnMvZGVsZXRlLWJ1dHRvbi9kZWxldGUtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQTRCMUMsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG1CQUFtQjtJQU03RDtRQUNDLEtBQUssRUFBRSxDQUFDO1FBTkEsaUJBQVksR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEMsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QixTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFJMUMsQ0FBQzs4R0FSVyxxQkFBcUI7a0dBQXJCLHFCQUFxQixvbUJBdEJ2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CVCx5ckJBcEJTLGVBQWUsMk5BQUUsYUFBYTs7MkZBdUI1QixxQkFBcUI7a0JBMUJqQyxTQUFTOytCQUNDLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxZQUN4Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBCYXNlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1idXR0b24vYmFzZS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdkZWxldGUtYnV0dG9uJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW01hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTmdTdHlsZV0sXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGJ1dHRvblxuXHRcdFx0bWF0LXJhaXNlZC1idXR0b25cblx0XHRcdGNsYXNzPVwiYnRuIHt7IGNsYXNzZXMoKSB9fVwiXG5cdFx0XHQoY2xpY2spPVwib25DbGljay5lbWl0KCRldmVudClcIlxuXHRcdFx0KGZvY3VzKT1cIm9uRm9jdXMuZW1pdCgkZXZlbnQpXCJcblx0XHRcdChibHVyKT1cIm9uQmx1ci5lbWl0KCRldmVudClcIlxuXHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgbG9hZGluZygpXCJcblx0XHRcdFt0eXBlXT1cInR5cGUoKVwiXG5cdFx0XHRbc3R5bGVdPVwic3R5bGUoKVwiXG5cdFx0XHRbYXR0ci5kYXRhLWN5XT1cIidkZWxldGUtYnV0dG9uJ1wiPlxuXHRcdFx0QGlmIChsb2FkaW5nKCkpIHtcblx0XHRcdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbVwiIHJvbGU9XCJzdGF0dXNcIj48L3NwYW4+XG5cdFx0XHR9XG5cdFx0XHRAaWYgKCFsb2FkaW5nKCkpIHtcblx0XHRcdFx0PG1hdC1pY29uPnt7IGljb24oKSB9fTwvbWF0LWljb24+XG5cdFx0XHR9XG5cdFx0XHR7eyBsb2FkaW5nKCkgPyBsb2FkaW5nTGFiZWwoKSA6IGxhYmVsKCkgfX1cblx0XHQ8L2J1dHRvbj5cblx0YCxcblx0c3R5bGVVcmxzOiBbJy4uLy4uLy4uLy4uL2Fzc2V0cy9hcHAtYnV0dG9ucy5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRGVsZXRlQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUJ1dHRvbkNvbXBvbmVudCB7XG5cdG92ZXJyaWRlIGxvYWRpbmdMYWJlbCA9IGlucHV0KCdEZWxldGluZy4uLicpO1xuXHRvdmVycmlkZSBsYWJlbCA9IGlucHV0KCdEZWxldGUnKTtcblx0b3ZlcnJpZGUgaWNvbiA9IGlucHV0KCdkZWxldGUnKTtcblx0b3ZlcnJpZGUgY2xhc3NlcyA9IGlucHV0KCdkZWxldGUtYnV0dG9uJyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxufVxuIl19