@bravura/ui 3.8.1 → 5.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.
- package/CHANGELOG.md +585 -565
- package/LICENSE +6 -6
- package/README.md +3 -1
- package/alert/alert-container.component.d.ts +1 -1
- package/alert/alert-message.component.d.ts +1 -1
- package/behavior/await.directive.d.ts +1 -1
- package/behavior/observe-content-class.directive.d.ts +1 -1
- package/behavior/sizing.directive.d.ts +1 -1
- package/clip-note/clip-note.directive.d.ts +1 -1
- package/currency-input/currency-input.directive.d.ts +1 -1
- package/decimal-input/decimal-input.directive.d.ts +1 -1
- package/discrete-input/discrete-input.component.d.ts +1 -1
- package/esm2022/alert/alert-container.component.mjs +207 -0
- package/esm2022/alert/alert-message.component.mjs +101 -0
- package/esm2022/alert/alert.module.mjs +22 -0
- package/{esm2020 → esm2022}/alert/public-api.mjs +1 -1
- package/esm2022/alert/testing/test-api.mjs +44 -0
- package/esm2022/behavior/await.directive.mjs +133 -0
- package/esm2022/behavior/behavior.module.mjs +37 -0
- package/esm2022/behavior/observe-content-class.directive.mjs +63 -0
- package/{esm2020 → esm2022}/behavior/public-api.mjs +1 -1
- package/esm2022/behavior/sizing-monitor.directive.mjs +31 -0
- package/esm2022/behavior/sizing.directive.mjs +256 -0
- package/esm2022/clip-note/clip-note.component.mjs +216 -0
- package/esm2022/clip-note/clip-note.directive.mjs +141 -0
- package/esm2022/clip-note/clip-note.module.mjs +32 -0
- package/{esm2020 → esm2022}/clip-note/public-api.mjs +1 -1
- package/{esm2020 → esm2022}/common/common-utils.mjs +1 -1
- package/esm2022/common/common.module.mjs +53 -0
- package/{esm2020 → esm2022}/common/public-api.mjs +1 -1
- package/esm2022/currency-input/currency-input.directive.mjs +276 -0
- package/esm2022/currency-input/currency-input.module.mjs +19 -0
- package/{esm2020 → esm2022}/currency-input/public-api.mjs +1 -1
- package/esm2022/decimal-input/decimal-input.directive.mjs +122 -0
- package/{esm2020 → esm2022}/decimal-input/decimal-input.module.mjs +5 -5
- package/esm2022/discrete-input/discrete-input.component.mjs +337 -0
- package/esm2022/discrete-input/discrete-input.module.mjs +21 -0
- package/{esm2020 → esm2022}/discrete-input/public-api.mjs +1 -1
- package/esm2022/file-upload/file-upload.component.mjs +400 -0
- package/esm2022/file-upload/file-upload.module.mjs +44 -0
- package/esm2022/file-upload/file-upload.service.mjs +29 -0
- package/{esm2020 → esm2022}/file-upload/public-api.mjs +1 -1
- package/esm2022/form-field/form-field.component.mjs +82 -0
- package/esm2022/form-field/form-field.module.mjs +33 -0
- package/{esm2020 → esm2022}/form-field/public-api.mjs +1 -1
- package/esm2022/icon-font/icon-font.module.mjs +22 -0
- package/esm2022/icon-font/icon.directive.mjs +102 -0
- package/{esm2020 → esm2022}/icon-font/public-api.mjs +1 -1
- package/esm2022/icon-font/utilities.mjs +51 -0
- package/esm2022/panel/panel-section.component.mjs +41 -0
- package/esm2022/panel/panel.component.mjs +87 -0
- package/esm2022/panel/panel.module.mjs +23 -0
- package/{esm2020 → esm2022}/panel/public-api.mjs +1 -1
- package/esm2022/panel/tinted.directive.mjs +60 -0
- package/esm2022/phone-number/phone-number.directive.mjs +188 -0
- package/{esm2020 → esm2022}/phone-number/phone-number.module.mjs +5 -5
- package/esm2022/phone-number/phone-number.pipe.mjs +47 -0
- package/esm2022/phone-number/phone-number.validator.mjs +64 -0
- package/{esm2020 → esm2022}/phone-number/public-api.mjs +1 -1
- package/{esm2020 → esm2022}/public-api.mjs +1 -1
- package/esm2022/radio-panel/radio-panel-item.component.mjs +93 -0
- package/esm2022/radio-panel/radio-panel.component.mjs +81 -0
- package/{esm2020 → esm2022}/radio-panel/radio-panel.module.mjs +5 -5
- package/esm2022/radio-panel/testing/test-api.mjs +46 -0
- package/{esm2020 → esm2022}/selection-panel/public-api.mjs +1 -1
- package/esm2022/selection-panel/selection-panel-item.component.mjs +166 -0
- package/esm2022/selection-panel/selection-panel.directive.mjs +119 -0
- package/esm2022/selection-panel/selection-panel.module.mjs +23 -0
- package/{esm2020 → esm2022}/skeletons/public-api.mjs +1 -1
- package/esm2022/skeletons/skeleton-loader-presets.directive.mjs +83 -0
- package/esm2022/skeletons/skeleton-loader.component.mjs +76 -0
- package/esm2022/skeletons/skeletons.module.mjs +35 -0
- package/{esm2020 → esm2022}/stepper/public-api.mjs +1 -1
- package/{esm2020 → esm2022}/stepper/stepper-animation.mjs +1 -1
- package/esm2022/stepper/stepper.component.mjs +176 -0
- package/esm2022/stepper/stepper.module.mjs +52 -0
- package/{esm2020 → esm2022}/tooltip/public-api.mjs +1 -1
- package/esm2022/tooltip/tooltip.component.mjs +63 -0
- package/esm2022/tooltip/tooltip.directive.mjs +148 -0
- package/esm2022/tooltip/tooltip.module.mjs +25 -0
- package/{fesm2020 → fesm2022}/bravura-ui-alert-testing.mjs +2 -2
- package/fesm2022/bravura-ui-alert-testing.mjs.map +1 -0
- package/fesm2022/bravura-ui-alert.mjs +327 -0
- package/fesm2022/bravura-ui-alert.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-behavior.mjs +45 -45
- package/fesm2022/bravura-ui-behavior.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-clip-note.mjs +70 -70
- package/fesm2022/bravura-ui-clip-note.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-common.mjs +6 -6
- package/fesm2022/bravura-ui-common.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-currency-input.mjs +11 -11
- package/fesm2022/bravura-ui-currency-input.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-decimal-input.mjs +12 -12
- package/fesm2022/bravura-ui-decimal-input.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-discrete-input.mjs +48 -48
- package/fesm2022/bravura-ui-discrete-input.mjs.map +1 -0
- package/fesm2022/bravura-ui-file-upload.mjs +474 -0
- package/fesm2022/bravura-ui-file-upload.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-form-field.mjs +19 -19
- package/fesm2022/bravura-ui-form-field.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-icon-font.mjs +8 -8
- package/fesm2022/bravura-ui-icon-font.mjs.map +1 -0
- package/fesm2022/bravura-ui-panel.mjs +206 -0
- package/fesm2022/bravura-ui-panel.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-phone-number.mjs +30 -30
- package/fesm2022/bravura-ui-phone-number.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-radio-panel-testing.mjs +5 -6
- package/fesm2022/bravura-ui-radio-panel-testing.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-radio-panel.mjs +32 -32
- package/fesm2022/bravura-ui-radio-panel.mjs.map +1 -0
- package/fesm2022/bravura-ui-selection-panel.mjs +306 -0
- package/fesm2022/bravura-ui-selection-panel.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-skeletons.mjs +43 -43
- package/fesm2022/bravura-ui-skeletons.mjs.map +1 -0
- package/fesm2022/bravura-ui-stepper.mjs +251 -0
- package/fesm2022/bravura-ui-stepper.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravura-ui-tooltip.mjs +32 -24
- package/fesm2022/bravura-ui-tooltip.mjs.map +1 -0
- package/fesm2022/bravura-ui.mjs.map +1 -0
- package/file-upload/file-upload.component.d.ts +1 -1
- package/form-field/form-field.component.d.ts +1 -1
- package/icon-font/icon.directive.d.ts +1 -1
- package/package.json +88 -132
- package/panel/panel.component.d.ts +1 -1
- package/panel/tinted.directive.d.ts +1 -1
- package/phone-number/phone-number.directive.d.ts +1 -1
- package/phone-number/phone-number.validator.d.ts +2 -2
- package/radio-panel/radio-panel-item.component.d.ts +1 -1
- package/radio-panel/radio-panel.component.d.ts +1 -1
- package/radio-panel/testing/test-api.d.ts +2 -3
- package/selection-panel/selection-panel-item.component.d.ts +1 -1
- package/selection-panel/selection-panel.directive.d.ts +1 -1
- package/skeletons/skeleton-loader-presets.directive.d.ts +3 -3
- package/stepper/stepper.component.d.ts +1 -1
- package/theme/_bui-card.scss +56 -56
- package/theme/_ui-theme.scss +3 -3
- package/theme/global-style-by-bootstrap.scss +3 -3
- package/theme/global-style-by-tailwind.scss +3 -3
- package/theme/scrollbar.scss +40 -40
- package/tooltip/tooltip.component.d.ts +2 -0
- package/tooltip/tooltip.directive.d.ts +3 -5
- package/esm2020/alert/alert-container.component.mjs +0 -207
- package/esm2020/alert/alert-message.component.mjs +0 -102
- package/esm2020/alert/alert.module.mjs +0 -22
- package/esm2020/alert/testing/test-api.mjs +0 -44
- package/esm2020/behavior/await.directive.mjs +0 -133
- package/esm2020/behavior/behavior.module.mjs +0 -37
- package/esm2020/behavior/observe-content-class.directive.mjs +0 -63
- package/esm2020/behavior/sizing-monitor.directive.mjs +0 -31
- package/esm2020/behavior/sizing.directive.mjs +0 -256
- package/esm2020/clip-note/clip-note.component.mjs +0 -216
- package/esm2020/clip-note/clip-note.directive.mjs +0 -141
- package/esm2020/clip-note/clip-note.module.mjs +0 -32
- package/esm2020/common/common.module.mjs +0 -53
- package/esm2020/currency-input/currency-input.directive.mjs +0 -276
- package/esm2020/currency-input/currency-input.module.mjs +0 -19
- package/esm2020/decimal-input/decimal-input.directive.mjs +0 -122
- package/esm2020/discrete-input/discrete-input.component.mjs +0 -337
- package/esm2020/discrete-input/discrete-input.module.mjs +0 -21
- package/esm2020/file-upload/file-upload.component.mjs +0 -400
- package/esm2020/file-upload/file-upload.module.mjs +0 -44
- package/esm2020/file-upload/file-upload.service.mjs +0 -29
- package/esm2020/form-field/form-field.component.mjs +0 -82
- package/esm2020/form-field/form-field.module.mjs +0 -33
- package/esm2020/icon-font/icon-font.module.mjs +0 -22
- package/esm2020/icon-font/icon.directive.mjs +0 -102
- package/esm2020/icon-font/utilities.mjs +0 -51
- package/esm2020/panel/panel-section.component.mjs +0 -41
- package/esm2020/panel/panel.component.mjs +0 -87
- package/esm2020/panel/panel.module.mjs +0 -23
- package/esm2020/panel/tinted.directive.mjs +0 -60
- package/esm2020/phone-number/phone-number.directive.mjs +0 -188
- package/esm2020/phone-number/phone-number.pipe.mjs +0 -47
- package/esm2020/phone-number/phone-number.validator.mjs +0 -64
- package/esm2020/radio-panel/radio-panel-item.component.mjs +0 -93
- package/esm2020/radio-panel/radio-panel.component.mjs +0 -81
- package/esm2020/radio-panel/testing/test-api.mjs +0 -47
- package/esm2020/selection-panel/selection-panel-item.component.mjs +0 -166
- package/esm2020/selection-panel/selection-panel.directive.mjs +0 -119
- package/esm2020/selection-panel/selection-panel.module.mjs +0 -23
- package/esm2020/skeletons/skeleton-loader-presets.directive.mjs +0 -83
- package/esm2020/skeletons/skeleton-loader.component.mjs +0 -76
- package/esm2020/skeletons/skeletons.module.mjs +0 -35
- package/esm2020/stepper/stepper.component.mjs +0 -176
- package/esm2020/stepper/stepper.module.mjs +0 -52
- package/esm2020/tooltip/tooltip.component.mjs +0 -54
- package/esm2020/tooltip/tooltip.directive.mjs +0 -149
- package/esm2020/tooltip/tooltip.module.mjs +0 -25
- package/fesm2015/bravura-ui-alert-testing.mjs +0 -64
- package/fesm2015/bravura-ui-alert-testing.mjs.map +0 -1
- package/fesm2015/bravura-ui-alert.mjs +0 -340
- package/fesm2015/bravura-ui-alert.mjs.map +0 -1
- package/fesm2015/bravura-ui-behavior.mjs +0 -515
- package/fesm2015/bravura-ui-behavior.mjs.map +0 -1
- package/fesm2015/bravura-ui-clip-note.mjs +0 -393
- package/fesm2015/bravura-ui-clip-note.mjs.map +0 -1
- package/fesm2015/bravura-ui-common.mjs +0 -96
- package/fesm2015/bravura-ui-common.mjs.map +0 -1
- package/fesm2015/bravura-ui-currency-input.mjs +0 -300
- package/fesm2015/bravura-ui-currency-input.mjs.map +0 -1
- package/fesm2015/bravura-ui-decimal-input.mjs +0 -145
- package/fesm2015/bravura-ui-decimal-input.mjs.map +0 -1
- package/fesm2015/bravura-ui-discrete-input.mjs +0 -365
- package/fesm2015/bravura-ui-discrete-input.mjs.map +0 -1
- package/fesm2015/bravura-ui-file-upload.mjs +0 -478
- package/fesm2015/bravura-ui-file-upload.mjs.map +0 -1
- package/fesm2015/bravura-ui-form-field.mjs +0 -120
- package/fesm2015/bravura-ui-form-field.mjs.map +0 -1
- package/fesm2015/bravura-ui-icon-font.mjs +0 -178
- package/fesm2015/bravura-ui-icon-font.mjs.map +0 -1
- package/fesm2015/bravura-ui-panel.mjs +0 -210
- package/fesm2015/bravura-ui-panel.mjs.map +0 -1
- package/fesm2015/bravura-ui-phone-number.mjs +0 -327
- package/fesm2015/bravura-ui-phone-number.mjs.map +0 -1
- package/fesm2015/bravura-ui-radio-panel-testing.mjs +0 -63
- package/fesm2015/bravura-ui-radio-panel-testing.mjs.map +0 -1
- package/fesm2015/bravura-ui-radio-panel.mjs +0 -200
- package/fesm2015/bravura-ui-radio-panel.mjs.map +0 -1
- package/fesm2015/bravura-ui-selection-panel.mjs +0 -311
- package/fesm2015/bravura-ui-selection-panel.mjs.map +0 -1
- package/fesm2015/bravura-ui-skeletons.mjs +0 -195
- package/fesm2015/bravura-ui-skeletons.mjs.map +0 -1
- package/fesm2015/bravura-ui-stepper.mjs +0 -253
- package/fesm2015/bravura-ui-stepper.mjs.map +0 -1
- package/fesm2015/bravura-ui-tooltip.mjs +0 -229
- package/fesm2015/bravura-ui-tooltip.mjs.map +0 -1
- package/fesm2015/bravura-ui.mjs.map +0 -1
- package/fesm2020/bravura-ui-alert-testing.mjs.map +0 -1
- package/fesm2020/bravura-ui-alert.mjs +0 -328
- package/fesm2020/bravura-ui-alert.mjs.map +0 -1
- package/fesm2020/bravura-ui-behavior.mjs.map +0 -1
- package/fesm2020/bravura-ui-clip-note.mjs.map +0 -1
- package/fesm2020/bravura-ui-common.mjs.map +0 -1
- package/fesm2020/bravura-ui-currency-input.mjs.map +0 -1
- package/fesm2020/bravura-ui-decimal-input.mjs.map +0 -1
- package/fesm2020/bravura-ui-discrete-input.mjs.map +0 -1
- package/fesm2020/bravura-ui-file-upload.mjs +0 -474
- package/fesm2020/bravura-ui-file-upload.mjs.map +0 -1
- package/fesm2020/bravura-ui-form-field.mjs.map +0 -1
- package/fesm2020/bravura-ui-icon-font.mjs.map +0 -1
- package/fesm2020/bravura-ui-panel.mjs +0 -206
- package/fesm2020/bravura-ui-panel.mjs.map +0 -1
- package/fesm2020/bravura-ui-phone-number.mjs.map +0 -1
- package/fesm2020/bravura-ui-radio-panel-testing.mjs.map +0 -1
- package/fesm2020/bravura-ui-radio-panel.mjs.map +0 -1
- package/fesm2020/bravura-ui-selection-panel.mjs +0 -306
- package/fesm2020/bravura-ui-selection-panel.mjs.map +0 -1
- package/fesm2020/bravura-ui-skeletons.mjs.map +0 -1
- package/fesm2020/bravura-ui-stepper.mjs +0 -251
- package/fesm2020/bravura-ui-stepper.mjs.map +0 -1
- package/fesm2020/bravura-ui-tooltip.mjs.map +0 -1
- package/fesm2020/bravura-ui.mjs +0 -8
- package/fesm2020/bravura-ui.mjs.map +0 -1
- /package/{esm2020 → esm2022}/alert/bravura-ui-alert.mjs +0 -0
- /package/{esm2020 → esm2022}/alert/testing/bravura-ui-alert-testing.mjs +0 -0
- /package/{esm2020 → esm2022}/behavior/bravura-ui-behavior.mjs +0 -0
- /package/{esm2020 → esm2022}/bravura-ui.mjs +0 -0
- /package/{esm2020 → esm2022}/clip-note/bravura-ui-clip-note.mjs +0 -0
- /package/{esm2020 → esm2022}/common/bravura-ui-common.mjs +0 -0
- /package/{esm2020 → esm2022}/currency-input/bravura-ui-currency-input.mjs +0 -0
- /package/{esm2020 → esm2022}/decimal-input/bravura-ui-decimal-input.mjs +0 -0
- /package/{esm2020 → esm2022}/decimal-input/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/discrete-input/bravura-ui-discrete-input.mjs +0 -0
- /package/{esm2020 → esm2022}/file-upload/bravura-ui-file-upload.mjs +0 -0
- /package/{esm2020 → esm2022}/form-field/bravura-ui-form-field.mjs +0 -0
- /package/{esm2020 → esm2022}/icon-font/bravura-ui-icon-font.mjs +0 -0
- /package/{esm2020 → esm2022}/panel/bravura-ui-panel.mjs +0 -0
- /package/{esm2020 → esm2022}/phone-number/bravura-ui-phone-number.mjs +0 -0
- /package/{esm2020 → esm2022}/radio-panel/bravura-ui-radio-panel.mjs +0 -0
- /package/{esm2020 → esm2022}/radio-panel/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/radio-panel/testing/bravura-ui-radio-panel-testing.mjs +0 -0
- /package/{esm2020 → esm2022}/selection-panel/bravura-ui-selection-panel.mjs +0 -0
- /package/{esm2020 → esm2022}/skeletons/bravura-ui-skeletons.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/bravura-ui-stepper.mjs +0 -0
- /package/{esm2020 → esm2022}/tooltip/bravura-ui-tooltip.mjs +0 -0
- /package/{fesm2015 → fesm2022}/bravura-ui.mjs +0 -0
package/theme/scrollbar.scss
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
@mixin bui-scrollbar {
|
|
2
|
-
$bui-scrollbar-width: var(--bui-scrollbar-width, 8px);
|
|
3
|
-
$bui-scrollbar-background: var(--bui-scrollbar-background, rgba(128, 128, 128, 0.02));
|
|
4
|
-
$bui-scrollbar-thumb-color: var(--bui-scrollbar-thumb-color, rgba(128, 128, 128, 0.4));
|
|
5
|
-
$bui-scrollbar-thumb-hover: var(--bui-scrollbar-thumb-hover, rgba(128, 128, 128, 0.6));
|
|
6
|
-
$bui-scrollbar-thumb-active: var(--bui-scrollbar-thumb-active, rgba(128, 128, 128, 0.8));
|
|
7
|
-
|
|
8
|
-
.bui-styled-scrollbar {
|
|
9
|
-
scrollbar-width: thin;
|
|
10
|
-
|
|
11
|
-
&::-webkit-scrollbar-track {
|
|
12
|
-
-webkit-box-shadow: inset 0 0 6px rgba(128, 128, 128, 0.2);
|
|
13
|
-
background-color: $bui-scrollbar-background;
|
|
14
|
-
border-radius: $bui-scrollbar-width;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
&::-webkit-scrollbar {
|
|
18
|
-
width: $bui-scrollbar-width;
|
|
19
|
-
background-color: $bui-scrollbar-background;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
&::-webkit-scrollbar-thumb {
|
|
23
|
-
background-color: $bui-scrollbar-thumb-color;
|
|
24
|
-
border-radius: $bui-scrollbar-width;
|
|
25
|
-
&:hover {
|
|
26
|
-
background-color: $bui-scrollbar-thumb-hover;
|
|
27
|
-
}
|
|
28
|
-
&:active {
|
|
29
|
-
background-color: $bui-scrollbar-thumb-active;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
&.ng-scrollbar {
|
|
34
|
-
--scrollbar-hover-size: #{$bui-scrollbar-width};
|
|
35
|
-
--scrollbar-thumb-color: #{$bui-scrollbar-thumb-color};
|
|
36
|
-
--scrollbar-thumb-hover-color: #{$bui-scrollbar-thumb-hover};
|
|
37
|
-
--scrollbar-border-radius: #{$bui-scrollbar-width};
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
1
|
+
@mixin bui-scrollbar {
|
|
2
|
+
$bui-scrollbar-width: var(--bui-scrollbar-width, 8px);
|
|
3
|
+
$bui-scrollbar-background: var(--bui-scrollbar-background, rgba(128, 128, 128, 0.02));
|
|
4
|
+
$bui-scrollbar-thumb-color: var(--bui-scrollbar-thumb-color, rgba(128, 128, 128, 0.4));
|
|
5
|
+
$bui-scrollbar-thumb-hover: var(--bui-scrollbar-thumb-hover, rgba(128, 128, 128, 0.6));
|
|
6
|
+
$bui-scrollbar-thumb-active: var(--bui-scrollbar-thumb-active, rgba(128, 128, 128, 0.8));
|
|
7
|
+
|
|
8
|
+
.bui-styled-scrollbar {
|
|
9
|
+
scrollbar-width: thin;
|
|
10
|
+
|
|
11
|
+
&::-webkit-scrollbar-track {
|
|
12
|
+
-webkit-box-shadow: inset 0 0 6px rgba(128, 128, 128, 0.2);
|
|
13
|
+
background-color: $bui-scrollbar-background;
|
|
14
|
+
border-radius: $bui-scrollbar-width;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&::-webkit-scrollbar {
|
|
18
|
+
width: $bui-scrollbar-width;
|
|
19
|
+
background-color: $bui-scrollbar-background;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&::-webkit-scrollbar-thumb {
|
|
23
|
+
background-color: $bui-scrollbar-thumb-color;
|
|
24
|
+
border-radius: $bui-scrollbar-width;
|
|
25
|
+
&:hover {
|
|
26
|
+
background-color: $bui-scrollbar-thumb-hover;
|
|
27
|
+
}
|
|
28
|
+
&:active {
|
|
29
|
+
background-color: $bui-scrollbar-thumb-active;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&.ng-scrollbar {
|
|
34
|
+
--scrollbar-hover-size: #{$bui-scrollbar-width};
|
|
35
|
+
--scrollbar-thumb-color: #{$bui-scrollbar-thumb-color};
|
|
36
|
+
--scrollbar-thumb-hover-color: #{$bui-scrollbar-thumb-hover};
|
|
37
|
+
--scrollbar-border-radius: #{$bui-scrollbar-width};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -6,6 +6,7 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
*/
|
|
7
7
|
interface TooltipTemplateContainer {
|
|
8
8
|
template?: TemplateRef<any>;
|
|
9
|
+
message?: string;
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* @ignore
|
|
@@ -16,6 +17,7 @@ export declare class TooltipComponent extends MatTooltipComponent {
|
|
|
16
17
|
private _messageCopy;
|
|
17
18
|
_tooltip: ElementRef<HTMLElement>;
|
|
18
19
|
private tooltipDiv;
|
|
20
|
+
private messageCont;
|
|
19
21
|
constructor(changeDetectorRef: ChangeDetectorRef, elementRef: ElementRef<HTMLElement>, _tooltipInst: TooltipTemplateContainer, animationMode?: string);
|
|
20
22
|
show(delay: number): void;
|
|
21
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipComponent, [null, null, null, { optional: true; }]>;
|
|
@@ -3,9 +3,8 @@ import { Directionality } from '@angular/cdk/bidi';
|
|
|
3
3
|
import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';
|
|
4
4
|
import { Platform } from '@angular/cdk/platform';
|
|
5
5
|
import { ElementRef, NgZone, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
6
|
-
import { MatTooltipDefaultOptions, TooltipPosition
|
|
6
|
+
import { MatTooltip, MatTooltipDefaultOptions, TooltipPosition } from '@angular/material/tooltip';
|
|
7
7
|
import { Observable } from 'rxjs';
|
|
8
|
-
import { TooltipComponent } from './tooltip.component';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
9
|
/**
|
|
11
10
|
* This directive extends [Angular Material tooltip](https://material.angular.io/components/tooltip/overview), with the additional capability of displaying
|
|
@@ -13,8 +12,7 @@ import * as i0 from "@angular/core";
|
|
|
13
12
|
*
|
|
14
13
|
* All the other features are identical as those in Angular Material tooltip.
|
|
15
14
|
*/
|
|
16
|
-
export declare class TooltipDirective extends
|
|
17
|
-
protected readonly _tooltipComponent: typeof TooltipComponent;
|
|
15
|
+
export declare class TooltipDirective extends MatTooltip {
|
|
18
16
|
private _templateRef?;
|
|
19
17
|
private _contentSub;
|
|
20
18
|
private _contentObs?;
|
|
@@ -46,5 +44,5 @@ export declare class TooltipDirective extends _MatTooltipBase<TooltipComponent>
|
|
|
46
44
|
} | undefined): void;
|
|
47
45
|
ngOnDestroy(): void;
|
|
48
46
|
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, [null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, null]>;
|
|
49
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[buiTooltip]", ["buiTooltip"], { "buiTooltipPosition": "buiTooltipPosition"; "buiTooltipDisabled": "buiTooltipDisabled"; "buiTooltip": "buiTooltip"; "buiTooltipClass": "buiTooltipClass"; }, {}, never, never, false, never>;
|
|
47
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[buiTooltip]", ["buiTooltip"], { "buiTooltipPosition": { "alias": "buiTooltipPosition"; "required": false; }; "buiTooltipDisabled": { "alias": "buiTooltipDisabled"; "required": false; }; "buiTooltip": { "alias": "buiTooltip"; "required": false; }; "buiTooltipClass": { "alias": "buiTooltipClass"; "required": false; }; }, {}, never, never, false, never>;
|
|
50
48
|
}
|
|
@@ -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
|
-
}
|
|
151
|
-
AlertContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: AlertContainerComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.ScrollDispatcher }], target: i0.ɵɵFactoryTarget.Component });
|
|
152
|
-
AlertContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", 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\n\tclass=\"bui-alert-fixed-panel\"\n\t[style.opacity]=\"_floatPanelHidden ? 1 : 0\"\n\t[class.bui-alert-fixed-panel-blink]=\"outsideViewportBehavior === 'scroll'\"\n>\n\t<bui-alert\n\t\t*ngFor=\"let a of _alerts\"\n\t\t[id]=\"a.id\"\n\t\t[type]=\"a.type\"\n\t\t[message]=\"a.message\"\n\t\tdismissible\n\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\n\t\t(@alertTransition.start)=\"_animationStarted.next($event)\"\n\t\t(@alertTransition.done)=\"_animationEnded.next($event)\"\n\t\t(dismissed)=\"_dismiss(a)\"\n\t></bui-alert>\n</div>\n\n<div class=\"bui-alert-float-panel-frame\" [hidden]=\"_floatPanelHidden\" [class.bui-alert-float-panel-shaded]=\"_floated\">\n\t<div class=\"bui-alert-float-panel\" [style.max-width]=\"_width + 'px'\" [@floatTransition]=\"'visible'\" *ngIf=\"_floated\">\n\t\t<bui-alert\n\t\t\t*ngFor=\"let a of _alerts\"\n\t\t\t[id]=\"a.id\"\n\t\t\t[type]=\"a.type\"\n\t\t\t[message]=\"a.message\"\n\t\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\n\t\t></bui-alert>\n\t</div>\n</div>\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: [
|
|
153
|
-
trigger('floatTransition', [
|
|
154
|
-
transition(':enter', [style({ opacity: '0', transform: 'translateY(-10vh)' }), animate('.3s ease-in')]),
|
|
155
|
-
transition(':leave', [animate('.4s ease-out', style({ transform: 'translateY(-10vh)', opacity: '0' }))])
|
|
156
|
-
]),
|
|
157
|
-
trigger('alertTransition', [
|
|
158
|
-
state('visible', style({})),
|
|
159
|
-
state('hidden', style({
|
|
160
|
-
height: 0,
|
|
161
|
-
overflow: 'hidden',
|
|
162
|
-
transform: 'scaleY(0)',
|
|
163
|
-
opacity: 0,
|
|
164
|
-
'margin-top': '-1rem'
|
|
165
|
-
})),
|
|
166
|
-
transition('void => visible', [
|
|
167
|
-
style({ transform: 'translateY(100%)', height: 0, opacity: '0', overflow: 'hidden' }),
|
|
168
|
-
animate('250ms cubic-bezier(0.42, 0.0, 0.58, 1.0)')
|
|
169
|
-
]),
|
|
170
|
-
transition('visible => hidden', [animate('250ms cubic-bezier(0.25, 0, 0.3, 1.0)')])
|
|
171
|
-
])
|
|
172
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", 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\n\tclass=\"bui-alert-fixed-panel\"\n\t[style.opacity]=\"_floatPanelHidden ? 1 : 0\"\n\t[class.bui-alert-fixed-panel-blink]=\"outsideViewportBehavior === 'scroll'\"\n>\n\t<bui-alert\n\t\t*ngFor=\"let a of _alerts\"\n\t\t[id]=\"a.id\"\n\t\t[type]=\"a.type\"\n\t\t[message]=\"a.message\"\n\t\tdismissible\n\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\n\t\t(@alertTransition.start)=\"_animationStarted.next($event)\"\n\t\t(@alertTransition.done)=\"_animationEnded.next($event)\"\n\t\t(dismissed)=\"_dismiss(a)\"\n\t></bui-alert>\n</div>\n\n<div class=\"bui-alert-float-panel-frame\" [hidden]=\"_floatPanelHidden\" [class.bui-alert-float-panel-shaded]=\"_floated\">\n\t<div class=\"bui-alert-float-panel\" [style.max-width]=\"_width + 'px'\" [@floatTransition]=\"'visible'\" *ngIf=\"_floated\">\n\t\t<bui-alert\n\t\t\t*ngFor=\"let a of _alerts\"\n\t\t\t[id]=\"a.id\"\n\t\t\t[type]=\"a.type\"\n\t\t\t[message]=\"a.message\"\n\t\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\n\t\t></bui-alert>\n\t</div>\n</div>\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: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2FsZXJ0L2FsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9hbGVydC9hbGVydC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWtCLE1BQU0scUJBQXFCLENBQUM7QUFFakcsT0FBTyxFQUNOLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRTdELGVBQWU7QUFDZixNQUFNLGtCQUFrQjtJQUd2QixZQUE0QixJQUEyQyxFQUFrQixPQUFlO1FBQTVFLFNBQUksR0FBSixJQUFJLENBQXVDO1FBQWtCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFEeEcsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVmLElBQUksQ0FBQyxFQUFFLEdBQUcsd0JBQXdCLFVBQVUsRUFBRSxFQUFFLENBQUM7SUFDbEQsQ0FBQztDQUNEO0FBRUQ7OztHQUdHO0FBa0NILE1BQU0sT0FBTyx1QkFBdUI7SUF5Q25DLFlBQ1MsSUFBWSxFQUNaLEtBQXdCLEVBQ3hCLFdBQW9DLEVBQ3BDLE1BQXdCO1FBSHhCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUE1Q2pDLHNFQUFzRTtRQUV0RSxRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBRVI7Ozs7O1dBS0c7UUFFSCw0QkFBdUIsR0FBdUIsT0FBTyxDQUFDO1FBRXREOzs7O1dBSUc7UUFFSCxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUVyQixlQUFlO1FBQ2YsWUFBTyxHQUF5QixFQUFFLENBQUM7UUFDbkMsZUFBZTtRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBZTtRQUNmLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUV6Qix1REFBdUQ7UUFDOUMsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7UUFDM0Qsb0RBQW9EO1FBQzNDLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7UUFFakQsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRzFDLHlEQUF5RDtRQUVqRCxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7SUFPeEQsQ0FBQztJQUVKLFFBQVE7UUFDUCxNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUU7WUFDeEIsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUN4RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDcEI7UUFDRixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTTthQUNULGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO2FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2pDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QixXQUFXLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZUFBZTtJQUNmLElBQUksVUFBVTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZUFBZTtJQUNmLElBQUksTUFBTTtRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ25ELENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUEyQyxFQUFFLE9BQWU7UUFDeEUsSUFBSSxDQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckUsSUFBSSxTQUFTLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pCO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVCO1FBRUQsTUFBTSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEQsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYTtJQUNiLEtBQUssQ0FBQyxjQUFjO1FBQ25CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3pELElBQUksSUFBSSxDQUFDLHVCQUF1QixLQUFLLE9BQU8sRUFBRTtnQkFDN0MsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDM0I7aUJBQU07Z0JBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUN0RjtTQUNEO0lBQ0YsQ0FBQztJQUVELGFBQWE7SUFDYixLQUFLLENBQUMsUUFBUSxDQUFDLENBQXFCO1FBQ25DLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELCtDQUErQztJQUMvQyxLQUFLLENBQUMsS0FBSztRQUNWLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ25CLE9BQU87U0FDUDtRQUNELElBQUksQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO2FBQ2xDLElBQUksQ0FDSixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxFQUNGLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FDVjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQXZKVyx1QkFBdUI7d0dBQXZCLHVCQUF1Qix5VUNoRXBDLGloQ0E2QkEsNHBDRFVhO1FBQ1gsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDdkcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4RyxDQUFDO1FBQ0YsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLEtBQUssQ0FDSixRQUFRLEVBQ1IsS0FBSyxDQUFDO2dCQUNMLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUUsV0FBVztnQkFDdEIsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsWUFBWSxFQUFFLE9BQU87YUFDckIsQ0FBQyxDQUNGO1lBQ0QsVUFBVSxDQUFDLGlCQUFpQixFQUFFO2dCQUM3QixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDckYsT0FBTyxDQUFDLDBDQUEwQyxDQUFDO2FBQ25ELENBQUM7WUFDRixVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxDQUFDO1NBQ25GLENBQUM7S0FDRjsyRkFFVyx1QkFBdUI7a0JBakNuQyxTQUFTOytCQUNDLHFCQUFxQixRQUd6Qjt3QkFDTCxTQUFTLEVBQUUsa0dBQWtHO3FCQUM3RyxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQzt3QkFDWCxPQUFPLENBQUMsaUJBQWlCLEVBQUU7NEJBQzFCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7NEJBQ3ZHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3hHLENBQUM7d0JBQ0YsT0FBTyxDQUFDLGlCQUFpQixFQUFFOzRCQUMxQixLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFDM0IsS0FBSyxDQUNKLFFBQVEsRUFDUixLQUFLLENBQUM7Z0NBQ0wsTUFBTSxFQUFFLENBQUM7Z0NBQ1QsUUFBUSxFQUFFLFFBQVE7Z0NBQ2xCLFNBQVMsRUFBRSxXQUFXO2dDQUN0QixPQUFPLEVBQUUsQ0FBQztnQ0FDVixZQUFZLEVBQUUsT0FBTzs2QkFDckIsQ0FBQyxDQUNGOzRCQUNELFVBQVUsQ0FBQyxpQkFBaUIsRUFBRTtnQ0FDN0IsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0NBQ3JGLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQzs2QkFDbkQsQ0FBQzs0QkFDRixVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxDQUFDO3lCQUNuRixDQUFDO3FCQUNGO3FMQUtELEdBQUc7c0JBREYsS0FBSztnQkFVTix1QkFBdUI7c0JBRHRCLEtBQUs7Z0JBU04sYUFBYTtzQkFEWixLQUFLO2dCQW9CRSxJQUFJO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTY3JvbGxEaXNwYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRJbnB1dCxcblx0Tmdab25lLFxuXHRPbkRlc3Ryb3ksXG5cdE9uSW5pdCxcblx0T3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2VuZXJhdGVJRCwgaXNFbGVtZW50SW5WaWV3cG9ydCB9IGZyb20gJ0BicmF2dXJhL3VpL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgdGFrZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKkBpbnRlcm5hbCAqL1xuY2xhc3MgSW50ZXJuYWxBbGVydE9qZWN0IHtcblx0aWQ6IHN0cmluZztcblx0ZGVsZXRlZCA9IGZhbHNlO1xuXHRjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdHlwZTogJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2Vycm9yJywgcHVibGljIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZykge1xuXHRcdHRoaXMuaWQgPSBgYnVpLWFsZXJ0LWNvbnQtYWxlcnQtJHtnZW5lcmF0ZUlEKCl9YDtcblx0fVxufVxuXG4vKipcbiAqIFVzZSB0aGlzIGNvbXBvbmVudCBpbiBhIGRlc2lnbmF0ZWQgYXJlYSBvZiBhIHBhZ2UgZm9yIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9uIG1lc3NhZ2VzXG4gKlxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdidWktYWxlcnQtY29udGFpbmVyJyxcblx0dGVtcGxhdGVVcmw6ICcuL2FsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL2FsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuXHRob3N0OiB7XG5cdFx0J1tjbGFzc10nOiBgJ2J1aS1hbGVydC1jb250YWluZXIgYnVpLWhvc3QgYnVpLWFsZXJ0LWNvbnRhaW5lci0nICsgKF9yZW1haW5pbmcubGVuZ3RoID8gJ25vdC1lbXB0eSc6ICdlbXB0eScpYFxuXHR9LFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0YW5pbWF0aW9uczogW1xuXHRcdHRyaWdnZXIoJ2Zsb2F0VHJhbnNpdGlvbicsIFtcblx0XHRcdHRyYW5zaXRpb24oJzplbnRlcicsIFtzdHlsZSh7IG9wYWNpdHk6ICcwJywgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtMTB2aCknIH0pLCBhbmltYXRlKCcuM3MgZWFzZS1pbicpXSksXG5cdFx0XHR0cmFuc2l0aW9uKCc6bGVhdmUnLCBbYW5pbWF0ZSgnLjRzIGVhc2Utb3V0Jywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMHZoKScsIG9wYWNpdHk6ICcwJyB9KSldKVxuXHRcdF0pLFxuXHRcdHRyaWdnZXIoJ2FsZXJ0VHJhbnNpdGlvbicsIFtcblx0XHRcdHN0YXRlKCd2aXNpYmxlJywgc3R5bGUoe30pKSxcblx0XHRcdHN0YXRlKFxuXHRcdFx0XHQnaGlkZGVuJyxcblx0XHRcdFx0c3R5bGUoe1xuXHRcdFx0XHRcdGhlaWdodDogMCxcblx0XHRcdFx0XHRvdmVyZmxvdzogJ2hpZGRlbicsXG5cdFx0XHRcdFx0dHJhbnNmb3JtOiAnc2NhbGVZKDApJyxcblx0XHRcdFx0XHRvcGFjaXR5OiAwLFxuXHRcdFx0XHRcdCdtYXJnaW4tdG9wJzogJy0xcmVtJ1xuXHRcdFx0XHR9KVxuXHRcdFx0KSxcblx0XHRcdHRyYW5zaXRpb24oJ3ZvaWQgPT4gdmlzaWJsZScsIFtcblx0XHRcdFx0c3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDEwMCUpJywgaGVpZ2h0OiAwLCBvcGFjaXR5OiAnMCcsIG92ZXJmbG93OiAnaGlkZGVuJyB9KSxcblx0XHRcdFx0YW5pbWF0ZSgnMjUwbXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMCwgMC41OCwgMS4wKScpXG5cdFx0XHRdKSxcblx0XHRcdHRyYW5zaXRpb24oJ3Zpc2libGUgPT4gaGlkZGVuJywgW2FuaW1hdGUoJzI1MG1zIGN1YmljLWJlemllcigwLjI1LCAwLCAwLjMsIDEuMCknKV0pXG5cdFx0XSlcblx0XVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblx0LyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXNzYWdlcyBkaXNwbGF5ZWQgaW4gdGhlIGNvbnRhaW5lciBhcmVhLiAqL1xuXHRASW5wdXQoKVxuXHRtYXggPSA1O1xuXG5cdC8qKlxuXHQgKiBUaGlzIHByb3BlcnR5IGRldGVybWluZXMgdGhlIGJlaGF2aW9yIGZvciBkaXNwbGF5aW5nIHRoZSBub3RpZmljYXRpb25zIHdoZW4gdGhlIGNvbnRhaW5lciBpcyBvdXRzaWRlIHRoZSB2aWV3cG9ydC5cblx0ICpcblx0ICogYHNjcm9sbGA6IFRoZSBjb21wb25lbnQgd2lsbCB0cnkgdG8gc2Nyb2xsIHRvIHJldmVhbCB0aGUgbmV3IG5vdGlmaWNhdGlvbnMuXG5cdCAqIGBmbG9hdGA6IFRoZSBjb21wb25lbnQgd2lsbCBmbG9hdCB0aGUgYWxlcnQgcGFuZWwgdG8gdGhlIGNlbnRlciBvZiB0aGUgc2NyZWVuIGZvciBhIGNvdXBsZSBvZiBzZWNvbmRzIGFuZCBtb3ZlIGl0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIHBvc2l0aW9uLlxuXHQgKi9cblx0QElucHV0KClcblx0b3V0c2lkZVZpZXdwb3J0QmVoYXZpb3I6ICdzY3JvbGwnIHwgJ2Zsb2F0JyA9ICdmbG9hdCc7XG5cblx0LyoqXG5cdCAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGZvciB3aGljaCB0aGUgYWxlcnQgY29udGFpbmVyIHdpbGwgYmUgZmxvYXRlZCB3aGVuIG5ldyBub3RpZmljYXRpb24gYXJyaXZlcy5cblx0ICpcblx0ICogVGhpcyB3aWxsIG9ubHkgdGFrZSBlZmZlY3Qgd2hlbiBgb3V0c2lkZVZpZXdwb3J0QmVoYXZpb3JgIGlzIHNldCB0byBgZmxvYXRgIGFuZCB0aGUgY29udGFpbmVyIGlzIG91dHNpZGUgdGhlIHZpZXdwb3J0LlxuXHQgKi9cblx0QElucHV0KClcblx0ZmxvYXREdXJhdGlvbiA9IDIwMDA7XG5cblx0LyoqQGludGVybmFsICovXG5cdF9hbGVydHM6IEludGVybmFsQWxlcnRPamVjdFtdID0gW107XG5cdC8qKkBpbnRlcm5hbCAqL1xuXHRfZmxvYXRlZCA9IGZhbHNlO1xuXHQvKipAaW50ZXJuYWwgKi9cblx0X2Zsb2F0UGFuZWxIaWRkZW4gPSB0cnVlO1xuXG5cdC8qKiBAaWdub3JlIEVtaXRzIHdoZW5ldmVyIHRoZSBhbmltYXRpb24gaXMgc3RhcnRlZC4gKi9cblx0cmVhZG9ubHkgX2FuaW1hdGlvblN0YXJ0ZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblx0LyoqIEBpZ25vcmUgRW1pdHMgd2hlbmV2ZXIgdGhlIGFuaW1hdGlvbiBpcyBkb25lLiAqL1xuXHRyZWFkb25seSBfYW5pbWF0aW9uRW5kZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblxuXHRwcml2YXRlIF9kZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblx0cHJpdmF0ZSBfZW5kRmxvYXRpbmdTdWI/OiBTdWJzY3JpcHRpb247XG5cblx0LyoqIEVtaXRzIHRoZSBjb21wb25lbnQgaW5zdGFuY2UgYWZ0ZXIgaW5pdGlhbGlzYXRpb24uICovXG5cdEBPdXRwdXQoKVxuXHRwcml2YXRlIGluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEFsZXJ0Q29udGFpbmVyQ29tcG9uZW50PigpO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgem9uZTogTmdab25lLFxuXHRcdHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuXHRcdHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuXHRcdHByaXZhdGUgc2Nyb2xsOiBTY3JvbGxEaXNwYXRjaGVyXG5cdCkge31cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBjaGVja1Njcm9sbCA9ICgpID0+IHtcblx0XHRcdGlmIChpc0VsZW1lbnRJblZpZXdwb3J0KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpIHtcblx0XHRcdFx0dGhpcy5fZW5kRmxvYXRpbmcoKTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdHRoaXMuc2Nyb2xsXG5cdFx0XHQuYW5jZXN0b3JTY3JvbGxlZCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpXG5cdFx0XHQuc3Vic2NyaWJlKGNoZWNrU2Nyb2xsKTtcblx0XHRjaGVja1Njcm9sbCgpO1xuXHRcdHRoaXMuaW5pdC5lbWl0KHRoaXMpO1xuXHRcdHRoaXMuaW5pdC5jb21wbGV0ZSgpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fZGVzdHJveWVkJC5uZXh0KCk7XG5cdFx0dGhpcy5fZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuXHRcdHRoaXMuX2VuZEZsb2F0aW5nU3ViPy51bnN1YnNjcmliZSgpO1xuXHR9XG5cblx0LyoqQGludGVybmFsICovXG5cdGdldCBfcmVtYWluaW5nKCkge1xuXHRcdHJldHVybiB0aGlzLl9hbGVydHMuZmlsdGVyKGEgPT4gIWEuZGVsZXRlZCk7XG5cdH1cblxuXHQvKipAaW50ZXJuYWwgKi9cblx0Z2V0IF93aWR0aCgpIHtcblx0XHRyZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXHR9XG5cblx0LyoqIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIG5vdGlmaWNhdGlvbiBhcmVhICovXG5cdGFzeW5jIG5vdGlmeSh0eXBlOiAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InLCBtZXNzYWdlOiBzdHJpbmcpIHtcblx0XHR0aGlzLl9lbmRGbG9hdGluZ1N1Yj8udW5zdWJzY3JpYmUoKTtcblx0XHRjb25zdCBkdXBsaWNhdGUgPSB0aGlzLl9yZW1haW5pbmcuZmluZChfYSA9PiBtZXNzYWdlID09PSBfYS5tZXNzYWdlKTtcblx0XHRpZiAoZHVwbGljYXRlKSB7XG5cdFx0XHR0aGlzLl9kaXNtaXNzKGR1cGxpY2F0ZSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgcmVtYWluaW5nID0gdGhpcy5fcmVtYWluaW5nO1xuXHRcdGlmIChyZW1haW5pbmcubGVuZ3RoID49IHRoaXMubWF4KSB7XG5cdFx0XHR0aGlzLl9kaXNtaXNzKHJlbWFpbmluZ1swXSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYSA9IG5ldyBJbnRlcm5hbEFsZXJ0T2plY3QodHlwZSwgbWVzc2FnZSk7XG5cdFx0YXdhaXQgdGhpcy5fY2hlY2tWaWV3cG9ydCgpO1xuXHRcdHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuXHRcdFx0dGhpcy5fYWxlcnRzLnB1c2goYSk7XG5cdFx0XHR0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqQGlnbm9yZSAqL1xuXHRhc3luYyBfY2hlY2tWaWV3cG9ydCgpIHtcblx0XHRpZiAoIWlzRWxlbWVudEluVmlld3BvcnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSkge1xuXHRcdFx0aWYgKHRoaXMub3V0c2lkZVZpZXdwb3J0QmVoYXZpb3IgPT09ICdmbG9hdCcpIHtcblx0XHRcdFx0Y29uc3QgZCA9IHRoaXMuX2Zsb2F0ZWQgPyAwIDogMTAwO1xuXHRcdFx0XHR0aGlzLl9mbG9hdGVkID0gdHJ1ZTtcblx0XHRcdFx0dGhpcy5fZmxvYXRQYW5lbEhpZGRlbiA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLl9lbmRGbG9hdGluZyh0aGlzLmZsb2F0RHVyYXRpb24pO1xuXHRcdFx0XHR0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdFx0XHRhd2FpdCB0aW1lcihkKS50b1Byb21pc2UoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnc3RhcnQnLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqQGlnbm9yZSAqL1xuXHRhc3luYyBfZGlzbWlzcyhhOiBJbnRlcm5hbEFsZXJ0T2plY3QpIHtcblx0XHRjb25zdCBpZCA9IGEuaWQ7XG5cdFx0YS5kZWxldGVkID0gdHJ1ZTtcblx0XHR0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdGF3YWl0IHRoaXMuX2FuaW1hdGlvbkVuZGVkLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG5cdFx0dGhpcy56b25lLnJ1bigoKSA9PiB7XG5cdFx0XHR0aGlzLl9hbGVydHMgPSB0aGlzLl9hbGVydHMuZmlsdGVyKF9hID0+IF9hLmlkICE9PSBpZCk7XG5cdFx0XHR0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqIFJlbW92ZSBhbGwgbWVzc2FnZXMgY3VycmVudGx5IGRpc3BsYXllZC4gKi9cblx0YXN5bmMgY2xlYXIoKSB7XG5cdFx0YXdhaXQgUHJvbWlzZS5hbGwodGhpcy5fcmVtYWluaW5nLm1hcChhID0+IHRoaXMuX2Rpc21pc3MoYSkpKTtcblx0XHR0aGlzLl9lbmRGbG9hdGluZygpO1xuXHR9XG5cblx0cHJpdmF0ZSBfZW5kRmxvYXRpbmcoX2RlbGF5ID0gMCkge1xuXHRcdGlmICghdGhpcy5fZmxvYXRlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLl9lbmRGbG9hdGluZ1N1Yj8udW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLl9lbmRGbG9hdGluZ1N1YiA9IHRpbWVyKF9kZWxheSlcblx0XHRcdC5waXBlKFxuXHRcdFx0XHR0YXAoKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuX2Zsb2F0ZWQgPSBmYWxzZTtcblx0XHRcdFx0XHR0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCkpO1xuXHRcdFx0XHR9KSxcblx0XHRcdFx0ZGVsYXkoNDAwKVxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuX2Zsb2F0UGFuZWxIaWRkZW4gPSB0cnVlO1xuXHRcdFx0XHR0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCkpO1xuXHRcdFx0fSk7XG5cdH1cbn1cbiIsIjxkaXZcblx0Y2xhc3M9XCJidWktYWxlcnQtZml4ZWQtcGFuZWxcIlxuXHRbc3R5bGUub3BhY2l0eV09XCJfZmxvYXRQYW5lbEhpZGRlbiA/IDEgOiAwXCJcblx0W2NsYXNzLmJ1aS1hbGVydC1maXhlZC1wYW5lbC1ibGlua109XCJvdXRzaWRlVmlld3BvcnRCZWhhdmlvciA9PT0gJ3Njcm9sbCdcIlxuPlxuXHQ8YnVpLWFsZXJ0XG5cdFx0Km5nRm9yPVwibGV0IGEgb2YgX2FsZXJ0c1wiXG5cdFx0W2lkXT1cImEuaWRcIlxuXHRcdFt0eXBlXT1cImEudHlwZVwiXG5cdFx0W21lc3NhZ2VdPVwiYS5tZXNzYWdlXCJcblx0XHRkaXNtaXNzaWJsZVxuXHRcdFtAYWxlcnRUcmFuc2l0aW9uXT1cImEuZGVsZXRlZCA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCJcblx0XHQoQGFsZXJ0VHJhbnNpdGlvbi5zdGFydCk9XCJfYW5pbWF0aW9uU3RhcnRlZC5uZXh0KCRldmVudClcIlxuXHRcdChAYWxlcnRUcmFuc2l0aW9uLmRvbmUpPVwiX2FuaW1hdGlvbkVuZGVkLm5leHQoJGV2ZW50KVwiXG5cdFx0KGRpc21pc3NlZCk9XCJfZGlzbWlzcyhhKVwiXG5cdD48L2J1aS1hbGVydD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYnVpLWFsZXJ0LWZsb2F0LXBhbmVsLWZyYW1lXCIgW2hpZGRlbl09XCJfZmxvYXRQYW5lbEhpZGRlblwiIFtjbGFzcy5idWktYWxlcnQtZmxvYXQtcGFuZWwtc2hhZGVkXT1cIl9mbG9hdGVkXCI+XG5cdDxkaXYgY2xhc3M9XCJidWktYWxlcnQtZmxvYXQtcGFuZWxcIiBbc3R5bGUubWF4LXdpZHRoXT1cIl93aWR0aCArICdweCdcIiBbQGZsb2F0VHJhbnNpdGlvbl09XCIndmlzaWJsZSdcIiAqbmdJZj1cIl9mbG9hdGVkXCI+XG5cdFx0PGJ1aS1hbGVydFxuXHRcdFx0Km5nRm9yPVwibGV0IGEgb2YgX2FsZXJ0c1wiXG5cdFx0XHRbaWRdPVwiYS5pZFwiXG5cdFx0XHRbdHlwZV09XCJhLnR5cGVcIlxuXHRcdFx0W21lc3NhZ2VdPVwiYS5tZXNzYWdlXCJcblx0XHRcdFtAYWxlcnRUcmFuc2l0aW9uXT1cImEuZGVsZXRlZCA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCJcblx0XHQ+PC9idWktYWxlcnQ+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,102 +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
|
-
constructor() {
|
|
40
|
-
/** The type of the message, used to derive the icon and base color. */
|
|
41
|
-
this.type = 'error';
|
|
42
|
-
/** The message to be displayed, HTML supported. */
|
|
43
|
-
this.message = '';
|
|
44
|
-
/** To be emitted when the user choose to dismiss the message. The event object is the ID of the element. */
|
|
45
|
-
this.dismissed = new EventEmitter();
|
|
46
|
-
/** To be emitted when the component finishes initialisation. The event object is the ID of the element. */
|
|
47
|
-
this.initialised = new EventEmitter();
|
|
48
|
-
/** @ignore */
|
|
49
|
-
this._id = `bui-alert-${generateID()}`;
|
|
50
|
-
this._dismissible = false;
|
|
51
|
-
}
|
|
52
|
-
/** Whether to display the button to fire the `dismissed` event. */
|
|
53
|
-
get dismissible() {
|
|
54
|
-
return this._dismissible;
|
|
55
|
-
}
|
|
56
|
-
set dismissible(value) {
|
|
57
|
-
this._dismissible = coerceBooleanProperty(value);
|
|
58
|
-
}
|
|
59
|
-
ngOnInit() {
|
|
60
|
-
this.politeness = this.politeness || DEFAULT_POLITENESS[this.type];
|
|
61
|
-
this.initialised.emit(this._id);
|
|
62
|
-
}
|
|
63
|
-
/** @ignore */
|
|
64
|
-
get iconName() {
|
|
65
|
-
return ICONS[this.type];
|
|
66
|
-
}
|
|
67
|
-
/** @ignore */
|
|
68
|
-
_dismiss() {
|
|
69
|
-
this.dismissed.emit(this._id);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
AlertMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: AlertMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
AlertMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", 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>\n<div class=\"bui-alert-frame\"></div>\n\n<div class=\"bui-alert-wrapper\">\n\t<div class=\"bui-alert-icon-area\">\n\t\t<mat-icon [buiIcon]=\"iconName\" variant=\"outlined\"></mat-icon>\n\t</div>\n\t<div class=\"bui-alert-content\">\n\t\t<div [innerHTML]=\"message\" *ngIf=\"message\"></div>\n\t\t<ng-content></ng-content>\n\t</div>\n</div>\n\n<div class=\"bui-alert-button-area\" *ngIf=\"dismissible\">\n\t<div class=\"bui-alert-button-backdrop\"></div>\n\t<button mat-icon-button class=\"bui-alert-button\" (click)=\"_dismiss()\" aria-label=\"dismiss alert\">\n\t\t<mat-icon>cancel</mat-icon>\n\t</button>\n</div>\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]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: AlertMessageComponent, decorators: [{
|
|
75
|
-
type: Component,
|
|
76
|
-
args: [{ selector: 'bui-alert', host: {
|
|
77
|
-
'[class]': `'bui-alert bui-host bui-alert-' + (type === 'warn' ? 'warning' : type) + (dismissible ? ' bui-alert-dismissible' : '')`,
|
|
78
|
-
'[role]': `politeness === 'off' ? 'region' : 'alert'`,
|
|
79
|
-
'[attr.aria-live]': `politeness === 'assertive' ? undefined : politeness`
|
|
80
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bui-alert-backdrop\"></div>\n<div class=\"bui-alert-frame\"></div>\n\n<div class=\"bui-alert-wrapper\">\n\t<div class=\"bui-alert-icon-area\">\n\t\t<mat-icon [buiIcon]=\"iconName\" variant=\"outlined\"></mat-icon>\n\t</div>\n\t<div class=\"bui-alert-content\">\n\t\t<div [innerHTML]=\"message\" *ngIf=\"message\"></div>\n\t\t<ng-content></ng-content>\n\t</div>\n</div>\n\n<div class=\"bui-alert-button-area\" *ngIf=\"dismissible\">\n\t<div class=\"bui-alert-button-backdrop\"></div>\n\t<button mat-icon-button class=\"bui-alert-button\" (click)=\"_dismiss()\" aria-label=\"dismiss alert\">\n\t\t<mat-icon>cancel</mat-icon>\n\t</button>\n</div>\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"] }]
|
|
81
|
-
}], ctorParameters: function () { return []; }, propDecorators: { type: [{
|
|
82
|
-
type: Input
|
|
83
|
-
}], message: [{
|
|
84
|
-
type: Input
|
|
85
|
-
}], politeness: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], dismissible: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}], dismissed: [{
|
|
90
|
-
type: Output
|
|
91
|
-
}], initialised: [{
|
|
92
|
-
type: Output
|
|
93
|
-
}],
|
|
94
|
-
/** @ignore */
|
|
95
|
-
_id: [{
|
|
96
|
-
type: Input,
|
|
97
|
-
args: ['id']
|
|
98
|
-
}, {
|
|
99
|
-
type: HostBinding,
|
|
100
|
-
args: ['id']
|
|
101
|
-
}] } });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9hbGVydC9hbGVydC1tZXNzYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2FsZXJ0L2FsZXJ0LW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7QUFFaEQsY0FBYztBQUNkLE1BQU0sS0FBSyxHQUFRO0lBQ2xCLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixLQUFLLEVBQUUsUUFBUTtDQUNmLENBQUM7QUFFRixjQUFjO0FBQ2QsTUFBTSxrQkFBa0IsR0FBRztJQUMxQixPQUFPLEVBQUUsUUFBUTtJQUNqQixJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxXQUFXO0NBQ2xCLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQVlILE1BQU0sT0FBTyxxQkFBcUI7SUEwQ2pDO1FBcENBLHdFQUF3RTtRQUV4RSxTQUFJLEdBQTBDLE9BQU8sQ0FBQztRQUV0RCxvREFBb0Q7UUFFcEQsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQWViLDZHQUE2RztRQUU3RyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV2Qyw0R0FBNEc7UUFFNUcsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSXpDLGNBQWM7UUFDZCxRQUFHLEdBQUcsYUFBYSxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBRTFCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBRWQsQ0FBQztJQXhCaEIsbUVBQW1FO0lBQ25FLElBQ0ksV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBVTtRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFtQkQsUUFBUTtRQUNQLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxjQUFjO0lBQ2QsSUFBSSxRQUFRO1FBQ1gsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxjQUFjO0lBQ2QsUUFBUTtRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDOztrSEF6RFcscUJBQXFCO3NHQUFyQixxQkFBcUIsdWhCQzlDbEMsb3BCQW1CQTsyRkQyQmEscUJBQXFCO2tCQVhqQyxTQUFTOytCQUNDLFdBQVcsUUFHZjt3QkFDTCxTQUFTLEVBQUUsd0hBQXdIO3dCQUNuSSxRQUFRLEVBQUUsMkNBQTJDO3dCQUNyRCxrQkFBa0IsRUFBRSxxREFBcUQ7cUJBQ3pFLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzBFQVUvQyxJQUFJO3NCQURILEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQUtOLFVBQVU7c0JBRFQsS0FBSztnQkFLRixXQUFXO3NCQURkLEtBQUs7Z0JBVU4sU0FBUztzQkFEUixNQUFNO2dCQUtQLFdBQVc7c0JBRFYsTUFBTTs7UUFLUCxjQUFjO1FBQ2QsR0FBRztzQkFIRixLQUFLO3VCQUFDLElBQUk7O3NCQUNWLFdBQVc7dUJBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdlbmVyYXRlSUQgfSBmcm9tICdAYnJhdnVyYS91aS9jb21tb24nO1xuXG4vKiogQGlnbm9yZSAqL1xuY29uc3QgSUNPTlM6IGFueSA9IHtcblx0c3VjY2VzczogJ2NoZWNrX2NpcmNsZScsXG5cdGluZm86ICdpbmZvJyxcblx0d2FybjogJ3JlcG9ydF9wcm9ibGVtJyxcblx0ZXJyb3I6ICdjYW5jZWwnXG59O1xuXG4vKiogQGlnbm9yZSAqL1xuY29uc3QgREVGQVVMVF9QT0xJVEVORVNTID0ge1xuXHRzdWNjZXNzOiAncG9saXRlJyxcblx0aW5mbzogJ3BvbGl0ZScsXG5cdHdhcm46ICdhc3NlcnRpdmUnLFxuXHRlcnJvcjogJ2Fzc2VydGl2ZSdcbn07XG5cbi8qKlxuICogQW4gYWxlcnQgc3R5bGUgbWVzc2FnZSB1c3VhbGx5IGFwcGVhcnMgaW4gYSBnbG9iYWwgbm90aWZpY2F0aW9uIGFyZWEuXG4gKlxuICogVGhlIGJhc2UgY29sb3Igb2YgdGhlIG1lc3NhZ2UgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYHR5cGVgIG9mIHRoZSBtZXNzYWdlIGFuZCBhIGxpc3Qgb2YgcHJlZGVmaW5lZFxuICogQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzLlxuICpcbiAqIGBgYHNjc3NcbiAqIC0tYnVpLWNvbG9yLXN1Y2Nlc3M6ICM1MTk2MDI7XG4gKiAtLWJ1aS1jb2xvci1pbmZvOiAjMGRjYWYwO1xuICogLS1idWktY29sb3Itd2FybmluZzogI2ZmYzEwNztcbiAqIC0tYnVpLWNvbG9yLWVycm9yOiAjZGMzNTQ1O1xuICogYGBgXG4gKlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnVpLWFsZXJ0Jyxcblx0dGVtcGxhdGVVcmw6ICcuL2FsZXJ0LW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9hbGVydC1tZXNzYWdlLmNvbXBvbmVudC5zY3NzJ10sXG5cdGhvc3Q6IHtcblx0XHQnW2NsYXNzXSc6IGAnYnVpLWFsZXJ0IGJ1aS1ob3N0IGJ1aS1hbGVydC0nICsgKHR5cGUgPT09ICd3YXJuJyA/ICd3YXJuaW5nJyA6IHR5cGUpICsgKGRpc21pc3NpYmxlID8gJyBidWktYWxlcnQtZGlzbWlzc2libGUnIDogJycpYCxcblx0XHQnW3JvbGVdJzogYHBvbGl0ZW5lc3MgPT09ICdvZmYnID8gJ3JlZ2lvbicgOiAnYWxlcnQnYCxcblx0XHQnW2F0dHIuYXJpYS1saXZlXSc6IGBwb2xpdGVuZXNzID09PSAnYXNzZXJ0aXZlJyA/IHVuZGVmaW5lZCA6IHBvbGl0ZW5lc3NgXG5cdH0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0TWVzc2FnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdC8qKiBAaWdub3JlICovXG5cdHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNtaXNzaWJsZTogYm9vbGVhbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cdC8qKiBAaWdub3JlICovXG5cdHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9ibGluazogYm9vbGVhbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cblx0LyoqIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlLCB1c2VkIHRvIGRlcml2ZSB0aGUgaWNvbiBhbmQgYmFzZSBjb2xvci4gICovXG5cdEBJbnB1dCgpXG5cdHR5cGU6ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdlcnJvcicgPSAnZXJyb3InO1xuXG5cdC8qKiBUaGUgbWVzc2FnZSB0byBiZSBkaXNwbGF5ZWQsIEhUTUwgc3VwcG9ydGVkLiAgKi9cblx0QElucHV0KClcblx0bWVzc2FnZSA9ICcnO1xuXG5cdC8qKiBTcGVjaWZpZXMgdGhlIEFSSUEgbGl2ZSByZWdpb24gcG9saXRlbmVzcy4gKi9cblx0QElucHV0KClcblx0cG9saXRlbmVzcyE6ICdvZmYnIHwgJ3BvbGl0ZScgfCAnYXNzZXJ0aXZlJztcblxuXHQvKiogV2hldGhlciB0byBkaXNwbGF5IHRoZSBidXR0b24gdG8gZmlyZSB0aGUgYGRpc21pc3NlZGAgZXZlbnQuICovXG5cdEBJbnB1dCgpXG5cdGdldCBkaXNtaXNzaWJsZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fZGlzbWlzc2libGU7XG5cdH1cblx0c2V0IGRpc21pc3NpYmxlKHZhbHVlOiBhbnkpIHtcblx0XHR0aGlzLl9kaXNtaXNzaWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cdH1cblxuXHQvKiogVG8gYmUgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNob29zZSB0byBkaXNtaXNzIHRoZSBtZXNzYWdlLiBUaGUgZXZlbnQgb2JqZWN0IGlzIHRoZSBJRCBvZiB0aGUgZWxlbWVudC4gICovXG5cdEBPdXRwdXQoKVxuXHRkaXNtaXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuXHQvKiogVG8gYmUgZW1pdHRlZCB3aGVuIHRoZSBjb21wb25lbnQgZmluaXNoZXMgaW5pdGlhbGlzYXRpb24uIFRoZSBldmVudCBvYmplY3QgaXMgdGhlIElEIG9mIHRoZSBlbGVtZW50LiAgKi9cblx0QE91dHB1dCgpXG5cdGluaXRpYWxpc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cblx0QElucHV0KCdpZCcpXG5cdEBIb3N0QmluZGluZygnaWQnKVxuXHQvKiogQGlnbm9yZSAqL1xuXHRfaWQgPSBgYnVpLWFsZXJ0LSR7Z2VuZXJhdGVJRCgpfWA7XG5cblx0cHJpdmF0ZSBfZGlzbWlzc2libGUgPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3RvcigpIHt9XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy5wb2xpdGVuZXNzID0gdGhpcy5wb2xpdGVuZXNzIHx8IERFRkFVTFRfUE9MSVRFTkVTU1t0aGlzLnR5cGVdO1xuXHRcdHRoaXMuaW5pdGlhbGlzZWQuZW1pdCh0aGlzLl9pZCk7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRnZXQgaWNvbk5hbWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gSUNPTlNbdGhpcy50eXBlXTtcblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdF9kaXNtaXNzKCkge1xuXHRcdHRoaXMuZGlzbWlzc2VkLmVtaXQodGhpcy5faWQpO1xuXHR9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYnVpLWFsZXJ0LWJhY2tkcm9wXCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwiYnVpLWFsZXJ0LWZyYW1lXCI+PC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJidWktYWxlcnQtd3JhcHBlclwiPlxuXHQ8ZGl2IGNsYXNzPVwiYnVpLWFsZXJ0LWljb24tYXJlYVwiPlxuXHRcdDxtYXQtaWNvbiBbYnVpSWNvbl09XCJpY29uTmFtZVwiIHZhcmlhbnQ9XCJvdXRsaW5lZFwiPjwvbWF0LWljb24+XG5cdDwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwiYnVpLWFsZXJ0LWNvbnRlbnRcIj5cblx0XHQ8ZGl2IFtpbm5lckhUTUxdPVwibWVzc2FnZVwiICpuZ0lmPVwibWVzc2FnZVwiPjwvZGl2PlxuXHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImJ1aS1hbGVydC1idXR0b24tYXJlYVwiICpuZ0lmPVwiZGlzbWlzc2libGVcIj5cblx0PGRpdiBjbGFzcz1cImJ1aS1hbGVydC1idXR0b24tYmFja2Ryb3BcIj48L2Rpdj5cblx0PGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJidWktYWxlcnQtYnV0dG9uXCIgKGNsaWNrKT1cIl9kaXNtaXNzKClcIiBhcmlhLWxhYmVsPVwiZGlzbWlzcyBhbGVydFwiPlxuXHRcdDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuXHQ8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
@@ -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
|
-
}
|
|
10
|
-
AlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: AlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
-
AlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: AlertModule, declarations: [AlertMessageComponent, AlertContainerComponent], imports: [CommonModule, IconFontModule, MatButtonModule], exports: [AlertMessageComponent, AlertContainerComponent] });
|
|
12
|
-
AlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: AlertModule, imports: [CommonModule, IconFontModule, MatButtonModule] });
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvYWxlcnQvYWxlcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBT2xFLE1BQU0sT0FBTyxXQUFXOzt3R0FBWCxXQUFXO3lHQUFYLFdBQVcsaUJBSlIscUJBQXFCLEVBQUUsdUJBQXVCLGFBQ25ELFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxhQUM3QyxxQkFBcUIsRUFBRSx1QkFBdUI7eUdBRTVDLFdBQVcsWUFIYixZQUFZLEVBQUUsY0FBYyxFQUFFLGVBQWU7MkZBRzNDLFdBQVc7a0JBTHZCLFFBQVE7bUJBQUM7b0JBQ1QsWUFBWSxFQUFFLENBQUMscUJBQXFCLEVBQUUsdUJBQXVCLENBQUM7b0JBQzlELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDO29CQUN4RCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSx1QkFBdUIsQ0FBQztpQkFDekQ7O0FBR0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBJY29uRm9udE1vZHVsZSB9IGZyb20gJ0BicmF2dXJhL3VpL2ljb24tZm9udCc7XG5pbXBvcnQgeyBBbGVydENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydE1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2FsZXJ0LW1lc3NhZ2UuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcblx0ZGVjbGFyYXRpb25zOiBbQWxlcnRNZXNzYWdlQ29tcG9uZW50LCBBbGVydENvbnRhaW5lckNvbXBvbmVudF0sXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEljb25Gb250TW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdLFxuXHRleHBvcnRzOiBbQWxlcnRNZXNzYWdlQ29tcG9uZW50LCBBbGVydENvbnRhaW5lckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQWxlcnRNb2R1bGUge31cblxuZXhwb3J0IHsgQWxlcnRNZXNzYWdlQ29tcG9uZW50LCBBbGVydENvbnRhaW5lckNvbXBvbmVudCB9O1xuIl19
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
|
|
2
|
-
export class AlertMessageHarness extends ComponentHarness {
|
|
3
|
-
constructor() {
|
|
4
|
-
super(...arguments);
|
|
5
|
-
this._getBackdrop = this.locatorFor('.bui-alert-backdrop');
|
|
6
|
-
this._getDeleteButton = this.locatorFor('.bui-alert-button');
|
|
7
|
-
this._getContentDiv = this.locatorFor('.bui-alert-content');
|
|
8
|
-
}
|
|
9
|
-
static with(options = {}) {
|
|
10
|
-
return new HarnessPredicate(this, options).addOption('content', options.content, AlertMessageHarness.filterByContent);
|
|
11
|
-
}
|
|
12
|
-
async getColor() {
|
|
13
|
-
return (await this._getBackdrop()).getCssValue('background-color');
|
|
14
|
-
}
|
|
15
|
-
async delete() {
|
|
16
|
-
await (await this._getDeleteButton()).click();
|
|
17
|
-
}
|
|
18
|
-
async getContent(options) {
|
|
19
|
-
return (await this._getContentDiv()).text(options);
|
|
20
|
-
}
|
|
21
|
-
static async filterByContent(harness, content) {
|
|
22
|
-
const contentText = await harness.getContent();
|
|
23
|
-
return content.test(contentText);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
AlertMessageHarness.hostSelector = '.bui-alert';
|
|
27
|
-
export class AlertContainerHarness extends ComponentHarness {
|
|
28
|
-
constructor() {
|
|
29
|
-
super(...arguments);
|
|
30
|
-
this._items = this.locatorForAll(AlertMessageHarness.with({ ancestor: '.bui-alert-fixed-panel' }));
|
|
31
|
-
this._floatingFrame = this.locatorFor('.bui-alert-float-panel-frame');
|
|
32
|
-
}
|
|
33
|
-
getAlertItem(content) {
|
|
34
|
-
return this.locatorForOptional(AlertMessageHarness.with({ ancestor: '.bui-alert-fixed-panel', content }))();
|
|
35
|
-
}
|
|
36
|
-
async countAlertItems() {
|
|
37
|
-
return (await this._items()).length;
|
|
38
|
-
}
|
|
39
|
-
async isFloated() {
|
|
40
|
-
return (await (await this._floatingFrame()).getCssValue('display')) !== 'none';
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
AlertContainerHarness.hostSelector = '.bui-alert-container';
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9hbGVydC90ZXN0aW5nL3Rlc3QtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixnQkFBZ0IsRUFJaEIsZ0JBQWdCLEVBQ2hCLE1BQU0sc0JBQXNCLENBQUM7QUFPOUIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGdCQUFnQjtJQUF6RDs7UUFFUyxpQkFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN0RCxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDeEQsbUJBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUE2QmhFLENBQUM7SUEzQkEsTUFBTSxDQUFDLElBQUksQ0FFVixVQUFzQyxFQUFFO1FBRXhDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUNuRCxTQUFTLEVBQ1QsT0FBTyxDQUFDLE9BQU8sRUFDZixtQkFBbUIsQ0FBQyxlQUFlLENBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDYixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDWCxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQXFCO1FBQ3JDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBNEIsRUFBRSxPQUFlO1FBQ2pGLE1BQU0sV0FBVyxHQUFHLE1BQU0sT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9DLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxDQUFDOztBQS9CTSxnQ0FBWSxHQUFHLFlBQVksQ0FBQztBQWtDcEMsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQUEzRDs7UUFHUyxXQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUYsbUJBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFhMUUsQ0FBQztJQVhBLFlBQVksQ0FBQyxPQUFlO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM3RyxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWU7UUFDcEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUztRQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUM7SUFDaEYsQ0FBQzs7QUFmTSxrQ0FBWSxHQUFHLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50SGFybmVzcyxcblx0VGV4dE9wdGlvbnMsXG5cdEJhc2VIYXJuZXNzRmlsdGVycyxcblx0Q29tcG9uZW50SGFybmVzc0NvbnN0cnVjdG9yLFxuXHRIYXJuZXNzUHJlZGljYXRlXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcblxuZXhwb3J0IGludGVyZmFjZSBBbGVydE1lc3NhZ2VIYXJuZXNzRmlsdGVycyBleHRlbmRzIEJhc2VIYXJuZXNzRmlsdGVycyB7XG5cdC8qKiBvbmx5IHNlbGVjdCB0aGUgYWxlcnQgd2l0aCB0aGUgY29udGVudCBtYXRjaGluZyB0aGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiAqL1xuXHRjb250ZW50PzogUmVnRXhwO1xufVxuXG5leHBvcnQgY2xhc3MgQWxlcnRNZXNzYWdlSGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xuXHRzdGF0aWMgaG9zdFNlbGVjdG9yID0gJy5idWktYWxlcnQnO1xuXHRwcml2YXRlIF9nZXRCYWNrZHJvcCA9IHRoaXMubG9jYXRvckZvcignLmJ1aS1hbGVydC1iYWNrZHJvcCcpO1xuXHRwcml2YXRlIF9nZXREZWxldGVCdXR0b24gPSB0aGlzLmxvY2F0b3JGb3IoJy5idWktYWxlcnQtYnV0dG9uJyk7XG5cdHByaXZhdGUgX2dldENvbnRlbnREaXYgPSB0aGlzLmxvY2F0b3JGb3IoJy5idWktYWxlcnQtY29udGVudCcpO1xuXG5cdHN0YXRpYyB3aXRoPFQgZXh0ZW5kcyBBbGVydE1lc3NhZ2VIYXJuZXNzPihcblx0XHR0aGlzOiBDb21wb25lbnRIYXJuZXNzQ29uc3RydWN0b3I8VD4sXG5cdFx0b3B0aW9uczogQWxlcnRNZXNzYWdlSGFybmVzc0ZpbHRlcnMgPSB7fVxuXHQpOiBIYXJuZXNzUHJlZGljYXRlPFQ+IHtcblx0XHRyZXR1cm4gbmV3IEhhcm5lc3NQcmVkaWNhdGUodGhpcywgb3B0aW9ucykuYWRkT3B0aW9uKFxuXHRcdFx0J2NvbnRlbnQnLFxuXHRcdFx0b3B0aW9ucy5jb250ZW50LFxuXHRcdFx0QWxlcnRNZXNzYWdlSGFybmVzcy5maWx0ZXJCeUNvbnRlbnRcblx0XHQpO1xuXHR9XG5cblx0YXN5bmMgZ2V0Q29sb3IoKTogUHJvbWlzZTxzdHJpbmc+IHtcblx0XHRyZXR1cm4gKGF3YWl0IHRoaXMuX2dldEJhY2tkcm9wKCkpLmdldENzc1ZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJyk7XG5cdH1cblxuXHRhc3luYyBkZWxldGUoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgKGF3YWl0IHRoaXMuX2dldERlbGV0ZUJ1dHRvbigpKS5jbGljaygpO1xuXHR9XG5cblx0YXN5bmMgZ2V0Q29udGVudChvcHRpb25zPzogVGV4dE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdHJldHVybiAoYXdhaXQgdGhpcy5fZ2V0Q29udGVudERpdigpKS50ZXh0KG9wdGlvbnMpO1xuXHR9XG5cblx0cHJpdmF0ZSBzdGF0aWMgYXN5bmMgZmlsdGVyQnlDb250ZW50KGhhcm5lc3M6IEFsZXJ0TWVzc2FnZUhhcm5lc3MsIGNvbnRlbnQ6IFJlZ0V4cCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRcdGNvbnN0IGNvbnRlbnRUZXh0ID0gYXdhaXQgaGFybmVzcy5nZXRDb250ZW50KCk7XG5cdFx0cmV0dXJuIGNvbnRlbnQudGVzdChjb250ZW50VGV4dCk7XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIEFsZXJ0Q29udGFpbmVySGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xuXHRzdGF0aWMgaG9zdFNlbGVjdG9yID0gJy5idWktYWxlcnQtY29udGFpbmVyJztcblxuXHRwcml2YXRlIF9pdGVtcyA9IHRoaXMubG9jYXRvckZvckFsbChBbGVydE1lc3NhZ2VIYXJuZXNzLndpdGgoeyBhbmNlc3RvcjogJy5idWktYWxlcnQtZml4ZWQtcGFuZWwnIH0pKTtcblx0cHJpdmF0ZSBfZmxvYXRpbmdGcmFtZSA9IHRoaXMubG9jYXRvckZvcignLmJ1aS1hbGVydC1mbG9hdC1wYW5lbC1mcmFtZScpO1xuXG5cdGdldEFsZXJ0SXRlbShjb250ZW50OiBSZWdFeHApOiBQcm9taXNlPEFsZXJ0TWVzc2FnZUhhcm5lc3MgfCBudWxsPiB7XG5cdFx0cmV0dXJuIHRoaXMubG9jYXRvckZvck9wdGlvbmFsKEFsZXJ0TWVzc2FnZUhhcm5lc3Mud2l0aCh7IGFuY2VzdG9yOiAnLmJ1aS1hbGVydC1maXhlZC1wYW5lbCcsIGNvbnRlbnQgfSkpKCk7XG5cdH1cblxuXHRhc3luYyBjb3VudEFsZXJ0SXRlbXMoKTogUHJvbWlzZTxudW1iZXI+IHtcblx0XHRyZXR1cm4gKGF3YWl0IHRoaXMuX2l0ZW1zKCkpLmxlbmd0aDtcblx0fVxuXG5cdGFzeW5jIGlzRmxvYXRlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRyZXR1cm4gKGF3YWl0IChhd2FpdCB0aGlzLl9mbG9hdGluZ0ZyYW1lKCkpLmdldENzc1ZhbHVlKCdkaXNwbGF5JykpICE9PSAnbm9uZSc7XG5cdH1cbn1cbiJdfQ==
|