@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
@@ -1,49 +0,0 @@
1
- import { Component, input } from '@angular/core';
2
- import { NgStyle } from '@angular/common';
3
- import { MatButton } from '@angular/material/button';
4
- import { MatIcon } from '@angular/material/icon';
5
- import { BaseButtonComponent } from '../base-button/base-button.component';
6
- import * as i0 from "@angular/core";
7
- export class ViewPrimaryButtonComponent extends BaseButtonComponent {
8
- constructor() {
9
- super();
10
- this.label = input('View');
11
- this.icon = input('visibility');
12
- this.classes = input('btn-primary primary-button');
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ViewPrimaryButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: ViewPrimaryButtonComponent, isStandalone: true, selector: "view-primary-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: `
16
- <button
17
- mat-raised-button
18
- class="btn {{ classes() }}"
19
- (click)="onClick.emit($event)"
20
- (focus)="onFocus.emit($event)"
21
- (blur)="onBlur.emit($event)"
22
- [disabled]="disabled()"
23
- [type]="type()"
24
- [style]="style()"
25
- [attr.data-cy]="'view-button'">
26
- <mat-icon>{{ icon() }}</mat-icon>
27
- {{ label() }}
28
- </button>
29
- `, 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: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ViewPrimaryButtonComponent, decorators: [{
32
- type: Component,
33
- args: [{ selector: 'view-primary-button', standalone: true, imports: [MatButton, MatIcon, NgStyle], template: `
34
- <button
35
- mat-raised-button
36
- class="btn {{ classes() }}"
37
- (click)="onClick.emit($event)"
38
- (focus)="onFocus.emit($event)"
39
- (blur)="onBlur.emit($event)"
40
- [disabled]="disabled()"
41
- [type]="type()"
42
- [style]="style()"
43
- [attr.data-cy]="'view-button'">
44
- <mat-icon>{{ icon() }}</mat-icon>
45
- {{ label() }}
46
- </button>
47
- `, 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"] }]
48
- }], ctorParameters: () => [] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1wcmltYXJ5LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raXQvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbnMvdmlldy1wcmltYXJ5LWJ1dHRvbi92aWV3LXByaW1hcnktYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUF1QjNFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxtQkFBbUI7SUFLbEU7UUFDQyxLQUFLLEVBQUUsQ0FBQztRQUxBLFVBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsU0FBSSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzQixZQUFPLEdBQUcsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFJdkQsQ0FBQzs4R0FQVywwQkFBMEI7a0dBQTFCLDBCQUEwQiw2ZEFqQjVCOzs7Ozs7Ozs7Ozs7OztFQWNULDByQkFmUyxTQUFTLGlMQUFFLE9BQU87OzJGQWtCaEIsMEJBQTBCO2tCQXJCdEMsU0FBUzsrQkFDQyxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsWUFDNUI7Ozs7Ozs7Ozs7Ozs7O0VBY1QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBCYXNlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1idXR0b24vYmFzZS1idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAndmlldy1wcmltYXJ5LWJ1dHRvbicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtNYXRCdXR0b24sIE1hdEljb24sIE5nU3R5bGVdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxidXR0b25cblx0XHRcdG1hdC1yYWlzZWQtYnV0dG9uXG5cdFx0XHRjbGFzcz1cImJ0biB7eyBjbGFzc2VzKCkgfX1cIlxuXHRcdFx0KGNsaWNrKT1cIm9uQ2xpY2suZW1pdCgkZXZlbnQpXCJcblx0XHRcdChmb2N1cyk9XCJvbkZvY3VzLmVtaXQoJGV2ZW50KVwiXG5cdFx0XHQoYmx1cik9XCJvbkJsdXIuZW1pdCgkZXZlbnQpXCJcblx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcblx0XHRcdFt0eXBlXT1cInR5cGUoKVwiXG5cdFx0XHRbc3R5bGVdPVwic3R5bGUoKVwiXG5cdFx0XHRbYXR0ci5kYXRhLWN5XT1cIid2aWV3LWJ1dHRvbidcIj5cblx0XHRcdDxtYXQtaWNvbj57eyBpY29uKCkgfX08L21hdC1pY29uPlxuXHRcdFx0e3sgbGFiZWwoKSB9fVxuXHRcdDwvYnV0dG9uPlxuXHRgLFxuXHRzdHlsZVVybHM6IFsnLi4vLi4vLi4vLi4vYXNzZXRzL2FwcC1idXR0b25zLmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBWaWV3UHJpbWFyeUJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VCdXR0b25Db21wb25lbnQge1xuXHRvdmVycmlkZSBsYWJlbCA9IGlucHV0KCdWaWV3Jyk7XG5cdG92ZXJyaWRlIGljb24gPSBpbnB1dCgndmlzaWJpbGl0eScpO1xuXHRvdmVycmlkZSBjbGFzc2VzID0gaW5wdXQoJ2J0bi1wcmltYXJ5IHByaW1hcnktYnV0dG9uJyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxufVxuIl19
@@ -1,63 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { MatDividerModule } from '@angular/material/divider';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/dialog";
7
- import * as i2 from "@angular/material/button";
8
- import * as i3 from "@angular/material/divider";
9
- export class ConfirmDialogComponent {
10
- constructor(data, dialogRef) {
11
- this.data = data;
12
- this.dialogRef = dialogRef;
13
- // Update view with given values
14
- this.title = data.title;
15
- this.message = data.message;
16
- }
17
- onDismiss() {
18
- // Close the dialog, return true
19
- this.dialogRef.close(false);
20
- }
21
- onConfirm() {
22
- // Close the dialog, return true
23
- this.dialogRef.close(true);
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ConfirmDialogComponent, isStandalone: true, selector: "app-confirm-dialog", ngImport: i0, template: `
27
- <div class="mat-dialog-title" style="text-align: center">
28
- <h3 class="m-3 mat-headline-5 ">{{ title }}</h3>
29
- </div>
30
-
31
- <mat-divider></mat-divider>
32
- <div mat-dialog-content style="margin: 20px">
33
- <p>{{ message }}</p>
34
- </div>
35
-
36
- <div align="end" class="modal-footer" mat-dialog-actions>
37
- <button (click)="onDismiss()" mat-raised-button>No</button>
38
- <button (click)="onConfirm()" class="primary-button" mat-raised-button>Yes</button>
39
- </div>
40
- `, isInline: true, dependencies: [{ 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: MatDividerModule }, { kind: "component", type: i3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
41
- }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
43
- type: Component,
44
- args: [{ selector: 'app-confirm-dialog', standalone: true, imports: [MatButtonModule, MatDividerModule, MatDialogModule], template: `
45
- <div class="mat-dialog-title" style="text-align: center">
46
- <h3 class="m-3 mat-headline-5 ">{{ title }}</h3>
47
- </div>
48
-
49
- <mat-divider></mat-divider>
50
- <div mat-dialog-content style="margin: 20px">
51
- <p>{{ message }}</p>
52
- </div>
53
-
54
- <div align="end" class="modal-footer" mat-dialog-actions>
55
- <button (click)="onDismiss()" mat-raised-button>No</button>
56
- <button (click)="onConfirm()" class="primary-button" mat-raised-button>Yes</button>
57
- </div>
58
- ` }]
59
- }], ctorParameters: () => [{ type: undefined, decorators: [{
60
- type: Inject,
61
- args: [MAT_DIALOG_DATA]
62
- }] }, { type: i1.MatDialogRef }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2l0L3NyYy9saWIvY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7OztBQXVCN0QsTUFBTSxPQUFPLHNCQUFzQjtJQUlsQyxZQUNpQyxJQUF1QixFQUNoRCxTQUErQztRQUR0QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUNoRCxjQUFTLEdBQVQsU0FBUyxDQUFzQztRQUV0RCxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0lBRUQsU0FBUztRQUNSLGdDQUFnQztRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsU0FBUztRQUNSLGdDQUFnQztRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDOzhHQXJCVyxzQkFBc0Isa0JBS3pCLGVBQWU7a0dBTFosc0JBQXNCLDhFQWpCeEI7Ozs7Ozs7Ozs7Ozs7O0VBY1QsMkRBZlMsZUFBZSwyTkFBRSxnQkFBZ0Isa0lBQUUsZUFBZTs7MkZBa0JoRCxzQkFBc0I7a0JBckJsQyxTQUFTOytCQUNDLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLFlBQ25EOzs7Ozs7Ozs7Ozs7OztFQWNUOzswQkFRQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtY29uZmlybS1kaWFsb2cnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbTWF0QnV0dG9uTW9kdWxlLCBNYXREaXZpZGVyTW9kdWxlLCBNYXREaWFsb2dNb2R1bGVdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxkaXYgY2xhc3M9XCJtYXQtZGlhbG9nLXRpdGxlXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIj5cblx0XHRcdDxoMyBjbGFzcz1cIm0tMyBtYXQtaGVhZGxpbmUtNVx0XCI+e3sgdGl0bGUgfX08L2gzPlxuXHRcdDwvZGl2PlxuXG5cdFx0PG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG5cdFx0PGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgc3R5bGU9XCJtYXJnaW46IDIwcHhcIj5cblx0XHRcdDxwPnt7IG1lc3NhZ2UgfX08L3A+XG5cdFx0PC9kaXY+XG5cblx0XHQ8ZGl2IGFsaWduPVwiZW5kXCIgY2xhc3M9XCJtb2RhbC1mb290ZXJcIiBtYXQtZGlhbG9nLWFjdGlvbnM+XG5cdFx0XHQ8YnV0dG9uIChjbGljayk9XCJvbkRpc21pc3MoKVwiIG1hdC1yYWlzZWQtYnV0dG9uPk5vPC9idXR0b24+XG5cdFx0XHQ8YnV0dG9uIChjbGljayk9XCJvbkNvbmZpcm0oKVwiIGNsYXNzPVwicHJpbWFyeS1idXR0b25cIiBtYXQtcmFpc2VkLWJ1dHRvbj5ZZXM8L2J1dHRvbj5cblx0XHQ8L2Rpdj5cblx0YCxcblx0c3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdG1lc3NhZ2U6IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IENvbmZpcm1EaWFsb2dEYXRhLFxuXHRcdHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb25maXJtRGlhbG9nQ29tcG9uZW50Pixcblx0KSB7XG5cdFx0Ly8gVXBkYXRlIHZpZXcgd2l0aCBnaXZlbiB2YWx1ZXNcblx0XHR0aGlzLnRpdGxlID0gZGF0YS50aXRsZTtcblx0XHR0aGlzLm1lc3NhZ2UgPSBkYXRhLm1lc3NhZ2U7XG5cdH1cblxuXHRvbkRpc21pc3MoKSB7XG5cdFx0Ly8gQ2xvc2UgdGhlIGRpYWxvZywgcmV0dXJuIHRydWVcblx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZShmYWxzZSk7XG5cdH1cblxuXHRvbkNvbmZpcm0oKSB7XG5cdFx0Ly8gQ2xvc2UgdGhlIGRpYWxvZywgcmV0dXJuIHRydWVcblx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKTtcblx0fVxufVxuXG4vKipcbiAqIENsYXNzIHRvIHJlcHJlc2VudCBjb25maXJtIGRpYWxvZyBtb2RlbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maXJtRGlhbG9nRGF0YSB7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdG1lc3NhZ2U6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,195 +0,0 @@
1
- import { Component, HostListener, Input, ViewChild } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { takeUntil } from 'rxjs/operators';
4
- import { DEFAULTS, LOADERS, NgxSpinner, PRIMARY_SPINNER } from './ngx-spinner.enum';
5
- import { animate, state, style, transition, trigger } from '@angular/animations';
6
- import { SafeHtmlPipe } from './safe-html.pipe';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "./ngx-spinner.service";
9
- export class NgxSpinnerComponent {
10
- /**
11
- * Creates an instance of NgxSpinnerComponent.
12
- */
13
- constructor(spinnerService, changeDetector) {
14
- this.spinnerService = spinnerService;
15
- this.changeDetector = changeDetector;
16
- /**
17
- * To enable/disable animation
18
- */
19
- this.disableAnimation = false;
20
- /**
21
- * Spinner Object
22
- */
23
- this.spinner = new NgxSpinner();
24
- /**
25
- * Unsubscribe from spinner's observable
26
- **/
27
- this.ngUnsubscribe = new Subject();
28
- /**
29
- * To set default ngx-spinner options
30
- */
31
- this.setDefaultOptions = () => {
32
- this.spinner = new NgxSpinner({
33
- name: this.name,
34
- bdColor: this.bdColor,
35
- size: this.size,
36
- color: this.color,
37
- type: this.type,
38
- fullScreen: this.fullScreen,
39
- divArray: this.divArray,
40
- divCount: this.divCount,
41
- show: this.show,
42
- zIndex: this.zIndex,
43
- template: this.template,
44
- showSpinner: this.showSpinner,
45
- });
46
- };
47
- this.bdColor = DEFAULTS.BD_COLOR;
48
- this.zIndex = DEFAULTS.Z_INDEX;
49
- this.color = DEFAULTS.SPINNER_COLOR;
50
- this.type = DEFAULTS.SPINNER_TYPE;
51
- this.size = 'large';
52
- this.fullScreen = true;
53
- this.name = PRIMARY_SPINNER;
54
- // @ts-ignore
55
- this.template = null;
56
- this.showSpinner = false;
57
- this.divArray = [];
58
- this.divCount = 0;
59
- this.show = false;
60
- }
61
- handleKeyboardEvent(event) {
62
- if (this.spinnerDOM && this.spinnerDOM.nativeElement) {
63
- event.returnValue = false;
64
- event.preventDefault();
65
- }
66
- }
67
- /**
68
- * Initialization method
69
-
70
- */
71
- ngOnInit() {
72
- this.setDefaultOptions();
73
- this.spinnerService
74
- .getSpinner(this.name)
75
- .pipe(takeUntil(this.ngUnsubscribe))
76
- .subscribe((spinner) => {
77
- this.setDefaultOptions();
78
- Object.assign(this.spinner, spinner);
79
- if (spinner.show) {
80
- this.onInputChange();
81
- }
82
- this.changeDetector.detectChanges();
83
- });
84
- }
85
- /**
86
- * On changes event for input variables
87
- */
88
- ngOnChanges(changes) {
89
- for (const propName in changes) {
90
- if (propName) {
91
- const changedProp = changes[propName];
92
- if (changedProp.isFirstChange()) {
93
- return;
94
- }
95
- else if (typeof changedProp.currentValue !== 'undefined' && changedProp.currentValue !== changedProp.previousValue) {
96
- if (changedProp.currentValue !== '') {
97
- // @ts-ignore
98
- this.spinner[propName] = changedProp.currentValue;
99
- if (propName === 'showSpinner') {
100
- if (changedProp.currentValue) {
101
- this.spinnerService.show(this.spinner.name, this.spinner);
102
- }
103
- else {
104
- this.spinnerService.hide(this.spinner.name);
105
- }
106
- }
107
- }
108
- }
109
- }
110
- }
111
- }
112
- /**
113
- * To get class for spinner
114
- */
115
- getClass(type, size) {
116
- // @ts-ignore
117
- this.spinner.divCount = LOADERS[type];
118
- this.spinner.divArray = Array(this.spinner.divCount)
119
- .fill(0)
120
- .map((x, i) => i);
121
- let sizeClass = '';
122
- switch (size.toLowerCase()) {
123
- case 'small':
124
- sizeClass = 'la-sm';
125
- break;
126
- case 'medium':
127
- sizeClass = 'la-2x';
128
- break;
129
- case 'large':
130
- sizeClass = 'la-3x';
131
- break;
132
- default:
133
- break;
134
- }
135
- return 'la-' + type + ' ' + sizeClass;
136
- }
137
- /**
138
- * Check if input variables have changed
139
- */
140
- onInputChange() {
141
- this.spinner.class = this.getClass(this.spinner.type ?? DEFAULTS.SPINNER_TYPE, this.spinner.size ?? 'default');
142
- }
143
- /**
144
- * Component destroy event
145
- */
146
- ngOnDestroy() {
147
- this.ngUnsubscribe.next();
148
- this.ngUnsubscribe.complete();
149
- }
150
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgxSpinnerComponent, deps: [{ token: i1.NgxSpinnerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
151
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: NgxSpinnerComponent, isStandalone: true, selector: "ngx-spinner", inputs: { bdColor: "bdColor", size: "size", color: "color", type: "type", fullScreen: "fullScreen", name: "name", zIndex: "zIndex", template: "template", showSpinner: "showSpinner", disableAnimation: "disableAnimation" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "spinnerDOM", first: true, predicate: ["overlay"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (spinner.show) {\n\t<div\n\t\t#overlay\n\t\t[@.disabled]=\"disableAnimation\"\n\t\t[@fadeIn]=\"'in'\"\n\t\t[style.background-color]=\"spinner.bdColor\"\n\t\t[style.position]=\"spinner.fullScreen ? 'fixed' : 'absolute'\"\n\t\t[style.z-index]=\"spinner.zIndex\"\n\t\tclass=\"ngx-spinner-overlay\">\n\t\t@if (spinner.show) {\n\t\t\t<div [class]=\"spinner.class\" [style.color]=\"spinner.color\">\n\t\t\t\t@for (index of spinner.divArray; track index) {\n\t\t\t\t\t<div></div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t\t@if (template) {\n\t\t\t<div [innerHTML]=\"template | safeHtml\"></div>\n\t\t}\n\t\t<div [style.z-index]=\"spinner.zIndex\" class=\"loading-text\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n}\n", styles: [".la-ball-clip-rotate,.la-ball-clip-rotate>div{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.la-ball-clip-rotate{display:block;font-size:0;color:#fff}.la-ball-clip-rotate.la-dark{color:#333}.la-ball-clip-rotate>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-ball-clip-rotate{width:32px;height:32px}.la-ball-clip-rotate>div{width:32px;height:32px;background:transparent;border-width:2px;border-bottom-color:transparent;border-radius:100%;-webkit-animation:ball-clip-rotate .75s linear infinite;-moz-animation:ball-clip-rotate .75s linear infinite;-o-animation:ball-clip-rotate .75s linear infinite;animation:ball-clip-rotate .75s linear infinite}.la-ball-clip-rotate.la-sm{width:16px;height:16px}.la-ball-clip-rotate.la-sm>div{width:16px;height:16px;border-width:1px}.la-ball-clip-rotate.la-2x{width:64px;height:64px}.la-ball-clip-rotate.la-2x>div{width:64px;height:64px;border-width:4px}.la-ball-clip-rotate.la-3x{width:96px;height:96px}.la-ball-clip-rotate.la-3x>div{width:96px;height:96px;border-width:6px}@-webkit-keyframes ball-clip-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes ball-clip-rotate{0%{-moz-transform:rotate(0deg);transform:rotate(0)}50%{-moz-transform:rotate(180deg);transform:rotate(180deg)}to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes ball-clip-rotate{0%{-o-transform:rotate(0deg);transform:rotate(0)}50%{-o-transform:rotate(180deg);transform:rotate(180deg)}to{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes ball-clip-rotate{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.ngx-spinner-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay>div:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}\n/*!\n * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/)\n * Copyright 2015 Daniel Cardoso <@DanielCardoso>\n * Licensed under MIT\n */\n"], dependencies: [{ kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], animations: [
152
- trigger('fadeIn', [
153
- state('in', style({ opacity: 1 })),
154
- transition(':enter', [style({ opacity: 0 }), animate(300)]),
155
- transition(':leave', animate(200, style({ opacity: 0 }))),
156
- ]),
157
- ] }); }
158
- }
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgxSpinnerComponent, decorators: [{
160
- type: Component,
161
- args: [{ selector: 'ngx-spinner', standalone: true, imports: [SafeHtmlPipe], animations: [
162
- trigger('fadeIn', [
163
- state('in', style({ opacity: 1 })),
164
- transition(':enter', [style({ opacity: 0 }), animate(300)]),
165
- transition(':leave', animate(200, style({ opacity: 0 }))),
166
- ]),
167
- ], template: "@if (spinner.show) {\n\t<div\n\t\t#overlay\n\t\t[@.disabled]=\"disableAnimation\"\n\t\t[@fadeIn]=\"'in'\"\n\t\t[style.background-color]=\"spinner.bdColor\"\n\t\t[style.position]=\"spinner.fullScreen ? 'fixed' : 'absolute'\"\n\t\t[style.z-index]=\"spinner.zIndex\"\n\t\tclass=\"ngx-spinner-overlay\">\n\t\t@if (spinner.show) {\n\t\t\t<div [class]=\"spinner.class\" [style.color]=\"spinner.color\">\n\t\t\t\t@for (index of spinner.divArray; track index) {\n\t\t\t\t\t<div></div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t\t@if (template) {\n\t\t\t<div [innerHTML]=\"template | safeHtml\"></div>\n\t\t}\n\t\t<div [style.z-index]=\"spinner.zIndex\" class=\"loading-text\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n}\n", styles: [".la-ball-clip-rotate,.la-ball-clip-rotate>div{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.la-ball-clip-rotate{display:block;font-size:0;color:#fff}.la-ball-clip-rotate.la-dark{color:#333}.la-ball-clip-rotate>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-ball-clip-rotate{width:32px;height:32px}.la-ball-clip-rotate>div{width:32px;height:32px;background:transparent;border-width:2px;border-bottom-color:transparent;border-radius:100%;-webkit-animation:ball-clip-rotate .75s linear infinite;-moz-animation:ball-clip-rotate .75s linear infinite;-o-animation:ball-clip-rotate .75s linear infinite;animation:ball-clip-rotate .75s linear infinite}.la-ball-clip-rotate.la-sm{width:16px;height:16px}.la-ball-clip-rotate.la-sm>div{width:16px;height:16px;border-width:1px}.la-ball-clip-rotate.la-2x{width:64px;height:64px}.la-ball-clip-rotate.la-2x>div{width:64px;height:64px;border-width:4px}.la-ball-clip-rotate.la-3x{width:96px;height:96px}.la-ball-clip-rotate.la-3x>div{width:96px;height:96px;border-width:6px}@-webkit-keyframes ball-clip-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes ball-clip-rotate{0%{-moz-transform:rotate(0deg);transform:rotate(0)}50%{-moz-transform:rotate(180deg);transform:rotate(180deg)}to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes ball-clip-rotate{0%{-o-transform:rotate(0deg);transform:rotate(0)}50%{-o-transform:rotate(180deg);transform:rotate(180deg)}to{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes ball-clip-rotate{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.ngx-spinner-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay>div:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}\n/*!\n * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/)\n * Copyright 2015 Daniel Cardoso <@DanielCardoso>\n * Licensed under MIT\n */\n"] }]
168
- }], ctorParameters: () => [{ type: i1.NgxSpinnerService }, { type: i0.ChangeDetectorRef }], propDecorators: { bdColor: [{
169
- type: Input
170
- }], size: [{
171
- type: Input
172
- }], color: [{
173
- type: Input
174
- }], type: [{
175
- type: Input
176
- }], fullScreen: [{
177
- type: Input
178
- }], name: [{
179
- type: Input
180
- }], zIndex: [{
181
- type: Input
182
- }], template: [{
183
- type: Input
184
- }], showSpinner: [{
185
- type: Input
186
- }], disableAnimation: [{
187
- type: Input
188
- }], spinnerDOM: [{
189
- type: ViewChild,
190
- args: ['overlay']
191
- }], handleKeyboardEvent: [{
192
- type: HostListener,
193
- args: ['document:keydown', ['$event']]
194
- }] } });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNwaW5uZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2l0L3NyYy9saWIvY29tcG9uZW50cy9uZ3gtc3Bpbm5lci9uZ3gtc3Bpbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raXQvc3JjL2xpYi9jb21wb25lbnRzL25neC1zcGlubmVyL25neC1zcGlubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQThDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6SSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFRLE1BQU0sb0JBQW9CLENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQWdCaEQsTUFBTSxPQUFPLG1CQUFtQjtJQThFL0I7O09BRUc7SUFDSCxZQUNTLGNBQWlDLEVBQ2pDLGNBQWlDO1FBRGpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFyQzFDOztXQUVHO1FBQ00scUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ2xDOztXQUVHO1FBRUgsWUFBTyxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7UUFjdkM7O1lBRUk7UUFDSixrQkFBYSxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FB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LENBQUMsQ0FBQyxDQUFDO2FBQ3pELENBQUM7U0FDRjs7MkZBRVcsbUJBQW1CO2tCQWQvQixTQUFTOytCQUNDLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsY0FHWDt3QkFDWCxPQUFPLENBQUMsUUFBUSxFQUFFOzRCQUNqQixLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUNsQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7NEJBQzNELFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3lCQUN6RCxDQUFDO3FCQUNGO3NIQU9RLE9BQU87c0JBQWYsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLRyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkEyQmdCLFVBQVU7c0JBQS9CLFNBQVM7dUJBQUMsU0FBUztnQkF5QnBCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hTcGlubmVyU2VydmljZSB9IGZyb20gJy4vbmd4LXNwaW5uZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBERUZBVUxUUywgTE9BREVSUywgTmd4U3Bpbm5lciwgUFJJTUFSWV9TUElOTkVSLCBTaXplIH0gZnJvbSAnLi9uZ3gtc3Bpbm5lci5lbnVtJztcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgU2FmZUh0bWxQaXBlIH0gZnJvbSAnLi9zYWZlLWh0bWwucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25neC1zcGlubmVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW1NhZmVIdG1sUGlwZV0sXG5cdHRlbXBsYXRlVXJsOiAnbmd4LXNwaW5uZXIuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnbmd4LXNwaW5uZXIuY29tcG9uZW50LmNzcyddLFxuXHRhbmltYXRpb25zOiBbXG5cdFx0dHJpZ2dlcignZmFkZUluJywgW1xuXHRcdFx0c3RhdGUoJ2luJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcblx0XHRcdHRyYW5zaXRpb24oJzplbnRlcicsIFtzdHlsZSh7IG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoMzAwKV0pLFxuXHRcdFx0dHJhbnNpdGlvbignOmxlYXZlJywgYW5pbWF0ZSgyMDAsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSkpLFxuXHRcdF0pLFxuXHRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hTcGlubmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cdC8qKlxuXHQgKiBUbyBzZXQgYmFja2Ryb3AgY29sb3Jcblx0ICogT25seSBzdXBwb3J0cyBSR0JBIGNvbG9yIGZvcm1hdFxuXHQgKi9cblx0QElucHV0KCkgYmRDb2xvcjogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBUbyBzZXQgc3Bpbm5lciBzaXplXG5cdCAqL1xuXHRASW5wdXQoKSBzaXplOiBTaXplO1xuXG5cdC8qKlxuXHQgKiBUbyBzZXQgc3Bpbm5lciBjb2xvcihERUZBVUxUUy5TUElOTkVSX0NPTE9SKVxuXHQgKi9cblx0QElucHV0KCkgY29sb3I6IHN0cmluZztcblxuXHQvKipcblx0ICogVG8gc2V0IHR5cGUgb2Ygc3Bpbm5lclxuXHQgKi9cblx0QElucHV0KCkgdHlwZTogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBUbyB0b2dnbGUgZnVsbHNjcmVlbiBtb2RlXG5cdCAqL1xuXHRASW5wdXQoKSBmdWxsU2NyZWVuOiBib29sZWFuO1xuXHQvKipcblx0ICogU3Bpbm5lciBuYW1lXG5cdCAqL1xuXHRASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG5cdC8qKlxuXHQgKiB6LWluZGV4IHZhbHVlXG5cdCAqL1xuXG5cdEBJbnB1dCgpIHpJbmRleDogbnVtYmVyO1xuXHQvKipcblx0ICogQ3VzdG9tIHRlbXBsYXRlIGZvciBzcGlubmVyL2xvYWRlclxuXHQgKi9cblxuXHRASW5wdXQoKSB0ZW1wbGF0ZTogc3RyaW5nO1xuXHQvKipcblx0ICogU2hvdy9IaWRlIHRoZSBzcGlubmVyXG5cdCAqIEB0eXBlIHtib29sZWFufVxuXHQgKi9cblx0QElucHV0KCkgc2hvd1NwaW5uZXI6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIFRvIGVuYWJsZS9kaXNhYmxlIGFuaW1hdGlvblxuXHQgKi9cblx0QElucHV0KCkgZGlzYWJsZUFuaW1hdGlvbiA9IGZhbHNlO1xuXHQvKipcblx0ICogU3Bpbm5lciBPYmplY3Rcblx0ICovXG5cblx0c3Bpbm5lcjogTmd4U3Bpbm5lciA9IG5ldyBOZ3hTcGlubmVyKCk7XG5cdC8qKlxuXHQgKiBBcnJheSBmb3Igc3Bpbm5lcidzIGRpdlxuXHQgKi9cblx0ZGl2QXJyYXk6IEFycmF5PG51bWJlcj47XG5cdC8qKlxuXHQgKiBDb3VudGVyIGZvciBkaXZcblx0ICovXG5cdGRpdkNvdW50OiBudW1iZXI7XG5cdC8qKlxuXHQgKiBTaG93IHNwaW5uZXJcblx0ICoqL1xuXHRzaG93OiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBVbnN1YnNjcmliZSBmcm9tIHNwaW5uZXIncyBvYnNlcnZhYmxlXG5cdCAqKi9cblx0bmdVbnN1YnNjcmliZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cdC8qKlxuXHQgKiBFbGVtZW50IFJlZmVyZW5jZVxuXHQgKi9cblx0Ly8gQHRzLWlnbm9yZVxuXHRAVmlld0NoaWxkKCdvdmVybGF5Jykgc3Bpbm5lckRPTTtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBOZ3hTcGlubmVyQ29tcG9uZW50LlxuXHQgKi9cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBzcGlubmVyU2VydmljZTogTmd4U3Bpbm5lclNlcnZpY2UsXG5cdFx0cHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cdCkge1xuXHRcdHRoaXMuYmRDb2xvciA9IERFRkFVTFRTLkJEX0NPTE9SO1xuXHRcdHRoaXMuekluZGV4ID0gREVGQVVMVFMuWl9JTkRFWDtcblx0XHR0aGlzLmNvbG9yID0gREVGQVVMVFMuU1BJTk5FUl9DT0xPUjtcblx0XHR0aGlzLnR5cGUgPSBERUZBVUxUUy5TUElOTkVSX1RZUEU7XG5cdFx0dGhpcy5zaXplID0gJ2xhcmdlJztcblx0XHR0aGlzLmZ1bGxTY3JlZW4gPSB0cnVlO1xuXHRcdHRoaXMubmFtZSA9IFBSSU1BUllfU1BJTk5FUjtcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0dGhpcy50ZW1wbGF0ZSA9IG51bGw7XG5cdFx0dGhpcy5zaG93U3Bpbm5lciA9IGZhbHNlO1xuXHRcdHRoaXMuZGl2QXJyYXkgPSBbXTtcblx0XHR0aGlzLmRpdkNvdW50ID0gMDtcblx0XHR0aGlzLnNob3cgPSBmYWxzZTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuXHRoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG5cdFx0aWYgKHRoaXMuc3Bpbm5lckRPTSAmJiB0aGlzLnNwaW5uZXJET00ubmF0aXZlRWxlbWVudCkge1xuXHRcdFx0ZXZlbnQucmV0dXJuVmFsdWUgPSBmYWxzZTtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG4gICAqIEluaXRpYWxpemF0aW9uIG1ldGhvZFxuXG4gICAqL1xuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLnNldERlZmF1bHRPcHRpb25zKCk7XG5cdFx0dGhpcy5zcGlubmVyU2VydmljZVxuXHRcdFx0LmdldFNwaW5uZXIodGhpcy5uYW1lKVxuXHRcdFx0LnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG5cdFx0XHQuc3Vic2NyaWJlKChzcGlubmVyOiBOZ3hTcGlubmVyKSA9PiB7XG5cdFx0XHRcdHRoaXMuc2V0RGVmYXVsdE9wdGlvbnMoKTtcblx0XHRcdFx0T2JqZWN0LmFzc2lnbih0aGlzLnNwaW5uZXIsIHNwaW5uZXIpO1xuXHRcdFx0XHRpZiAoc3Bpbm5lci5zaG93KSB7XG5cdFx0XHRcdFx0dGhpcy5vbklucHV0Q2hhbmdlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUbyBzZXQgZGVmYXVsdCBuZ3gtc3Bpbm5lciBvcHRpb25zXG5cdCAqL1xuXHRzZXREZWZhdWx0T3B0aW9ucyA9ICgpID0+IHtcblx0XHR0aGlzLnNwaW5uZXIgPSBuZXcgTmd4U3Bpbm5lcih7XG5cdFx0XHRuYW1lOiB0aGlzLm5hbWUsXG5cdFx0XHRiZENvbG9yOiB0aGlzLmJkQ29sb3IsXG5cdFx0XHRzaXplOiB0aGlzLnNpemUsXG5cdFx0XHRjb2xvcjogdGhpcy5jb2xvcixcblx0XHRcdHR5cGU6IHRoaXMudHlwZSxcblx0XHRcdGZ1bGxTY3JlZW46IHRoaXMuZnVsbFNjcmVlbixcblx0XHRcdGRpdkFycmF5OiB0aGlzLmRpdkFycmF5LFxuXHRcdFx0ZGl2Q291bnQ6IHRoaXMuZGl2Q291bnQsXG5cdFx0XHRzaG93OiB0aGlzLnNob3csXG5cdFx0XHR6SW5kZXg6IHRoaXMuekluZGV4LFxuXHRcdFx0dGVtcGxhdGU6IHRoaXMudGVtcGxhdGUsXG5cdFx0XHRzaG93U3Bpbm5lcjogdGhpcy5zaG93U3Bpbm5lcixcblx0XHR9KTtcblx0fTtcblxuXHQvKipcblx0ICogT24gY2hhbmdlcyBldmVudCBmb3IgaW5wdXQgdmFyaWFibGVzXG5cdCAqL1xuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7IFtwcm9wS2V5OiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfSkge1xuXHRcdGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hhbmdlcykge1xuXHRcdFx0aWYgKHByb3BOYW1lKSB7XG5cdFx0XHRcdGNvbnN0IGNoYW5nZWRQcm9wID0gY2hhbmdlc1twcm9wTmFtZV07XG5cdFx0XHRcdGlmIChjaGFuZ2VkUHJvcC5pc0ZpcnN0Q2hhbmdlKCkpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgY2hhbmdlZFByb3AuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VkUHJvcC5wcmV2aW91c1ZhbHVlKSB7XG5cdFx0XHRcdFx0aWYgKGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZSAhPT0gJycpIHtcblx0XHRcdFx0XHRcdC8vIEB0cy1pZ25vcmVcblx0XHRcdFx0XHRcdHRoaXMuc3Bpbm5lcltwcm9wTmFtZV0gPSBjaGFuZ2VkUHJvcC5jdXJyZW50VmFsdWU7XG5cdFx0XHRcdFx0XHRpZiAocHJvcE5hbWUgPT09ICdzaG93U3Bpbm5lcicpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZSkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdyh0aGlzLnNwaW5uZXIubmFtZSwgdGhpcy5zcGlubmVyKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUodGhpcy5zcGlubmVyLm5hbWUpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRvIGdldCBjbGFzcyBmb3Igc3Bpbm5lclxuXHQgKi9cblx0Z2V0Q2xhc3ModHlwZTogc3RyaW5nLCBzaXplOiBTaXplKTogc3RyaW5nIHtcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0dGhpcy5zcGlubmVyLmRpdkNvdW50ID0gTE9BREVSU1t0eXBlXTtcblx0XHR0aGlzLnNwaW5uZXIuZGl2QXJyYXkgPSBBcnJheSh0aGlzLnNwaW5uZXIuZGl2Q291bnQpXG5cdFx0XHQuZmlsbCgwKVxuXHRcdFx0Lm1hcCgoeCwgaSkgPT4gaSk7XG5cdFx0bGV0IHNpemVDbGFzcyA9ICcnO1xuXHRcdHN3aXRjaCAoc2l6ZS50b0xvd2VyQ2FzZSgpKSB7XG5cdFx0XHRjYXNlICdzbWFsbCc6XG5cdFx0XHRcdHNpemVDbGFzcyA9ICdsYS1zbSc7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnbWVkaXVtJzpcblx0XHRcdFx0c2l6ZUNsYXNzID0gJ2xhLTJ4Jztcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdsYXJnZSc6XG5cdFx0XHRcdHNpemVDbGFzcyA9ICdsYS0zeCc7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdHJldHVybiAnbGEtJyArIHR5cGUgKyAnICcgKyBzaXplQ2xhc3M7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2sgaWYgaW5wdXQgdmFyaWFibGVzIGhhdmUgY2hhbmdlZFxuXHQgKi9cblx0b25JbnB1dENoYW5nZSgpIHtcblx0XHR0aGlzLnNwaW5uZXIuY2xhc3MgPSB0aGlzLmdldENsYXNzKHRoaXMuc3Bpbm5lci50eXBlID8/IERFRkFVTFRTLlNQSU5ORVJfVFlQRSwgdGhpcy5zcGlubmVyLnNpemUgPz8gJ2RlZmF1bHQnKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb21wb25lbnQgZGVzdHJveSBldmVudFxuXHQgKi9cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcblx0XHR0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcblx0fVxufVxuIiwiQGlmIChzcGlubmVyLnNob3cpIHtcblx0PGRpdlxuXHRcdCNvdmVybGF5XG5cdFx0W0AuZGlzYWJsZWRdPVwiZGlzYWJsZUFuaW1hdGlvblwiXG5cdFx0W0BmYWRlSW5dPVwiJ2luJ1wiXG5cdFx0W3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwic3Bpbm5lci5iZENvbG9yXCJcblx0XHRbc3R5bGUucG9zaXRpb25dPVwic3Bpbm5lci5mdWxsU2NyZWVuID8gJ2ZpeGVkJyA6ICdhYnNvbHV0ZSdcIlxuXHRcdFtzdHlsZS56LWluZGV4XT1cInNwaW5uZXIuekluZGV4XCJcblx0XHRjbGFzcz1cIm5neC1zcGlubmVyLW92ZXJsYXlcIj5cblx0XHRAaWYgKHNwaW5uZXIuc2hvdykge1xuXHRcdFx0PGRpdiBbY2xhc3NdPVwic3Bpbm5lci5jbGFzc1wiIFtzdHlsZS5jb2xvcl09XCJzcGlubmVyLmNvbG9yXCI+XG5cdFx0XHRcdEBmb3IgKGluZGV4IG9mIHNwaW5uZXIuZGl2QXJyYXk7IHRyYWNrIGluZGV4KSB7XG5cdFx0XHRcdFx0PGRpdj48L2Rpdj5cblx0XHRcdFx0fVxuXHRcdFx0PC9kaXY+XG5cdFx0fVxuXHRcdEBpZiAodGVtcGxhdGUpIHtcblx0XHRcdDxkaXYgW2lubmVySFRNTF09XCJ0ZW1wbGF0ZSB8IHNhZmVIdG1sXCI+PC9kaXY+XG5cdFx0fVxuXHRcdDxkaXYgW3N0eWxlLnotaW5kZXhdPVwic3Bpbm5lci56SW5kZXhcIiBjbGFzcz1cImxvYWRpbmctdGV4dFwiPlxuXHRcdFx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbn1cbiJdfQ==
@@ -1,16 +0,0 @@
1
- export const LOADERS = {
2
- 'ball-clip-rotate': 1,
3
- };
4
- export const DEFAULTS = {
5
- BD_COLOR: 'rgba(51,51,51,0.8)',
6
- SPINNER_COLOR: '#fff',
7
- SPINNER_TYPE: 'ball-clip-rotate',
8
- Z_INDEX: 99999,
9
- };
10
- export const PRIMARY_SPINNER = 'primary';
11
- export class NgxSpinner {
12
- constructor(init) {
13
- Object.assign(this, init);
14
- }
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNwaW5uZXIuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmd4LXNwaW5uZXIvbmd4LXNwaW5uZXIuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDdEIsa0JBQWtCLEVBQUUsQ0FBQztDQUNyQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3ZCLFFBQVEsRUFBRSxvQkFBb0I7SUFDOUIsYUFBYSxFQUFFLE1BQU07SUFDckIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxPQUFPLEVBQUUsS0FBSztDQUNkLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBZXpDLE1BQU0sT0FBTyxVQUFVO0lBZXRCLFlBQVksSUFBMEI7UUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IExPQURFUlMgPSB7XG5cdCdiYWxsLWNsaXAtcm90YXRlJzogMSxcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUUyA9IHtcblx0QkRfQ09MT1I6ICdyZ2JhKDUxLDUxLDUxLDAuOCknLFxuXHRTUElOTkVSX0NPTE9SOiAnI2ZmZicsXG5cdFNQSU5ORVJfVFlQRTogJ2JhbGwtY2xpcC1yb3RhdGUnLFxuXHRaX0lOREVYOiA5OTk5OSxcbn07XG5cbmV4cG9ydCBjb25zdCBQUklNQVJZX1NQSU5ORVIgPSAncHJpbWFyeSc7XG5cbmV4cG9ydCB0eXBlIFNpemUgPSAnZGVmYXVsdCcgfCAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNwaW5uZXIge1xuXHRiZENvbG9yPzogc3RyaW5nO1xuXHRzaXplPzogU2l6ZTtcblx0Y29sb3I/OiBzdHJpbmc7XG5cdHR5cGU/OiBzdHJpbmc7XG5cdGZ1bGxTY3JlZW4/OiBib29sZWFuO1xuXHR6SW5kZXg/OiBudW1iZXI7XG5cdHRlbXBsYXRlPzogc3RyaW5nO1xuXHRzaG93U3Bpbm5lcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBOZ3hTcGlubmVyIHtcblx0bmFtZT86IHN0cmluZztcblx0YmRDb2xvcj86IHN0cmluZztcblx0c2l6ZT86IFNpemU7XG5cdGNvbG9yPzogc3RyaW5nO1xuXHR0eXBlPzogc3RyaW5nO1xuXHRjbGFzcz86IHN0cmluZztcblx0ZGl2Q291bnQ/OiBudW1iZXI7XG5cdGRpdkFycmF5PzogQXJyYXk8bnVtYmVyPjtcblx0ZnVsbFNjcmVlbj86IGJvb2xlYW47XG5cdHNob3c/OiBib29sZWFuO1xuXHR6SW5kZXg/OiBudW1iZXI7XG5cdHRlbXBsYXRlPzogc3RyaW5nO1xuXHRzaG93U3Bpbm5lcj86IGJvb2xlYW47XG5cblx0Y29uc3RydWN0b3IoaW5pdD86IFBhcnRpYWw8Tmd4U3Bpbm5lcj4pIHtcblx0XHRPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpO1xuXHR9XG59XG4iXX0=
@@ -1,71 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { filter } from 'rxjs/operators';
4
- import { NgxSpinner, PRIMARY_SPINNER } from './ngx-spinner.enum';
5
- import * as i0 from "@angular/core";
6
- export class NgxSpinnerService {
7
- constructor() {
8
- /**
9
- * Spinner observable
10
- *
11
- * @memberof NgxSpinnerService
12
- */
13
- // private spinnerObservable = new ReplaySubject<NgxSpinner>(1);
14
- this.spinnerObservable = new BehaviorSubject(undefined);
15
- }
16
- /**
17
- * Creates an instance of NgxSpinnerService.
18
- * @memberof NgxSpinnerService
19
- */
20
- /**
21
- * Get subscription of desired spinner
22
- * @memberof NgxSpinnerService
23
- **/
24
- getSpinner(name) {
25
- // @ts-ignore
26
- return this.spinnerObservable.asObservable().pipe(filter((x) => x?.name === name));
27
- }
28
- /**
29
- * To show spinner
30
- *
31
- * @memberof NgxSpinnerService
32
- */
33
- show(name = PRIMARY_SPINNER, spinner) {
34
- return new Promise((resolve, _reject) => {
35
- setTimeout(() => {
36
- if (spinner && Object.keys(spinner).length) {
37
- // @ts-ignore
38
- spinner['name'] = name;
39
- this.spinnerObservable.next(new NgxSpinner({ ...spinner, show: true }));
40
- resolve(true);
41
- }
42
- else {
43
- this.spinnerObservable.next(new NgxSpinner({ name, show: true }));
44
- resolve(true);
45
- }
46
- }, 10);
47
- });
48
- }
49
- /**
50
- * To hide spinner
51
- *
52
- * @memberof NgxSpinnerService
53
- */
54
- hide(name = PRIMARY_SPINNER, debounce = 10) {
55
- return new Promise((resolve, _reject) => {
56
- setTimeout(() => {
57
- this.spinnerObservable.next(new NgxSpinner({ name, show: false }));
58
- resolve(true);
59
- }, debounce);
60
- });
61
- }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgxSpinnerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
63
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgxSpinnerService, providedIn: 'root' }); }
64
- }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgxSpinnerService, decorators: [{
66
- type: Injectable,
67
- args: [{
68
- providedIn: 'root',
69
- }]
70
- }] });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNwaW5uZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmd4LXNwaW5uZXIvbmd4LXNwaW5uZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFXLE1BQU0sb0JBQW9CLENBQUM7O0FBSzFFLE1BQU0sT0FBTyxpQkFBaUI7SUFIOUI7UUFJQzs7OztXQUlHO1FBQ0gsZ0VBQWdFO1FBQ3pELHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUF5QixTQUFTLENBQUMsQ0FBQztLQWtEbEY7SUFoREE7OztPQUdHO0lBRUg7OztRQUdJO0lBQ0osVUFBVSxDQUFDLElBQVk7UUFDdEIsYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxPQUFlLGVBQWUsRUFBRSxPQUFpQjtRQUNyRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3ZDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsSUFBSSxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDNUMsYUFBYTtvQkFDYixPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO29CQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDeEUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNmLENBQUM7cUJBQU0sQ0FBQztvQkFDUCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ2xFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDZixDQUFDO1lBQ0YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxPQUFlLGVBQWUsRUFBRSxXQUFtQixFQUFFO1FBQ3pELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDdkMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ25FLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNmLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0F4RFcsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGakIsTUFBTTs7MkZBRU4saUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTmd4U3Bpbm5lciwgUFJJTUFSWV9TUElOTkVSLCBTcGlubmVyIH0gZnJvbSAnLi9uZ3gtc3Bpbm5lci5lbnVtJztcblxuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5neFNwaW5uZXJTZXJ2aWNlIHtcblx0LyoqXG5cdCAqIFNwaW5uZXIgb2JzZXJ2YWJsZVxuXHQgKlxuXHQgKiBAbWVtYmVyb2YgTmd4U3Bpbm5lclNlcnZpY2Vcblx0ICovXG5cdC8vIHByaXZhdGUgc3Bpbm5lck9ic2VydmFibGUgPSBuZXcgUmVwbGF5U3ViamVjdDxOZ3hTcGlubmVyPigxKTtcblx0cHVibGljIHNwaW5uZXJPYnNlcnZhYmxlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOZ3hTcGlubmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIE5neFNwaW5uZXJTZXJ2aWNlLlxuXHQgKiBAbWVtYmVyb2YgTmd4U3Bpbm5lclNlcnZpY2Vcblx0ICovXG5cblx0LyoqXG5cdCAqIEdldCBzdWJzY3JpcHRpb24gb2YgZGVzaXJlZCBzcGlubmVyXG5cdCAqIEBtZW1iZXJvZiBOZ3hTcGlubmVyU2VydmljZVxuXHQgKiovXG5cdGdldFNwaW5uZXIobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxOZ3hTcGlubmVyPiB7XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdHJldHVybiB0aGlzLnNwaW5uZXJPYnNlcnZhYmxlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKCh4KSA9PiB4Py5uYW1lID09PSBuYW1lKSk7XG5cdH1cblxuXHQvKipcblx0ICogVG8gc2hvdyBzcGlubmVyXG5cdCAqXG5cdCAqIEBtZW1iZXJvZiBOZ3hTcGlubmVyU2VydmljZVxuXHQgKi9cblx0c2hvdyhuYW1lOiBzdHJpbmcgPSBQUklNQVJZX1NQSU5ORVIsIHNwaW5uZXI/OiBTcGlubmVyKSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0aWYgKHNwaW5uZXIgJiYgT2JqZWN0LmtleXMoc3Bpbm5lcikubGVuZ3RoKSB7XG5cdFx0XHRcdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdFx0XHRcdHNwaW5uZXJbJ25hbWUnXSA9IG5hbWU7XG5cdFx0XHRcdFx0dGhpcy5zcGlubmVyT2JzZXJ2YWJsZS5uZXh0KG5ldyBOZ3hTcGlubmVyKHsgLi4uc3Bpbm5lciwgc2hvdzogdHJ1ZSB9KSk7XG5cdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnNwaW5uZXJPYnNlcnZhYmxlLm5leHQobmV3IE5neFNwaW5uZXIoeyBuYW1lLCBzaG93OiB0cnVlIH0pKTtcblx0XHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LCAxMCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogVG8gaGlkZSBzcGlubmVyXG5cdCAqXG5cdCAqIEBtZW1iZXJvZiBOZ3hTcGlubmVyU2VydmljZVxuXHQgKi9cblx0aGlkZShuYW1lOiBzdHJpbmcgPSBQUklNQVJZX1NQSU5ORVIsIGRlYm91bmNlOiBudW1iZXIgPSAxMCkge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuc3Bpbm5lck9ic2VydmFibGUubmV4dChuZXcgTmd4U3Bpbm5lcih7IG5hbWUsIHNob3c6IGZhbHNlIH0pKTtcblx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdH0sIGRlYm91bmNlKTtcblx0XHR9KTtcblx0fVxufVxuIl19
@@ -1,24 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/platform-browser";
4
- export class SafeHtmlPipe {
5
- constructor(_sanitizer) {
6
- this._sanitizer = _sanitizer;
7
- }
8
- transform(v) {
9
- if (v) {
10
- return this._sanitizer.bypassSecurityTrustHtml(v);
11
- }
12
- return undefined;
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
15
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SafeHtmlPipe, decorators: [{
18
- type: Pipe,
19
- args: [{
20
- name: 'safeHtml',
21
- standalone: true,
22
- }]
23
- }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raXQvc3JjL2xpYi9jb21wb25lbnRzL25neC1zcGlubmVyL3NhZmUtaHRtbC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFNcEQsTUFBTSxPQUFPLFlBQVk7SUFDeEIsWUFBb0IsVUFBd0I7UUFBeEIsZUFBVSxHQUFWLFVBQVUsQ0FBYztJQUFHLENBQUM7SUFFaEQsU0FBUyxDQUFDLENBQVM7UUFDbEIsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbEIsQ0FBQzs4R0FSVyxZQUFZOzRHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBSnhCLElBQUk7bUJBQUM7b0JBQ0wsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFVBQVUsRUFBRSxJQUFJO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuXHRuYW1lOiAnc2FmZUh0bWwnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTYWZlSHRtbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cblx0dHJhbnNmb3JtKHY6IHN0cmluZyk6IFNhZmVIdG1sIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAodikge1xuXHRcdFx0cmV0dXJuIHRoaXMuX3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh2KTtcblx0XHR9XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxufVxuIl19
@@ -1,50 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { MatButtonModule } from '@angular/material/button';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/material/snack-bar";
8
- import * as i2 from "@angular/material/icon";
9
- import * as i3 from "@angular/material/button";
10
- export class ErrorSnackBarComponent {
11
- constructor(msb, data) {
12
- this.msb = msb;
13
- this.data = data;
14
- }
15
- /**
16
- * Close the Snack Bar
17
- *
18
- * @author Pavan Kumar Jadda
19
- * @since 2.7.18
20
- */
21
- close() {
22
- this.msb.dismissWithAction();
23
- }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ErrorSnackBarComponent, deps: [{ token: i1.MatSnackBarRef }, { token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ErrorSnackBarComponent, isStandalone: true, selector: "app-error-snack-bar", ngImport: i0, template: `
26
- <div class="custom-flex-center error-snackbar">
27
- <mat-icon>error</mat-icon>
28
- <label>{{ data.message }}</label>
29
- <button style="margin-left: auto" (click)="close()" mat-icon-button>
30
- <mat-icon>close</mat-icon>
31
- </button>
32
- </div>
33
- `, isInline: true, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{color:#fff;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.error-snackbar{color:#fff;--mdc-snackbar-container-color: var(--delete-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.light-success-snackbar{color:#155724;background-color:#d4edda;--mdc-snackbar-container-color: #d4edda;--mat-mdc-snack-bar-button-color: darkgreen}.light-error-snackbar{color:#721c24;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: darkred;border-color:#f5c6cb}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ErrorSnackBarComponent, decorators: [{
36
- type: Component,
37
- args: [{ selector: 'app-error-snack-bar', standalone: true, imports: [CommonModule, MatIconModule, MatButtonModule], template: `
38
- <div class="custom-flex-center error-snackbar">
39
- <mat-icon>error</mat-icon>
40
- <label>{{ data.message }}</label>
41
- <button style="margin-left: auto" (click)="close()" mat-icon-button>
42
- <mat-icon>close</mat-icon>
43
- </button>
44
- </div>
45
- `, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{color:#fff;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.error-snackbar{color:#fff;--mdc-snackbar-container-color: var(--delete-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.light-success-snackbar{color:#155724;background-color:#d4edda;--mdc-snackbar-container-color: #d4edda;--mat-mdc-snack-bar-button-color: darkgreen}.light-error-snackbar{color:#721c24;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: darkred;border-color:#f5c6cb}\n"] }]
46
- }], ctorParameters: () => [{ type: i1.MatSnackBarRef }, { type: undefined, decorators: [{
47
- type: Inject,
48
- args: [MAT_SNACK_BAR_DATA]
49
- }] }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Itc25hY2stYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvc25hY2stYmFyL2Vycm9yLXNuYWNrLWJhci9lcnJvci1zbmFjay1iYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQWtCLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFpQjNELE1BQU0sT0FBTyxzQkFBc0I7SUFDbEMsWUFDUSxHQUEyQyxFQUNmLElBQTBDO1FBRHRFLFFBQUcsR0FBSCxHQUFHLENBQXdDO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBc0M7SUFDM0UsQ0FBQztJQUVKOzs7OztPQUtHO0lBQ0gsS0FBSztRQUNKLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQWRXLHNCQUFzQixnREFHekIsa0JBQWtCO2tHQUhmLHNCQUFzQiwrRUFYeEI7Ozs7Ozs7O0VBUVQsNHhCQVRTLFlBQVksOEJBQUUsYUFBYSxtTEFBRSxlQUFlOzsyRkFZMUMsc0JBQXNCO2tCQWZsQyxTQUFTOytCQUNDLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxZQUM3Qzs7Ozs7Ozs7RUFRVDs7MEJBTUMsTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1BVF9TTkFDS19CQVJfREFUQSwgTWF0U25hY2tCYXJSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYXBwLWVycm9yLXNuYWNrLWJhcicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZV0sXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGRpdiBjbGFzcz1cImN1c3RvbS1mbGV4LWNlbnRlciBlcnJvci1zbmFja2JhclwiPlxuXHRcdFx0PG1hdC1pY29uPmVycm9yPC9tYXQtaWNvbj5cblx0XHRcdDxsYWJlbD57eyBkYXRhLm1lc3NhZ2UgfX08L2xhYmVsPlxuXHRcdFx0PGJ1dHRvbiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiBhdXRvXCIgKGNsaWNrKT1cImNsb3NlKClcIiBtYXQtaWNvbi1idXR0b24+XG5cdFx0XHRcdDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG5cdFx0XHQ8L2J1dHRvbj5cblx0XHQ8L2Rpdj5cblx0YCxcblx0c3R5bGVVcmxzOiBbJy4uLy4uLy4uLy4uL2Fzc2V0cy9hcHAtbWF0LXNuYWNrLWJhci5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JTbmFja0JhckNvbXBvbmVudCB7XG5cdGNvbnN0cnVjdG9yKFxuXHRcdHB1YmxpYyBtc2I6IE1hdFNuYWNrQmFyUmVmPEVycm9yU25hY2tCYXJDb21wb25lbnQ+LFxuXHRcdEBJbmplY3QoTUFUX1NOQUNLX0JBUl9EQVRBKSBwdWJsaWMgZGF0YTogeyBtZXNzYWdlOiBzdHJpbmc7IGFjdGlvbj86IHN0cmluZyB9LFxuXHQpIHt9XG5cblx0LyoqXG5cdCAqIENsb3NlIHRoZSBTbmFjayBCYXJcblx0ICpcblx0ICogQGF1dGhvciBQYXZhbiBLdW1hciBKYWRkYVxuXHQgKiBAc2luY2UgMi43LjE4XG5cdCAqL1xuXHRjbG9zZSgpIHtcblx0XHR0aGlzLm1zYi5kaXNtaXNzV2l0aEFjdGlvbigpO1xuXHR9XG59XG4iXX0=
@@ -1,50 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { MatIconModule } from '@angular/material/icon';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/material/snack-bar";
8
- import * as i2 from "@angular/material/button";
9
- import * as i3 from "@angular/material/icon";
10
- export class SuccessSnackBarComponent {
11
- constructor(msb, data) {
12
- this.msb = msb;
13
- this.data = data;
14
- }
15
- /**
16
- * Close the Snack Bar
17
- *
18
- * @author Pavan Kumar Jadda
19
- * @since 2.7.18
20
- */
21
- close() {
22
- this.msb.dismissWithAction();
23
- }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SuccessSnackBarComponent, deps: [{ token: i1.MatSnackBarRef }, { token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: SuccessSnackBarComponent, isStandalone: true, selector: "app-success-snack-bar", ngImport: i0, template: `
26
- <div class="custom-flex-center success-snackbar">
27
- <mat-icon>check_circle</mat-icon>
28
- <label>{{ data.message }}</label>
29
- <button style="margin-left: auto" (click)="close()" mat-icon-button>
30
- <mat-icon>close</mat-icon>
31
- </button>
32
- </div>
33
- `, isInline: true, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{color:#fff;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.error-snackbar{color:#fff;--mdc-snackbar-container-color: var(--delete-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.light-success-snackbar{color:#155724;background-color:#d4edda;--mdc-snackbar-container-color: #d4edda;--mat-mdc-snack-bar-button-color: darkgreen}.light-error-snackbar{color:#721c24;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: darkred;border-color:#f5c6cb}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SuccessSnackBarComponent, decorators: [{
36
- type: Component,
37
- args: [{ selector: 'app-success-snack-bar', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule], template: `
38
- <div class="custom-flex-center success-snackbar">
39
- <mat-icon>check_circle</mat-icon>
40
- <label>{{ data.message }}</label>
41
- <button style="margin-left: auto" (click)="close()" mat-icon-button>
42
- <mat-icon>close</mat-icon>
43
- </button>
44
- </div>
45
- `, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{color:#fff;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.error-snackbar{color:#fff;--mdc-snackbar-container-color: var(--delete-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.light-success-snackbar{color:#155724;background-color:#d4edda;--mdc-snackbar-container-color: #d4edda;--mat-mdc-snack-bar-button-color: darkgreen}.light-error-snackbar{color:#721c24;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: darkred;border-color:#f5c6cb}\n"] }]
46
- }], ctorParameters: () => [{ type: i1.MatSnackBarRef }, { type: undefined, decorators: [{
47
- type: Inject,
48
- args: [MAT_SNACK_BAR_DATA]
49
- }] }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VjY2Vzcy1zbmFjay1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2l0L3NyYy9saWIvY29tcG9uZW50cy9zbmFjay1iYXIvc3VjY2Vzcy1zbmFjay1iYXIvc3VjY2Vzcy1zbmFjay1iYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQWtCLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFpQnZELE1BQU0sT0FBTyx3QkFBd0I7SUFDcEMsWUFDUSxHQUE2QyxFQUNqQixJQUEwQztRQUR0RSxRQUFHLEdBQUgsR0FBRyxDQUEwQztRQUNqQixTQUFJLEdBQUosSUFBSSxDQUFzQztJQUMzRSxDQUFDO0lBRUo7Ozs7O09BS0c7SUFDSCxLQUFLO1FBQ0osSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzlCLENBQUM7OEdBZFcsd0JBQXdCLGdEQUczQixrQkFBa0I7a0dBSGYsd0JBQXdCLGlGQVgxQjs7Ozs7Ozs7RUFRVCw0eEJBVFMsWUFBWSw4QkFBRSxlQUFlLDJJQUFFLGFBQWE7OzJGQVkxQyx3QkFBd0I7a0JBZnBDLFNBQVM7K0JBQ0MsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDLFlBQzdDOzs7Ozs7OztFQVFUOzswQkFNQyxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTUFUX1NOQUNLX0JBUl9EQVRBLCBNYXRTbmFja0JhclJlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtc3VjY2Vzcy1zbmFjay1iYXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxkaXYgY2xhc3M9XCJjdXN0b20tZmxleC1jZW50ZXIgc3VjY2Vzcy1zbmFja2JhclwiPlxuXHRcdFx0PG1hdC1pY29uPmNoZWNrX2NpcmNsZTwvbWF0LWljb24+XG5cdFx0XHQ8bGFiZWw+e3sgZGF0YS5tZXNzYWdlIH19PC9sYWJlbD5cblx0XHRcdDxidXR0b24gc3R5bGU9XCJtYXJnaW4tbGVmdDogYXV0b1wiIChjbGljayk9XCJjbG9zZSgpXCIgbWF0LWljb24tYnV0dG9uPlxuXHRcdFx0XHQ8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuXHRcdFx0PC9idXR0b24+XG5cdFx0PC9kaXY+XG5cdGAsXG5cdHN0eWxlVXJsczogWycuLi8uLi8uLi8uLi9hc3NldHMvYXBwLW1hdC1zbmFjay1iYXIuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN1Y2Nlc3NTbmFja0JhckNvbXBvbmVudCB7XG5cdGNvbnN0cnVjdG9yKFxuXHRcdHB1YmxpYyBtc2I6IE1hdFNuYWNrQmFyUmVmPFN1Y2Nlc3NTbmFja0JhckNvbXBvbmVudD4sXG5cdFx0QEluamVjdChNQVRfU05BQ0tfQkFSX0RBVEEpIHB1YmxpYyBkYXRhOiB7IG1lc3NhZ2U6IHN0cmluZzsgYWN0aW9uPzogc3RyaW5nIH0sXG5cdCkge31cblxuXHQvKipcblx0ICogQ2xvc2UgdGhlIFNuYWNrIEJhclxuXHQgKlxuXHQgKiBAYXV0aG9yIFBhdmFuIEt1bWFyIEphZGRhXG5cdCAqIEBzaW5jZSAyLjcuMThcblx0ICovXG5cdGNsb3NlKCkge1xuXHRcdHRoaXMubXNiLmRpc21pc3NXaXRoQWN0aW9uKCk7XG5cdH1cbn1cbiJdfQ==