@bravura/ui 3.8.0 → 4.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 +579 -557
- package/LICENSE +6 -6
- package/README.md +56 -54
- 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/{esm2020 → esm2022}/behavior/await.directive.mjs +6 -6
- package/esm2022/behavior/behavior.module.mjs +37 -0
- package/{esm2020 → esm2022}/behavior/observe-content-class.directive.mjs +5 -5
- 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/{esm2020 → esm2022}/common/common.module.mjs +7 -7
- package/{esm2020 → esm2022}/common/public-api.mjs +1 -1
- package/{esm2020 → esm2022}/currency-input/currency-input.directive.mjs +6 -6
- package/esm2022/currency-input/currency-input.module.mjs +19 -0
- package/{esm2020 → esm2022}/currency-input/public-api.mjs +1 -1
- package/{esm2020 → esm2022}/decimal-input/decimal-input.directive.mjs +9 -9
- 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/{esm2020 → esm2022}/icon-font/icon.directive.mjs +5 -5
- package/{esm2020 → esm2022}/icon-font/public-api.mjs +1 -1
- package/{esm2020 → esm2022}/icon-font/utilities.mjs +1 -1
- 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/{esm2020 → esm2022}/phone-number/phone-number.pipe.mjs +6 -6
- 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/{esm2020 → esm2022}/skeletons/skeleton-loader.component.mjs +5 -5
- 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 +31 -31
- 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 +76 -120
- 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 +112 -112
- 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/behavior.module.mjs +0 -37
- 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/currency-input/currency-input.module.mjs +0 -19
- 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/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.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/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
|
@@ -10,11 +10,11 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
* Import this NgModule for the radio panel component
|
|
11
11
|
*/
|
|
12
12
|
export class RadioPanelModule {
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: RadioPanelModule, declarations: [RadioPanelItemComponent, RadioPanelComponent], imports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule], exports: [RadioPanelItemComponent, RadioPanelComponent] }); }
|
|
15
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioPanelModule, imports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule] }); }
|
|
13
16
|
}
|
|
14
|
-
|
|
15
|
-
RadioPanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: RadioPanelModule, declarations: [RadioPanelItemComponent, RadioPanelComponent], imports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule], exports: [RadioPanelItemComponent, RadioPanelComponent] });
|
|
16
|
-
RadioPanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: RadioPanelModule, imports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule] });
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: RadioPanelModule, decorators: [{
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioPanelModule, decorators: [{
|
|
18
18
|
type: NgModule,
|
|
19
19
|
args: [{
|
|
20
20
|
declarations: [RadioPanelItemComponent, RadioPanelComponent],
|
|
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
22
22
|
exports: [RadioPanelItemComponent, RadioPanelComponent]
|
|
23
23
|
}]
|
|
24
24
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tcGFuZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvcmFkaW8tcGFuZWwvcmFkaW8tcGFuZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUU5RDs7R0FFRztBQU1ILE1BQU0sT0FBTyxnQkFBZ0I7K0dBQWhCLGdCQUFnQjtnSEFBaEIsZ0JBQWdCLGlCQUpiLHVCQUF1QixFQUFFLG1CQUFtQixhQUNqRCxZQUFZLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxhQUFhLGFBQzVELHVCQUF1QixFQUFFLG1CQUFtQjtnSEFFMUMsZ0JBQWdCLFlBSGxCLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWE7OzRGQUcxRCxnQkFBZ0I7a0JBTDVCLFFBQVE7bUJBQUM7b0JBQ1QsWUFBWSxFQUFFLENBQUMsdUJBQXVCLEVBQUUsbUJBQW1CLENBQUM7b0JBQzVELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQztvQkFDdkUsT0FBTyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsbUJBQW1CLENBQUM7aUJBQ3ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRSaXBwbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuaW1wb3J0IHsgUmFkaW9QYW5lbEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3JhZGlvLXBhbmVsLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL3JhZGlvLXBhbmVsLmNvbXBvbmVudCc7XG5cbi8qKlxuICogSW1wb3J0IHRoaXMgTmdNb2R1bGUgZm9yIHRoZSByYWRpbyBwYW5lbCBjb21wb25lbnRcbiAqL1xuQE5nTW9kdWxlKHtcblx0ZGVjbGFyYXRpb25zOiBbUmFkaW9QYW5lbEl0ZW1Db21wb25lbnQsIFJhZGlvUGFuZWxDb21wb25lbnRdLFxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRSYWRpb01vZHVsZSwgTWF0UmlwcGxlTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcblx0ZXhwb3J0czogW1JhZGlvUGFuZWxJdGVtQ29tcG9uZW50LCBSYWRpb1BhbmVsQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb1BhbmVsTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { HarnessPredicate } from '@angular/cdk/testing';
|
|
2
|
+
import { MatRadioButtonHarness, MatRadioGroupHarness } from '@angular/material/radio/testing';
|
|
3
|
+
export class RadioPanelItemHarness extends MatRadioButtonHarness {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.getLabelElement = this.locatorFor('label');
|
|
7
|
+
this._textLabel = this.locatorFor('label .bui-label-title');
|
|
8
|
+
this._clickLabel = this.getLabelElement;
|
|
9
|
+
}
|
|
10
|
+
static { this.hostSelector = 'bui-radio-panel-item'; }
|
|
11
|
+
/**
|
|
12
|
+
* Gets a `HarnessPredicate` that can be used to search for a radio button with specific
|
|
13
|
+
* attributes.
|
|
14
|
+
* @param options Options for filtering which radio button instances are considered a match.
|
|
15
|
+
* @return a `HarnessPredicate` configured with the given options.
|
|
16
|
+
*/
|
|
17
|
+
static with(options = {}) {
|
|
18
|
+
return MatRadioButtonHarness.with
|
|
19
|
+
.bind(this)(options)
|
|
20
|
+
.addOption('value', options.value, (harness, value) => HarnessPredicate.stringMatches(harness.getValue(), value));
|
|
21
|
+
}
|
|
22
|
+
async click() {
|
|
23
|
+
const element = await this.getLabelElement();
|
|
24
|
+
element.click();
|
|
25
|
+
}
|
|
26
|
+
async getLabelCssValue(prop) {
|
|
27
|
+
const element = await this.getLabelElement();
|
|
28
|
+
return element.getCssValue(prop);
|
|
29
|
+
}
|
|
30
|
+
async getBorderColor() {
|
|
31
|
+
const label = await this.getLabelElement();
|
|
32
|
+
return label.getCssValue('border-color');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export class RadioPanelHarness extends MatRadioGroupHarness {
|
|
36
|
+
constructor() {
|
|
37
|
+
super(...arguments);
|
|
38
|
+
this.getItem = (filters) => this.locatorFor(RadioPanelItemHarness.with(filters))();
|
|
39
|
+
}
|
|
40
|
+
/** The selector for the host element of a `MatRadioGroup` instance. */
|
|
41
|
+
static { this.hostSelector = 'bui-radio-panel'; }
|
|
42
|
+
async getFlexDir() {
|
|
43
|
+
return (await this.host()).getCssValue('flex-direction');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9yYWRpby1wYW5lbC90ZXN0aW5nL3Rlc3QtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBK0IsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRixPQUFPLEVBQ04scUJBQXFCLEVBQ3JCLG9CQUFvQixFQUVwQixNQUFNLGlDQUFpQyxDQUFDO0FBTXpDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxxQkFBcUI7SUFBaEU7O1FBRUMsb0JBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLGVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDdkQsZ0JBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBaUM5QyxDQUFDO2FBckNPLGlCQUFZLEdBQUcsc0JBQXNCLEFBQXpCLENBQTBCO0lBTTdDOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FFVixVQUF3QyxFQUFFO1FBRTFDLE9BQU8scUJBQXFCLENBQUMsSUFBSTthQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO2FBQ25CLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNyRCxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUNsQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNWLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQVk7UUFDbEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDN0MsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNuQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQyxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7QUFHRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsb0JBQW9CO0lBQTNEOztRQUlDLFlBQU8sR0FBRyxDQUFDLE9BQXFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUs3RyxDQUFDO0lBUkEsdUVBQXVFO2FBQ2hFLGlCQUFZLEdBQUcsaUJBQWlCLEFBQXBCLENBQXFCO0lBSXhDLEtBQUssQ0FBQyxVQUFVO1FBQ2YsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEhhcm5lc3NDb25zdHJ1Y3RvciwgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcclxuaW1wb3J0IHtcclxuXHRNYXRSYWRpb0J1dHRvbkhhcm5lc3MsXHJcblx0TWF0UmFkaW9Hcm91cEhhcm5lc3MsXHJcblx0UmFkaW9CdXR0b25IYXJuZXNzRmlsdGVyc1xyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvL3Rlc3RpbmcnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSYWRpb1BhbmVsSXRlbUhhcm5lc3NGaWx0ZXJzIGV4dGVuZHMgUmFkaW9CdXR0b25IYXJuZXNzRmlsdGVycyB7XHJcblx0dmFsdWU/OiBzdHJpbmcgfCBSZWdFeHA7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSYWRpb1BhbmVsSXRlbUhhcm5lc3MgZXh0ZW5kcyBNYXRSYWRpb0J1dHRvbkhhcm5lc3Mge1xyXG5cdHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnYnVpLXJhZGlvLXBhbmVsLWl0ZW0nO1xyXG5cdGdldExhYmVsRWxlbWVudCA9IHRoaXMubG9jYXRvckZvcignbGFiZWwnKTtcclxuXHJcblx0cHJvdGVjdGVkIF90ZXh0TGFiZWwgPSB0aGlzLmxvY2F0b3JGb3IoJ2xhYmVsIC5idWktbGFiZWwtdGl0bGUnKTtcclxuXHRwcm90ZWN0ZWQgX2NsaWNrTGFiZWwgPSB0aGlzLmdldExhYmVsRWxlbWVudDtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYSByYWRpbyBidXR0b24gd2l0aCBzcGVjaWZpY1xyXG5cdCAqIGF0dHJpYnV0ZXMuXHJcblx0ICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZmlsdGVyaW5nIHdoaWNoIHJhZGlvIGJ1dHRvbiBpbnN0YW5jZXMgYXJlIGNvbnNpZGVyZWQgYSBtYXRjaC5cclxuXHQgKiBAcmV0dXJuIGEgYEhhcm5lc3NQcmVkaWNhdGVgIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZ2l2ZW4gb3B0aW9ucy5cclxuXHQgKi9cclxuXHRzdGF0aWMgd2l0aDxUIGV4dGVuZHMgTWF0UmFkaW9CdXR0b25IYXJuZXNzPihcclxuXHRcdHRoaXM6IENvbXBvbmVudEhhcm5lc3NDb25zdHJ1Y3RvcjxUPixcclxuXHRcdG9wdGlvbnM6IFJhZGlvUGFuZWxJdGVtSGFybmVzc0ZpbHRlcnMgPSB7fVxyXG5cdCk6IEhhcm5lc3NQcmVkaWNhdGU8VD4ge1xyXG5cdFx0cmV0dXJuIE1hdFJhZGlvQnV0dG9uSGFybmVzcy53aXRoXHJcblx0XHRcdC5iaW5kKHRoaXMpKG9wdGlvbnMpXHJcblx0XHRcdC5hZGRPcHRpb24oJ3ZhbHVlJywgb3B0aW9ucy52YWx1ZSwgKGhhcm5lc3MsIHZhbHVlKSA9PlxyXG5cdFx0XHRcdEhhcm5lc3NQcmVkaWNhdGUuc3RyaW5nTWF0Y2hlcyhoYXJuZXNzLmdldFZhbHVlKCksIHZhbHVlKVxyXG5cdFx0XHQpIGFzIEhhcm5lc3NQcmVkaWNhdGU8VD47XHJcblx0fVxyXG5cclxuXHRhc3luYyBjbGljaygpIHtcclxuXHRcdGNvbnN0IGVsZW1lbnQgPSBhd2FpdCB0aGlzLmdldExhYmVsRWxlbWVudCgpO1xyXG5cdFx0ZWxlbWVudC5jbGljaygpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZ2V0TGFiZWxDc3NWYWx1ZShwcm9wOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG5cdFx0Y29uc3QgZWxlbWVudCA9IGF3YWl0IHRoaXMuZ2V0TGFiZWxFbGVtZW50KCk7XHJcblx0XHRyZXR1cm4gZWxlbWVudC5nZXRDc3NWYWx1ZShwcm9wKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGdldEJvcmRlckNvbG9yKCk6IFByb21pc2U8c3RyaW5nPiB7XHJcblx0XHRjb25zdCBsYWJlbCA9IGF3YWl0IHRoaXMuZ2V0TGFiZWxFbGVtZW50KCk7XHJcblx0XHRyZXR1cm4gbGFiZWwuZ2V0Q3NzVmFsdWUoJ2JvcmRlci1jb2xvcicpO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJhZGlvUGFuZWxIYXJuZXNzIGV4dGVuZHMgTWF0UmFkaW9Hcm91cEhhcm5lc3Mge1xyXG5cdC8qKiBUaGUgc2VsZWN0b3IgZm9yIHRoZSBob3N0IGVsZW1lbnQgb2YgYSBgTWF0UmFkaW9Hcm91cGAgaW5zdGFuY2UuICovXHJcblx0c3RhdGljIGhvc3RTZWxlY3RvciA9ICdidWktcmFkaW8tcGFuZWwnO1xyXG5cclxuXHRnZXRJdGVtID0gKGZpbHRlcnM6IFJhZGlvUGFuZWxJdGVtSGFybmVzc0ZpbHRlcnMpID0+IHRoaXMubG9jYXRvckZvcihSYWRpb1BhbmVsSXRlbUhhcm5lc3Mud2l0aChmaWx0ZXJzKSkoKTtcclxuXHJcblx0YXN5bmMgZ2V0RmxleERpcigpOiBQcm9taXNlPHN0cmluZz4ge1xyXG5cdFx0cmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuZ2V0Q3NzVmFsdWUoJ2ZsZXgtZGlyZWN0aW9uJyk7XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { SelectionPanelItemComponent } from './selection-panel-item.component';
|
|
2
2
|
export { SelectionPanelDirective } from './selection-panel.directive';
|
|
3
3
|
export { SelectionPanelModule } from './selection-panel.module';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NlbGVjdGlvbi1wYW5lbC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgU2VsZWN0aW9uUGFuZWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3Rpb24tcGFuZWwtaXRlbS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBTZWxlY3Rpb25QYW5lbERpcmVjdGl2ZSB9IGZyb20gJy4vc2VsZWN0aW9uLXBhbmVsLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IFNlbGVjdGlvblBhbmVsTW9kdWxlIH0gZnJvbSAnLi9zZWxlY3Rpb24tcGFuZWwubW9kdWxlJztcclxuIl19
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Inject, InjectionToken, Input, ViewChild } from '@angular/core';
|
|
3
|
+
import { MatRipple } from '@angular/material/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "@angular/material/checkbox";
|
|
7
|
+
import * as i3 from "@angular/forms";
|
|
8
|
+
import * as i4 from "@angular/material/core";
|
|
9
|
+
import * as i5 from "@angular/cdk/observers";
|
|
10
|
+
/**
|
|
11
|
+
* @ignore
|
|
12
|
+
*/
|
|
13
|
+
export const SELECTION_PANEL_GROUP = new InjectionToken('SelectionPanelItemGroup');
|
|
14
|
+
/**
|
|
15
|
+
* Use `bui-selection-panel-item` within a `bui-selection-panel` to display an option.
|
|
16
|
+
*/
|
|
17
|
+
export class SelectionPanelItemComponent {
|
|
18
|
+
/** Whether the option is disabled. */
|
|
19
|
+
get disabled() {
|
|
20
|
+
return this._disabled || this._group._isDisabled;
|
|
21
|
+
}
|
|
22
|
+
set disabled(value) {
|
|
23
|
+
this._setDisabled(coerceBooleanProperty(value));
|
|
24
|
+
}
|
|
25
|
+
/** The value of this option. */
|
|
26
|
+
get value() {
|
|
27
|
+
return this._value;
|
|
28
|
+
}
|
|
29
|
+
set value(value) {
|
|
30
|
+
if (this._value !== value) {
|
|
31
|
+
this._value = value;
|
|
32
|
+
this._cd.markForCheck();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** Whether this option is checked. */
|
|
36
|
+
get checked() {
|
|
37
|
+
return this._group._selection.includes(this.value);
|
|
38
|
+
}
|
|
39
|
+
set checked(value) {
|
|
40
|
+
if (!this._group._onTouched) {
|
|
41
|
+
setTimeout(() => this._setChecked(value), 0);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
this._setChecked(value);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/** Theme color of the radio button. */
|
|
48
|
+
get color() {
|
|
49
|
+
return this._color || this._group.color;
|
|
50
|
+
}
|
|
51
|
+
set color(newValue) {
|
|
52
|
+
this._color = newValue;
|
|
53
|
+
}
|
|
54
|
+
get _selectByHeader() {
|
|
55
|
+
return this._group.selectByHeader;
|
|
56
|
+
}
|
|
57
|
+
constructor(_group, _cd) {
|
|
58
|
+
this._group = _group;
|
|
59
|
+
this._cd = _cd;
|
|
60
|
+
/**
|
|
61
|
+
* This will be displayed as the panel header
|
|
62
|
+
*/
|
|
63
|
+
this.title = '';
|
|
64
|
+
/**
|
|
65
|
+
* Show the header in with a shaded background
|
|
66
|
+
*/
|
|
67
|
+
this.shadedHeader = false;
|
|
68
|
+
/**
|
|
69
|
+
* when false will hide the checkbox
|
|
70
|
+
*/
|
|
71
|
+
this.selectable = true;
|
|
72
|
+
this.empty = true;
|
|
73
|
+
this._disabled = false;
|
|
74
|
+
}
|
|
75
|
+
/** @ignore */
|
|
76
|
+
_markInteracted() {
|
|
77
|
+
if (this._group._onTouched) {
|
|
78
|
+
this._group._onTouched();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/** @ignore */
|
|
82
|
+
_notify() {
|
|
83
|
+
this._cd.markForCheck();
|
|
84
|
+
}
|
|
85
|
+
/** Toggle selection programmatically */
|
|
86
|
+
toggle() {
|
|
87
|
+
this.checked = !this.checked;
|
|
88
|
+
}
|
|
89
|
+
/** @ignore */
|
|
90
|
+
_contentClicked(event) {
|
|
91
|
+
if (!this._selectByHeader && this.selectable) {
|
|
92
|
+
this._ripple?.launch(event.clientX, event.clientY);
|
|
93
|
+
this.toggle();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/** @ignore */
|
|
97
|
+
contentChanged() {
|
|
98
|
+
const el = this._bodyContent?.nativeElement;
|
|
99
|
+
this.empty = (el?.childElementCount || 0) === 0 && (el?.textContent || '') === '';
|
|
100
|
+
}
|
|
101
|
+
/** @ignore */
|
|
102
|
+
ngAfterContentInit() {
|
|
103
|
+
this.contentChanged();
|
|
104
|
+
}
|
|
105
|
+
/** Sets the disabled state and marks for check if a change occurred. */
|
|
106
|
+
_setDisabled(value) {
|
|
107
|
+
if (this._disabled !== value) {
|
|
108
|
+
this._disabled = value;
|
|
109
|
+
this._cd.markForCheck();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
_setChecked(value) {
|
|
113
|
+
const newCheckedState = coerceBooleanProperty(value);
|
|
114
|
+
const old = this._group._selection.includes(this.value);
|
|
115
|
+
if (old !== newCheckedState) {
|
|
116
|
+
const contained = this._group._selection.some(v => v === this._value);
|
|
117
|
+
if (newCheckedState && this._group && !contained) {
|
|
118
|
+
this._group._selection = [...this._group._selection, this._value];
|
|
119
|
+
}
|
|
120
|
+
else if (!newCheckedState && this._group && contained) {
|
|
121
|
+
// When unchecking the selected item, update the selection
|
|
122
|
+
// property on the group.
|
|
123
|
+
this._group._selection = this._group._selection.filter(v => v !== this._value);
|
|
124
|
+
}
|
|
125
|
+
this._cd.markForCheck();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionPanelItemComponent, deps: [{ token: SELECTION_PANEL_GROUP }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
129
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SelectionPanelItemComponent, selector: "bui-selection-panel-item", inputs: { title: "title", shadedHeader: "shadedHeader", selectable: "selectable", disabled: "disabled", value: "value", checked: "checked", color: "color" }, host: { properties: { "class.bui-selection-checked": "checked", "class.bui-border-accent": "checked && color ==='accent'", "class.bui-border-primary": "checked && color ==='primary'", "class.bui-border-warn": "checked && color ==='warn'", "class.bui-disabled": "disabled", "class.bui-unselectable": "!selectable" }, classAttribute: "bui-selection-panel-item" }, viewQueries: [{ propertyName: "_bodyContent", first: true, predicate: ["contentBody"], descendants: true, static: true }, { propertyName: "_ripple", first: true, predicate: MatRipple, descendants: true }], ngImport: i0, template: "<div class=\"bui-selection-panel-item-wrapper\">\r\n\t<div\r\n\t\tmatRipple\r\n\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\r\n\t\tclass=\"bui-ripple\"\r\n\t\t*ngIf=\"!disabled\"\r\n\t\t[matRippleTrigger]=\"toggleTrigger\"\r\n\t\t#ripple=\"matRipple\"\r\n\t\t[matRippleDisabled]=\"!selectable\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"bui-selection-panel-item-header\"\r\n\t\t[ngClass]=\"{ 'bui-shaded': shadedHeader, 'bui-empty': empty }\"\r\n\t\t#toggleTrigger\r\n\t>\r\n\t\t<div\r\n\t\t\t*ngIf=\"shadedHeader\"\r\n\t\t\tclass=\"bui-selection-panel-item-header-underlay\"\r\n\t\t\t[ngClass]=\"{ 'bui-not-empty': !empty }\"\r\n\t\t></div>\r\n\t\t<div class=\"bui-selection-panel-item-header-container\">\r\n\t\t\t<mat-checkbox\r\n\t\t\t\t*ngIf=\"selectable; else noselectable\"\r\n\t\t\t\t[(ngModel)]=\"checked\"\r\n\t\t\t\t[color]=\"color\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t(change)=\"_markInteracted()\"\r\n\t\t\t\tstyle=\"flex-grow: 1\"\r\n\t\t\t>\r\n\t\t\t\t<div class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\r\n\t\t\t</mat-checkbox>\r\n\t\t\t<ng-template #noselectable>\r\n\t\t\t\t<div style=\"flex-grow: 1\" class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\r\n\t\t\t</ng-template>\r\n\t\t\t<ng-content select=\"[buiSelectionItemHeadingEnd]\"></ng-content>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[buiSelectionItemSubtitle]\"></ng-content>\r\n\t</div>\r\n\t<div\r\n\t\t#contentBody\r\n\t\tclass=\"bui-selection-panel-item-content\"\r\n\t\t[class.bui-empty]=\"empty\"\r\n\t\t[class.bui-selectable]=\"!_selectByHeader\"\r\n\t\t(click)=\"_contentClicked($event)\"\r\n\t\t(cdkObserveContent)=\"contentChanged()\"\r\n\t>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n\t<div class=\"bui-selection-panel-item-bottom\"></div>\r\n</div>\r\n", styles: [":host{position:relative;border-radius:5px;border:1px solid rgba(128,128,128,.2);padding:1px}:host .bui-selection-panel-item-wrapper{padding-left:1rem;padding-right:1rem}:host .bui-ripple{position:absolute;inset:0;z-index:-1}:host .bui-selection-panel-item-header{margin-top:calc(1rem - 4px);margin-bottom:calc(1rem - 4px);align-items:center;position:relative}:host .bui-selection-panel-item-header.bui-shaded:not(.bui-empty){margin-bottom:calc(2rem + 4px)}:host .bui-selection-panel-item-header-container{display:flex}:host .bui-selection-panel-item-header-container .mat-mdc-checkbox{z-index:1}:host .bui-selection-panel-item-title{font-size:larger;font-weight:700;white-space:normal;margin-top:2px}:host .bui-selection-panel-item-content:not(.bui-empty){margin-top:calc(2px + 1rem);margin-bottom:1rem}:host .bui-selection-panel-item-header-underlay{position:absolute;top:calc(3px - 1rem);left:calc(-1px - 1rem);right:calc(-1px - 1rem);bottom:calc(-3px - 1rem);border-radius:5px;background-color:#80808026}:host .bui-selection-panel-item-header-underlay.bui-not-empty{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(:not(:first-child)){margin-top:1rem}:host(:not([hidden])){display:block}:host(:not(.bui-disabled,.bui-unselectable)):hover{border-width:2px;padding:0;border-color:#8080804d}:host(:not(.bui-disabled,.bui-unselectable)) .bui-selection-panel-item-content.bui-selectable{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
130
|
+
}
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionPanelItemComponent, decorators: [{
|
|
132
|
+
type: Component,
|
|
133
|
+
args: [{ selector: 'bui-selection-panel-item', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
134
|
+
class: 'bui-selection-panel-item',
|
|
135
|
+
'[class.bui-selection-checked]': 'checked',
|
|
136
|
+
'[class.bui-border-accent]': `checked && color ==='accent'`,
|
|
137
|
+
'[class.bui-border-primary]': `checked && color ==='primary'`,
|
|
138
|
+
'[class.bui-border-warn]': `checked && color ==='warn'`,
|
|
139
|
+
'[class.bui-disabled]': 'disabled',
|
|
140
|
+
'[class.bui-unselectable]': '!selectable'
|
|
141
|
+
}, template: "<div class=\"bui-selection-panel-item-wrapper\">\r\n\t<div\r\n\t\tmatRipple\r\n\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\r\n\t\tclass=\"bui-ripple\"\r\n\t\t*ngIf=\"!disabled\"\r\n\t\t[matRippleTrigger]=\"toggleTrigger\"\r\n\t\t#ripple=\"matRipple\"\r\n\t\t[matRippleDisabled]=\"!selectable\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"bui-selection-panel-item-header\"\r\n\t\t[ngClass]=\"{ 'bui-shaded': shadedHeader, 'bui-empty': empty }\"\r\n\t\t#toggleTrigger\r\n\t>\r\n\t\t<div\r\n\t\t\t*ngIf=\"shadedHeader\"\r\n\t\t\tclass=\"bui-selection-panel-item-header-underlay\"\r\n\t\t\t[ngClass]=\"{ 'bui-not-empty': !empty }\"\r\n\t\t></div>\r\n\t\t<div class=\"bui-selection-panel-item-header-container\">\r\n\t\t\t<mat-checkbox\r\n\t\t\t\t*ngIf=\"selectable; else noselectable\"\r\n\t\t\t\t[(ngModel)]=\"checked\"\r\n\t\t\t\t[color]=\"color\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t(change)=\"_markInteracted()\"\r\n\t\t\t\tstyle=\"flex-grow: 1\"\r\n\t\t\t>\r\n\t\t\t\t<div class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\r\n\t\t\t</mat-checkbox>\r\n\t\t\t<ng-template #noselectable>\r\n\t\t\t\t<div style=\"flex-grow: 1\" class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\r\n\t\t\t</ng-template>\r\n\t\t\t<ng-content select=\"[buiSelectionItemHeadingEnd]\"></ng-content>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[buiSelectionItemSubtitle]\"></ng-content>\r\n\t</div>\r\n\t<div\r\n\t\t#contentBody\r\n\t\tclass=\"bui-selection-panel-item-content\"\r\n\t\t[class.bui-empty]=\"empty\"\r\n\t\t[class.bui-selectable]=\"!_selectByHeader\"\r\n\t\t(click)=\"_contentClicked($event)\"\r\n\t\t(cdkObserveContent)=\"contentChanged()\"\r\n\t>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n\t<div class=\"bui-selection-panel-item-bottom\"></div>\r\n</div>\r\n", styles: [":host{position:relative;border-radius:5px;border:1px solid rgba(128,128,128,.2);padding:1px}:host .bui-selection-panel-item-wrapper{padding-left:1rem;padding-right:1rem}:host .bui-ripple{position:absolute;inset:0;z-index:-1}:host .bui-selection-panel-item-header{margin-top:calc(1rem - 4px);margin-bottom:calc(1rem - 4px);align-items:center;position:relative}:host .bui-selection-panel-item-header.bui-shaded:not(.bui-empty){margin-bottom:calc(2rem + 4px)}:host .bui-selection-panel-item-header-container{display:flex}:host .bui-selection-panel-item-header-container .mat-mdc-checkbox{z-index:1}:host .bui-selection-panel-item-title{font-size:larger;font-weight:700;white-space:normal;margin-top:2px}:host .bui-selection-panel-item-content:not(.bui-empty){margin-top:calc(2px + 1rem);margin-bottom:1rem}:host .bui-selection-panel-item-header-underlay{position:absolute;top:calc(3px - 1rem);left:calc(-1px - 1rem);right:calc(-1px - 1rem);bottom:calc(-3px - 1rem);border-radius:5px;background-color:#80808026}:host .bui-selection-panel-item-header-underlay.bui-not-empty{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(:not(:first-child)){margin-top:1rem}:host(:not([hidden])){display:block}:host(:not(.bui-disabled,.bui-unselectable)):hover{border-width:2px;padding:0;border-color:#8080804d}:host(:not(.bui-disabled,.bui-unselectable)) .bui-selection-panel-item-content.bui-selectable{cursor:pointer}\n"] }]
|
|
142
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
143
|
+
type: Inject,
|
|
144
|
+
args: [SELECTION_PANEL_GROUP]
|
|
145
|
+
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { title: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], shadedHeader: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], selectable: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], disabled: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], value: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], checked: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], color: [{
|
|
158
|
+
type: Input
|
|
159
|
+
}], _bodyContent: [{
|
|
160
|
+
type: ViewChild,
|
|
161
|
+
args: ['contentBody', { static: true }]
|
|
162
|
+
}], _ripple: [{
|
|
163
|
+
type: ViewChild,
|
|
164
|
+
args: [MatRipple]
|
|
165
|
+
}] } });
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXBhbmVsLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc2VsZWN0aW9uLXBhbmVsL3NlbGVjdGlvbi1wYW5lbC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NlbGVjdGlvbi1wYW5lbC9zZWxlY3Rpb24tcGFuZWwtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBRU4sdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQWFqRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUEwQix5QkFBeUIsQ0FBQyxDQUFDO0FBRTVHOztHQUVHO0FBZ0JILE1BQU0sT0FBTywyQkFBMkI7SUF5QnZDLHNDQUFzQztJQUN0QyxJQUNJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDbEQsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsSUFDSSxLQUFLO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFVO1FBQ25CLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUU7WUFDMUIsSUFB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bkIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDTCxLQUFLLEVBQUUsMEJBQTBCO3dCQUNqQywrQkFBK0IsRUFBRSxTQUFTO3dCQUMxQywyQkFBMkIsRUFBRSw4QkFBOEI7d0JBQzNELDRCQUE0QixFQUFFLCtCQUErQjt3QkFDN0QseUJBQXlCLEVBQUUsNEJBQTRCO3dCQUN2RCxzQkFBc0IsRUFBRSxVQUFVO3dCQUNsQywwQkFBMEIsRUFBRSxhQUFhO3FCQUN6Qzs7MEJBc0ZZLE1BQU07MkJBQUMscUJBQXFCO3lFQXpFekMsS0FBSztzQkFESixLQUFLO2dCQU9OLFlBQVk7c0JBRFgsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBS0YsUUFBUTtzQkFEWCxLQUFLO2dCQVVGLEtBQUs7c0JBRFIsS0FBSztnQkFhRixPQUFPO3NCQURWLEtBQUs7Z0JBY0YsS0FBSztzQkFEUixLQUFLO2dCQW1CRSxZQUFZO3NCQURuQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSWxDLE9BQU87c0JBRGQsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHtcclxuXHRBZnRlckNvbnRlbnRJbml0LFxyXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG5cdENoYW5nZURldGVjdG9yUmVmLFxyXG5cdENvbXBvbmVudCxcclxuXHRFbGVtZW50UmVmLFxyXG5cdEluamVjdCxcclxuXHRJbmplY3Rpb25Ub2tlbixcclxuXHRJbnB1dCxcclxuXHRWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0UmlwcGxlLCBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGlvblBhbmVsSXRlbUdyb3VwIHtcclxuXHRfc2VsZWN0aW9uOiBhbnlbXTtcclxuXHRjb2xvcjogVGhlbWVQYWxldHRlO1xyXG5cdF9pc0Rpc2FibGVkOiBib29sZWFuO1xyXG5cdF9vblRvdWNoZWQ/OiAoKSA9PiB2b2lkO1xyXG5cdHNlbGVjdEJ5SGVhZGVyOiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFNFTEVDVElPTl9QQU5FTF9HUk9VUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZWxlY3Rpb25QYW5lbEl0ZW1Hcm91cD4oJ1NlbGVjdGlvblBhbmVsSXRlbUdyb3VwJyk7XHJcblxyXG4vKipcclxuICogVXNlIGBidWktc2VsZWN0aW9uLXBhbmVsLWl0ZW1gIHdpdGhpbiBhIGBidWktc2VsZWN0aW9uLXBhbmVsYCB0byBkaXNwbGF5IGFuIG9wdGlvbi5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYnVpLXNlbGVjdGlvbi1wYW5lbC1pdGVtJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vc2VsZWN0aW9uLXBhbmVsLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3NlbGVjdGlvbi1wYW5lbC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0aG9zdDoge1xyXG5cdFx0Y2xhc3M6ICdidWktc2VsZWN0aW9uLXBhbmVsLWl0ZW0nLFxyXG5cdFx0J1tjbGFzcy5idWktc2VsZWN0aW9uLWNoZWNrZWRdJzogJ2NoZWNrZWQnLFxyXG5cdFx0J1tjbGFzcy5idWktYm9yZGVyLWFjY2VudF0nOiBgY2hlY2tlZCAmJiBjb2xvciA9PT0nYWNjZW50J2AsXHJcblx0XHQnW2NsYXNzLmJ1aS1ib3JkZXItcHJpbWFyeV0nOiBgY2hlY2tlZCAmJiBjb2xvciA9PT0ncHJpbWFyeSdgLFxyXG5cdFx0J1tjbGFzcy5idWktYm9yZGVyLXdhcm5dJzogYGNoZWNrZWQgJiYgY29sb3IgPT09J3dhcm4nYCxcclxuXHRcdCdbY2xhc3MuYnVpLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXHJcblx0XHQnW2NsYXNzLmJ1aS11bnNlbGVjdGFibGVdJzogJyFzZWxlY3RhYmxlJ1xyXG5cdH1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvblBhbmVsSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xyXG5cdC8qKiBAaWdub3JlICovXHJcblx0c3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBib29sZWFuIHwgc3RyaW5nO1xyXG5cclxuXHQvKiogQGlnbm9yZSAqL1xyXG5cdHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jaGVja2VkOiBib29sZWFuIHwgc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGlzIHdpbGwgYmUgZGlzcGxheWVkIGFzIHRoZSBwYW5lbCBoZWFkZXJcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHRpdGxlID0gJyc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNob3cgdGhlIGhlYWRlciBpbiB3aXRoIGEgc2hhZGVkIGJhY2tncm91bmRcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHNoYWRlZEhlYWRlciA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiB3aGVuIGZhbHNlIHdpbGwgaGlkZSB0aGUgY2hlY2tib3hcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHNlbGVjdGFibGUgPSB0cnVlO1xyXG5cclxuXHQvKiogV2hldGhlciB0aGUgb3B0aW9uIGlzIGRpc2FibGVkLiAqL1xyXG5cdEBJbnB1dCgpXHJcblx0Z2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2Rpc2FibGVkIHx8IHRoaXMuX2dyb3VwLl9pc0Rpc2FibGVkO1xyXG5cdH1cclxuXHRzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuXHRcdHRoaXMuX3NldERpc2FibGVkKGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSkpO1xyXG5cdH1cclxuXHJcblx0LyoqIFRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbi4gKi9cclxuXHRASW5wdXQoKVxyXG5cdGdldCB2YWx1ZSgpOiBhbnkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG5cdH1cclxuXHRzZXQgdmFsdWUodmFsdWU6IGFueSkge1xyXG5cdFx0aWYgKHRoaXMuX3ZhbHVlICE9PSB2YWx1ZSkge1xyXG5cdFx0XHR0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG5cdFx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKiBXaGV0aGVyIHRoaXMgb3B0aW9uIGlzIGNoZWNrZWQuICovXHJcblx0QElucHV0KClcclxuXHRnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLl9ncm91cC5fc2VsZWN0aW9uLmluY2x1ZGVzKHRoaXMudmFsdWUpO1xyXG5cdH1cclxuXHRzZXQgY2hlY2tlZCh2YWx1ZTogYm9vbGVhbikge1xyXG5cdFx0aWYgKCF0aGlzLl9ncm91cC5fb25Ub3VjaGVkKSB7XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fc2V0Q2hlY2tlZCh2YWx1ZSksIDApO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5fc2V0Q2hlY2tlZCh2YWx1ZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKiogVGhlbWUgY29sb3Igb2YgdGhlIHJhZGlvIGJ1dHRvbi4gKi9cclxuXHRASW5wdXQoKVxyXG5cdGdldCBjb2xvcigpOiBUaGVtZVBhbGV0dGUge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2NvbG9yIHx8IHRoaXMuX2dyb3VwLmNvbG9yO1xyXG5cdH1cclxuXHRzZXQgY29sb3IobmV3VmFsdWU6IFRoZW1lUGFsZXR0ZSkge1xyXG5cdFx0dGhpcy5fY29sb3IgPSBuZXdWYWx1ZTtcclxuXHR9XHJcblxyXG5cdGdldCBfc2VsZWN0QnlIZWFkZXIoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5fZ3JvdXAuc2VsZWN0QnlIZWFkZXI7XHJcblx0fVxyXG5cclxuXHRlbXB0eTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cdHByaXZhdGUgX2NvbG9yOiBUaGVtZVBhbGV0dGU7XHJcblx0cHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHRwcml2YXRlIF92YWx1ZTogYW55O1xyXG5cclxuXHRAVmlld0NoaWxkKCdjb250ZW50Qm9keScsIHsgc3RhdGljOiB0cnVlIH0pXHJcblx0cHJpdmF0ZSBfYm9keUNvbnRlbnQ/OiBFbGVtZW50UmVmPGFueT47XHJcblxyXG5cdEBWaWV3Q2hpbGQoTWF0UmlwcGxlKVxyXG5cdHByaXZhdGUgX3JpcHBsZT86IE1hdFJpcHBsZTtcclxuXHJcblx0Y29uc3RydWN0b3IoQEluamVjdChTRUxFQ1RJT05fUEFORUxfR1JPVVApIHByaXZhdGUgX2dyb3VwOiBTZWxlY3Rpb25QYW5lbEl0ZW1Hcm91cCwgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuXHQvKiogQGlnbm9yZSAqL1xyXG5cdF9tYXJrSW50ZXJhY3RlZCgpIHtcclxuXHRcdGlmICh0aGlzLl9ncm91cC5fb25Ub3VjaGVkKSB7XHJcblx0XHRcdHRoaXMuX2dyb3VwLl9vblRvdWNoZWQoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKiBAaWdub3JlICovXHJcblx0X25vdGlmeSgpIHtcclxuXHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xyXG5cdH1cclxuXHJcblx0LyoqIFRvZ2dsZSBzZWxlY3Rpb24gcHJvZ3JhbW1hdGljYWxseSAqL1xyXG5cdHRvZ2dsZSgpIHtcclxuXHRcdHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XHJcblx0fVxyXG5cclxuXHQvKiogQGlnbm9yZSAqL1xyXG5cdF9jb250ZW50Q2xpY2tlZChldmVudDogTW91c2VFdmVudCkge1xyXG5cdFx0aWYgKCF0aGlzLl9zZWxlY3RCeUhlYWRlciAmJiB0aGlzLnNlbGVjdGFibGUpIHtcclxuXHRcdFx0dGhpcy5fcmlwcGxlPy5sYXVuY2goZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSk7XHJcblx0XHRcdHRoaXMudG9nZ2xlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKiogQGlnbm9yZSAqL1xyXG5cdGNvbnRlbnRDaGFuZ2VkKCkge1xyXG5cdFx0Y29uc3QgZWw6IEhUTUxFbGVtZW50ID0gdGhpcy5fYm9keUNvbnRlbnQ/Lm5hdGl2ZUVsZW1lbnQ7XHJcblx0XHR0aGlzLmVtcHR5ID0gKGVsPy5jaGlsZEVsZW1lbnRDb3VudCB8fCAwKSA9PT0gMCAmJiAoZWw/LnRleHRDb250ZW50IHx8ICcnKSA9PT0gJyc7XHJcblx0fVxyXG5cclxuXHQvKiogQGlnbm9yZSAqL1xyXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuXHRcdHRoaXMuY29udGVudENoYW5nZWQoKTtcclxuXHR9XHJcblxyXG5cdC8qKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBhbmQgbWFya3MgZm9yIGNoZWNrIGlmIGEgY2hhbmdlIG9jY3VycmVkLiAqL1xyXG5cdHByaXZhdGUgX3NldERpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcblx0XHRpZiAodGhpcy5fZGlzYWJsZWQgIT09IHZhbHVlKSB7XHJcblx0XHRcdHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XHJcblx0XHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfc2V0Q2hlY2tlZCh2YWx1ZTogYm9vbGVhbikge1xyXG5cdFx0Y29uc3QgbmV3Q2hlY2tlZFN0YXRlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuXHRcdGNvbnN0IG9sZCA9IHRoaXMuX2dyb3VwLl9zZWxlY3Rpb24uaW5jbHVkZXModGhpcy52YWx1ZSk7XHJcblx0XHRpZiAob2xkICE9PSBuZXdDaGVja2VkU3RhdGUpIHtcclxuXHRcdFx0Y29uc3QgY29udGFpbmVkID0gdGhpcy5fZ3JvdXAuX3NlbGVjdGlvbi5zb21lKHYgPT4gdiA9PT0gdGhpcy5fdmFsdWUpO1xyXG5cdFx0XHRpZiAobmV3Q2hlY2tlZFN0YXRlICYmIHRoaXMuX2dyb3VwICYmICFjb250YWluZWQpIHtcclxuXHRcdFx0XHR0aGlzLl9ncm91cC5fc2VsZWN0aW9uID0gWy4uLnRoaXMuX2dyb3VwLl9zZWxlY3Rpb24sIHRoaXMuX3ZhbHVlXTtcclxuXHRcdFx0fSBlbHNlIGlmICghbmV3Q2hlY2tlZFN0YXRlICYmIHRoaXMuX2dyb3VwICYmIGNvbnRhaW5lZCkge1xyXG5cdFx0XHRcdC8vIFdoZW4gdW5jaGVja2luZyB0aGUgc2VsZWN0ZWQgaXRlbSwgdXBkYXRlIHRoZSBzZWxlY3Rpb25cclxuXHRcdFx0XHQvLyBwcm9wZXJ0eSBvbiB0aGUgZ3JvdXAuXHJcblx0XHRcdFx0dGhpcy5fZ3JvdXAuX3NlbGVjdGlvbiA9IHRoaXMuX2dyb3VwLl9zZWxlY3Rpb24uZmlsdGVyKHYgPT4gdiAhPT0gdGhpcy5fdmFsdWUpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYnVpLXNlbGVjdGlvbi1wYW5lbC1pdGVtLXdyYXBwZXJcIj5cclxuXHQ8ZGl2XHJcblx0XHRtYXRSaXBwbGVcclxuXHRcdG1hdFJpcHBsZUNvbG9yPVwicmdiYSgxMjgsMTI4LDEyOCwuMSlcIlxyXG5cdFx0Y2xhc3M9XCJidWktcmlwcGxlXCJcclxuXHRcdCpuZ0lmPVwiIWRpc2FibGVkXCJcclxuXHRcdFttYXRSaXBwbGVUcmlnZ2VyXT1cInRvZ2dsZVRyaWdnZXJcIlxyXG5cdFx0I3JpcHBsZT1cIm1hdFJpcHBsZVwiXHJcblx0XHRbbWF0UmlwcGxlRGlzYWJsZWRdPVwiIXNlbGVjdGFibGVcIlxyXG5cdD48L2Rpdj5cclxuXHQ8ZGl2XHJcblx0XHRjbGFzcz1cImJ1aS1zZWxlY3Rpb24tcGFuZWwtaXRlbS1oZWFkZXJcIlxyXG5cdFx0W25nQ2xhc3NdPVwieyAnYnVpLXNoYWRlZCc6IHNoYWRlZEhlYWRlciwgJ2J1aS1lbXB0eSc6IGVtcHR5IH1cIlxyXG5cdFx0I3RvZ2dsZVRyaWdnZXJcclxuXHQ+XHJcblx0XHQ8ZGl2XHJcblx0XHRcdCpuZ0lmPVwic2hhZGVkSGVhZGVyXCJcclxuXHRcdFx0Y2xhc3M9XCJidWktc2VsZWN0aW9uLXBhbmVsLWl0ZW0taGVhZGVyLXVuZGVybGF5XCJcclxuXHRcdFx0W25nQ2xhc3NdPVwieyAnYnVpLW5vdC1lbXB0eSc6ICFlbXB0eSB9XCJcclxuXHRcdD48L2Rpdj5cclxuXHRcdDxkaXYgY2xhc3M9XCJidWktc2VsZWN0aW9uLXBhbmVsLWl0ZW0taGVhZGVyLWNvbnRhaW5lclwiPlxyXG5cdFx0XHQ8bWF0LWNoZWNrYm94XHJcblx0XHRcdFx0Km5nSWY9XCJzZWxlY3RhYmxlOyBlbHNlIG5vc2VsZWN0YWJsZVwiXHJcblx0XHRcdFx0WyhuZ01vZGVsKV09XCJjaGVja2VkXCJcclxuXHRcdFx0XHRbY29sb3JdPVwiY29sb3JcIlxyXG5cdFx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcblx0XHRcdFx0KGNoYW5nZSk9XCJfbWFya0ludGVyYWN0ZWQoKVwiXHJcblx0XHRcdFx0c3R5bGU9XCJmbGV4LWdyb3c6IDFcIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImJ1aS1zZWxlY3Rpb24tcGFuZWwtaXRlbS10aXRsZVwiIFtpbm5lckhUTUxdPVwidGl0bGVcIj48L2Rpdj5cclxuXHRcdFx0PC9tYXQtY2hlY2tib3g+XHJcblx0XHRcdDxuZy10ZW1wbGF0ZSAjbm9zZWxlY3RhYmxlPlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDFcIiBjbGFzcz1cImJ1aS1zZWxlY3Rpb24tcGFuZWwtaXRlbS10aXRsZVwiIFtpbm5lckhUTUxdPVwidGl0bGVcIj48L2Rpdj5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2J1aVNlbGVjdGlvbkl0ZW1IZWFkaW5nRW5kXVwiPjwvbmctY29udGVudD5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2J1aVNlbGVjdGlvbkl0ZW1TdWJ0aXRsZV1cIj48L25nLWNvbnRlbnQ+XHJcblx0PC9kaXY+XHJcblx0PGRpdlxyXG5cdFx0I2NvbnRlbnRCb2R5XHJcblx0XHRjbGFzcz1cImJ1aS1zZWxlY3Rpb24tcGFuZWwtaXRlbS1jb250ZW50XCJcclxuXHRcdFtjbGFzcy5idWktZW1wdHldPVwiZW1wdHlcIlxyXG5cdFx0W2NsYXNzLmJ1aS1zZWxlY3RhYmxlXT1cIiFfc2VsZWN0QnlIZWFkZXJcIlxyXG5cdFx0KGNsaWNrKT1cIl9jb250ZW50Q2xpY2tlZCgkZXZlbnQpXCJcclxuXHRcdChjZGtPYnNlcnZlQ29udGVudCk9XCJjb250ZW50Q2hhbmdlZCgpXCJcclxuXHQ+XHJcblx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblx0PC9kaXY+XHJcblx0PGRpdiBjbGFzcz1cImJ1aS1zZWxlY3Rpb24tcGFuZWwtaXRlbS1ib3R0b21cIj48L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { ContentChildren, Directive, forwardRef, Input } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { SelectionPanelItemComponent, SELECTION_PANEL_GROUP } from './selection-panel-item.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Selection panel is a [control value accessor](https://angular.io/api/forms/ControlValueAccessor)
|
|
7
|
+
* that display a set of multi-selection items as bordered panels, in a similar fashion as Radio Panel `bui-radio-panel`.
|
|
8
|
+
*
|
|
9
|
+
* Accessibility features are not yet fully implemented.
|
|
10
|
+
*
|
|
11
|
+
* Example:
|
|
12
|
+
*
|
|
13
|
+
* ```html
|
|
14
|
+
* <bui-selection-panel>
|
|
15
|
+
* <bui-selection-panel-item *ngFor="let obj of objects" [value]="obj">{{obj.description}}</bui-selection-panel-item>
|
|
16
|
+
* </bui-selection-panel>
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
export class SelectionPanelDirective {
|
|
21
|
+
/**
|
|
22
|
+
* @ignore
|
|
23
|
+
* The selected values. Used by the child elements to modify the group's value
|
|
24
|
+
*/
|
|
25
|
+
get _selection() {
|
|
26
|
+
return this._selected;
|
|
27
|
+
}
|
|
28
|
+
set _selection(value) {
|
|
29
|
+
if (value !== this._selected) {
|
|
30
|
+
this._selected = value;
|
|
31
|
+
if (this._onChange) {
|
|
32
|
+
this._onChange(this._selected);
|
|
33
|
+
}
|
|
34
|
+
this._cd.markForCheck();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
constructor(_cd) {
|
|
38
|
+
this._cd = _cd;
|
|
39
|
+
/**
|
|
40
|
+
* When set to `false`, the selection is triggered by click everywhere within the panels that is
|
|
41
|
+
* not focus-trapping; otherwise, only clicking on the header will activate the selection.
|
|
42
|
+
*
|
|
43
|
+
* @default true
|
|
44
|
+
*/
|
|
45
|
+
this.selectByHeader = true;
|
|
46
|
+
/** @ignore */
|
|
47
|
+
this._isDisabled = false;
|
|
48
|
+
this._selected = [];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @ignore
|
|
52
|
+
*/
|
|
53
|
+
writeValue(obj) {
|
|
54
|
+
this._selected = [];
|
|
55
|
+
if (Array.isArray(obj)) {
|
|
56
|
+
this._selected.push(...obj);
|
|
57
|
+
}
|
|
58
|
+
else if (obj !== null && obj !== undefined) {
|
|
59
|
+
this._selected.push(obj);
|
|
60
|
+
}
|
|
61
|
+
this._items?.forEach(it => it._notify());
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @ignore
|
|
65
|
+
*/
|
|
66
|
+
registerOnChange(fn) {
|
|
67
|
+
this._onChange = fn;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @ignore
|
|
71
|
+
*/
|
|
72
|
+
registerOnTouched(fn) {
|
|
73
|
+
this._onTouched = fn;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Sets the disabled state and marks for check if a change occurred.
|
|
77
|
+
* @ignore
|
|
78
|
+
*/
|
|
79
|
+
setDisabledState(isDisabled) {
|
|
80
|
+
if (this._isDisabled !== isDisabled) {
|
|
81
|
+
this._isDisabled = isDisabled;
|
|
82
|
+
this._cd.markForCheck();
|
|
83
|
+
this._items.forEach(it => it._notify());
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/** @ignore */
|
|
87
|
+
ngOnChanges(changes) {
|
|
88
|
+
if (this._items) {
|
|
89
|
+
if (changes.color || changes.selectByHeader) {
|
|
90
|
+
this._items.forEach(item => item._notify());
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionPanelDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
95
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: SelectionPanelDirective, selector: "bui-selection-panel", inputs: { color: "color", selectByHeader: "selectByHeader" }, host: { classAttribute: "bui-selection-panel bui-host" }, providers: [
|
|
96
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SelectionPanelDirective), multi: true },
|
|
97
|
+
{ provide: SELECTION_PANEL_GROUP, useExisting: forwardRef(() => SelectionPanelDirective) }
|
|
98
|
+
], queries: [{ propertyName: "_items", predicate: SelectionPanelItemComponent, descendants: true }], exportAs: ["buiSelectionPanel"], usesOnChanges: true, ngImport: i0 }); }
|
|
99
|
+
}
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionPanelDirective, decorators: [{
|
|
101
|
+
type: Directive,
|
|
102
|
+
args: [{
|
|
103
|
+
selector: 'bui-selection-panel',
|
|
104
|
+
providers: [
|
|
105
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SelectionPanelDirective), multi: true },
|
|
106
|
+
{ provide: SELECTION_PANEL_GROUP, useExisting: forwardRef(() => SelectionPanelDirective) }
|
|
107
|
+
],
|
|
108
|
+
exportAs: 'buiSelectionPanel',
|
|
109
|
+
host: { class: 'bui-selection-panel bui-host' }
|
|
110
|
+
}]
|
|
111
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { color: [{
|
|
112
|
+
type: Input
|
|
113
|
+
}], selectByHeader: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], _items: [{
|
|
116
|
+
type: ContentChildren,
|
|
117
|
+
args: [SelectionPanelItemComponent, { descendants: true }]
|
|
118
|
+
}] } });
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXBhbmVsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NlbGVjdGlvbi1wYW5lbC9zZWxlY3Rpb24tcGFuZWwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTixlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBSUwsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFDTiwyQkFBMkIsRUFFM0IscUJBQXFCLEVBQ3JCLE1BQU0sa0NBQWtDLENBQUM7O0FBRTFDOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBVUgsTUFBTSxPQUFPLHVCQUF1QjtJQVluQzs7O09BR0c7SUFDSCxJQUFJLFVBQVU7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQVk7UUFDMUIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9CO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN4QjtJQUNGLENBQUM7SUFlRCxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXRDMUM7Ozs7O1dBS0c7UUFDTSxtQkFBYyxHQUFHLElBQUksQ0FBQztRQXNCL0IsY0FBYztRQUNkLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBSVosY0FBUyxHQUFVLEVBQUUsQ0FBQztJQUtlLENBQUM7SUFFOUM7O09BRUc7SUFDSCxVQUFVLENBQUMsR0FBUTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztTQUM1QjthQUFNLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFvQjtRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsQ0FBQyxFQUFjO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNuQyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssVUFBVSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1lBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN4QztJQUNGLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVyxDQUFDLE9BQXNCO1FBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUM1QztTQUNEO0lBQ0YsQ0FBQzsrR0ExRlcsdUJBQXVCO21HQUF2Qix1QkFBdUIsc0tBUHhCO1lBQ1YsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDbkcsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO1NBQzFGLGlEQTJDZ0IsMkJBQTJCOzs0RkF2Q2hDLHVCQUF1QjtrQkFUbkMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixTQUFTLEVBQUU7d0JBQ1YsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUNuRyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxFQUFFO3FCQUMxRjtvQkFDRCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsOEJBQThCLEVBQUU7aUJBQy9DO3NGQUdTLEtBQUs7c0JBQWIsS0FBSztnQkFRRyxjQUFjO3NCQUF0QixLQUFLO2dCQThCRSxNQUFNO3NCQURiLGVBQWU7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRDb250ZW50Q2hpbGRyZW4sXHJcblx0RGlyZWN0aXZlLFxyXG5cdGZvcndhcmRSZWYsXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdFF1ZXJ5TGlzdCxcclxuXHRTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7XHJcblx0U2VsZWN0aW9uUGFuZWxJdGVtQ29tcG9uZW50LFxyXG5cdFNlbGVjdGlvblBhbmVsSXRlbUdyb3VwLFxyXG5cdFNFTEVDVElPTl9QQU5FTF9HUk9VUFxyXG59IGZyb20gJy4vc2VsZWN0aW9uLXBhbmVsLWl0ZW0uY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBTZWxlY3Rpb24gcGFuZWwgaXMgYSBbY29udHJvbCB2YWx1ZSBhY2Nlc3Nvcl0oaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9mb3Jtcy9Db250cm9sVmFsdWVBY2Nlc3NvcilcclxuICogdGhhdCBkaXNwbGF5IGEgc2V0IG9mIG11bHRpLXNlbGVjdGlvbiBpdGVtcyBhcyBib3JkZXJlZCBwYW5lbHMsIGluIGEgc2ltaWxhciBmYXNoaW9uIGFzIFJhZGlvIFBhbmVsIGBidWktcmFkaW8tcGFuZWxgLlxyXG4gKlxyXG4gKiBBY2Nlc3NpYmlsaXR5IGZlYXR1cmVzIGFyZSBub3QgeWV0IGZ1bGx5IGltcGxlbWVudGVkLlxyXG4gKlxyXG4gKiBFeGFtcGxlOlxyXG4gKlxyXG4gKiBgYGBodG1sXHJcbiAqIDxidWktc2VsZWN0aW9uLXBhbmVsPlxyXG4gKiAgIDxidWktc2VsZWN0aW9uLXBhbmVsLWl0ZW0gKm5nRm9yPVwibGV0IG9iaiBvZiBvYmplY3RzXCIgW3ZhbHVlXT1cIm9ialwiPnt7b2JqLmRlc2NyaXB0aW9ufX08L2J1aS1zZWxlY3Rpb24tcGFuZWwtaXRlbT5cclxuICogPC9idWktc2VsZWN0aW9uLXBhbmVsPlxyXG4gKiBgYGBcclxuICpcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG5cdHNlbGVjdG9yOiAnYnVpLXNlbGVjdGlvbi1wYW5lbCcsXHJcblx0cHJvdmlkZXJzOiBbXHJcblx0XHR7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3Rpb25QYW5lbERpcmVjdGl2ZSksIG11bHRpOiB0cnVlIH0sXHJcblx0XHR7IHByb3ZpZGU6IFNFTEVDVElPTl9QQU5FTF9HUk9VUCwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0aW9uUGFuZWxEaXJlY3RpdmUpIH1cclxuXHRdLFxyXG5cdGV4cG9ydEFzOiAnYnVpU2VsZWN0aW9uUGFuZWwnLFxyXG5cdGhvc3Q6IHsgY2xhc3M6ICdidWktc2VsZWN0aW9uLXBhbmVsIGJ1aS1ob3N0JyB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25QYW5lbERpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBTZWxlY3Rpb25QYW5lbEl0ZW1Hcm91cCwgT25DaGFuZ2VzIHtcclxuXHQvKiogVGhlbWUgY29sb3IgZm9yIGFsbCBvZiB0aGUgc2VsZWN0aW9uIGNoZWNrYm94ZXMgaW4gdGhlIGdyb3VwLiAqL1xyXG5cdEBJbnB1dCgpIGNvbG9yOiBUaGVtZVBhbGV0dGU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFdoZW4gc2V0IHRvIGBmYWxzZWAsIHRoZSBzZWxlY3Rpb24gaXMgdHJpZ2dlcmVkIGJ5IGNsaWNrIGV2ZXJ5d2hlcmUgd2l0aGluIHRoZSBwYW5lbHMgdGhhdCBpc1xyXG5cdCAqIG5vdCBmb2N1cy10cmFwcGluZzsgb3RoZXJ3aXNlLCBvbmx5IGNsaWNraW5nIG9uIHRoZSBoZWFkZXIgd2lsbCBhY3RpdmF0ZSB0aGUgc2VsZWN0aW9uLlxyXG5cdCAqXHJcblx0ICogQGRlZmF1bHQgdHJ1ZVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIHNlbGVjdEJ5SGVhZGVyID0gdHJ1ZTtcclxuXHJcblx0LyoqXHJcblx0ICogQGlnbm9yZVxyXG5cdCAqIFRoZSBzZWxlY3RlZCB2YWx1ZXMuIFVzZWQgYnkgdGhlIGNoaWxkIGVsZW1lbnRzIHRvIG1vZGlmeSB0aGUgZ3JvdXAncyB2YWx1ZVxyXG5cdCAqL1xyXG5cdGdldCBfc2VsZWN0aW9uKCk6IGFueVtdIHtcclxuXHRcdHJldHVybiB0aGlzLl9zZWxlY3RlZDtcclxuXHR9XHJcblx0c2V0IF9zZWxlY3Rpb24odmFsdWU6IGFueVtdKSB7XHJcblx0XHRpZiAodmFsdWUgIT09IHRoaXMuX3NlbGVjdGVkKSB7XHJcblx0XHRcdHRoaXMuX3NlbGVjdGVkID0gdmFsdWU7XHJcblx0XHRcdGlmICh0aGlzLl9vbkNoYW5nZSkge1xyXG5cdFx0XHRcdHRoaXMuX29uQ2hhbmdlKHRoaXMuX3NlbGVjdGVkKTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKiBAaWdub3JlICovXHJcblx0X29uVG91Y2hlZD86ICgpID0+IHZvaWQ7XHJcblxyXG5cdC8qKiBAaWdub3JlICovXHJcblx0X2lzRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcblx0cHJpdmF0ZSBfb25DaGFuZ2U/OiAoXzogYW55KSA9PiB2b2lkO1xyXG5cclxuXHRwcml2YXRlIF9zZWxlY3RlZDogYW55W10gPSBbXTtcclxuXHJcblx0QENvbnRlbnRDaGlsZHJlbihTZWxlY3Rpb25QYW5lbEl0ZW1Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcclxuXHRwcml2YXRlIF9pdGVtcyE6IFF1ZXJ5TGlzdDxTZWxlY3Rpb25QYW5lbEl0ZW1Db21wb25lbnQ+O1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBpZ25vcmVcclxuXHQgKi9cclxuXHR3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcblx0XHR0aGlzLl9zZWxlY3RlZCA9IFtdO1xyXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG5cdFx0XHR0aGlzLl9zZWxlY3RlZC5wdXNoKC4uLm9iaik7XHJcblx0XHR9IGVsc2UgaWYgKG9iaiAhPT0gbnVsbCAmJiBvYmogIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHR0aGlzLl9zZWxlY3RlZC5wdXNoKG9iaik7XHJcblx0XHR9XHJcblx0XHR0aGlzLl9pdGVtcz8uZm9yRWFjaChpdCA9PiBpdC5fbm90aWZ5KCkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQGlnbm9yZVxyXG5cdCAqL1xyXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcclxuXHRcdHRoaXMuX29uQ2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAaWdub3JlXHJcblx0ICovXHJcblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuXHRcdHRoaXMuX29uVG91Y2hlZCA9IGZuO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgYW5kIG1hcmtzIGZvciBjaGVjayBpZiBhIGNoYW5nZSBvY2N1cnJlZC5cclxuXHQgKiBAaWdub3JlXHJcblx0ICovXHJcblx0c2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5faXNEaXNhYmxlZCAhPT0gaXNEaXNhYmxlZCkge1xyXG5cdFx0XHR0aGlzLl9pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuXHRcdFx0dGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XHJcblx0XHRcdHRoaXMuX2l0ZW1zLmZvckVhY2goaXQgPT4gaXQuX25vdGlmeSgpKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKiBAaWdub3JlICovXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuX2l0ZW1zKSB7XHJcblx0XHRcdGlmIChjaGFuZ2VzLmNvbG9yIHx8IGNoYW5nZXMuc2VsZWN0QnlIZWFkZXIpIHtcclxuXHRcdFx0XHR0aGlzLl9pdGVtcy5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5fbm90aWZ5KCkpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ObserversModule } from '@angular/cdk/observers';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
|
+
import { FormsModule } from '@angular/forms';
|
|
5
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
6
|
+
import { MatRippleModule } from '@angular/material/core';
|
|
7
|
+
import { SelectionPanelItemComponent } from './selection-panel-item.component';
|
|
8
|
+
import { SelectionPanelDirective } from './selection-panel.directive';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class SelectionPanelModule {
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: SelectionPanelModule, declarations: [SelectionPanelDirective, SelectionPanelItemComponent], imports: [CommonModule, MatCheckboxModule, FormsModule, MatRippleModule, ObserversModule], exports: [SelectionPanelDirective, SelectionPanelItemComponent] }); }
|
|
13
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionPanelModule, imports: [CommonModule, MatCheckboxModule, FormsModule, MatRippleModule, ObserversModule] }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionPanelModule, decorators: [{
|
|
16
|
+
type: NgModule,
|
|
17
|
+
args: [{
|
|
18
|
+
declarations: [SelectionPanelDirective, SelectionPanelItemComponent],
|
|
19
|
+
imports: [CommonModule, MatCheckboxModule, FormsModule, MatRippleModule, ObserversModule],
|
|
20
|
+
exports: [SelectionPanelDirective, SelectionPanelItemComponent]
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXBhbmVsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NlbGVjdGlvbi1wYW5lbC9zZWxlY3Rpb24tcGFuZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU90RSxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQixpQkFKakIsdUJBQXVCLEVBQUUsMkJBQTJCLGFBQ3pELFlBQVksRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGVBQWUsYUFDOUUsdUJBQXVCLEVBQUUsMkJBQTJCO2dIQUVsRCxvQkFBb0IsWUFIdEIsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsZUFBZTs7NEZBRzVFLG9CQUFvQjtrQkFMaEMsUUFBUTttQkFBQztvQkFDVCxZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSwyQkFBMkIsQ0FBQztvQkFDcEUsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDO29CQUN6RixPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSwyQkFBMkIsQ0FBQztpQkFDL0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZlcnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRSaXBwbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uUGFuZWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3Rpb24tcGFuZWwtaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25QYW5lbERpcmVjdGl2ZSB9IGZyb20gJy4vc2VsZWN0aW9uLXBhbmVsLmRpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGRlY2xhcmF0aW9uczogW1NlbGVjdGlvblBhbmVsRGlyZWN0aXZlLCBTZWxlY3Rpb25QYW5lbEl0ZW1Db21wb25lbnRdLFxyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdENoZWNrYm94TW9kdWxlLCBGb3Jtc01vZHVsZSwgTWF0UmlwcGxlTW9kdWxlLCBPYnNlcnZlcnNNb2R1bGVdLFxyXG5cdGV4cG9ydHM6IFtTZWxlY3Rpb25QYW5lbERpcmVjdGl2ZSwgU2VsZWN0aW9uUGFuZWxJdGVtQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uUGFuZWxNb2R1bGUge31cclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './skeletons.module';
|
|
2
2
|
export * from './skeleton-loader.component';
|
|
3
3
|
export * from './skeleton-loader-presets.directive';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NrZWxldG9ucy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9za2VsZXRvbnMubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9za2VsZXRvbi1sb2FkZXItcHJlc2V0cy5kaXJlY3RpdmUnO1xyXG4iXX0=
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Directive, Host, Inject, InjectionToken, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./skeleton-loader.component";
|
|
4
|
+
export const SKELETON_PRESETS = new InjectionToken('bui-skeleton-presets');
|
|
5
|
+
export const DEFAULT_PRESETS = {
|
|
6
|
+
facebook: {
|
|
7
|
+
viewBox: '0 0 425 124',
|
|
8
|
+
content: `
|
|
9
|
+
<rect x="48" y="8" rx="3" ry="3" width="88" height="6" />
|
|
10
|
+
<rect x="48" y="26" rx="3" ry="3" width="52" height="6" />
|
|
11
|
+
<rect x="0" y="56" rx="3" ry="3" width="410" height="6" />
|
|
12
|
+
<rect x="0" y="72" rx="3" ry="3" width="380" height="6" />
|
|
13
|
+
<rect x="0" y="88" rx="3" ry="3" width="178" height="6" />
|
|
14
|
+
<circle cx="20" cy="20" r="20" />
|
|
15
|
+
`
|
|
16
|
+
},
|
|
17
|
+
code: {
|
|
18
|
+
viewBox: '0 0 340 84',
|
|
19
|
+
content: `
|
|
20
|
+
<rect x="0" y="0" rx="3" ry="3" width="67" height="11" />
|
|
21
|
+
<rect x="76" y="0" rx="3" ry="3" width="140" height="11" />
|
|
22
|
+
<rect x="127" y="48" rx="3" ry="3" width="53" height="11" />
|
|
23
|
+
<rect x="187" y="48" rx="3" ry="3" width="72" height="11" />
|
|
24
|
+
<rect x="18" y="48" rx="3" ry="3" width="100" height="11" />
|
|
25
|
+
<rect x="0" y="71" rx="3" ry="3" width="37" height="11" />
|
|
26
|
+
<rect x="18" y="23" rx="3" ry="3" width="140" height="11" />
|
|
27
|
+
<rect x="166" y="23" rx="3" ry="3" width="173" height="11" />
|
|
28
|
+
`
|
|
29
|
+
},
|
|
30
|
+
instagram: {
|
|
31
|
+
viewBox: '0 0 400 460',
|
|
32
|
+
content: `
|
|
33
|
+
<circle cx="31" cy="31" r="15" />
|
|
34
|
+
<rect x="58" y="18" rx="2" ry="2" width="140" height="10" />
|
|
35
|
+
<rect x="58" y="34" rx="2" ry="2" width="140" height="10" />
|
|
36
|
+
<rect x="0" y="60" rx="2" ry="2" width="400" height="400" />
|
|
37
|
+
`
|
|
38
|
+
},
|
|
39
|
+
bulletList: {
|
|
40
|
+
viewBox: '0 0 250 150',
|
|
41
|
+
content: `
|
|
42
|
+
<circle cx="10" cy="20" r="8" />
|
|
43
|
+
<rect x="25" y="15" rx="5" ry="5" width="220" height="10" />
|
|
44
|
+
<circle cx="10" cy="50" r="8" />
|
|
45
|
+
<rect x="25" y="45" rx="5" ry="5" width="220" height="10" />
|
|
46
|
+
<circle cx="10" cy="80" r="8" />
|
|
47
|
+
<rect x="25" y="75" rx="5" ry="5" width="220" height="10" />
|
|
48
|
+
<circle cx="10" cy="110" r="8" />
|
|
49
|
+
<rect x="25" y="105" rx="5" ry="5" width="220" height="10" />
|
|
50
|
+
`
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
export class SkeletonLoaderPresetsDirective {
|
|
54
|
+
constructor(_skeletonComponent, _elementRef, _presetList) {
|
|
55
|
+
this._skeletonComponent = _skeletonComponent;
|
|
56
|
+
this._elementRef = _elementRef;
|
|
57
|
+
this._allPresets = _presetList.reduce((p, c) => ({ ...p, ...c }), {});
|
|
58
|
+
}
|
|
59
|
+
ngAfterViewChecked() {
|
|
60
|
+
const preset = this._allPresets[(this.preset || '')];
|
|
61
|
+
if (preset) {
|
|
62
|
+
const clipPathElem = this._elementRef.nativeElement.querySelector(`[id='${this._skeletonComponent.idClip}']`);
|
|
63
|
+
this._skeletonComponent.viewBox = preset.viewBox;
|
|
64
|
+
clipPathElem.innerHTML = preset.content;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SkeletonLoaderPresetsDirective, deps: [{ token: i1.SkeletonLoaderComponent, host: true }, { token: i0.ElementRef }, { token: SKELETON_PRESETS }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
68
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: SkeletonLoaderPresetsDirective, selector: "bui-skeleton[preset]", inputs: { preset: "preset" }, ngImport: i0 }); }
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SkeletonLoaderPresetsDirective, decorators: [{
|
|
71
|
+
type: Directive,
|
|
72
|
+
args: [{
|
|
73
|
+
selector: 'bui-skeleton[preset]'
|
|
74
|
+
}]
|
|
75
|
+
}], ctorParameters: () => [{ type: i1.SkeletonLoaderComponent, decorators: [{
|
|
76
|
+
type: Host
|
|
77
|
+
}] }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
78
|
+
type: Inject,
|
|
79
|
+
args: [SKELETON_PRESETS]
|
|
80
|
+
}] }], propDecorators: { preset: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}] } });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tbG9hZGVyLXByZXNldHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc2tlbGV0b25zL3NrZWxldG9uLWxvYWRlci1wcmVzZXRzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBYyxJQUFJLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVU3RyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBa0Isc0JBQXNCLENBQUMsQ0FBQztBQUU1RixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQW9CO0lBQy9DLFFBQVEsRUFBRTtRQUNULE9BQU8sRUFBRSxhQUFhO1FBQ3RCLE9BQU8sRUFBRTs7Ozs7OztHQU9SO0tBQ0Q7SUFDRCxJQUFJLEVBQUU7UUFDTCxPQUFPLEVBQUUsWUFBWTtRQUNyQixPQUFPLEVBQUU7Ozs7Ozs7OztHQVNSO0tBQ0Q7SUFDRCxTQUFTLEVBQUU7UUFDVixPQUFPLEVBQUUsYUFBYTtRQUN0QixPQUFPLEVBQUU7Ozs7O0dBS1I7S0FDRDtJQUNELFVBQVUsRUFBRTtRQUNYLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLE9BQU8sRUFBRTs7Ozs7Ozs7O0dBU1I7S0FDRDtDQUNELENBQUM7QUFLRixNQUFNLE9BQU8sOEJBQThCO0lBTzFDLFlBQ2lCLGtCQUEyQyxFQUNuRCxXQUFvQyxFQUNsQixXQUE4QjtRQUZ4Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXlCO1FBQ25ELGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUc1QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxrQkFBa0I7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFRLENBQUMsQ0FBQztRQUM1RCxJQUFJLE1BQU0sRUFBRTtZQUNYLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxRQUFRLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLElBQUksQ0FBRSxDQUFDO1lBQy9HLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNqRCxZQUFZLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDeEM7SUFDRixDQUFDOytHQXRCVyw4QkFBOEIsK0ZBVWpDLGdCQUFnQjttR0FWYiw4QkFBOEI7OzRGQUE5Qiw4QkFBOEI7a0JBSDFDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHNCQUFzQjtpQkFDaEM7OzBCQVNFLElBQUk7OzBCQUVKLE1BQU07MkJBQUMsZ0JBQWdCO3lDQVB6QixNQUFNO3NCQURMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3QsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNrZWxldG9uTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCB0eXBlIFNrZWxldG9uUHJlc2V0ID0ge1xyXG5cdHZpZXdCb3g6IHN0cmluZztcclxuXHRjb250ZW50OiBzdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBTa2VsZXRvblByZXNldHMgPSB7IFtrZXk6IHN0cmluZ106IFNrZWxldG9uUHJlc2V0IH07XHJcblxyXG5leHBvcnQgY29uc3QgU0tFTEVUT05fUFJFU0VUUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTa2VsZXRvblByZXNldHM+KCdidWktc2tlbGV0b24tcHJlc2V0cycpO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUFJFU0VUUzogU2tlbGV0b25QcmVzZXRzID0ge1xyXG5cdGZhY2Vib29rOiB7XHJcblx0XHR2aWV3Qm94OiAnMCAwIDQyNSAxMjQnLFxyXG5cdFx0Y29udGVudDogYFxyXG5cdFx0PHJlY3QgeD1cIjQ4XCIgeT1cIjhcIiByeD1cIjNcIiByeT1cIjNcIiB3aWR0aD1cIjg4XCIgaGVpZ2h0PVwiNlwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjQ4XCIgeT1cIjI2XCIgcng9XCIzXCIgcnk9XCIzXCIgd2lkdGg9XCI1MlwiIGhlaWdodD1cIjZcIiAvPiBcclxuXHRcdDxyZWN0IHg9XCIwXCIgeT1cIjU2XCIgcng9XCIzXCIgcnk9XCIzXCIgd2lkdGg9XCI0MTBcIiBoZWlnaHQ9XCI2XCIgLz4gXHJcblx0XHQ8cmVjdCB4PVwiMFwiIHk9XCI3MlwiIHJ4PVwiM1wiIHJ5PVwiM1wiIHdpZHRoPVwiMzgwXCIgaGVpZ2h0PVwiNlwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjBcIiB5PVwiODhcIiByeD1cIjNcIiByeT1cIjNcIiB3aWR0aD1cIjE3OFwiIGhlaWdodD1cIjZcIiAvPiBcclxuXHRcdDxjaXJjbGUgY3g9XCIyMFwiIGN5PVwiMjBcIiByPVwiMjBcIiAvPlxyXG5cdFx0YFxyXG5cdH0sXHJcblx0Y29kZToge1xyXG5cdFx0dmlld0JveDogJzAgMCAzNDAgODQnLFxyXG5cdFx0Y29udGVudDogYFxyXG5cdFx0PHJlY3QgeD1cIjBcIiB5PVwiMFwiIHJ4PVwiM1wiIHJ5PVwiM1wiIHdpZHRoPVwiNjdcIiBoZWlnaHQ9XCIxMVwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjc2XCIgeT1cIjBcIiByeD1cIjNcIiByeT1cIjNcIiB3aWR0aD1cIjE0MFwiIGhlaWdodD1cIjExXCIgLz4gXHJcblx0XHQ8cmVjdCB4PVwiMTI3XCIgeT1cIjQ4XCIgcng9XCIzXCIgcnk9XCIzXCIgd2lkdGg9XCI1M1wiIGhlaWdodD1cIjExXCIgLz4gXHJcblx0XHQ8cmVjdCB4PVwiMTg3XCIgeT1cIjQ4XCIgcng9XCIzXCIgcnk9XCIzXCIgd2lkdGg9XCI3MlwiIGhlaWdodD1cIjExXCIgLz4gXHJcblx0XHQ8cmVjdCB4PVwiMThcIiB5PVwiNDhcIiByeD1cIjNcIiByeT1cIjNcIiB3aWR0aD1cIjEwMFwiIGhlaWdodD1cIjExXCIgLz4gXHJcblx0XHQ8cmVjdCB4PVwiMFwiIHk9XCI3MVwiIHJ4PVwiM1wiIHJ5PVwiM1wiIHdpZHRoPVwiMzdcIiBoZWlnaHQ9XCIxMVwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjE4XCIgeT1cIjIzXCIgcng9XCIzXCIgcnk9XCIzXCIgd2lkdGg9XCIxNDBcIiBoZWlnaHQ9XCIxMVwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjE2NlwiIHk9XCIyM1wiIHJ4PVwiM1wiIHJ5PVwiM1wiIHdpZHRoPVwiMTczXCIgaGVpZ2h0PVwiMTFcIiAvPlxyXG5cdFx0YFxyXG5cdH0sXHJcblx0aW5zdGFncmFtOiB7XHJcblx0XHR2aWV3Qm94OiAnMCAwIDQwMCA0NjAnLFxyXG5cdFx0Y29udGVudDogYFxyXG5cdFx0PGNpcmNsZSBjeD1cIjMxXCIgY3k9XCIzMVwiIHI9XCIxNVwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjU4XCIgeT1cIjE4XCIgcng9XCIyXCIgcnk9XCIyXCIgd2lkdGg9XCIxNDBcIiBoZWlnaHQ9XCIxMFwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjU4XCIgeT1cIjM0XCIgcng9XCIyXCIgcnk9XCIyXCIgd2lkdGg9XCIxNDBcIiBoZWlnaHQ9XCIxMFwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjBcIiB5PVwiNjBcIiByeD1cIjJcIiByeT1cIjJcIiB3aWR0aD1cIjQwMFwiIGhlaWdodD1cIjQwMFwiIC8+XHJcblx0XHRgXHJcblx0fSxcclxuXHRidWxsZXRMaXN0OiB7XHJcblx0XHR2aWV3Qm94OiAnMCAwIDI1MCAxNTAnLFxyXG5cdFx0Y29udGVudDogYFxyXG5cdFx0PGNpcmNsZSBjeD1cIjEwXCIgY3k9XCIyMFwiIHI9XCI4XCIgLz4gXHJcblx0XHQ8cmVjdCB4PVwiMjVcIiB5PVwiMTVcIiByeD1cIjVcIiByeT1cIjVcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjEwXCIgLz4gXHJcblx0XHQ8Y2lyY2xlIGN4PVwiMTBcIiBjeT1cIjUwXCIgcj1cIjhcIiAvPiBcclxuXHRcdDxyZWN0IHg9XCIyNVwiIHk9XCI0NVwiIHJ4PVwiNVwiIHJ5PVwiNVwiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiMTBcIiAvPiBcclxuXHRcdDxjaXJjbGUgY3g9XCIxMFwiIGN5PVwiODBcIiByPVwiOFwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjI1XCIgeT1cIjc1XCIgcng9XCI1XCIgcnk9XCI1XCIgd2lkdGg9XCIyMjBcIiBoZWlnaHQ9XCIxMFwiIC8+IFxyXG5cdFx0PGNpcmNsZSBjeD1cIjEwXCIgY3k9XCIxMTBcIiByPVwiOFwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjI1XCIgeT1cIjEwNVwiIHJ4PVwiNVwiIHJ5PVwiNVwiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiMTBcIiAvPlxyXG5cdFx0YFxyXG5cdH1cclxufTtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG5cdHNlbGVjdG9yOiAnYnVpLXNrZWxldG9uW3ByZXNldF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTa2VsZXRvbkxvYWRlclByZXNldHNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcclxuXHQvKiogU2VsZWN0IHRoZSBTVkcgZWxlbWVudHMgZnJvbSBvbmUgb2YgdGhlIHByZXNldHMuICovXHJcblx0QElucHV0KClcclxuXHRwcmVzZXQ/OiBzdHJpbmc7XHJcblxyXG5cdHByaXZhdGUgX2FsbFByZXNldHM6IFNrZWxldG9uUHJlc2V0cztcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRASG9zdCgpIHByaXZhdGUgX3NrZWxldG9uQ29tcG9uZW50OiBTa2VsZXRvbkxvYWRlckNvbXBvbmVudCxcclxuXHRcdHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG5cdFx0QEluamVjdChTS0VMRVRPTl9QUkVTRVRTKSBfcHJlc2V0TGlzdDogU2tlbGV0b25QcmVzZXRzW11cclxuXHQpIHtcclxuXHRcdHRoaXMuX2FsbFByZXNldHMgPSBfcHJlc2V0TGlzdC5yZWR1Y2UoKHAsIGMpID0+ICh7IC4uLnAsIC4uLmMgfSksIHt9KTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHByZXNldCA9IHRoaXMuX2FsbFByZXNldHNbKHRoaXMucHJlc2V0IHx8ICcnKSBhcyBhbnldO1xyXG5cdFx0aWYgKHByZXNldCkge1xyXG5cdFx0XHRjb25zdCBjbGlwUGF0aEVsZW0gPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgW2lkPScke3RoaXMuX3NrZWxldG9uQ29tcG9uZW50LmlkQ2xpcH0nXWApITtcclxuXHRcdFx0dGhpcy5fc2tlbGV0b25Db21wb25lbnQudmlld0JveCA9IHByZXNldC52aWV3Qm94O1xyXG5cdFx0XHRjbGlwUGF0aEVsZW0uaW5uZXJIVE1MID0gcHJlc2V0LmNvbnRlbnQ7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
|