@bravura/ui 5.2.4 → 6.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 (137) hide show
  1. package/CHANGELOG.md +630 -620
  2. package/README.md +56 -56
  3. package/_index.scss +5 -5
  4. package/fesm2022/bravura-ui-alert-testing.mjs.map +1 -1
  5. package/fesm2022/bravura-ui-alert.mjs +13 -13
  6. package/fesm2022/bravura-ui-alert.mjs.map +1 -1
  7. package/fesm2022/bravura-ui-behavior.mjs +25 -21
  8. package/fesm2022/bravura-ui-behavior.mjs.map +1 -1
  9. package/fesm2022/bravura-ui-clip-note.mjs +15 -14
  10. package/fesm2022/bravura-ui-clip-note.mjs.map +1 -1
  11. package/fesm2022/bravura-ui-common.mjs +5 -5
  12. package/fesm2022/bravura-ui-common.mjs.map +1 -1
  13. package/fesm2022/bravura-ui-currency-input.mjs +10 -9
  14. package/fesm2022/bravura-ui-currency-input.mjs.map +1 -1
  15. package/fesm2022/bravura-ui-decimal-input.mjs +10 -9
  16. package/fesm2022/bravura-ui-decimal-input.mjs.map +1 -1
  17. package/fesm2022/bravura-ui-discrete-input.mjs +9 -9
  18. package/fesm2022/bravura-ui-discrete-input.mjs.map +1 -1
  19. package/fesm2022/bravura-ui-file-upload.mjs +12 -12
  20. package/fesm2022/bravura-ui-file-upload.mjs.map +1 -1
  21. package/fesm2022/bravura-ui-form-field.mjs +14 -13
  22. package/fesm2022/bravura-ui-form-field.mjs.map +1 -1
  23. package/fesm2022/bravura-ui-icon-font.mjs +10 -9
  24. package/fesm2022/bravura-ui-icon-font.mjs.map +1 -1
  25. package/fesm2022/bravura-ui-panel.mjs +18 -17
  26. package/fesm2022/bravura-ui-panel.mjs.map +1 -1
  27. package/fesm2022/bravura-ui-phone-number.mjs +20 -17
  28. package/fesm2022/bravura-ui-phone-number.mjs.map +1 -1
  29. package/fesm2022/bravura-ui-radio-panel-testing.mjs.map +1 -1
  30. package/fesm2022/bravura-ui-radio-panel.mjs +14 -14
  31. package/fesm2022/bravura-ui-radio-panel.mjs.map +1 -1
  32. package/fesm2022/bravura-ui-selection-panel.mjs +14 -13
  33. package/fesm2022/bravura-ui-selection-panel.mjs.map +1 -1
  34. package/fesm2022/bravura-ui-skeletons.mjs +18 -13
  35. package/fesm2022/bravura-ui-skeletons.mjs.map +1 -1
  36. package/fesm2022/bravura-ui-stepper.mjs +22 -20
  37. package/fesm2022/bravura-ui-stepper.mjs.map +1 -1
  38. package/fesm2022/bravura-ui-tooltip.mjs +14 -13
  39. package/fesm2022/bravura-ui-tooltip.mjs.map +1 -1
  40. package/m3-theme.scss +155 -155
  41. package/package.json +12 -52
  42. package/radio-panel/_radio-panel-theme.scss +11 -11
  43. package/selection-panel/_selection-panel-theme.scss +33 -33
  44. package/stepper/_stepper-theme.scss +20 -20
  45. package/theme/_ui-theme-legacy.scss +112 -112
  46. package/theme/_ui-theme.scss +101 -101
  47. package/esm2022/alert/alert-container.component.mjs +0 -207
  48. package/esm2022/alert/alert-message.component.mjs +0 -101
  49. package/esm2022/alert/alert.module.mjs +0 -22
  50. package/esm2022/alert/bravura-ui-alert.mjs +0 -5
  51. package/esm2022/alert/public-api.mjs +0 -2
  52. package/esm2022/alert/testing/bravura-ui-alert-testing.mjs +0 -5
  53. package/esm2022/alert/testing/test-api.mjs +0 -44
  54. package/esm2022/behavior/await.directive.mjs +0 -133
  55. package/esm2022/behavior/behavior.module.mjs +0 -37
  56. package/esm2022/behavior/bravura-ui-behavior.mjs +0 -5
  57. package/esm2022/behavior/observe-content-class.directive.mjs +0 -63
  58. package/esm2022/behavior/public-api.mjs +0 -6
  59. package/esm2022/behavior/sizing-monitor.directive.mjs +0 -31
  60. package/esm2022/behavior/sizing.directive.mjs +0 -256
  61. package/esm2022/bravura-ui.mjs +0 -5
  62. package/esm2022/clip-note/bravura-ui-clip-note.mjs +0 -5
  63. package/esm2022/clip-note/clip-note.component.mjs +0 -216
  64. package/esm2022/clip-note/clip-note.directive.mjs +0 -141
  65. package/esm2022/clip-note/clip-note.module.mjs +0 -32
  66. package/esm2022/clip-note/public-api.mjs +0 -2
  67. package/esm2022/common/bravura-ui-common.mjs +0 -5
  68. package/esm2022/common/common-utils.mjs +0 -34
  69. package/esm2022/common/common.module.mjs +0 -53
  70. package/esm2022/common/public-api.mjs +0 -3
  71. package/esm2022/currency-input/bravura-ui-currency-input.mjs +0 -5
  72. package/esm2022/currency-input/currency-input.directive.mjs +0 -276
  73. package/esm2022/currency-input/currency-input.module.mjs +0 -19
  74. package/esm2022/currency-input/public-api.mjs +0 -2
  75. package/esm2022/decimal-input/bravura-ui-decimal-input.mjs +0 -5
  76. package/esm2022/decimal-input/decimal-input.directive.mjs +0 -122
  77. package/esm2022/decimal-input/decimal-input.module.mjs +0 -19
  78. package/esm2022/decimal-input/public-api.mjs +0 -2
  79. package/esm2022/discrete-input/bravura-ui-discrete-input.mjs +0 -5
  80. package/esm2022/discrete-input/discrete-input.component.mjs +0 -337
  81. package/esm2022/discrete-input/discrete-input.module.mjs +0 -21
  82. package/esm2022/discrete-input/public-api.mjs +0 -3
  83. package/esm2022/file-upload/bravura-ui-file-upload.mjs +0 -5
  84. package/esm2022/file-upload/file-upload.component.mjs +0 -400
  85. package/esm2022/file-upload/file-upload.module.mjs +0 -44
  86. package/esm2022/file-upload/file-upload.service.mjs +0 -29
  87. package/esm2022/file-upload/public-api.mjs +0 -7
  88. package/esm2022/form-field/bravura-ui-form-field.mjs +0 -5
  89. package/esm2022/form-field/form-field.component.mjs +0 -82
  90. package/esm2022/form-field/form-field.module.mjs +0 -33
  91. package/esm2022/form-field/public-api.mjs +0 -3
  92. package/esm2022/icon-font/bravura-ui-icon-font.mjs +0 -5
  93. package/esm2022/icon-font/icon-font.module.mjs +0 -22
  94. package/esm2022/icon-font/icon.directive.mjs +0 -102
  95. package/esm2022/icon-font/public-api.mjs +0 -4
  96. package/esm2022/icon-font/utilities.mjs +0 -51
  97. package/esm2022/panel/bravura-ui-panel.mjs +0 -5
  98. package/esm2022/panel/panel-section.component.mjs +0 -41
  99. package/esm2022/panel/panel.component.mjs +0 -87
  100. package/esm2022/panel/panel.module.mjs +0 -23
  101. package/esm2022/panel/public-api.mjs +0 -2
  102. package/esm2022/panel/tinted.directive.mjs +0 -60
  103. package/esm2022/phone-number/bravura-ui-phone-number.mjs +0 -5
  104. package/esm2022/phone-number/phone-number.directive.mjs +0 -188
  105. package/esm2022/phone-number/phone-number.module.mjs +0 -24
  106. package/esm2022/phone-number/phone-number.pipe.mjs +0 -47
  107. package/esm2022/phone-number/phone-number.validator.mjs +0 -64
  108. package/esm2022/phone-number/public-api.mjs +0 -2
  109. package/esm2022/public-api.mjs +0 -2
  110. package/esm2022/radio-panel/bravura-ui-radio-panel.mjs +0 -5
  111. package/esm2022/radio-panel/public-api.mjs +0 -4
  112. package/esm2022/radio-panel/radio-panel-item.component.mjs +0 -93
  113. package/esm2022/radio-panel/radio-panel.component.mjs +0 -81
  114. package/esm2022/radio-panel/radio-panel.module.mjs +0 -25
  115. package/esm2022/radio-panel/testing/bravura-ui-radio-panel-testing.mjs +0 -5
  116. package/esm2022/radio-panel/testing/test-api.mjs +0 -46
  117. package/esm2022/selection-panel/bravura-ui-selection-panel.mjs +0 -5
  118. package/esm2022/selection-panel/public-api.mjs +0 -4
  119. package/esm2022/selection-panel/selection-panel-item.component.mjs +0 -163
  120. package/esm2022/selection-panel/selection-panel.directive.mjs +0 -119
  121. package/esm2022/selection-panel/selection-panel.module.mjs +0 -23
  122. package/esm2022/skeletons/bravura-ui-skeletons.mjs +0 -5
  123. package/esm2022/skeletons/public-api.mjs +0 -4
  124. package/esm2022/skeletons/skeleton-loader-presets.directive.mjs +0 -83
  125. package/esm2022/skeletons/skeleton-loader.component.mjs +0 -76
  126. package/esm2022/skeletons/skeletons.module.mjs +0 -35
  127. package/esm2022/stepper/bravura-ui-stepper.mjs +0 -5
  128. package/esm2022/stepper/public-api.mjs +0 -4
  129. package/esm2022/stepper/step-label-top.directive.mjs +0 -40
  130. package/esm2022/stepper/stepper-animation.mjs +0 -23
  131. package/esm2022/stepper/stepper.component.mjs +0 -178
  132. package/esm2022/stepper/stepper.module.mjs +0 -53
  133. package/esm2022/tooltip/bravura-ui-tooltip.mjs +0 -5
  134. package/esm2022/tooltip/public-api.mjs +0 -4
  135. package/esm2022/tooltip/tooltip.component.mjs +0 -63
  136. package/esm2022/tooltip/tooltip.directive.mjs +0 -150
  137. package/esm2022/tooltip/tooltip.module.mjs +0 -25
@@ -1,101 +1,101 @@
1
- @use 'sass:map';
2
- @use '@angular/material' as mat;
3
- @use './scrollbar.scss' as scrollbar;
4
- @use './bui-card' as card;
5
- @use './ui-theme-legacy' as legacy;
6
- @use '../stepper/stepper-theme' as stepper;
7
- @use '../radio-panel/radio-panel-theme' as radio;
8
- @use '../selection-panel/selection-panel-theme' as selection;
9
-
10
- $default-border-color-transition: border-color 100ms cubic-bezier(0.55, 0, 0.55, 0.2);
11
- $mat-foreground-extract: (
12
- 'secondary-text': 'light',
13
- 'hint-text': 'muted',
14
- 'divider': 'divider',
15
- 'base': 'base',
16
- 'inactive': 'inactive'
17
- );
18
-
19
- $mat-background-extract: (
20
- 'card': 'card',
21
- 'background': 'body'
22
- );
23
-
24
- @mixin all-component-colors($theme, $border-color-transition: $default-border-color-transition) {
25
- @if (mat.get-theme-version($theme) == 1) {
26
- @include stepper.color($theme);
27
- @include radio.color($theme);
28
- @include selection.color($theme);
29
-
30
- .bui-border-emphasis:hover {
31
- border-color: currentColor !important;
32
- transition: $border-color-transition;
33
- }
34
-
35
- // @include card.bui-card($color-config);
36
- @each $p in (primary, tertiary, secondary, error) {
37
- $c: mat.get-theme-color($theme, $p);
38
- @include apply-color($p, $c, $border-color-transition);
39
- }
40
-
41
- .bui-host {
42
- @each $p in (primary, tertiary, secondary, error) {
43
- $c: mat.get-theme-color($theme, $p);
44
- --bui-color-#{$p}: #{$c};
45
- }
46
-
47
- @if mat.get-theme-type($theme) != dark {
48
- --bui-color-success: #519602;
49
- --bui-color-info: #0dcaf0;
50
- --bui-color-warning: #ffc107;
51
- --bui-color-error: #dc3545;
52
- }
53
- }
54
- } @else {
55
- @include legacy.apply-colors($theme);
56
- }
57
- }
58
-
59
- @mixin apply-color($name, $color, $border-color-transition: $default-border-color-transition) {
60
- .bui-border-#{$name} {
61
- border-color: $color !important;
62
- transition: $border-color-transition;
63
- }
64
- .bui-bg-#{$name} {
65
- background-color: $color !important;
66
- }
67
- .bui-color-#{$name} {
68
- color: $color !important;
69
- }
70
- .bui-outline-#{$name} {
71
- outline-color: $color !important;
72
- }
73
- }
74
-
75
- @mixin apply-colors($theme, $border-color-transition: $default-border-color-transition) {
76
- @include all-component-colors($theme, $border-color-transition);
77
- }
78
-
79
- @mixin theme($theme, $border-color-transition: $default-border-color-transition) {
80
- @if (mat.get-theme-version($theme) == 1) {
81
- @include apply-colors($theme, $border-color-transition);
82
- @include stepper.theme($theme);
83
- @include radio.theme($theme);
84
- @include selection.theme($theme);
85
- @include scrollbar.bui-scrollbar;
86
-
87
- .mat-icon {
88
- &.fas,
89
- &.far,
90
- &.fab,
91
- &.fa {
92
- display: inline-flex;
93
- justify-content: center;
94
- align-items: center;
95
- font-size: 20px;
96
- }
97
- }
98
- } @else {
99
- @include legacy.theme($theme);
100
- }
101
- }
1
+ @use 'sass:map';
2
+ @use '@angular/material' as mat;
3
+ @use './scrollbar.scss' as scrollbar;
4
+ @use './bui-card' as card;
5
+ @use './ui-theme-legacy' as legacy;
6
+ @use '../stepper/stepper-theme' as stepper;
7
+ @use '../radio-panel/radio-panel-theme' as radio;
8
+ @use '../selection-panel/selection-panel-theme' as selection;
9
+
10
+ $default-border-color-transition: border-color 100ms cubic-bezier(0.55, 0, 0.55, 0.2);
11
+ $mat-foreground-extract: (
12
+ 'secondary-text': 'light',
13
+ 'hint-text': 'muted',
14
+ 'divider': 'divider',
15
+ 'base': 'base',
16
+ 'inactive': 'inactive'
17
+ );
18
+
19
+ $mat-background-extract: (
20
+ 'card': 'card',
21
+ 'background': 'body'
22
+ );
23
+
24
+ @mixin all-component-colors($theme, $border-color-transition: $default-border-color-transition) {
25
+ @if (mat.get-theme-version($theme) == 1) {
26
+ @include stepper.color($theme);
27
+ @include radio.color($theme);
28
+ @include selection.color($theme);
29
+
30
+ .bui-border-emphasis:hover {
31
+ border-color: currentColor !important;
32
+ transition: $border-color-transition;
33
+ }
34
+
35
+ // @include card.bui-card($color-config);
36
+ @each $p in (primary, tertiary, secondary, error) {
37
+ $c: mat.get-theme-color($theme, $p);
38
+ @include apply-color($p, $c, $border-color-transition);
39
+ }
40
+
41
+ .bui-host {
42
+ @each $p in (primary, tertiary, secondary, error) {
43
+ $c: mat.get-theme-color($theme, $p);
44
+ --bui-color-#{$p}: #{$c};
45
+ }
46
+
47
+ @if mat.get-theme-type($theme) != dark {
48
+ --bui-color-success: #519602;
49
+ --bui-color-info: #0dcaf0;
50
+ --bui-color-warning: #ffc107;
51
+ --bui-color-error: #dc3545;
52
+ }
53
+ }
54
+ } @else {
55
+ @include legacy.apply-colors($theme);
56
+ }
57
+ }
58
+
59
+ @mixin apply-color($name, $color, $border-color-transition: $default-border-color-transition) {
60
+ .bui-border-#{$name} {
61
+ border-color: $color !important;
62
+ transition: $border-color-transition;
63
+ }
64
+ .bui-bg-#{$name} {
65
+ background-color: $color !important;
66
+ }
67
+ .bui-color-#{$name} {
68
+ color: $color !important;
69
+ }
70
+ .bui-outline-#{$name} {
71
+ outline-color: $color !important;
72
+ }
73
+ }
74
+
75
+ @mixin apply-colors($theme, $border-color-transition: $default-border-color-transition) {
76
+ @include all-component-colors($theme, $border-color-transition);
77
+ }
78
+
79
+ @mixin theme($theme, $border-color-transition: $default-border-color-transition) {
80
+ @if (mat.get-theme-version($theme) == 1) {
81
+ @include apply-colors($theme, $border-color-transition);
82
+ @include stepper.theme($theme);
83
+ @include radio.theme($theme);
84
+ @include selection.theme($theme);
85
+ @include scrollbar.bui-scrollbar;
86
+
87
+ .mat-icon {
88
+ &.fas,
89
+ &.far,
90
+ &.fab,
91
+ &.fa {
92
+ display: inline-flex;
93
+ justify-content: center;
94
+ align-items: center;
95
+ font-size: 20px;
96
+ }
97
+ }
98
+ } @else {
99
+ @include legacy.theme($theme);
100
+ }
101
+ }
@@ -1,207 +0,0 @@
1
- import { animate, state, style, transition, trigger } from '@angular/animations';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { generateID, isElementInViewport } from '@bravura/ui/common';
4
- import { Subject, timer } from 'rxjs';
5
- import { delay, take, takeUntil, tap } from 'rxjs/operators';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/cdk/scrolling";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "./alert-message.component";
10
- /**@internal */
11
- class InternalAlertOject {
12
- constructor(type, message) {
13
- this.type = type;
14
- this.message = message;
15
- this.deleted = false;
16
- this.id = `bui-alert-cont-alert-${generateID()}`;
17
- }
18
- }
19
- /**
20
- * Use this component in a designated area of a page for displaying notification messages
21
- *
22
- */
23
- export class AlertContainerComponent {
24
- constructor(zone, cdRef, _elementRef, scroll) {
25
- this.zone = zone;
26
- this.cdRef = cdRef;
27
- this._elementRef = _elementRef;
28
- this.scroll = scroll;
29
- /** The maximum number of messages displayed in the container area. */
30
- this.max = 5;
31
- /**
32
- * This property determines the behavior for displaying the notifications when the container is outside the viewport.
33
- *
34
- * `scroll`: The component will try to scroll to reveal the new notifications.
35
- * `float`: The component will float the alert panel to the center of the screen for a couple of seconds and move it back to the original position.
36
- */
37
- this.outsideViewportBehavior = 'float';
38
- /**
39
- * The number of milliseconds for which the alert container will be floated when new notification arrives.
40
- *
41
- * This will only take effect when `outsideViewportBehavior` is set to `float` and the container is outside the viewport.
42
- */
43
- this.floatDuration = 2000;
44
- /**@internal */
45
- this._alerts = [];
46
- /**@internal */
47
- this._floated = false;
48
- /**@internal */
49
- this._floatPanelHidden = true;
50
- /** @ignore Emits whenever the animation is started. */
51
- this._animationStarted = new Subject();
52
- /** @ignore Emits whenever the animation is done. */
53
- this._animationEnded = new Subject();
54
- this._destroyed$ = new Subject();
55
- /** Emits the component instance after initialisation. */
56
- this.init = new EventEmitter();
57
- }
58
- ngOnInit() {
59
- const checkScroll = () => {
60
- if (isElementInViewport(this._elementRef.nativeElement)) {
61
- this._endFloating();
62
- }
63
- };
64
- this.scroll
65
- .ancestorScrolled(this._elementRef.nativeElement)
66
- .pipe(takeUntil(this._destroyed$))
67
- .subscribe(checkScroll);
68
- checkScroll();
69
- this.init.emit(this);
70
- this.init.complete();
71
- }
72
- ngOnDestroy() {
73
- this._destroyed$.next();
74
- this._destroyed$.complete();
75
- this._endFloatingSub?.unsubscribe();
76
- }
77
- /**@internal */
78
- get _remaining() {
79
- return this._alerts.filter(a => !a.deleted);
80
- }
81
- /**@internal */
82
- get _width() {
83
- return this._elementRef.nativeElement.clientWidth;
84
- }
85
- /** Add a message to the notification area */
86
- async notify(type, message) {
87
- this._endFloatingSub?.unsubscribe();
88
- const duplicate = this._remaining.find(_a => message === _a.message);
89
- if (duplicate) {
90
- this._dismiss(duplicate);
91
- }
92
- const remaining = this._remaining;
93
- if (remaining.length >= this.max) {
94
- this._dismiss(remaining[0]);
95
- }
96
- const a = new InternalAlertOject(type, message);
97
- await this._checkViewport();
98
- this.zone.run(() => {
99
- this._alerts.push(a);
100
- this.cdRef.markForCheck();
101
- });
102
- }
103
- /**@ignore */
104
- async _checkViewport() {
105
- if (!isElementInViewport(this._elementRef.nativeElement)) {
106
- if (this.outsideViewportBehavior === 'float') {
107
- const d = this._floated ? 0 : 100;
108
- this._floated = true;
109
- this._floatPanelHidden = false;
110
- this._endFloating(this.floatDuration);
111
- this.cdRef.markForCheck();
112
- await timer(d).toPromise();
113
- }
114
- else {
115
- this._elementRef.nativeElement.scrollIntoView({ block: 'start', behavior: 'smooth' });
116
- }
117
- }
118
- }
119
- /**@ignore */
120
- async _dismiss(a) {
121
- const id = a.id;
122
- a.deleted = true;
123
- this.cdRef.markForCheck();
124
- await this._animationEnded.pipe(take(1)).toPromise();
125
- this.zone.run(() => {
126
- this._alerts = this._alerts.filter(_a => _a.id !== id);
127
- this.cdRef.markForCheck();
128
- });
129
- }
130
- /** Remove all messages currently displayed. */
131
- async clear() {
132
- await Promise.all(this._remaining.map(a => this._dismiss(a)));
133
- this._endFloating();
134
- }
135
- _endFloating(_delay = 0) {
136
- if (!this._floated) {
137
- return;
138
- }
139
- this._endFloatingSub?.unsubscribe();
140
- this._endFloatingSub = timer(_delay)
141
- .pipe(tap(() => {
142
- this._floated = false;
143
- this.zone.run(() => this.cdRef.markForCheck());
144
- }), delay(400))
145
- .subscribe(() => {
146
- this._floatPanelHidden = true;
147
- this.zone.run(() => this.cdRef.markForCheck());
148
- });
149
- }
150
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AlertContainerComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.ScrollDispatcher }], target: i0.ɵɵFactoryTarget.Component }); }
151
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: AlertContainerComponent, selector: "bui-alert-container", inputs: { max: "max", outsideViewportBehavior: "outsideViewportBehavior", floatDuration: "floatDuration" }, outputs: { init: "init" }, host: { properties: { "class": "'bui-alert-container bui-host bui-alert-container-' + (_remaining.length ? 'not-empty': 'empty')" } }, ngImport: i0, template: "<div\r\n\tclass=\"bui-alert-fixed-panel\"\r\n\t[style.opacity]=\"_floatPanelHidden ? 1 : 0\"\r\n\t[class.bui-alert-fixed-panel-blink]=\"outsideViewportBehavior === 'scroll'\"\r\n>\r\n\t<bui-alert\r\n\t\t*ngFor=\"let a of _alerts\"\r\n\t\t[id]=\"a.id\"\r\n\t\t[type]=\"a.type\"\r\n\t\t[message]=\"a.message\"\r\n\t\tdismissible\r\n\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\r\n\t\t(@alertTransition.start)=\"_animationStarted.next($event)\"\r\n\t\t(@alertTransition.done)=\"_animationEnded.next($event)\"\r\n\t\t(dismissed)=\"_dismiss(a)\"\r\n\t></bui-alert>\r\n</div>\r\n\r\n<div class=\"bui-alert-float-panel-frame\" [hidden]=\"_floatPanelHidden\" [class.bui-alert-float-panel-shaded]=\"_floated\">\r\n\t<div class=\"bui-alert-float-panel\" [style.max-width]=\"_width + 'px'\" [@floatTransition]=\"'visible'\" *ngIf=\"_floated\">\r\n\t\t<bui-alert\r\n\t\t\t*ngFor=\"let a of _alerts\"\r\n\t\t\t[id]=\"a.id\"\r\n\t\t\t[type]=\"a.type\"\r\n\t\t\t[message]=\"a.message\"\r\n\t\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\r\n\t\t></bui-alert>\r\n\t</div>\r\n</div>\r\n", styles: [".bui-alert:not(:first-of-type){margin-top:.5rem}:host(:not([hidden])){display:block}.bui-alert-fixed-panel{transition:opacity .2s ease-in}.bui-alert-fixed-panel.bui-alert-fixed-panel-blink .bui-alert:last-of-type{animation:blink 1s ease-in forwards}.bui-alert-float-panel-frame{position:fixed;z-index:1000;inset:0;justify-content:center;align-items:center;flex-direction:column;transition:background-color .4s cubic-bezier(.25,0,.55,.2)}.bui-alert-float-panel-frame:not([hidden]){display:flex}.bui-alert-float-panel-frame.bui-alert-float-panel-shaded{background-color:#00000080}.bui-alert-float-panel-frame .bui-alert{background-color:var(--bui-bg-card)}@keyframes blink{60%{opacity:1}70%{opacity:0}80%{opacity:1}90%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AlertMessageComponent, selector: "bui-alert", inputs: ["type", "message", "politeness", "dismissible", "id"], outputs: ["dismissed", "initialised"] }], animations: [
152
- trigger('floatTransition', [
153
- transition(':enter', [style({ opacity: '0', transform: 'translateY(-10vh)' }), animate('.3s ease-in')]),
154
- transition(':leave', [animate('.4s ease-out', style({ transform: 'translateY(-10vh)', opacity: '0' }))])
155
- ]),
156
- trigger('alertTransition', [
157
- state('visible', style({})),
158
- state('hidden', style({
159
- height: 0,
160
- overflow: 'hidden',
161
- transform: 'scaleY(0)',
162
- opacity: 0,
163
- 'margin-top': '-1rem'
164
- })),
165
- transition('void => visible', [
166
- style({ transform: 'translateY(100%)', height: 0, opacity: '0', overflow: 'hidden' }),
167
- animate('250ms cubic-bezier(0.42, 0.0, 0.58, 1.0)')
168
- ]),
169
- transition('visible => hidden', [animate('250ms cubic-bezier(0.25, 0, 0.3, 1.0)')])
170
- ])
171
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
172
- }
173
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AlertContainerComponent, decorators: [{
174
- type: Component,
175
- args: [{ selector: 'bui-alert-container', host: {
176
- '[class]': `'bui-alert-container bui-host bui-alert-container-' + (_remaining.length ? 'not-empty': 'empty')`
177
- }, changeDetection: ChangeDetectionStrategy.OnPush, animations: [
178
- trigger('floatTransition', [
179
- transition(':enter', [style({ opacity: '0', transform: 'translateY(-10vh)' }), animate('.3s ease-in')]),
180
- transition(':leave', [animate('.4s ease-out', style({ transform: 'translateY(-10vh)', opacity: '0' }))])
181
- ]),
182
- trigger('alertTransition', [
183
- state('visible', style({})),
184
- state('hidden', style({
185
- height: 0,
186
- overflow: 'hidden',
187
- transform: 'scaleY(0)',
188
- opacity: 0,
189
- 'margin-top': '-1rem'
190
- })),
191
- transition('void => visible', [
192
- style({ transform: 'translateY(100%)', height: 0, opacity: '0', overflow: 'hidden' }),
193
- animate('250ms cubic-bezier(0.42, 0.0, 0.58, 1.0)')
194
- ]),
195
- transition('visible => hidden', [animate('250ms cubic-bezier(0.25, 0, 0.3, 1.0)')])
196
- ])
197
- ], template: "<div\r\n\tclass=\"bui-alert-fixed-panel\"\r\n\t[style.opacity]=\"_floatPanelHidden ? 1 : 0\"\r\n\t[class.bui-alert-fixed-panel-blink]=\"outsideViewportBehavior === 'scroll'\"\r\n>\r\n\t<bui-alert\r\n\t\t*ngFor=\"let a of _alerts\"\r\n\t\t[id]=\"a.id\"\r\n\t\t[type]=\"a.type\"\r\n\t\t[message]=\"a.message\"\r\n\t\tdismissible\r\n\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\r\n\t\t(@alertTransition.start)=\"_animationStarted.next($event)\"\r\n\t\t(@alertTransition.done)=\"_animationEnded.next($event)\"\r\n\t\t(dismissed)=\"_dismiss(a)\"\r\n\t></bui-alert>\r\n</div>\r\n\r\n<div class=\"bui-alert-float-panel-frame\" [hidden]=\"_floatPanelHidden\" [class.bui-alert-float-panel-shaded]=\"_floated\">\r\n\t<div class=\"bui-alert-float-panel\" [style.max-width]=\"_width + 'px'\" [@floatTransition]=\"'visible'\" *ngIf=\"_floated\">\r\n\t\t<bui-alert\r\n\t\t\t*ngFor=\"let a of _alerts\"\r\n\t\t\t[id]=\"a.id\"\r\n\t\t\t[type]=\"a.type\"\r\n\t\t\t[message]=\"a.message\"\r\n\t\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\r\n\t\t></bui-alert>\r\n\t</div>\r\n</div>\r\n", styles: [".bui-alert:not(:first-of-type){margin-top:.5rem}:host(:not([hidden])){display:block}.bui-alert-fixed-panel{transition:opacity .2s ease-in}.bui-alert-fixed-panel.bui-alert-fixed-panel-blink .bui-alert:last-of-type{animation:blink 1s ease-in forwards}.bui-alert-float-panel-frame{position:fixed;z-index:1000;inset:0;justify-content:center;align-items:center;flex-direction:column;transition:background-color .4s cubic-bezier(.25,0,.55,.2)}.bui-alert-float-panel-frame:not([hidden]){display:flex}.bui-alert-float-panel-frame.bui-alert-float-panel-shaded{background-color:#00000080}.bui-alert-float-panel-frame .bui-alert{background-color:var(--bui-bg-card)}@keyframes blink{60%{opacity:1}70%{opacity:0}80%{opacity:1}90%{opacity:0}}\n"] }]
198
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.ScrollDispatcher }], propDecorators: { max: [{
199
- type: Input
200
- }], outsideViewportBehavior: [{
201
- type: Input
202
- }], floatDuration: [{
203
- type: Input
204
- }], init: [{
205
- type: Output
206
- }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2FsZXJ0L2FsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9hbGVydC9hbGVydC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWtCLE1BQU0scUJBQXFCLENBQUM7QUFFakcsT0FBTyxFQUNOLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRTdELGVBQWU7QUFDZixNQUFNLGtCQUFrQjtJQUd2QixZQUE0QixJQUEyQyxFQUFrQixPQUFlO1FBQTVFLFNBQUksR0FBSixJQUFJLENBQXVDO1FBQWtCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFEeEcsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVmLElBQUksQ0FBQyxFQUFFLEdBQUcsd0JBQXdCLFVBQVUsRUFBRSxFQUFFLENBQUM7SUFDbEQsQ0FBQztDQUNEO0FBRUQ7OztHQUdHO0FBa0NILE1BQU0sT0FBTyx1QkFBdUI7SUF5Q25DLFlBQ1MsSUFBWSxFQUNaLEtBQXdCLEVBQ3hCLFdBQW9DLEVBQ3BDLE1BQXdCO1FBSHhCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixV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QUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0NBQ3JGLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQzs2QkFDbkQsQ0FBQzs0QkFDRixVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxDQUFDO3lCQUNuRixDQUFDO3FCQUNGO21LQUtELEdBQUc7c0JBREYsS0FBSztnQkFVTix1QkFBdUI7c0JBRHRCLEtBQUs7Z0JBU04sYUFBYTtzQkFEWixLQUFLO2dCQW9CRSxJQUFJO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFNjcm9sbERpc3BhdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcclxuaW1wb3J0IHtcclxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuXHRDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRDb21wb25lbnQsXHJcblx0RWxlbWVudFJlZixcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0Tmdab25lLFxyXG5cdE9uRGVzdHJveSxcclxuXHRPbkluaXQsXHJcblx0T3V0cHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGdlbmVyYXRlSUQsIGlzRWxlbWVudEluVmlld3BvcnQgfSBmcm9tICdAYnJhdnVyYS91aS9jb21tb24nO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlbGF5LCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbi8qKkBpbnRlcm5hbCAqL1xyXG5jbGFzcyBJbnRlcm5hbEFsZXJ0T2plY3Qge1xyXG5cdGlkOiBzdHJpbmc7XHJcblx0ZGVsZXRlZCA9IGZhbHNlO1xyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB0eXBlOiAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InLCBwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nKSB7XHJcblx0XHR0aGlzLmlkID0gYGJ1aS1hbGVydC1jb250LWFsZXJ0LSR7Z2VuZXJhdGVJRCgpfWA7XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogVXNlIHRoaXMgY29tcG9uZW50IGluIGEgZGVzaWduYXRlZCBhcmVhIG9mIGEgcGFnZSBmb3IgZGlzcGxheWluZyBub3RpZmljYXRpb24gbWVzc2FnZXNcclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYnVpLWFsZXJ0LWNvbnRhaW5lcicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2FsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0aG9zdDoge1xyXG5cdFx0J1tjbGFzc10nOiBgJ2J1aS1hbGVydC1jb250YWluZXIgYnVpLWhvc3QgYnVpLWFsZXJ0LWNvbnRhaW5lci0nICsgKF9yZW1haW5pbmcubGVuZ3RoID8gJ25vdC1lbXB0eSc6ICdlbXB0eScpYFxyXG5cdH0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0YW5pbWF0aW9uczogW1xyXG5cdFx0dHJpZ2dlcignZmxvYXRUcmFuc2l0aW9uJywgW1xyXG5cdFx0XHR0cmFuc2l0aW9uKCc6ZW50ZXInLCBbc3R5bGUoeyBvcGFjaXR5OiAnMCcsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwdmgpJyB9KSwgYW5pbWF0ZSgnLjNzIGVhc2UtaW4nKV0pLFxyXG5cdFx0XHR0cmFuc2l0aW9uKCc6bGVhdmUnLCBbYW5pbWF0ZSgnLjRzIGVhc2Utb3V0Jywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMHZoKScsIG9wYWNpdHk6ICcwJyB9KSldKVxyXG5cdFx0XSksXHJcblx0XHR0cmlnZ2VyKCdhbGVydFRyYW5zaXRpb24nLCBbXHJcblx0XHRcdHN0YXRlKCd2aXNpYmxlJywgc3R5bGUoe30pKSxcclxuXHRcdFx0c3RhdGUoXHJcblx0XHRcdFx0J2hpZGRlbicsXHJcblx0XHRcdFx0c3R5bGUoe1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiAwLFxyXG5cdFx0XHRcdFx0b3ZlcmZsb3c6ICdoaWRkZW4nLFxyXG5cdFx0XHRcdFx0dHJhbnNmb3JtOiAnc2NhbGVZKDApJyxcclxuXHRcdFx0XHRcdG9wYWNpdHk6IDAsXHJcblx0XHRcdFx0XHQnbWFyZ2luLXRvcCc6ICctMXJlbSdcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpLFxyXG5cdFx0XHR0cmFuc2l0aW9uKCd2b2lkID0+IHZpc2libGUnLCBbXHJcblx0XHRcdFx0c3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDEwMCUpJywgaGVpZ2h0OiAwLCBvcGFjaXR5OiAnMCcsIG92ZXJmbG93OiAnaGlkZGVuJyB9KSxcclxuXHRcdFx0XHRhbmltYXRlKCcyNTBtcyBjdWJpYy1iZXppZXIoMC40MiwgMC4wLCAwLjU4LCAxLjApJylcclxuXHRcdFx0XSksXHJcblx0XHRcdHRyYW5zaXRpb24oJ3Zpc2libGUgPT4gaGlkZGVuJywgW2FuaW1hdGUoJzI1MG1zIGN1YmljLWJlemllcigwLjI1LCAwLCAwLjMsIDEuMCknKV0pXHJcblx0XHRdKVxyXG5cdF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFsZXJ0Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdC8qKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgbWVzc2FnZXMgZGlzcGxheWVkIGluIHRoZSBjb250YWluZXIgYXJlYS4gKi9cclxuXHRASW5wdXQoKVxyXG5cdG1heCA9IDU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoaXMgcHJvcGVydHkgZGV0ZXJtaW5lcyB0aGUgYmVoYXZpb3IgZm9yIGRpc3BsYXlpbmcgdGhlIG5vdGlmaWNhdGlvbnMgd2hlbiB0aGUgY29udGFpbmVyIGlzIG91dHNpZGUgdGhlIHZpZXdwb3J0LlxyXG5cdCAqXHJcblx0ICogYHNjcm9sbGA6IFRoZSBjb21wb25lbnQgd2lsbCB0cnkgdG8gc2Nyb2xsIHRvIHJldmVhbCB0aGUgbmV3IG5vdGlmaWNhdGlvbnMuXHJcblx0ICogYGZsb2F0YDogVGhlIGNvbXBvbmVudCB3aWxsIGZsb2F0IHRoZSBhbGVydCBwYW5lbCB0byB0aGUgY2VudGVyIG9mIHRoZSBzY3JlZW4gZm9yIGEgY291cGxlIG9mIHNlY29uZHMgYW5kIG1vdmUgaXQgYmFjayB0byB0aGUgb3JpZ2luYWwgcG9zaXRpb24uXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRvdXRzaWRlVmlld3BvcnRCZWhhdmlvcjogJ3Njcm9sbCcgfCAnZmxvYXQnID0gJ2Zsb2F0JztcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgZm9yIHdoaWNoIHRoZSBhbGVydCBjb250YWluZXIgd2lsbCBiZSBmbG9hdGVkIHdoZW4gbmV3IG5vdGlmaWNhdGlvbiBhcnJpdmVzLlxyXG5cdCAqXHJcblx0ICogVGhpcyB3aWxsIG9ubHkgdGFrZSBlZmZlY3Qgd2hlbiBgb3V0c2lkZVZpZXdwb3J0QmVoYXZpb3JgIGlzIHNldCB0byBgZmxvYXRgIGFuZCB0aGUgY29udGFpbmVyIGlzIG91dHNpZGUgdGhlIHZpZXdwb3J0LlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0ZmxvYXREdXJhdGlvbiA9IDIwMDA7XHJcblxyXG5cdC8qKkBpbnRlcm5hbCAqL1xyXG5cdF9hbGVydHM6IEludGVybmFsQWxlcnRPamVjdFtdID0gW107XHJcblx0LyoqQGludGVybmFsICovXHJcblx0X2Zsb2F0ZWQgPSBmYWxzZTtcclxuXHQvKipAaW50ZXJuYWwgKi9cclxuXHRfZmxvYXRQYW5lbEhpZGRlbiA9IHRydWU7XHJcblxyXG5cdC8qKiBAaWdub3JlIEVtaXRzIHdoZW5ldmVyIHRoZSBhbmltYXRpb24gaXMgc3RhcnRlZC4gKi9cclxuXHRyZWFkb25seSBfYW5pbWF0aW9uU3RhcnRlZCA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xyXG5cdC8qKiBAaWdub3JlIEVtaXRzIHdoZW5ldmVyIHRoZSBhbmltYXRpb24gaXMgZG9uZS4gKi9cclxuXHRyZWFkb25seSBfYW5pbWF0aW9uRW5kZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcclxuXHJcblx0cHJpdmF0ZSBfZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblx0cHJpdmF0ZSBfZW5kRmxvYXRpbmdTdWI/OiBTdWJzY3JpcHRpb247XHJcblxyXG5cdC8qKiBFbWl0cyB0aGUgY29tcG9uZW50IGluc3RhbmNlIGFmdGVyIGluaXRpYWxpc2F0aW9uLiAqL1xyXG5cdEBPdXRwdXQoKVxyXG5cdHByaXZhdGUgaW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8QWxlcnRDb250YWluZXJDb21wb25lbnQ+KCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSB6b25lOiBOZ1pvbmUsXHJcblx0XHRwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRcdHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG5cdFx0cHJpdmF0ZSBzY3JvbGw6IFNjcm9sbERpc3BhdGNoZXJcclxuXHQpIHt9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgY2hlY2tTY3JvbGwgPSAoKSA9PiB7XHJcblx0XHRcdGlmIChpc0VsZW1lbnRJblZpZXdwb3J0KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpIHtcclxuXHRcdFx0XHR0aGlzLl9lbmRGbG9hdGluZygpO1xyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdFx0dGhpcy5zY3JvbGxcclxuXHRcdFx0LmFuY2VzdG9yU2Nyb2xsZWQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KVxyXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpXHJcblx0XHRcdC5zdWJzY3JpYmUoY2hlY2tTY3JvbGwpO1xyXG5cdFx0Y2hlY2tTY3JvbGwoKTtcclxuXHRcdHRoaXMuaW5pdC5lbWl0KHRoaXMpO1xyXG5cdFx0dGhpcy5pbml0LmNvbXBsZXRlKCk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuX2Rlc3Ryb3llZCQubmV4dCgpO1xyXG5cdFx0dGhpcy5fZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xyXG5cdFx0dGhpcy5fZW5kRmxvYXRpbmdTdWI/LnVuc3Vic2NyaWJlKCk7XHJcblx0fVxyXG5cclxuXHQvKipAaW50ZXJuYWwgKi9cclxuXHRnZXQgX3JlbWFpbmluZygpIHtcclxuXHRcdHJldHVybiB0aGlzLl9hbGVydHMuZmlsdGVyKGEgPT4gIWEuZGVsZXRlZCk7XHJcblx0fVxyXG5cclxuXHQvKipAaW50ZXJuYWwgKi9cclxuXHRnZXQgX3dpZHRoKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcclxuXHR9XHJcblxyXG5cdC8qKiBBZGQgYSBtZXNzYWdlIHRvIHRoZSBub3RpZmljYXRpb24gYXJlYSAqL1xyXG5cdGFzeW5jIG5vdGlmeSh0eXBlOiAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InLCBtZXNzYWdlOiBzdHJpbmcpIHtcclxuXHRcdHRoaXMuX2VuZEZsb2F0aW5nU3ViPy51bnN1YnNjcmliZSgpO1xyXG5cdFx0Y29uc3QgZHVwbGljYXRlID0gdGhpcy5fcmVtYWluaW5nLmZpbmQoX2EgPT4gbWVzc2FnZSA9PT0gX2EubWVzc2FnZSk7XHJcblx0XHRpZiAoZHVwbGljYXRlKSB7XHJcblx0XHRcdHRoaXMuX2Rpc21pc3MoZHVwbGljYXRlKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCByZW1haW5pbmcgPSB0aGlzLl9yZW1haW5pbmc7XHJcblx0XHRpZiAocmVtYWluaW5nLmxlbmd0aCA+PSB0aGlzLm1heCkge1xyXG5cdFx0XHR0aGlzLl9kaXNtaXNzKHJlbWFpbmluZ1swXSk7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgYSA9IG5ldyBJbnRlcm5hbEFsZXJ0T2plY3QodHlwZSwgbWVzc2FnZSk7XHJcblx0XHRhd2FpdCB0aGlzLl9jaGVja1ZpZXdwb3J0KCk7XHJcblx0XHR0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuXHRcdFx0dGhpcy5fYWxlcnRzLnB1c2goYSk7XHJcblx0XHRcdHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKkBpZ25vcmUgKi9cclxuXHRhc3luYyBfY2hlY2tWaWV3cG9ydCgpIHtcclxuXHRcdGlmICghaXNFbGVtZW50SW5WaWV3cG9ydCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpKSB7XHJcblx0XHRcdGlmICh0aGlzLm91dHNpZGVWaWV3cG9ydEJlaGF2aW9yID09PSAnZmxvYXQnKSB7XHJcblx0XHRcdFx0Y29uc3QgZCA9IHRoaXMuX2Zsb2F0ZWQgPyAwIDogMTAwO1xyXG5cdFx0XHRcdHRoaXMuX2Zsb2F0ZWQgPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMuX2Zsb2F0UGFuZWxIaWRkZW4gPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLl9lbmRGbG9hdGluZyh0aGlzLmZsb2F0RHVyYXRpb24pO1xyXG5cdFx0XHRcdHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcblx0XHRcdFx0YXdhaXQgdGltZXIoZCkudG9Qcm9taXNlKCk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICdzdGFydCcsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqQGlnbm9yZSAqL1xyXG5cdGFzeW5jIF9kaXNtaXNzKGE6IEludGVybmFsQWxlcnRPamVjdCkge1xyXG5cdFx0Y29uc3QgaWQgPSBhLmlkO1xyXG5cdFx0YS5kZWxldGVkID0gdHJ1ZTtcclxuXHRcdHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcblx0XHRhd2FpdCB0aGlzLl9hbmltYXRpb25FbmRlZC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xyXG5cdFx0dGhpcy56b25lLnJ1bigoKSA9PiB7XHJcblx0XHRcdHRoaXMuX2FsZXJ0cyA9IHRoaXMuX2FsZXJ0cy5maWx0ZXIoX2EgPT4gX2EuaWQgIT09IGlkKTtcclxuXHRcdFx0dGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqIFJlbW92ZSBhbGwgbWVzc2FnZXMgY3VycmVudGx5IGRpc3BsYXllZC4gKi9cclxuXHRhc3luYyBjbGVhcigpIHtcclxuXHRcdGF3YWl0IFByb21pc2UuYWxsKHRoaXMuX3JlbWFpbmluZy5tYXAoYSA9PiB0aGlzLl9kaXNtaXNzKGEpKSk7XHJcblx0XHR0aGlzLl9lbmRGbG9hdGluZygpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfZW5kRmxvYXRpbmcoX2RlbGF5ID0gMCkge1xyXG5cdFx0aWYgKCF0aGlzLl9mbG9hdGVkKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuX2VuZEZsb2F0aW5nU3ViPy51bnN1YnNjcmliZSgpO1xyXG5cdFx0dGhpcy5fZW5kRmxvYXRpbmdTdWIgPSB0aW1lcihfZGVsYXkpXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdHRhcCgoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLl9mbG9hdGVkID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCkpO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHRcdGRlbGF5KDQwMClcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLl9mbG9hdFBhbmVsSGlkZGVuID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCkpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdlxyXG5cdGNsYXNzPVwiYnVpLWFsZXJ0LWZpeGVkLXBhbmVsXCJcclxuXHRbc3R5bGUub3BhY2l0eV09XCJfZmxvYXRQYW5lbEhpZGRlbiA/IDEgOiAwXCJcclxuXHRbY2xhc3MuYnVpLWFsZXJ0LWZpeGVkLXBhbmVsLWJsaW5rXT1cIm91dHNpZGVWaWV3cG9ydEJlaGF2aW9yID09PSAnc2Nyb2xsJ1wiXHJcbj5cclxuXHQ8YnVpLWFsZXJ0XHJcblx0XHQqbmdGb3I9XCJsZXQgYSBvZiBfYWxlcnRzXCJcclxuXHRcdFtpZF09XCJhLmlkXCJcclxuXHRcdFt0eXBlXT1cImEudHlwZVwiXHJcblx0XHRbbWVzc2FnZV09XCJhLm1lc3NhZ2VcIlxyXG5cdFx0ZGlzbWlzc2libGVcclxuXHRcdFtAYWxlcnRUcmFuc2l0aW9uXT1cImEuZGVsZXRlZCA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCJcclxuXHRcdChAYWxlcnRUcmFuc2l0aW9uLnN0YXJ0KT1cIl9hbmltYXRpb25TdGFydGVkLm5leHQoJGV2ZW50KVwiXHJcblx0XHQoQGFsZXJ0VHJhbnNpdGlvbi5kb25lKT1cIl9hbmltYXRpb25FbmRlZC5uZXh0KCRldmVudClcIlxyXG5cdFx0KGRpc21pc3NlZCk9XCJfZGlzbWlzcyhhKVwiXHJcblx0PjwvYnVpLWFsZXJ0PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJidWktYWxlcnQtZmxvYXQtcGFuZWwtZnJhbWVcIiBbaGlkZGVuXT1cIl9mbG9hdFBhbmVsSGlkZGVuXCIgW2NsYXNzLmJ1aS1hbGVydC1mbG9hdC1wYW5lbC1zaGFkZWRdPVwiX2Zsb2F0ZWRcIj5cclxuXHQ8ZGl2IGNsYXNzPVwiYnVpLWFsZXJ0LWZsb2F0LXBhbmVsXCIgW3N0eWxlLm1heC13aWR0aF09XCJfd2lkdGggKyAncHgnXCIgW0BmbG9hdFRyYW5zaXRpb25dPVwiJ3Zpc2libGUnXCIgKm5nSWY9XCJfZmxvYXRlZFwiPlxyXG5cdFx0PGJ1aS1hbGVydFxyXG5cdFx0XHQqbmdGb3I9XCJsZXQgYSBvZiBfYWxlcnRzXCJcclxuXHRcdFx0W2lkXT1cImEuaWRcIlxyXG5cdFx0XHRbdHlwZV09XCJhLnR5cGVcIlxyXG5cdFx0XHRbbWVzc2FnZV09XCJhLm1lc3NhZ2VcIlxyXG5cdFx0XHRbQGFsZXJ0VHJhbnNpdGlvbl09XCJhLmRlbGV0ZWQgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiXHJcblx0XHQ+PC9idWktYWxlcnQ+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,101 +0,0 @@
1
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
3
- import { generateID } from '@bravura/ui/common';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/material/icon";
7
- import * as i3 from "@bravura/ui/icon-font";
8
- import * as i4 from "@angular/material/button";
9
- /** @ignore */
10
- const ICONS = {
11
- success: 'check_circle',
12
- info: 'info',
13
- warn: 'report_problem',
14
- error: 'cancel'
15
- };
16
- /** @ignore */
17
- const DEFAULT_POLITENESS = {
18
- success: 'polite',
19
- info: 'polite',
20
- warn: 'assertive',
21
- error: 'assertive'
22
- };
23
- /**
24
- * An alert style message usually appears in a global notification area.
25
- *
26
- * The base color of the message is determined by the `type` of the message and a list of predefined
27
- * CSS custom properties.
28
- *
29
- * ```scss
30
- * --bui-color-success: #519602;
31
- * --bui-color-info: #0dcaf0;
32
- * --bui-color-warning: #ffc107;
33
- * --bui-color-error: #dc3545;
34
- * ```
35
- *
36
- *
37
- */
38
- export class AlertMessageComponent {
39
- /** Whether to display the button to fire the `dismissed` event. */
40
- get dismissible() {
41
- return this._dismissible;
42
- }
43
- set dismissible(value) {
44
- this._dismissible = coerceBooleanProperty(value);
45
- }
46
- constructor() {
47
- /** The type of the message, used to derive the icon and base color. */
48
- this.type = 'error';
49
- /** The message to be displayed, HTML supported. */
50
- this.message = '';
51
- /** To be emitted when the user choose to dismiss the message. The event object is the ID of the element. */
52
- this.dismissed = new EventEmitter();
53
- /** To be emitted when the component finishes initialisation. The event object is the ID of the element. */
54
- this.initialised = new EventEmitter();
55
- this._id = `bui-alert-${generateID()}`;
56
- this._dismissible = false;
57
- }
58
- ngOnInit() {
59
- this.politeness = this.politeness || DEFAULT_POLITENESS[this.type];
60
- this.initialised.emit(this._id);
61
- }
62
- /** @ignore */
63
- get iconName() {
64
- return ICONS[this.type];
65
- }
66
- /** @ignore */
67
- _dismiss() {
68
- this.dismissed.emit(this._id);
69
- }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AlertMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: AlertMessageComponent, selector: "bui-alert", inputs: { type: "type", message: "message", politeness: "politeness", dismissible: "dismissible", _id: ["id", "_id"] }, outputs: { dismissed: "dismissed", initialised: "initialised" }, host: { properties: { "class": "'bui-alert bui-host bui-alert-' + (type === 'warn' ? 'warning' : type) + (dismissible ? ' bui-alert-dismissible' : '')", "role": "politeness === 'off' ? 'region' : 'alert'", "attr.aria-live": "politeness === 'assertive' ? undefined : politeness", "id": "this._id" } }, ngImport: i0, template: "<div class=\"bui-alert-backdrop\"></div>\r\n<div class=\"bui-alert-frame\"></div>\r\n\r\n<div class=\"bui-alert-wrapper\">\r\n\t<div class=\"bui-alert-icon-area\">\r\n\t\t<mat-icon [buiIcon]=\"iconName\" variant=\"outlined\"></mat-icon>\r\n\t</div>\r\n\t<div class=\"bui-alert-content\">\r\n\t\t<div [innerHTML]=\"message\" *ngIf=\"message\"></div>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n</div>\r\n\r\n<div class=\"bui-alert-button-area\" *ngIf=\"dismissible\">\r\n\t<div class=\"bui-alert-button-backdrop\"></div>\r\n\t<button mat-icon-button class=\"bui-alert-button\" (click)=\"_dismiss()\" aria-label=\"dismiss alert\">\r\n\t\t<mat-icon>cancel</mat-icon>\r\n\t</button>\r\n</div>\r\n", styles: [":host(:not([hidden])){display:block;padding:12px 14px 12px 19px;position:relative;border-radius:5px}:host-context([dir=rtl]) :host(:not([hidden])){padding:12px 19px 12px 14px}:host(:not([hidden])),:host(:not([hidden])) *{box-sizing:border-box}.bui-alert-backdrop,.bui-alert-frame{position:absolute;inset:0}.bui-alert-backdrop{opacity:.1}:host(.bui-alert-dismissible) .bui-alert-backdrop{clip-path:polygon(0 0,calc(100% - 25px) 0,calc(100% - 18.75px) 18.75px,100% 25px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-backdrop{clip-path:polygon(0 25px,0 100%,100% 100%,100% 0,25px 0,18.75px 18.75px)}.bui-alert-frame{border-radius:5px;border-width:1px 1px 1px 5px;border-style:solid}:host-context([dir=rtl]) .bui-alert-frame{border-width:1px 5px 1px 1px}:host(.bui-alert-dismissible) .bui-alert-frame{clip-path:polygon(0 0,calc(100% - 25px) 0,calc(100% - 25px) 25px,100% 25px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-frame{clip-path:polygon(0 25px,0 100%,100% 100%,100% 0,25px 0)}.bui-alert-button-area{position:absolute;right:-15px;top:-15px;width:40px;height:40px;border-radius:20px;display:flex;align-items:center;justify-content:center}:host-context([dir=rtl]) .bui-alert-button-area{right:unset;left:-15px}.bui-alert-button-backdrop{position:absolute;border-radius:20px;width:100%;height:100%;clip-path:polygon(0 15px,25px 15px,25px 100%,0% 100%)}:host-context([dir=rtl]) .bui-alert-button-backdrop{clip-path:polygon(15px 15px,15px 100%,100% 100%,100% 15px)}.bui-alert-wrapper{display:flex;align-items:stretch}.bui-alert-icon-area{flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:5px;width:30px;height:30px;margin-right:14px;color:var(--bui-bg-card)}:host-context([dir=rtl]) .bui-alert-icon-area{margin-right:unset;margin-left:14px}.bui-alert-content{z-index:1;flex-grow:1;display:flex;flex-direction:column;justify-content:center;gap:1rem}:host(.bui-alert-dismissible) .bui-alert-content{clip-path:polygon(0 0,calc(100% - 11px) 0,100% 13px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-content{clip-path:polygon(0 13px,0 100%,100% 100%,100% 0,11px 0)}:host(.bui-alert-success) .bui-alert-frame{border-color:var(--bui-color-success)}:host(.bui-alert-success) .bui-alert-backdrop,:host(.bui-alert-success) .bui-alert-icon-area{background-color:var(--bui-color-success)}:host(.bui-alert-success) .bui-alert-button-backdrop{border:1px var(--bui-color-success) solid}:host(.bui-alert-success) .bui-alert-button{color:var(--bui-color-success)}:host(.bui-alert-info) .bui-alert-frame{border-color:var(--bui-color-info)}:host(.bui-alert-info) .bui-alert-backdrop,:host(.bui-alert-info) .bui-alert-icon-area{background-color:var(--bui-color-info)}:host(.bui-alert-info) .bui-alert-button-backdrop{border:1px var(--bui-color-info) solid}:host(.bui-alert-info) .bui-alert-button{color:var(--bui-color-info)}:host(.bui-alert-warning) .bui-alert-frame{border-color:var(--bui-color-warning)}:host(.bui-alert-warning) .bui-alert-backdrop,:host(.bui-alert-warning) .bui-alert-icon-area{background-color:var(--bui-color-warning)}:host(.bui-alert-warning) .bui-alert-button-backdrop{border:1px var(--bui-color-warning) solid}:host(.bui-alert-warning) .bui-alert-button{color:var(--bui-color-warning)}:host(.bui-alert-error) .bui-alert-frame{border-color:var(--bui-color-error)}:host(.bui-alert-error) .bui-alert-backdrop,:host(.bui-alert-error) .bui-alert-icon-area{background-color:var(--bui-color-error)}:host(.bui-alert-error) .bui-alert-button-backdrop{border:1px var(--bui-color-error) solid}:host(.bui-alert-error) .bui-alert-button{color:var(--bui-color-error)}.bui-alert-button{width:40px;height:40px;padding:8px;overflow:hidden}@polyfill-unscoped-rule{content: \".bui-alert .bui-alert-content > div > *:first-child\"; margin-top: 0;}@polyfill-unscoped-rule{content: \".bui-alert .bui-alert-content > div > *:last-child\"; margin-bottom: 0;}@polyfill-unscoped-rule{content: \".bui-alert .bui-alert-content > *:first-child\"; margin-top: 0;}@polyfill-unscoped-rule{content: \".bui-alert .bui-alert-content > *:last-child\"; margin-bottom: 0;}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.IconDirective, selector: "[buiIcon]", inputs: ["buiIcon", "size", "variant"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
- }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AlertMessageComponent, decorators: [{
74
- type: Component,
75
- args: [{ selector: 'bui-alert', host: {
76
- '[class]': `'bui-alert bui-host bui-alert-' + (type === 'warn' ? 'warning' : type) + (dismissible ? ' bui-alert-dismissible' : '')`,
77
- '[role]': `politeness === 'off' ? 'region' : 'alert'`,
78
- '[attr.aria-live]': `politeness === 'assertive' ? undefined : politeness`
79
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bui-alert-backdrop\"></div>\r\n<div class=\"bui-alert-frame\"></div>\r\n\r\n<div class=\"bui-alert-wrapper\">\r\n\t<div class=\"bui-alert-icon-area\">\r\n\t\t<mat-icon [buiIcon]=\"iconName\" variant=\"outlined\"></mat-icon>\r\n\t</div>\r\n\t<div class=\"bui-alert-content\">\r\n\t\t<div [innerHTML]=\"message\" *ngIf=\"message\"></div>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n</div>\r\n\r\n<div class=\"bui-alert-button-area\" *ngIf=\"dismissible\">\r\n\t<div class=\"bui-alert-button-backdrop\"></div>\r\n\t<button mat-icon-button class=\"bui-alert-button\" (click)=\"_dismiss()\" aria-label=\"dismiss alert\">\r\n\t\t<mat-icon>cancel</mat-icon>\r\n\t</button>\r\n</div>\r\n", styles: [":host(:not([hidden])){display:block;padding:12px 14px 12px 19px;position:relative;border-radius:5px}:host-context([dir=rtl]) :host(:not([hidden])){padding:12px 19px 12px 14px}:host(:not([hidden])),:host(:not([hidden])) *{box-sizing:border-box}.bui-alert-backdrop,.bui-alert-frame{position:absolute;inset:0}.bui-alert-backdrop{opacity:.1}:host(.bui-alert-dismissible) .bui-alert-backdrop{clip-path:polygon(0 0,calc(100% - 25px) 0,calc(100% - 18.75px) 18.75px,100% 25px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-backdrop{clip-path:polygon(0 25px,0 100%,100% 100%,100% 0,25px 0,18.75px 18.75px)}.bui-alert-frame{border-radius:5px;border-width:1px 1px 1px 5px;border-style:solid}:host-context([dir=rtl]) .bui-alert-frame{border-width:1px 5px 1px 1px}:host(.bui-alert-dismissible) .bui-alert-frame{clip-path:polygon(0 0,calc(100% - 25px) 0,calc(100% - 25px) 25px,100% 25px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-frame{clip-path:polygon(0 25px,0 100%,100% 100%,100% 0,25px 0)}.bui-alert-button-area{position:absolute;right:-15px;top:-15px;width:40px;height:40px;border-radius:20px;display:flex;align-items:center;justify-content:center}:host-context([dir=rtl]) .bui-alert-button-area{right:unset;left:-15px}.bui-alert-button-backdrop{position:absolute;border-radius:20px;width:100%;height:100%;clip-path:polygon(0 15px,25px 15px,25px 100%,0% 100%)}:host-context([dir=rtl]) .bui-alert-button-backdrop{clip-path:polygon(15px 15px,15px 100%,100% 100%,100% 15px)}.bui-alert-wrapper{display:flex;align-items:stretch}.bui-alert-icon-area{flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:5px;width:30px;height:30px;margin-right:14px;color:var(--bui-bg-card)}:host-context([dir=rtl]) .bui-alert-icon-area{margin-right:unset;margin-left:14px}.bui-alert-content{z-index:1;flex-grow:1;display:flex;flex-direction:column;justify-content:center;gap:1rem}:host(.bui-alert-dismissible) .bui-alert-content{clip-path:polygon(0 0,calc(100% - 11px) 0,100% 13px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-content{clip-path:polygon(0 13px,0 100%,100% 100%,100% 0,11px 0)}:host(.bui-alert-success) .bui-alert-frame{border-color:var(--bui-color-success)}:host(.bui-alert-success) .bui-alert-backdrop,:host(.bui-alert-success) .bui-alert-icon-area{background-color:var(--bui-color-success)}:host(.bui-alert-success) .bui-alert-button-backdrop{border:1px var(--bui-color-success) solid}:host(.bui-alert-success) .bui-alert-button{color:var(--bui-color-success)}:host(.bui-alert-info) .bui-alert-frame{border-color:var(--bui-color-info)}:host(.bui-alert-info) .bui-alert-backdrop,:host(.bui-alert-info) .bui-alert-icon-area{background-color:var(--bui-color-info)}:host(.bui-alert-info) .bui-alert-button-backdrop{border:1px var(--bui-color-info) solid}:host(.bui-alert-info) .bui-alert-button{color:var(--bui-color-info)}:host(.bui-alert-warning) .bui-alert-frame{border-color:var(--bui-color-warning)}:host(.bui-alert-warning) .bui-alert-backdrop,:host(.bui-alert-warning) .bui-alert-icon-area{background-color:var(--bui-color-warning)}:host(.bui-alert-warning) .bui-alert-button-backdrop{border:1px var(--bui-color-warning) solid}:host(.bui-alert-warning) .bui-alert-button{color:var(--bui-color-warning)}:host(.bui-alert-error) .bui-alert-frame{border-color:var(--bui-color-error)}:host(.bui-alert-error) .bui-alert-backdrop,:host(.bui-alert-error) .bui-alert-icon-area{background-color:var(--bui-color-error)}:host(.bui-alert-error) .bui-alert-button-backdrop{border:1px var(--bui-color-error) solid}:host(.bui-alert-error) .bui-alert-button{color:var(--bui-color-error)}.bui-alert-button{width:40px;height:40px;padding:8px;overflow:hidden}@polyfill-unscoped-rule{content: \".bui-alert .bui-alert-content > div > *:first-child\"; margin-top: 0;}@polyfill-unscoped-rule{content: \".bui-alert .bui-alert-content > div > *:last-child\"; margin-bottom: 0;}@polyfill-unscoped-rule{content: \".bui-alert .bui-alert-content > *:first-child\"; margin-top: 0;}@polyfill-unscoped-rule{content: \".bui-alert .bui-alert-content > *:last-child\"; margin-bottom: 0;}\n"] }]
80
- }], ctorParameters: () => [], propDecorators: { type: [{
81
- type: Input
82
- }], message: [{
83
- type: Input
84
- }], politeness: [{
85
- type: Input
86
- }], dismissible: [{
87
- type: Input
88
- }], dismissed: [{
89
- type: Output
90
- }], initialised: [{
91
- type: Output
92
- }],
93
- /** @ignore */
94
- _id: [{
95
- type: Input,
96
- args: ['id']
97
- }, {
98
- type: HostBinding,
99
- args: ['id']
100
- }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9hbGVydC9hbGVydC1tZXNzYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2FsZXJ0L2FsZXJ0LW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7QUFFaEQsY0FBYztBQUNkLE1BQU0sS0FBSyxHQUFRO0lBQ2xCLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixLQUFLLEVBQUUsUUFBUTtDQUNmLENBQUM7QUFFRixjQUFjO0FBQ2QsTUFBTSxrQkFBa0IsR0FBRztJQUMxQixPQUFPLEVBQUUsUUFBUTtJQUNqQixJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxXQUFXO0NBQ2xCLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQVlILE1BQU0sT0FBTyxxQkFBcUI7SUFrQmpDLG1FQUFtRTtJQUNuRSxJQUNJLFdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBaUJEO1FBcENBLHdFQUF3RTtRQUV4RSxTQUFJLEdBQTBDLE9BQU8sQ0FBQztRQUV0RCxvREFBb0Q7UUFFcEQsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQWViLDZHQUE2RztRQUU3RyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV2Qyw0R0FBNEc7UUFFNUcsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3pDLFFBQUcsR0FBRyxhQUFhLFVBQVUsRUFBRSxFQUFFLENBQUM7UUFFMUIsaUJBQVksR0FBRyxLQUFLLENBQUM7SUFFZCxDQUFDO0lBRWhCLFFBQVE7UUFDUCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsY0FBYztJQUNkLElBQUksUUFBUTtRQUNYLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsY0FBYztJQUNkLFFBQVE7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs4R0F6RFcscUJBQXFCO2tHQUFyQixxQkFBcUIsdWhCQzlDbEMsMHJCQW1CQTs7MkZEMkJhLHFCQUFxQjtrQkFYakMsU0FBUzsrQkFDQyxXQUFXLFFBR2Y7d0JBQ0wsU0FBUyxFQUFFLHdIQUF3SDt3QkFDbkksUUFBUSxFQUFFLDJDQUEyQzt3QkFDckQsa0JBQWtCLEVBQUUscURBQXFEO3FCQUN6RSxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTt3REFVL0MsSUFBSTtzQkFESCxLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBS0YsV0FBVztzQkFEZCxLQUFLO2dCQVVOLFNBQVM7c0JBRFIsTUFBTTtnQkFLUCxXQUFXO3NCQURWLE1BQU07O1FBS1AsY0FBYztRQUNkLEdBQUc7c0JBSEYsS0FBSzt1QkFBQyxJQUFJOztzQkFDVixXQUFXO3VCQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZ2VuZXJhdGVJRCB9IGZyb20gJ0BicmF2dXJhL3VpL2NvbW1vbic7XHJcblxyXG4vKiogQGlnbm9yZSAqL1xyXG5jb25zdCBJQ09OUzogYW55ID0ge1xyXG5cdHN1Y2Nlc3M6ICdjaGVja19jaXJjbGUnLFxyXG5cdGluZm86ICdpbmZvJyxcclxuXHR3YXJuOiAncmVwb3J0X3Byb2JsZW0nLFxyXG5cdGVycm9yOiAnY2FuY2VsJ1xyXG59O1xyXG5cclxuLyoqIEBpZ25vcmUgKi9cclxuY29uc3QgREVGQVVMVF9QT0xJVEVORVNTID0ge1xyXG5cdHN1Y2Nlc3M6ICdwb2xpdGUnLFxyXG5cdGluZm86ICdwb2xpdGUnLFxyXG5cdHdhcm46ICdhc3NlcnRpdmUnLFxyXG5cdGVycm9yOiAnYXNzZXJ0aXZlJ1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEFuIGFsZXJ0IHN0eWxlIG1lc3NhZ2UgdXN1YWxseSBhcHBlYXJzIGluIGEgZ2xvYmFsIG5vdGlmaWNhdGlvbiBhcmVhLlxyXG4gKlxyXG4gKiBUaGUgYmFzZSBjb2xvciBvZiB0aGUgbWVzc2FnZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBgdHlwZWAgb2YgdGhlIG1lc3NhZ2UgYW5kIGEgbGlzdCBvZiBwcmVkZWZpbmVkXHJcbiAqIENTUyBjdXN0b20gcHJvcGVydGllcy5cclxuICpcclxuICogYGBgc2Nzc1xyXG4gKiAtLWJ1aS1jb2xvci1zdWNjZXNzOiAjNTE5NjAyO1xyXG4gKiAtLWJ1aS1jb2xvci1pbmZvOiAjMGRjYWYwO1xyXG4gKiAtLWJ1aS1jb2xvci13YXJuaW5nOiAjZmZjMTA3O1xyXG4gKiAtLWJ1aS1jb2xvci1lcnJvcjogI2RjMzU0NTtcclxuICogYGBgXHJcbiAqXHJcbiAqXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2J1aS1hbGVydCcsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2FsZXJ0LW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2FsZXJ0LW1lc3NhZ2UuY29tcG9uZW50LnNjc3MnXSxcclxuXHRob3N0OiB7XHJcblx0XHQnW2NsYXNzXSc6IGAnYnVpLWFsZXJ0IGJ1aS1ob3N0IGJ1aS1hbGVydC0nICsgKHR5cGUgPT09ICd3YXJuJyA/ICd3YXJuaW5nJyA6IHR5cGUpICsgKGRpc21pc3NpYmxlID8gJyBidWktYWxlcnQtZGlzbWlzc2libGUnIDogJycpYCxcclxuXHRcdCdbcm9sZV0nOiBgcG9saXRlbmVzcyA9PT0gJ29mZicgPyAncmVnaW9uJyA6ICdhbGVydCdgLFxyXG5cdFx0J1thdHRyLmFyaWEtbGl2ZV0nOiBgcG9saXRlbmVzcyA9PT0gJ2Fzc2VydGl2ZScgPyB1bmRlZmluZWQgOiBwb2xpdGVuZXNzYFxyXG5cdH0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFsZXJ0TWVzc2FnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0LyoqIEBpZ25vcmUgKi9cclxuXHRzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzbWlzc2libGU6IGJvb2xlYW4gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xyXG5cdC8qKiBAaWdub3JlICovXHJcblx0c3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JsaW5rOiBib29sZWFuIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuXHJcblx0LyoqIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlLCB1c2VkIHRvIGRlcml2ZSB0aGUgaWNvbiBhbmQgYmFzZSBjb2xvci4gICovXHJcblx0QElucHV0KClcclxuXHR0eXBlOiAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InID0gJ2Vycm9yJztcclxuXHJcblx0LyoqIFRoZSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCwgSFRNTCBzdXBwb3J0ZWQuICAqL1xyXG5cdEBJbnB1dCgpXHJcblx0bWVzc2FnZSA9ICcnO1xyXG5cclxuXHQvKiogU3BlY2lmaWVzIHRoZSBBUklBIGxpdmUgcmVnaW9uIHBvbGl0ZW5lc3MuICovXHJcblx0QElucHV0KClcclxuXHRwb2xpdGVuZXNzITogJ29mZicgfCAncG9saXRlJyB8ICdhc3NlcnRpdmUnO1xyXG5cclxuXHQvKiogV2hldGhlciB0byBkaXNwbGF5IHRoZSBidXR0b24gdG8gZmlyZSB0aGUgYGRpc21pc3NlZGAgZXZlbnQuICovXHJcblx0QElucHV0KClcclxuXHRnZXQgZGlzbWlzc2libGUoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fZGlzbWlzc2libGU7XHJcblx0fVxyXG5cdHNldCBkaXNtaXNzaWJsZSh2YWx1ZTogYW55KSB7XHJcblx0XHR0aGlzLl9kaXNtaXNzaWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHQvKiogVG8gYmUgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNob29zZSB0byBkaXNtaXNzIHRoZSBtZXNzYWdlLiBUaGUgZXZlbnQgb2JqZWN0IGlzIHRoZSBJRCBvZiB0aGUgZWxlbWVudC4gICovXHJcblx0QE91dHB1dCgpXHJcblx0ZGlzbWlzc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG5cdC8qKiBUbyBiZSBlbWl0dGVkIHdoZW4gdGhlIGNvbXBvbmVudCBmaW5pc2hlcyBpbml0aWFsaXNhdGlvbi4gVGhlIGV2ZW50IG9iamVjdCBpcyB0aGUgSUQgb2YgdGhlIGVsZW1lbnQuICAqL1xyXG5cdEBPdXRwdXQoKVxyXG5cdGluaXRpYWxpc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG5cdEBJbnB1dCgnaWQnKVxyXG5cdEBIb3N0QmluZGluZygnaWQnKVxyXG5cdC8qKiBAaWdub3JlICovXHJcblx0X2lkID0gYGJ1aS1hbGVydC0ke2dlbmVyYXRlSUQoKX1gO1xyXG5cclxuXHRwcml2YXRlIF9kaXNtaXNzaWJsZSA9IGZhbHNlO1xyXG5cclxuXHRjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5wb2xpdGVuZXNzID0gdGhpcy5wb2xpdGVuZXNzIHx8IERFRkFVTFRfUE9MSVRFTkVTU1t0aGlzLnR5cGVdO1xyXG5cdFx0dGhpcy5pbml0aWFsaXNlZC5lbWl0KHRoaXMuX2lkKTtcclxuXHR9XHJcblxyXG5cdC8qKiBAaWdub3JlICovXHJcblx0Z2V0IGljb25OYW1lKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gSUNPTlNbdGhpcy50eXBlXTtcclxuXHR9XHJcblxyXG5cdC8qKiBAaWdub3JlICovXHJcblx0X2Rpc21pc3MoKSB7XHJcblx0XHR0aGlzLmRpc21pc3NlZC5lbWl0KHRoaXMuX2lkKTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImJ1aS1hbGVydC1iYWNrZHJvcFwiPjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiYnVpLWFsZXJ0LWZyYW1lXCI+PC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiYnVpLWFsZXJ0LXdyYXBwZXJcIj5cclxuXHQ8ZGl2IGNsYXNzPVwiYnVpLWFsZXJ0LWljb24tYXJlYVwiPlxyXG5cdFx0PG1hdC1pY29uIFtidWlJY29uXT1cImljb25OYW1lXCIgdmFyaWFudD1cIm91dGxpbmVkXCI+PC9tYXQtaWNvbj5cclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2IGNsYXNzPVwiYnVpLWFsZXJ0LWNvbnRlbnRcIj5cclxuXHRcdDxkaXYgW2lubmVySFRNTF09XCJtZXNzYWdlXCIgKm5nSWY9XCJtZXNzYWdlXCI+PC9kaXY+XHJcblx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImJ1aS1hbGVydC1idXR0b24tYXJlYVwiICpuZ0lmPVwiZGlzbWlzc2libGVcIj5cclxuXHQ8ZGl2IGNsYXNzPVwiYnVpLWFsZXJ0LWJ1dHRvbi1iYWNrZHJvcFwiPjwvZGl2PlxyXG5cdDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiYnVpLWFsZXJ0LWJ1dHRvblwiIChjbGljayk9XCJfZGlzbWlzcygpXCIgYXJpYS1sYWJlbD1cImRpc21pc3MgYWxlcnRcIj5cclxuXHRcdDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxyXG5cdDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
@@ -1,22 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { IconFontModule } from '@bravura/ui/icon-font';
5
- import { AlertContainerComponent } from './alert-container.component';
6
- import { AlertMessageComponent } from './alert-message.component';
7
- import * as i0 from "@angular/core";
8
- export class AlertModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: AlertModule, declarations: [AlertMessageComponent, AlertContainerComponent], imports: [CommonModule, IconFontModule, MatButtonModule], exports: [AlertMessageComponent, AlertContainerComponent] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AlertModule, imports: [CommonModule, IconFontModule, MatButtonModule] }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: AlertModule, decorators: [{
14
- type: NgModule,
15
- args: [{
16
- declarations: [AlertMessageComponent, AlertContainerComponent],
17
- imports: [CommonModule, IconFontModule, MatButtonModule],
18
- exports: [AlertMessageComponent, AlertContainerComponent]
19
- }]
20
- }] });
21
- export { AlertMessageComponent, AlertContainerComponent };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvYWxlcnQvYWxlcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBT2xFLE1BQU0sT0FBTyxXQUFXOzhHQUFYLFdBQVc7K0dBQVgsV0FBVyxpQkFKUixxQkFBcUIsRUFBRSx1QkFBdUIsYUFDbkQsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLGFBQzdDLHFCQUFxQixFQUFFLHVCQUF1QjsrR0FFNUMsV0FBVyxZQUhiLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZTs7MkZBRzNDLFdBQVc7a0JBTHZCLFFBQVE7bUJBQUM7b0JBQ1QsWUFBWSxFQUFFLENBQUMscUJBQXFCLEVBQUUsdUJBQXVCLENBQUM7b0JBQzlELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDO29CQUN4RCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSx1QkFBdUIsQ0FBQztpQkFDekQ7O0FBR0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBJY29uRm9udE1vZHVsZSB9IGZyb20gJ0BicmF2dXJhL3VpL2ljb24tZm9udCc7XHJcbmltcG9ydCB7IEFsZXJ0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9hbGVydC1jb250YWluZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWxlcnRNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9hbGVydC1tZXNzYWdlLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGRlY2xhcmF0aW9uczogW0FsZXJ0TWVzc2FnZUNvbXBvbmVudCwgQWxlcnRDb250YWluZXJDb21wb25lbnRdLFxyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEljb25Gb250TW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdLFxyXG5cdGV4cG9ydHM6IFtBbGVydE1lc3NhZ2VDb21wb25lbnQsIEFsZXJ0Q29udGFpbmVyQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWxlcnRNb2R1bGUge31cclxuXHJcbmV4cG9ydCB7IEFsZXJ0TWVzc2FnZUNvbXBvbmVudCwgQWxlcnRDb250YWluZXJDb21wb25lbnQgfTtcclxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhdnVyYS11aS1hbGVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2FsZXJ0L2JyYXZ1cmEtdWktYWxlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './alert.module';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2FsZXJ0L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWxlcnQubW9kdWxlJztcclxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './test-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhdnVyYS11aS1hbGVydC10ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvYWxlcnQvdGVzdGluZy9icmF2dXJhLXVpLWFsZXJ0LXRlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi90ZXN0LWFwaSc7XG4iXX0=