@datarailsshared/datarailsshared 1.3.14 → 1.3.15-dev
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/assets/styles/img/default-avatar.svg +5 -0
- package/assets/styles/img/new-spinner.gif +0 -0
- package/bundles/datarailsshared-datarailsshared.umd.js +1602 -435
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
- package/datarailsshared-datarailsshared-1.3.15-dev.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +5 -1
- package/datarailsshared-datarailsshared.metadata.json +1 -1
- package/esm2015/datarailsshared-datarailsshared.js +6 -2
- package/esm2015/lib/date-tags/year-tag/year-tag.component.js +2 -1
- package/esm2015/lib/dr-accordion/accordion-item-body.component.js +57 -0
- package/esm2015/lib/dr-accordion/accordion-item-header.component.js +79 -0
- package/esm2015/lib/dr-accordion/accordion-item.component.js +123 -0
- package/esm2015/lib/dr-accordion/accordion.component.js +43 -0
- package/esm2015/lib/dr-accordion/accordion.module.js +23 -0
- package/esm2015/lib/dr-avatar/dr-avatar.component.js +13 -18
- package/esm2015/lib/dr-avatar/dr-avatar.module.js +10 -7
- package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +15 -0
- package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +23 -9
- package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +18 -8
- package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +18 -2
- package/esm2015/lib/dr-inputs/button/button.component.js +37 -9
- package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +21 -9
- package/esm2015/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.js +47 -0
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +152 -0
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +72 -0
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +128 -0
- package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +55 -0
- package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +26 -4
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +21 -9
- package/esm2015/lib/dr-inputs/dr-model-debounce-change.directive.js +31 -0
- package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +32 -6
- package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +14 -5
- package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +8 -4
- package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +14 -5
- package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +164 -0
- package/esm2015/lib/dr-popover/dr-popover.component.js +13 -3
- package/esm2015/lib/dr-popover/dr-popover.directive.js +4 -1
- package/esm2015/lib/dr-popover/dr-popover.service.js +31 -5
- package/esm2015/lib/dr-spinner/dr-spinner.component.js +1 -1
- package/esm2015/lib/dr-tabs/dr-tab.component.js +1 -1
- package/esm2015/lib/dr-tabs/dr-tabs.component.js +4 -3
- package/esm2015/lib/dr-tabs/dr-tabs.module.js +2 -2
- package/esm2015/lib/dr-tags/dr-tag.component.js +2 -2
- package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +13 -3
- package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +43 -10
- package/esm2015/lib/models/constants.js +3 -3
- package/esm2015/lib/models/datePicker.js +12 -2
- package/esm2015/lib/models/dropdown.js +1 -1
- package/esm2015/lib/models/popover.js +16 -2
- package/esm2015/public-api.js +13 -4
- package/fesm2015/datarailsshared-datarailsshared.js +1408 -381
- package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
- package/lib/dr-accordion/accordion-item-body.component.d.ts +11 -0
- package/lib/dr-accordion/accordion-item-header.component.d.ts +16 -0
- package/lib/dr-accordion/accordion-item.component.d.ts +53 -0
- package/lib/dr-accordion/accordion.component.d.ts +19 -0
- package/lib/dr-accordion/accordion.module.d.ts +2 -0
- package/lib/dr-avatar/dr-avatar.component.d.ts +4 -6
- package/lib/dr-avatar/dr-avatar.pipe.d.ts +4 -0
- package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +1 -0
- package/lib/dr-dropdown/dr-dropdown.component.d.ts +5 -1
- package/lib/dr-dropdown/dr-dropdown.directive.d.ts +5 -0
- package/lib/dr-inputs/button/button.component.d.ts +9 -3
- package/lib/dr-inputs/checkbox/checkbox.component.d.ts +7 -3
- package/lib/dr-inputs/{dr-date-picker → date-pickers/directives}/dr-date-picker-format.directive.d.ts +1 -1
- package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +55 -0
- package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +26 -0
- package/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +41 -0
- package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +18 -0
- package/lib/dr-inputs/dr-input/dr-input.component.d.ts +9 -1
- package/lib/dr-inputs/dr-model-debounce-change.directive.d.ts +11 -0
- package/lib/dr-inputs/dr-select/dr-select.component.d.ts +8 -1
- package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +6 -2
- package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +2 -0
- package/lib/dr-inputs/radio-button/radio-button.component.d.ts +4 -1
- package/lib/dr-inputs/radio-button/radio-group.component.d.ts +39 -0
- package/lib/dr-popover/dr-popover.component.d.ts +7 -2
- package/lib/dr-popover/dr-popover.directive.d.ts +3 -1
- package/lib/dr-popover/dr-popover.service.d.ts +2 -1
- package/lib/dr-tabs/dr-tab.component.d.ts +1 -1
- package/lib/dr-tabs/dr-tabs.component.d.ts +1 -0
- package/lib/dr-tooltip/dr-tooltip.component.d.ts +4 -0
- package/lib/dr-tooltip/dr-tooltip.directive.d.ts +4 -0
- package/lib/models/datePicker.d.ts +16 -0
- package/lib/models/dropdown.d.ts +3 -0
- package/lib/models/popover.d.ts +11 -1
- package/package.json +1 -1
- package/public-api.d.ts +10 -3
- package/assets/styles/img/spinner.gif +0 -0
- package/datarailsshared-datarailsshared-1.3.14.tgz +0 -0
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.js +0 -47
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.component.js +0 -119
- package/lib/dr-inputs/dr-date-picker/dr-date-picker.component.d.ts +0 -28
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input,
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
export class RadioButtonComponent {
|
|
4
4
|
constructor(cdr) {
|
|
5
5
|
this.cdr = cdr;
|
|
6
|
+
this.valueChange = new EventEmitter();
|
|
6
7
|
this.onChange = (onchanges => { });
|
|
7
8
|
this.onTouched = () => { };
|
|
8
9
|
}
|
|
@@ -26,6 +27,14 @@ export class RadioButtonComponent {
|
|
|
26
27
|
}
|
|
27
28
|
valueChanged(event) {
|
|
28
29
|
this.onChange(this.modelValue);
|
|
30
|
+
this.valueChange.emit(this.value);
|
|
31
|
+
}
|
|
32
|
+
_setName(name) {
|
|
33
|
+
this.name = name;
|
|
34
|
+
this.cdr.markForCheck();
|
|
35
|
+
}
|
|
36
|
+
_markForCheck() {
|
|
37
|
+
this.cdr.markForCheck();
|
|
29
38
|
}
|
|
30
39
|
}
|
|
31
40
|
RadioButtonComponent.decorators = [
|
|
@@ -40,8 +49,7 @@ RadioButtonComponent.decorators = [
|
|
|
40
49
|
}
|
|
41
50
|
],
|
|
42
51
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
43
|
-
|
|
44
|
-
styles: ["label input[type=radio].radiobox+span{vertical-align:middle;line-height:20px}input+span,input+span:after,input+span:before{box-sizing:content-box!important;-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important}input{visibility:hidden;position:absolute;width:18px;height:18px}label input+span{position:relative;z-index:19;display:inline-block;margin:0 5px 0 0;line-height:17px;min-height:14px;min-width:14px}label input+span:hover{cursor:pointer}label input+span:before{content:\"\";font-size:14px;border-radius:0;display:inline-block;text-align:center;vertical-align:middle;padding:1px;height:12px;line-height:13px;width:12px;margin-right:5px;border:1px solid #C3C4CE;background-color:#fff;font-weight:normal;margin-top:-1px}label input+span:before{border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}label input:checked+span:before,label:hover input:checked+span:before{background:white;border-color:#579bf2;color:#579bf2}label input:checked+span:before,label:hover input:checked+span:before{font-family:\"DataRails\"!important;background-image:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"5\" cy=\"5\" r=\"4.5\" fill=\"%23579BF2\"/></svg> ');background-repeat:no-repeat;background-position:center;color:#579bf2}label input:disabled+span:before{border-color:#bcbcbc}label input[disabled]:checked+span:before{content:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"5\" cy=\"5\" r=\"4.5\" fill=\"%23BCBCBC\"/></svg> ');border-color:#bcbcbc}label span:hover:before{border-color:#85889c}\n"]
|
|
52
|
+
styles: [":host{display:flex;line-height:22px}label input[type=radio].radiobox+span{vertical-align:middle;line-height:20px}input+span,input+span:after,input+span:before{box-sizing:content-box!important;-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important}input{visibility:hidden;position:absolute;width:18px;height:18px}label input+span{position:relative;z-index:19;display:inline-block;margin:0 5px 0 0;line-height:17px;min-height:14px;min-width:14px}label input+span:hover{cursor:pointer}label input+span:before{content:\"\";font-size:14px;border-radius:0;display:inline-block;text-align:center;vertical-align:middle;padding:1px;height:12px;line-height:13px;width:12px;margin-right:5px;border:1px solid #8F929E;background-color:#fff;font-weight:normal;margin-top:-1px}label input+span:before{border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}label input:checked+span:before,label:hover input:checked+span:before{background:#FFFFFF;border-color:#4646ce;color:#4646ce}label input:checked+span:before,label:hover input:checked+span:before{font-family:\"DataRails\"!important;background-image:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"5\" cy=\"5\" r=\"4.5\" fill=\"%234646CE\"/></svg> ');background-repeat:no-repeat;background-position:center;color:#4646ce}label input:disabled+span:before{border-color:#8f929e}label input[disabled]:checked+span:before{content:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"5\" cy=\"5\" r=\"4.5\" fill=\"%238F929E\"/></svg> ');border-color:#8f929e}label span:hover:before{border-color:#4e566c}\n"]
|
|
45
53
|
},] }
|
|
46
54
|
];
|
|
47
55
|
RadioButtonComponent.ctorParameters = () => [
|
|
@@ -50,6 +58,7 @@ RadioButtonComponent.ctorParameters = () => [
|
|
|
50
58
|
RadioButtonComponent.propDecorators = {
|
|
51
59
|
disabled: [{ type: Input }],
|
|
52
60
|
name: [{ type: Input }],
|
|
53
|
-
_value: [{ type: Input, args: ['value',] }]
|
|
61
|
+
_value: [{ type: Input, args: ['value',] }],
|
|
62
|
+
valueChange: [{ type: Output }]
|
|
54
63
|
};
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFBRSxNQUFNLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBZXpFLE1BQU0sT0FBTyxvQkFBb0I7SUFlL0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFYaEMsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVE5RCxhQUFRLEdBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLGNBQVMsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFbUIsQ0FBQztJQVA5QyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQU9ELGdCQUFnQixDQUFDLEVBQUU7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQUU7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELFlBQVksQ0FBQyxLQUFLO1FBQ2hCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUNELFlBQVksQ0FBQyxLQUFLO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsYUFBYTtRQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7O1lBeERGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixvU0FBNEM7Z0JBRTVDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsb0JBQW9CO3dCQUNqQyxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjtnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQW5CQyxpQkFBaUI7Ozt1QkFxQmhCLEtBQUs7bUJBQ0wsS0FBSztxQkFDTCxLQUFLLFNBQUMsT0FBTzswQkFDYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LCBPdXRwdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZHItcmFkaW8tYnV0dG9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yYWRpby1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBSYWRpb0J1dHRvbkNvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgndmFsdWUnKSBfdmFsdWU6IGFueTtcclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBtb2RlbFZhbHVlOiBhbnk7XHJcblxyXG4gIGdldCB2YWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlOiBhbnkgPSAob25jaGFuZ2VzID0+IHt9KTtcclxuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm4pIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm4pIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5tb2RlbFZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbiAgdG9nZ2xlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5tb2RlbFZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgdmFsdWVDaGFuZ2VkKGV2ZW50KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMubW9kZWxWYWx1ZSk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBfc2V0TmFtZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbiAgX21hcmtGb3JDaGVjaygpIHtcclxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, forwardRef, Input, Output, PLATFORM_ID, Inject, ElementRef, } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { from, fromEvent, merge, Subject } from 'rxjs';
|
|
5
|
+
import { filter, startWith, switchMap, takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { RadioButtonComponent } from './radio-button.component';
|
|
7
|
+
import { DOCUMENT } from '@angular/common';
|
|
8
|
+
export class RadioGroupComponent {
|
|
9
|
+
constructor(hostElement, platformId, document) {
|
|
10
|
+
this.hostElement = hostElement;
|
|
11
|
+
this.platformId = platformId;
|
|
12
|
+
this.document = document;
|
|
13
|
+
this.destroy$ = new Subject();
|
|
14
|
+
this.valueChange = new EventEmitter();
|
|
15
|
+
this.onChange = (value) => { };
|
|
16
|
+
this.onTouched = () => { };
|
|
17
|
+
}
|
|
18
|
+
get value() {
|
|
19
|
+
return this._value;
|
|
20
|
+
}
|
|
21
|
+
set value(value) {
|
|
22
|
+
this._value = value;
|
|
23
|
+
this.updateValues();
|
|
24
|
+
}
|
|
25
|
+
get name() {
|
|
26
|
+
return this._name;
|
|
27
|
+
}
|
|
28
|
+
set name(name) {
|
|
29
|
+
this._name = name;
|
|
30
|
+
this.updateNames();
|
|
31
|
+
}
|
|
32
|
+
get disabled() {
|
|
33
|
+
return this._disabled;
|
|
34
|
+
}
|
|
35
|
+
set disabled(disabled) {
|
|
36
|
+
this._disabled = !!disabled;
|
|
37
|
+
this.updateDisabled();
|
|
38
|
+
}
|
|
39
|
+
ngAfterContentInit() {
|
|
40
|
+
// In case option 'name' isn't set on dr-radio component,
|
|
41
|
+
// we need to set it's name right away, so it won't overlap with options
|
|
42
|
+
// without names from other radio groups. Otherwise they all would have
|
|
43
|
+
// same name and will be considered as options from one group so only the
|
|
44
|
+
// last option will stay selected.
|
|
45
|
+
this.updateNames();
|
|
46
|
+
this.radios.changes
|
|
47
|
+
.pipe(startWith(this.radios),
|
|
48
|
+
// 'changes' emit during change detection run and we can't update
|
|
49
|
+
// option properties right of since they already was initialized.
|
|
50
|
+
// Instead we schedule microtask to update radios after change detection
|
|
51
|
+
// run is finished and trigger one more change detection run.
|
|
52
|
+
switchMap((radios) => from(Promise.resolve(radios))), takeUntil(this.destroy$))
|
|
53
|
+
.subscribe(() => this.updateAndSubscribeToRadios());
|
|
54
|
+
}
|
|
55
|
+
ngOnDestroy() {
|
|
56
|
+
this.destroy$.next();
|
|
57
|
+
this.destroy$.complete();
|
|
58
|
+
}
|
|
59
|
+
registerOnChange(fn) {
|
|
60
|
+
this.onChange = fn;
|
|
61
|
+
}
|
|
62
|
+
registerOnTouched(fn) {
|
|
63
|
+
this.onTouched = fn;
|
|
64
|
+
}
|
|
65
|
+
writeValue(value) {
|
|
66
|
+
this.value = value;
|
|
67
|
+
}
|
|
68
|
+
setDisabledState(isDisabled) {
|
|
69
|
+
this.disabled = isDisabled;
|
|
70
|
+
}
|
|
71
|
+
updateAndSubscribeToRadios() {
|
|
72
|
+
this.updateValueFromCheckedOption();
|
|
73
|
+
this.updateNames();
|
|
74
|
+
this.updateValues();
|
|
75
|
+
this.updateDisabled();
|
|
76
|
+
this.subscribeOnRadiosValueChange();
|
|
77
|
+
this.subscribeOnRadiosBlur();
|
|
78
|
+
}
|
|
79
|
+
updateNames() {
|
|
80
|
+
if (this.radios) {
|
|
81
|
+
this.radios.forEach((radio) => radio._setName(this.name));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
updateValues() {
|
|
85
|
+
this.updateAndMarkForCheckRadios((radio) => {
|
|
86
|
+
if (radio.value === this.value) {
|
|
87
|
+
radio.modelValue = radio.value;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
updateDisabled() {
|
|
92
|
+
if (typeof this.disabled !== 'undefined') {
|
|
93
|
+
this.updateAndMarkForCheckRadios((radio) => radio.disabled = this.disabled);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
subscribeOnRadiosValueChange() {
|
|
97
|
+
if (!this.radios || !this.radios.length) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
merge(...this.radios.map((radio) => radio.valueChange))
|
|
101
|
+
.pipe(takeUntil(merge(this.radios.changes, this.destroy$)))
|
|
102
|
+
.subscribe((value) => {
|
|
103
|
+
this.writeValue(value);
|
|
104
|
+
this.propagateValue(value);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
propagateValue(value) {
|
|
108
|
+
this.valueChange.emit(value);
|
|
109
|
+
this.onChange(value);
|
|
110
|
+
}
|
|
111
|
+
subscribeOnRadiosBlur() {
|
|
112
|
+
const hasNoRadios = !this.radios || !this.radios.length;
|
|
113
|
+
if (!isPlatformBrowser(this.platformId) || hasNoRadios) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const hostElement = this.hostElement.nativeElement;
|
|
117
|
+
fromEvent(hostElement, 'focusin')
|
|
118
|
+
.pipe(filter(event => hostElement.contains(event.target)), switchMap(() => merge(fromEvent(this.document, 'focusin'), fromEvent(this.document, 'click'))), filter(event => !hostElement.contains(event.target)), takeUntil(merge(this.radios.changes, this.destroy$)))
|
|
119
|
+
.subscribe(() => this.onTouched());
|
|
120
|
+
}
|
|
121
|
+
updateAndMarkForCheckRadios(updateFn) {
|
|
122
|
+
if (this.radios) {
|
|
123
|
+
this.radios.forEach((radio) => {
|
|
124
|
+
updateFn(radio);
|
|
125
|
+
radio._markForCheck();
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
updateValueFromCheckedOption() {
|
|
130
|
+
const checkedRadio = this.radios.find((radio) => radio.modelValue);
|
|
131
|
+
const isValueMissing = this.value === undefined || this.value === null;
|
|
132
|
+
if (checkedRadio && isValueMissing && checkedRadio.value !== this.value) {
|
|
133
|
+
this.value = checkedRadio.value;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
RadioGroupComponent.decorators = [
|
|
138
|
+
{ type: Component, args: [{
|
|
139
|
+
selector: 'dr-radio-group',
|
|
140
|
+
template: `
|
|
141
|
+
<ng-content select="dr-radio-button"></ng-content>`,
|
|
142
|
+
providers: [
|
|
143
|
+
{
|
|
144
|
+
provide: NG_VALUE_ACCESSOR,
|
|
145
|
+
useExisting: forwardRef(() => RadioGroupComponent),
|
|
146
|
+
multi: true,
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
150
|
+
},] }
|
|
151
|
+
];
|
|
152
|
+
RadioGroupComponent.ctorParameters = () => [
|
|
153
|
+
{ type: ElementRef },
|
|
154
|
+
{ type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
|
|
155
|
+
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
|
|
156
|
+
];
|
|
157
|
+
RadioGroupComponent.propDecorators = {
|
|
158
|
+
value: [{ type: Input }],
|
|
159
|
+
name: [{ type: Input }],
|
|
160
|
+
disabled: [{ type: Input }],
|
|
161
|
+
radios: [{ type: ContentChildren, args: [RadioButtonComponent, { descendants: true },] }],
|
|
162
|
+
valueChange: [{ type: Output }]
|
|
163
|
+
};
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL3JhZGlvLWJ1dHRvbi9yYWRpby1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFFTixXQUFXLEVBQ1gsTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBYzNDLE1BQU0sT0FBTyxtQkFBbUI7SUE2QjlCLFlBQ1ksV0FBb0MsRUFDZixVQUFVLEVBQ2IsUUFBUTtRQUYxQixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFBO1FBQ2IsYUFBUSxHQUFSLFFBQVEsQ0FBQTtRQUc1QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU8vQixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BELGFBQVEsR0FBRyxDQUFDLEtBQVUsRUFBRSxF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O1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRVMsNEJBQTRCO1FBQ3BDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUM7UUFDdkUsSUFBSSxZQUFZLElBQUksY0FBYyxJQUFJLFlBQVksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN2RSxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7U0FDakM7SUFDSCxDQUFDOzs7WUFuTUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLFFBQVEsRUFBRTt1REFDMkM7Z0JBQ3JELFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO3dCQUNsRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjtnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7O1lBcEJDLFVBQVU7NENBb0RQLE1BQU0sU0FBQyxXQUFXOzRDQUNsQixNQUFNLFNBQUMsUUFBUTs7O29CQTlCakIsS0FBSzttQkFTTCxLQUFLO3VCQVNMLEtBQUs7cUJBb0JMLGVBQWUsU0FBQyxvQkFBb0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7MEJBRTNELE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBQTEFURk9STV9JRCxcclxuICBJbmplY3QsXHJcbiAgRWxlbWVudFJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGZyb20sIGZyb21FdmVudCwgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkci1yYWRpby1ncm91cCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRyLXJhZGlvLWJ1dHRvblwiPjwvbmctY29udGVudD5gLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmFkaW9Hcm91cENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmFkaW9Hcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMudXBkYXRlVmFsdWVzKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcclxuICB9XHJcbiAgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9uYW1lID0gbmFtZTtcclxuICAgIHRoaXMudXBkYXRlTmFtZXMoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xyXG4gIH1cclxuICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gISFkaXNhYmxlZDtcclxuICAgIHRoaXMudXBkYXRlRGlzYWJsZWQoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByb3RlY3RlZCBwbGF0Zm9ybUlkLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJvdGVjdGVkIGRvY3VtZW50LFxyXG4gICkge31cclxuXHJcbiAgcHJvdGVjdGVkIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcm90ZWN0ZWQgX3ZhbHVlOiBhbnk7XHJcbiAgcHJvdGVjdGVkIF9uYW1lOiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIF9kaXNhYmxlZDogYm9vbGVhbjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihSYWRpb0J1dHRvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSByYWRpb3M6IFF1ZXJ5TGlzdDxSYWRpb0J1dHRvbkNvbXBvbmVudD47XHJcblxyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcHJvdGVjdGVkIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xyXG4gIHByb3RlY3RlZCBvblRvdWNoZWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgLy8gSW4gY2FzZSBvcHRpb24gJ25hbWUnIGlzbid0IHNldCBvbiBkci1yYWRpbyBjb21wb25lbnQsXHJcbiAgICAvLyB3ZSBuZWVkIHRvIHNldCBpdCdzIG5hbWUgcmlnaHQgYXdheSwgc28gaXQgd29uJ3Qgb3ZlcmxhcCB3aXRoIG9wdGlvbnNcclxuICAgIC8vIHdpdGhvdXQgbmFtZXMgZnJvbSBvdGhlciByYWRpbyBncm91cHMuIE90aGVyd2lzZSB0aGV5IGFsbCB3b3VsZCBoYXZlXHJcbiAgICAvLyBzYW1lIG5hbWUgYW5kIHdpbGwgYmUgY29uc2lkZXJlZCBhcyBvcHRpb25zIGZyb20gb25lIGdyb3VwIHNvIG9ubHkgdGhlXHJcbiAgICAvLyBsYXN0IG9wdGlvbiB3aWxsIHN0YXkgc2VsZWN0ZWQuXHJcbiAgICB0aGlzLnVwZGF0ZU5hbWVzKCk7XHJcblxyXG4gICAgdGhpcy5yYWRpb3MuY2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBzdGFydFdpdGgodGhpcy5yYWRpb3MpLFxyXG4gICAgICAgIC8vICdjaGFuZ2VzJyBlbWl0IGR1cmluZyBjaGFuZ2UgZGV0ZWN0aW9uIHJ1biBhbmQgd2UgY2FuJ3QgdXBkYXRlXHJcbiAgICAgICAgLy8gb3B0aW9uIHByb3BlcnRpZXMgcmlnaHQgb2Ygc2luY2UgdGhleSBhbHJlYWR5IHdhcyBpbml0aWFsaXplZC5cclxuICAgICAgICAvLyBJbnN0ZWFkIHdlIHNjaGVkdWxlIG1pY3JvdGFzayB0byB1cGRhdGUgcmFkaW9zIGFmdGVyIGNoYW5nZSBkZXRlY3Rpb25cclxuICAgICAgICAvLyBydW4gaXMgZmluaXNoZWQgYW5kIHRyaWdnZXIgb25lIG1vcmUgY2hhbmdlIGRldGVjdGlvbiBydW4uXHJcbiAgICAgICAgc3dpdGNoTWFwKChyYWRpb3M6IFF1ZXJ5TGlzdDxSYWRpb0J1dHRvbkNvbXBvbmVudD4pID0+IGZyb20oUHJvbWlzZS5yZXNvbHZlKHJhZGlvcykpKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZUFuZFN1YnNjcmliZVRvUmFkaW9zKCkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB1cGRhdGVBbmRTdWJzY3JpYmVUb1JhZGlvcygpIHtcclxuICAgIHRoaXMudXBkYXRlVmFsdWVGcm9tQ2hlY2tlZE9wdGlvbigpO1xyXG4gICAgdGhpcy51cGRhdGVOYW1lcygpO1xyXG4gICAgdGhpcy51cGRhdGVWYWx1ZXMoKTtcclxuICAgIHRoaXMudXBkYXRlRGlzYWJsZWQoKTtcclxuICAgIHRoaXMuc3Vic2NyaWJlT25SYWRpb3NWYWx1ZUNoYW5nZSgpO1xyXG4gICAgdGhpcy5zdWJzY3JpYmVPblJhZGlvc0JsdXIoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB1cGRhdGVOYW1lcygpIHtcclxuICAgIGlmICh0aGlzLnJhZGlvcykge1xyXG4gICAgICB0aGlzLnJhZGlvcy5mb3JFYWNoKChyYWRpbzogUmFkaW9CdXR0b25Db21wb25lbnQpID0+IHJhZGlvLl9zZXROYW1lKHRoaXMubmFtZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHVwZGF0ZVZhbHVlcygpIHtcclxuICAgIHRoaXMudXBkYXRlQW5kTWFya0ZvckNoZWNrUmFkaW9zKChyYWRpbzogUmFkaW9CdXR0b25Db21wb25lbnQpID0+IHtcclxuICAgICAgaWYgKHJhZGlvLnZhbHVlID09PSB0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgcmFkaW8ubW9kZWxWYWx1ZSA9IHJhZGlvLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB1cGRhdGVEaXNhYmxlZCgpIHtcclxuICAgIGlmICh0eXBlb2YgdGhpcy5kaXNhYmxlZCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgdGhpcy51cGRhdGVBbmRNYXJrRm9yQ2hlY2tSYWRpb3MoKHJhZGlvOiBSYWRpb0J1dHRvbkNvbXBvbmVudCkgPT4gcmFkaW8uZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzdWJzY3JpYmVPblJhZGlvc1ZhbHVlQ2hhbmdlKCkge1xyXG4gICAgaWYgKCF0aGlzLnJhZGlvcyB8fCAhdGhpcy5yYWRpb3MubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBtZXJnZSguLi50aGlzLnJhZGlvcy5tYXAoKHJhZGlvOiBSYWRpb0J1dHRvbkNvbXBvbmVudCkgPT4gcmFkaW8udmFsdWVDaGFuZ2UpKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwoXHJcbiAgICAgICAgICBtZXJnZShcclxuICAgICAgICAgICAgdGhpcy5yYWRpb3MuY2hhbmdlcyxcclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95JCxcclxuICAgICAgICAgICksXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcclxuICAgICAgICB0aGlzLnByb3BhZ2F0ZVZhbHVlKHZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcHJvcGFnYXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHN1YnNjcmliZU9uUmFkaW9zQmx1cigpIHtcclxuICAgIGNvbnN0IGhhc05vUmFkaW9zID0gIXRoaXMucmFkaW9zIHx8ICF0aGlzLnJhZGlvcy5sZW5ndGg7XHJcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgfHwgaGFzTm9SYWRpb3MpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGhvc3RFbGVtZW50ID0gdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gICAgZnJvbUV2ZW50PEV2ZW50Pihob3N0RWxlbWVudCwgJ2ZvY3VzaW4nKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gaG9zdEVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gbWVyZ2UoXHJcbiAgICAgICAgICBmcm9tRXZlbnQ8RXZlbnQ+KHRoaXMuZG9jdW1lbnQsICdmb2N1c2luJyksXHJcbiAgICAgICAgICBmcm9tRXZlbnQ8RXZlbnQ+KHRoaXMuZG9jdW1lbnQsICdjbGljaycpLFxyXG4gICAgICAgICkpLFxyXG4gICAgICAgIGZpbHRlcihldmVudCA9PiAhaG9zdEVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSxcclxuICAgICAgICB0YWtlVW50aWwoXHJcbiAgICAgICAgICBtZXJnZShcclxuICAgICAgICAgICAgdGhpcy5yYWRpb3MuY2hhbmdlcyxcclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95JCxcclxuICAgICAgICAgICksXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMub25Ub3VjaGVkKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHVwZGF0ZUFuZE1hcmtGb3JDaGVja1JhZGlvcyh1cGRhdGVGbjogKFJhZGlvQnV0dG9uQ29tcG9uZW50KSA9PiB2b2lkKSB7XHJcbiAgICBpZiAodGhpcy5yYWRpb3MpIHtcclxuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcclxuICAgICAgICB1cGRhdGVGbihyYWRpbyk7XHJcbiAgICAgICAgcmFkaW8uX21hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB1cGRhdGVWYWx1ZUZyb21DaGVja2VkT3B0aW9uKCkge1xyXG4gICAgY29uc3QgY2hlY2tlZFJhZGlvID0gdGhpcy5yYWRpb3MuZmluZCgocmFkaW8pID0+IHJhZGlvLm1vZGVsVmFsdWUpO1xyXG4gICAgY29uc3QgaXNWYWx1ZU1pc3NpbmcgPSB0aGlzLnZhbHVlID09PSB1bmRlZmluZWQgfHwgdGhpcy52YWx1ZSA9PT0gbnVsbDtcclxuICAgIGlmIChjaGVja2VkUmFkaW8gJiYgaXNWYWx1ZU1pc3NpbmcgJiYgY2hlY2tlZFJhZGlvLnZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBjaGVja2VkUmFkaW8udmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, HostListener, Input, TemplateRef, ViewChild, ViewContainerRef, ChangeDetectionStrategy } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, HostListener, Input, TemplateRef, ViewChild, ViewContainerRef, ChangeDetectionStrategy, HostBinding, } from '@angular/core';
|
|
2
2
|
import { trigger } from '@angular/animations';
|
|
3
3
|
import { POPUP_ANIMATION } from '../models/constants';
|
|
4
4
|
import { DrPopoverRef } from './dr-popover-ref';
|
|
5
|
+
import { getAlignmentDimension } from '../models/popover';
|
|
5
6
|
export class DrPopoverComponent {
|
|
6
7
|
constructor(cdr, componentFactoryResolver, viewContainerRef, elementRef, popoverRef) {
|
|
7
8
|
this.cdr = cdr;
|
|
@@ -11,6 +12,7 @@ export class DrPopoverComponent {
|
|
|
11
12
|
this.popoverRef = popoverRef;
|
|
12
13
|
this.class = '';
|
|
13
14
|
this.isContentTemplate = false;
|
|
15
|
+
this.popover = true;
|
|
14
16
|
}
|
|
15
17
|
clickOutside(e) {
|
|
16
18
|
const isTargetHost = this.hostRef instanceof ElementRef && (this.hostRef.nativeElement === e.target || this.hostRef.nativeElement.contains(e.target));
|
|
@@ -23,7 +25,7 @@ export class DrPopoverComponent {
|
|
|
23
25
|
&& !isTargetInDatepicker
|
|
24
26
|
&& !isTargetInSelect
|
|
25
27
|
&& !isTargetInDatepickerContent
|
|
26
|
-
&& !this.manualClosing) {
|
|
28
|
+
&& !this.manualClosing.enabled) {
|
|
27
29
|
this.popoverRef.close();
|
|
28
30
|
}
|
|
29
31
|
}
|
|
@@ -34,6 +36,9 @@ export class DrPopoverComponent {
|
|
|
34
36
|
Object.assign(this.componentRef.instance, this.contentContext);
|
|
35
37
|
this.popoverContainer.nativeElement.appendChild(this.componentRef.location.nativeElement);
|
|
36
38
|
}
|
|
39
|
+
if (this.alignment === 'host') {
|
|
40
|
+
this[getAlignmentDimension(this.position)] = '100%';
|
|
41
|
+
}
|
|
37
42
|
this.cdr.detectChanges();
|
|
38
43
|
}
|
|
39
44
|
}
|
|
@@ -61,7 +66,12 @@ DrPopoverComponent.propDecorators = {
|
|
|
61
66
|
class: [{ type: Input }],
|
|
62
67
|
hostRef: [{ type: Input }],
|
|
63
68
|
manualClosing: [{ type: Input }],
|
|
69
|
+
alignment: [{ type: Input }],
|
|
70
|
+
position: [{ type: Input }],
|
|
64
71
|
popoverContainer: [{ type: ViewChild, args: ['popoverContainer', { read: ElementRef, static: true },] }],
|
|
72
|
+
width: [{ type: HostBinding, args: ['style.width',] }],
|
|
73
|
+
height: [{ type: HostBinding, args: ['style.height',] }],
|
|
74
|
+
popover: [{ type: HostBinding, args: ['@popover',] }],
|
|
65
75
|
clickOutside: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
|
|
66
76
|
};
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItcG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1wb3BvdmVyL2RyLXBvcG92ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULHdCQUF3QixFQUV4QixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxXQUFXLEVBRVgsU0FBUyxFQUNULGdCQUFnQixFQUVoQix1QkFBdUIsRUFDdkIsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBb0QscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVc1RyxNQUFNLE9BQU8sa0JBQWtCO0lBc0M3QixZQUNVLEdBQXNCLEVBQ3RCLHdCQUFrRCxFQUNsRCxnQkFBa0MsRUFDbEMsVUFBc0IsRUFDdEIsVUFBMkI7UUFKM0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUF2QzVCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFPcEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBTU0sWUFBTyxHQUFHLElBQUksQ0FBQztJQTJCM0MsQ0FBQztJQXhCTCxZQUFZLENBQUMsQ0FBQztRQUNaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLFlBQVksVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQTZCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3ZLLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRSxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDdEUsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMsWUFBWTtlQUNWLENBQUMsaUJBQWlCO2VBQ2xCLENBQUMsb0JBQW9CO2VBQ3JCLENBQUMsZ0JBQWdCO2VBQ2pCLENBQUMsMkJBQTJCO2VBQzVCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQzlCO1lBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFVRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLFlBQVksV0FBVyxDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsT0FBa0IsQ0FBQyxDQUFDLENBQUM7WUFDMUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDM0Y7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFO1lBQzdCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7U0FDckQ7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OztZQXBFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLGlRQUEwQztnQkFFMUMsVUFBVSxFQUFFO29CQUNWLE9BQU8sQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDO2lCQUNwQztnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQTVCQyxpQkFBaUI7WUFFakIsd0JBQXdCO1lBUXhCLGdCQUFnQjtZQU5oQixVQUFVO1lBYUgsWUFBWTs7O3NCQWNsQixLQUFLOzZCQUNMLEtBQUs7b0JBQ0wsS0FBSztzQkFDTCxLQUFLOzRCQUNMLEtBQUs7d0JBQ0wsS0FBSzt1QkFDTCxLQUFLOytCQUVMLFNBQVMsU0FBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtvQkFJaEUsV0FBVyxTQUFDLGFBQWE7cUJBQ3pCLFdBQVcsU0FBQyxjQUFjO3NCQUUxQixXQUFXLFNBQUMsVUFBVTsyQkFFdEIsWUFBWSxTQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBUeXBlLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIE9uSW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBIb3N0QmluZGluZyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBQT1BVUF9BTklNQVRJT04gfSBmcm9tICcuLi9tb2RlbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgRHJQb3BvdmVyUmVmIH0gZnJvbSAnLi9kci1wb3BvdmVyLXJlZic7XHJcbmltcG9ydCB7IElQb3BvdmVyTWFudWFsQ2xvc2luZywgUG9pbnQsIERyUG9wb3ZlckFsaWdubWVudCwgZ2V0QWxpZ25tZW50RGltZW5zaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3BvcG92ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkci1wb3BvdmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHItcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHItcG9wb3Zlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ3BvcG92ZXInLCBQT1BVUF9BTklNQVRJT04pLFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEclBvcG92ZXJDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgVHlwZTxUPjtcclxuICBASW5wdXQoKSBjb250ZW50Q29udGV4dDogYW55O1xyXG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XHJcbiAgQElucHV0KCkgaG9zdFJlZjogRWxlbWVudFJlZjx1bmtub3duPiB8IEhUTUxFbGVtZW50IHwgUG9pbnQ7XHJcbiAgQElucHV0KCkgbWFudWFsQ2xvc2luZzogSVBvcG92ZXJNYW51YWxDbG9zaW5nO1xyXG4gIEBJbnB1dCgpIGFsaWdubWVudDogRHJQb3BvdmVyQWxpZ25tZW50O1xyXG4gIEBJbnB1dCgpIHBvc2l0aW9uOiBzdHJpbmc7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3BvcG92ZXJDb250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwb3BvdmVyQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBpc0NvbnRlbnRUZW1wbGF0ZSA9IGZhbHNlO1xyXG4gIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+O1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJykgd2lkdGg6IHN0cmluZztcclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpIGhlaWdodDogc3RyaW5nO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ0Bwb3BvdmVyJykgcHVibGljIHBvcG92ZXIgPSB0cnVlO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwJywgWyckZXZlbnQnXSlcclxuICBjbGlja091dHNpZGUoZSk6IHZvaWQge1xyXG4gICAgY29uc3QgaXNUYXJnZXRIb3N0ID0gdGhpcy5ob3N0UmVmIGluc3RhbmNlb2YgRWxlbWVudFJlZiAmJiAodGhpcy5ob3N0UmVmLm5hdGl2ZUVsZW1lbnQgPT09IGUudGFyZ2V0IHx8ICh0aGlzLmhvc3RSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuY29udGFpbnMoZS50YXJnZXQpKTtcclxuICAgIGNvbnN0IGlzVGFyZ2V0SW5Qb3BvdmVyID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpO1xyXG4gICAgY29uc3QgaXNUYXJnZXRJbkRhdGVwaWNrZXIgPSBlLnRhcmdldC5jbG9zZXN0KCdtYXQtZGF0ZXBpY2tlci1wb3B1cCcpO1xyXG4gICAgY29uc3QgaXNUYXJnZXRJblNlbGVjdCA9IGUudGFyZ2V0LmNsb3Nlc3QoJ25nLWRyb3Bkb3duLXBhbmVsJyk7XHJcbiAgICBjb25zdCBpc1RhcmdldEluRGF0ZXBpY2tlckNvbnRlbnQgPSBlLnRhcmdldC5jbG9zZXN0KCdtYXQtZGF0ZXBpY2tlci1jb250ZW50Jyk7XHJcblxyXG4gICAgaWYgKCFpc1RhcmdldEhvc3RcclxuICAgICAgICAmJiAhaXNUYXJnZXRJblBvcG92ZXJcclxuICAgICAgICAmJiAhaXNUYXJnZXRJbkRhdGVwaWNrZXJcclxuICAgICAgICAmJiAhaXNUYXJnZXRJblNlbGVjdFxyXG4gICAgICAgICYmICFpc1RhcmdldEluRGF0ZXBpY2tlckNvbnRlbnRcclxuICAgICAgICAmJiAhdGhpcy5tYW51YWxDbG9zaW5nLmVuYWJsZWRcclxuICAgICAgKSB7XHJcbiAgICAgIHRoaXMucG9wb3ZlclJlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBwb3BvdmVyUmVmOiBEclBvcG92ZXJSZWY8VD4sXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzQ29udGVudFRlbXBsYXRlID0gdGhpcy5jb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XHJcblxyXG4gICAgaWYgKCF0aGlzLmlzQ29udGVudFRlbXBsYXRlKSB7XHJcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudCh0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmNvbnRlbnQgYXMgVHlwZTxUPikpO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLCB0aGlzLmNvbnRlbnRDb250ZXh0KTtcclxuICAgICAgdGhpcy5wb3BvdmVyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5jb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5hbGlnbm1lbnQgPT09ICdob3N0Jykge1xyXG4gICAgICB0aGlzW2dldEFsaWdubWVudERpbWVuc2lvbih0aGlzLnBvc2l0aW9uKV0gPSAnMTAwJSc7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -9,6 +9,7 @@ export class DrPopoverDirective {
|
|
|
9
9
|
this.position = 'bottom';
|
|
10
10
|
this.class = '';
|
|
11
11
|
this.overlayConfig = {};
|
|
12
|
+
this.manualClosing = { enabled: false };
|
|
12
13
|
this.popoverClose = new EventEmitter();
|
|
13
14
|
this.showStateChange = new EventEmitter();
|
|
14
15
|
}
|
|
@@ -35,6 +36,7 @@ export class DrPopoverDirective {
|
|
|
35
36
|
manualClosing: this.manualClosing,
|
|
36
37
|
position: this.position,
|
|
37
38
|
contentContext: this.contentContext,
|
|
39
|
+
alignment: this.alignment,
|
|
38
40
|
});
|
|
39
41
|
popoverRef.onClose.pipe(first()).subscribe((res) => {
|
|
40
42
|
this.closePopover();
|
|
@@ -62,8 +64,9 @@ DrPopoverDirective.propDecorators = {
|
|
|
62
64
|
class: [{ type: Input, args: ['drPopoverClass',] }],
|
|
63
65
|
overlayConfig: [{ type: Input, args: ['drPopoverOverlayConfig',] }],
|
|
64
66
|
manualClosing: [{ type: Input, args: ['drPopoverManualClosing',] }],
|
|
67
|
+
alignment: [{ type: Input, args: ['drPopoverAlignment',] }],
|
|
65
68
|
popoverClose: [{ type: Output, args: ['drPopoverClose',] }],
|
|
66
69
|
showStateChange: [{ type: Output, args: ['drPopoverShowStateChange',] }],
|
|
67
70
|
togglePopover: [{ type: HostListener, args: ['click',] }]
|
|
68
71
|
};
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItcG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1wb3BvdmVyL2RyLXBvcG92ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFNeEQsTUFBTSxPQUFPLGtCQUFrQjtJQXNCN0IsWUFBb0IsVUFBc0IsRUFDdEIsZ0JBQWtDO1FBRGxDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQW5CM0IsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFFM0IsYUFBUSxHQUFlLFFBQVEsQ0FBQztRQUVuQyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRVgsa0JBQWEsR0FBa0IsRUFBRSxDQUFDO1FBRWxDLGtCQUFhLEdBQTBCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBSWpFLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU3QixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO0lBTTNGLENBQUM7SUFHTCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsR0FBUztRQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUM1RSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDeEIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDMUIsQ0FBQyxDQUFDO1FBRUgsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7O1lBbEVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTthQUN4Qjs7O1lBbEJDLFVBQVU7WUFhSCxnQkFBZ0I7OztzQkFRdEIsS0FBSyxTQUFDLFdBQVc7NkJBRWpCLEtBQUssU0FBQyxrQkFBa0I7dUJBRXhCLEtBQUssU0FBQyxtQkFBbUI7b0JBRXpCLEtBQUssU0FBQyxnQkFBZ0I7NEJBRXRCLEtBQUssU0FBQyx3QkFBd0I7NEJBRTlCLEtBQUssU0FBQyx3QkFBd0I7d0JBRTlCLEtBQUssU0FBQyxvQkFBb0I7MkJBRTFCLE1BQU0sU0FBQyxnQkFBZ0I7OEJBRXZCLE1BQU0sU0FBQywwQkFBMEI7NEJBUWpDLFlBQVksU0FBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVHlwZSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3ZlcmxheUNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEVsUG9zaXRpb24gfSBmcm9tICcuLy4uL21vZGVscy9kcm9wZG93bic7XHJcbmltcG9ydCB7IERyUG9wb3ZlclJlZiB9IGZyb20gJy4vZHItcG9wb3Zlci1yZWYnO1xyXG5pbXBvcnQgeyBEclBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnLi9kci1wb3BvdmVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJUG9wb3Zlck1hbnVhbENsb3NpbmcsIERyUG9wb3ZlckFsaWdubWVudCB9IGZyb20gJy4uL21vZGVscy9wb3BvdmVyJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2RyUG9wb3Zlcl0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEclBvcG92ZXJEaXJlY3RpdmU8VD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kgIHtcclxuXHJcbiAgQElucHV0KCdkclBvcG92ZXInKSBjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgVHlwZTxUPjtcclxuXHJcbiAgQElucHV0KCdkclBvcG92ZXJDb250ZXh0JykgY29udGVudENvbnRleHQ6IE9iamVjdCA9IHt9O1xyXG5cclxuICBASW5wdXQoJ2RyUG9wb3ZlclBvc2l0aW9uJykgcG9zaXRpb246IEVsUG9zaXRpb24gPSAnYm90dG9tJztcclxuXHJcbiAgQElucHV0KCdkclBvcG92ZXJDbGFzcycpIGNsYXNzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCdkclBvcG92ZXJPdmVybGF5Q29uZmlnJykgb3ZlcmxheUNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHt9O1xyXG5cclxuICBASW5wdXQoJ2RyUG9wb3Zlck1hbnVhbENsb3NpbmcnKSBtYW51YWxDbG9zaW5nOiBJUG9wb3Zlck1hbnVhbENsb3NpbmcgPSB7IGVuYWJsZWQ6IGZhbHNlIH07XHJcblxyXG4gIEBJbnB1dCgnZHJQb3BvdmVyQWxpZ25tZW50JykgYWxpZ25tZW50OiBEclBvcG92ZXJBbGlnbm1lbnQ7XHJcblxyXG4gIEBPdXRwdXQoJ2RyUG9wb3ZlckNsb3NlJykgcG9wb3ZlckNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoJ2RyUG9wb3ZlclNob3dTdGF0ZUNoYW5nZScpIHNob3dTdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpc1Nob3duOiBib29sZWFuIH0+KCk7XHJcblxyXG4gIHByaXZhdGUgcG9wb3ZlclJlZjogRHJQb3BvdmVyUmVmPFQ+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBkclBvcG92ZXJTZXJ2aWNlOiBEclBvcG92ZXJTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICB0b2dnbGVQb3BvdmVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucG9wb3ZlclJlZikge1xyXG4gICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZW5kZXJQb3BvdmVyKCk7XHJcbiAgICAgIHRoaXMuc2hvd1N0YXRlQ2hhbmdlLmVtaXQoeyBpc1Nob3duOiAhIXRoaXMucG9wb3ZlclJlZiB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlUG9wb3ZlcihyZXM/OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnBvcG92ZXJSZWYpIHtcclxuICAgICAgdGhpcy5wb3BvdmVyUmVmLmNsb3NlKHJlcyk7XHJcbiAgICAgIHRoaXMucG9wb3ZlclJlZiA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlclBvcG92ZXIoKTogdm9pZCB7XHJcbiAgICBjb25zdCBwb3BvdmVyUmVmID0gdGhpcy5wb3BvdmVyUmVmID0gdGhpcy5kclBvcG92ZXJTZXJ2aWNlLm9wZW4odGhpcy5jb250ZW50LCB7XHJcbiAgICAgIGhvc3RSZWY6IHRoaXMuZWxlbWVudFJlZixcclxuICAgICAgb3ZlcmxheUNvbmZpZzogdGhpcy5vdmVybGF5Q29uZmlnLFxyXG4gICAgICBjbGFzczogdGhpcy5jbGFzcyxcclxuICAgICAgbWFudWFsQ2xvc2luZzogdGhpcy5tYW51YWxDbG9zaW5nLFxyXG4gICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbixcclxuICAgICAgY29udGVudENvbnRleHQ6IHRoaXMuY29udGVudENvbnRleHQsXHJcbiAgICAgIGFsaWdubWVudDogdGhpcy5hbGlnbm1lbnQsXHJcbiAgICB9KTtcclxuXHJcbiAgICBwb3BvdmVyUmVmLm9uQ2xvc2UucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xyXG4gICAgICB0aGlzLnBvcG92ZXJDbG9zZS5lbWl0KHJlcyk7XHJcbiAgICAgIHRoaXMuc2hvd1N0YXRlQ2hhbmdlLmVtaXQoeyBpc1Nob3duOiAhIXRoaXMucG9wb3ZlclJlZiB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { first } from 'rxjs/operators';
|
|
1
2
|
import { DrPopoverRef } from './dr-popover-ref';
|
|
2
3
|
import { DrPopoverComponent } from './dr-popover.component';
|
|
3
4
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
4
5
|
import { Injectable, Injector } from '@angular/core';
|
|
5
6
|
import { Overlay, OverlayConfig, OverlayPositionBuilder } from '@angular/cdk/overlay';
|
|
6
7
|
import { POPUP_POSITIONS } from '../models/constants';
|
|
7
|
-
import { DEFAULT_CONFIG, DEFAULT_MODEL } from '../models/popover';
|
|
8
|
+
import { DEFAULT_CONFIG, DEFAULT_MODEL, getAlignmentDimension } from '../models/popover';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@angular/cdk/overlay";
|
|
10
11
|
export class DrPopoverService {
|
|
@@ -20,10 +21,10 @@ export class DrPopoverService {
|
|
|
20
21
|
const overlayRef = this.createOverlay(model);
|
|
21
22
|
const popoverRef = new DrPopoverRef(overlayRef);
|
|
22
23
|
this.attachOverlayContainer(content, model, overlayRef, popoverRef);
|
|
23
|
-
this.
|
|
24
|
+
this.registerListeners(model, overlayRef, popoverRef);
|
|
24
25
|
return popoverRef;
|
|
25
26
|
}
|
|
26
|
-
attachOverlayContainer(content, { contentContext, position, class: elementClass, manualClosing, hostRef }, overlayRef, popoverRef) {
|
|
27
|
+
attachOverlayContainer(content, { contentContext, position, class: elementClass, manualClosing, hostRef, alignment }, overlayRef, popoverRef) {
|
|
27
28
|
const componentPortal = new ComponentPortal(DrPopoverComponent, null, this.createInjector(popoverRef));
|
|
28
29
|
const contentRef = overlayRef.attach(componentPortal);
|
|
29
30
|
popoverRef.componentRef = contentRef;
|
|
@@ -32,17 +33,26 @@ export class DrPopoverService {
|
|
|
32
33
|
contentRef.instance.class = elementClass + ' ' + position;
|
|
33
34
|
contentRef.instance.manualClosing = manualClosing;
|
|
34
35
|
contentRef.instance.hostRef = hostRef;
|
|
36
|
+
contentRef.instance.alignment = alignment;
|
|
37
|
+
contentRef.instance.position = position;
|
|
35
38
|
}
|
|
36
39
|
createOverlay(popoverModel) {
|
|
37
40
|
const overlayConfig = this.getOverlayConfig(popoverModel);
|
|
38
41
|
return this.overlay.create(overlayConfig);
|
|
39
42
|
}
|
|
40
43
|
getOverlayConfig(popoverModel) {
|
|
44
|
+
if (!POPUP_POSITIONS[popoverModel.position])
|
|
45
|
+
throw new Error(`DrPopover does not support the '${popoverModel === null || popoverModel === void 0 ? void 0 : popoverModel.position}' position!`);
|
|
41
46
|
const config = Object.assign(Object.assign({}, DEFAULT_CONFIG), popoverModel.overlayConfig || {});
|
|
47
|
+
const hostElement = this.getHostElement(popoverModel.hostRef);
|
|
42
48
|
const positionStrategy = this.overlayPositionBuilder
|
|
43
49
|
.flexibleConnectedTo(popoverModel.hostRef)
|
|
44
50
|
.withPositions([POPUP_POSITIONS[popoverModel.position]]);
|
|
45
51
|
const overlayConfig = new OverlayConfig(Object.assign({ scrollStrategy: this.overlay.scrollStrategies.noop(), positionStrategy }, config));
|
|
52
|
+
if (popoverModel.alignment === 'host' && hostElement) {
|
|
53
|
+
const alignmentDimension = getAlignmentDimension(popoverModel.position);
|
|
54
|
+
overlayConfig[alignmentDimension] = hostElement.getBoundingClientRect()[alignmentDimension];
|
|
55
|
+
}
|
|
46
56
|
return overlayConfig;
|
|
47
57
|
}
|
|
48
58
|
createInjector(popoverRef) {
|
|
@@ -51,15 +61,31 @@ export class DrPopoverService {
|
|
|
51
61
|
];
|
|
52
62
|
return Injector.create({ providers: injectionTokens, parent: this.injector });
|
|
53
63
|
}
|
|
54
|
-
|
|
64
|
+
registerListeners(popoverModel, overlayRef, popoverRef) {
|
|
55
65
|
const config = popoverModel.overlayConfig || {};
|
|
56
66
|
const targetElement = popoverModel.targetElement;
|
|
67
|
+
const hostElement = this.getHostElement(popoverModel.hostRef);
|
|
57
68
|
if ((config === null || config === void 0 ? void 0 : config.closeOnBackdropClick) && (config === null || config === void 0 ? void 0 : config.hasBackdrop)) {
|
|
58
69
|
overlayRef.backdropClick().subscribe(() => popoverRef.close());
|
|
59
70
|
}
|
|
60
71
|
if (targetElement) {
|
|
61
72
|
targetElement.addEventListener('mouseup', () => popoverRef.close(), { once: true });
|
|
62
73
|
}
|
|
74
|
+
if (popoverModel.alignment === 'host' && hostElement) {
|
|
75
|
+
const alignmentDimension = getAlignmentDimension(popoverModel.position);
|
|
76
|
+
const resizeObserver = new ResizeObserver(entries => {
|
|
77
|
+
entries.forEach(host => overlayRef.updateSize({ [alignmentDimension]: host.target.getBoundingClientRect()[alignmentDimension] }));
|
|
78
|
+
});
|
|
79
|
+
resizeObserver.observe(hostElement);
|
|
80
|
+
popoverRef.onClose.pipe(first()).subscribe(() => resizeObserver.unobserve(hostElement));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
getHostElement(hostRef) {
|
|
84
|
+
if (!hostRef || hostRef.x)
|
|
85
|
+
return null;
|
|
86
|
+
if (hostRef.nativeElement)
|
|
87
|
+
return hostRef.nativeElement;
|
|
88
|
+
return hostRef;
|
|
63
89
|
}
|
|
64
90
|
}
|
|
65
91
|
DrPopoverService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DrPopoverService_Factory() { return new DrPopoverService(i0.ɵɵinject(i1.Overlay), i0.ɵɵinject(i1.OverlayPositionBuilder), i0.ɵɵinject(i0.INJECTOR)); }, token: DrPopoverService, providedIn: "root" });
|
|
@@ -73,4 +99,4 @@ DrPopoverService.ctorParameters = () => [
|
|
|
73
99
|
{ type: OverlayPositionBuilder },
|
|
74
100
|
{ type: Injector }
|
|
75
101
|
];
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItcG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItcG9wb3Zlci9kci1wb3BvdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBcUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQTRCLE1BQU0sbUJBQW1CLENBQUM7OztBQUs1RixNQUFNLE9BQU8sZ0JBQWdCO0lBRXpCLFlBQ1ksT0FBZ0IsRUFDaEIsc0JBQThDLEVBQzlDLFFBQWtCO1FBRmxCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQzFCLENBQUM7SUFFTCxJQUFJLENBQUksT0FBMkMsRUFBRSxZQUFzQztRQUN2RixJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFckIsTUFBTSxLQUFLLG1DQUFRLGFBQWEsR0FBSyxZQUFZLENBQUUsQ0FBQztRQUVwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdDLE1BQU0sVUFBVSxHQUFHLElBQUksWUFBWSxDQUFJLFVBQVUsQ0FBQyxDQUFD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LENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsSUFBSSxhQUFhLEVBQUU7WUFDZixhQUFhLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZGO0lBQ0wsQ0FBQzs7OztZQXJGSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQU5RLE9BQU87WUFBaUIsc0JBQXNCO1lBRGxDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEclBvcG92ZXJSZWYgfSBmcm9tICcuL2RyLXBvcG92ZXItcmVmJztcclxuaW1wb3J0IHsgRHJQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kci1wb3BvdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgU3RhdGljUHJvdmlkZXIsIFRlbXBsYXRlUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IFBPUFVQX1BPU0lUSU9OUyB9IGZyb20gJy4uL21vZGVscy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBERUZBVUxUX0NPTkZJRywgREVGQVVMVF9NT0RFTCwgSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3BvcG92ZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJQb3BvdmVyU2VydmljZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheVBvc2l0aW9uQnVpbGRlcjogT3ZlcmxheVBvc2l0aW9uQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICkgeyB9XHJcblxyXG4gICAgb3BlbjxUPihjb250ZW50OiBUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+LCBwb3BvdmVyTW9kZWw6IElEclBvcG92ZXJDb21wb25lbnRNb2RlbCk6IERyUG9wb3ZlclJlZjxUPiB7XHJcbiAgICAgICAgaWYgKCFjb250ZW50KSByZXR1cm47XHJcblxyXG4gICAgICAgIGNvbnN0IG1vZGVsID0geyAuLi5ERUZBVUxUX01PREVMLCAuLi5wb3BvdmVyTW9kZWwgfTtcclxuXHJcbiAgICAgICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheShtb2RlbCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBvcG92ZXJSZWYgPSBuZXcgRHJQb3BvdmVyUmVmPFQ+KG92ZXJsYXlSZWYpO1xyXG5cclxuICAgICAgICB0aGlzLmF0dGFjaE92ZXJsYXlDb250YWluZXIoY29udGVudCwgbW9kZWwsIG92ZXJsYXlSZWYsIHBvcG92ZXJSZWYpO1xyXG5cclxuICAgICAgICB0aGlzLnJlZ2lzdGVyQ2xvc2VMaXN0ZW5lcnMobW9kZWwsIG92ZXJsYXlSZWYsIHBvcG92ZXJSZWYpO1xyXG5cclxuICAgICAgICByZXR1cm4gcG9wb3ZlclJlZjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGF0dGFjaE92ZXJsYXlDb250YWluZXI8VD4oXHJcbiAgICAgICAgY29udGVudDogVHlwZTxUPiB8IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PixcclxuICAgICAgICB7IGNvbnRlbnRDb250ZXh0LCBwb3NpdGlvbiwgY2xhc3M6IGVsZW1lbnRDbGFzcywgbWFudWFsQ2xvc2luZywgaG9zdFJlZiB9OiBJRHJQb3BvdmVyQ29tcG9uZW50TW9kZWwsXHJcbiAgICAgICAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcclxuICAgICAgICBwb3BvdmVyUmVmOiBEclBvcG92ZXJSZWY8VD5cclxuICAgICk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWw8RHJQb3BvdmVyQ29tcG9uZW50PFQ+PihEclBvcG92ZXJDb21wb25lbnQsIG51bGwsIHRoaXMuY3JlYXRlSW5qZWN0b3IocG9wb3ZlclJlZikpO1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBvdmVybGF5UmVmLmF0dGFjaDxEclBvcG92ZXJDb21wb25lbnQ8VD4+KGNvbXBvbmVudFBvcnRhbCk7XHJcblxyXG4gICAgICAgIHBvcG92ZXJSZWYuY29tcG9uZW50UmVmID0gY29udGVudFJlZjtcclxuXHJcbiAgICAgICAgY29udGVudFJlZi5pbnN0YW5jZS5jb250ZW50ID0gY29udGVudDtcclxuICAgICAgICBjb250ZW50UmVmLmluc3RhbmNlLmNvbnRlbnRDb250ZXh0ID0geyAuLi5jb250ZW50Q29udGV4dCwgY2xvc2VQb3BvdmVyOiBwb3BvdmVyUmVmLmNsb3NlLmJpbmQocG9wb3ZlclJlZikgfTtcclxuICAgICAgICBjb250ZW50UmVmLmluc3RhbmNlLmNsYXNzID0gZWxlbWVudENsYXNzICsgJyAnICsgcG9zaXRpb247XHJcbiAgICAgICAgY29udGVudFJlZi5pbnN0YW5jZS5tYW51YWxDbG9zaW5nID0gbWFudWFsQ2xvc2luZztcclxuICAgICAgICBjb250ZW50UmVmLmluc3RhbmNlLmhvc3RSZWYgPSBob3N0UmVmO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlT3ZlcmxheShwb3BvdmVyTW9kZWw6IElEclBvcG92ZXJDb21wb25lbnRNb2RlbCk6IE92ZXJsYXlSZWYge1xyXG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLmdldE92ZXJsYXlDb25maWcocG9wb3Zlck1vZGVsKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldE92ZXJsYXlDb25maWcocG9wb3Zlck1vZGVsOiBJRHJQb3BvdmVyQ29tcG9uZW50TW9kZWwpOiBPdmVybGF5Q29uZmlnIHtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB7IC4uLkRFRkFVTFRfQ09ORklHLCAuLi5wb3BvdmVyTW9kZWwub3ZlcmxheUNvbmZpZyB8fCB7fX07XHJcblxyXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlQb3NpdGlvbkJ1aWxkZXJcclxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8ocG9wb3Zlck1vZGVsLmhvc3RSZWYpXHJcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtQT1BVUF9QT1NJVElPTlNbcG9wb3Zlck1vZGVsLnBvc2l0aW9uXV0pO1xyXG5cclxuICAgICAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xyXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMubm9vcCgpLFxyXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxyXG4gICAgICAgICAgICAuLi5jb25maWcsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBvdmVybGF5Q29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlSW5qZWN0b3I8VD4ocG9wb3ZlclJlZjogRHJQb3BvdmVyUmVmPFQ+KTogSW5qZWN0b3Ige1xyXG4gICAgICAgIGNvbnN0IGluamVjdGlvblRva2VuczogU3RhdGljUHJvdmlkZXJbXSA9IFtcclxuICAgICAgICAgICAgeyBwcm92aWRlOiBEclBvcG92ZXJSZWYsIHVzZVZhbHVlOiBwb3BvdmVyUmVmIH0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7IHByb3ZpZGVyczogaW5qZWN0aW9uVG9rZW5zLCBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZWdpc3RlckNsb3NlTGlzdGVuZXJzPFQ+KHBvcG92ZXJNb2RlbDogSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsLCBvdmVybGF5UmVmOiBPdmVybGF5UmVmLCBwb3BvdmVyUmVmOiBEclBvcG92ZXJSZWY8VD4pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjb25maWcgPSBwb3BvdmVyTW9kZWwub3ZlcmxheUNvbmZpZyB8fCB7fTtcclxuICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gcG9wb3Zlck1vZGVsLnRhcmdldEVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmIChjb25maWc/LmNsb3NlT25CYWNrZHJvcENsaWNrICYmIGNvbmZpZz8uaGFzQmFja2Ryb3ApIHtcclxuICAgICAgICAgICAgb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHBvcG92ZXJSZWYuY2xvc2UoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGFyZ2V0RWxlbWVudCkge1xyXG4gICAgICAgICAgICB0YXJnZXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCAoKSA9PiBwb3BvdmVyUmVmLmNsb3NlKCksIHsgb25jZTogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItcG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItcG9wb3Zlci9kci1wb3BvdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWlELE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFtQyxNQUFNLG1CQUFtQixDQUFDOzs7QUFLMUgsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QixZQUNZLE9BQWdCLEVBQ2hCLHNCQUE4QyxFQUM5QyxRQUFrQjtRQUZsQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUMxQixDQUFDO0lBRUwsSUFBSSxDQUFJLE9BQTJDLEVBQUUsWUFBc0M7UUFDdkYsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRXJCLE1BQU0sS0FBSyxtQ0FBUSxhQUFhLEdBQUssWUFBWSxDQUFFLENBQUM7UUFFcEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMs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QUFHLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4RSxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDaEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEksQ0FBQyxDQUFDLENBQUM7WUFDSCxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3BDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztTQUMzRjtJQUNMLENBQUM7SUFFTyxjQUFjLENBQUksT0FBNEM7UUFDbEUsSUFBSSxDQUFDLE9BQU8sSUFBWSxPQUFRLENBQUMsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2hELElBQWlCLE9BQVEsQ0FBQyxhQUFhO1lBQUUsT0FBb0IsT0FBUSxDQUFDLGFBQWEsQ0FBQztRQUNwRixPQUFvQixPQUFPLENBQUM7SUFDaEMsQ0FBQzs7OztZQS9HSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQU5RLE9BQU87WUFBaUIsc0JBQXNCO1lBRGxDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRHJQb3BvdmVyUmVmIH0gZnJvbSAnLi9kci1wb3BvdmVyLXJlZic7XHJcbmltcG9ydCB7IERyUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vZHItcG9wb3Zlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFN0YXRpY1Byb3ZpZGVyLCBUZW1wbGF0ZVJlZiwgVHlwZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UG9zaXRpb25CdWlsZGVyLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBQT1BVUF9QT1NJVElPTlMgfSBmcm9tICcuLi9tb2RlbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgREVGQVVMVF9DT05GSUcsIERFRkFVTFRfTU9ERUwsIGdldEFsaWdubWVudERpbWVuc2lvbiwgSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsLCBQb2ludCB9IGZyb20gJy4uL21vZGVscy9wb3BvdmVyJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERyUG9wb3ZlclNlcnZpY2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgICAgICBwcml2YXRlIG92ZXJsYXlQb3NpdGlvbkJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIG9wZW48VD4oY29udGVudDogVHlwZTxUPiB8IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PiwgcG9wb3Zlck1vZGVsOiBJRHJQb3BvdmVyQ29tcG9uZW50TW9kZWwpOiBEclBvcG92ZXJSZWY8VD4ge1xyXG4gICAgICAgIGlmICghY29udGVudCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCBtb2RlbCA9IHsgLi4uREVGQVVMVF9NT0RFTCwgLi4ucG9wb3Zlck1vZGVsIH07XHJcblxyXG4gICAgICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkobW9kZWwpO1xyXG5cclxuICAgICAgICBjb25zdCBwb3BvdmVyUmVmID0gbmV3IERyUG9wb3ZlclJlZjxUPihvdmVybGF5UmVmKTtcclxuXHJcbiAgICAgICAgdGhpcy5hdHRhY2hPdmVybGF5Q29udGFpbmVyKGNvbnRlbnQsIG1vZGVsLCBvdmVybGF5UmVmLCBwb3BvdmVyUmVmKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZWdpc3Rlckxpc3RlbmVycyhtb2RlbCwgb3ZlcmxheVJlZiwgcG9wb3ZlclJlZik7XHJcblxyXG4gICAgICAgIHJldHVybiBwb3BvdmVyUmVmO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXR0YWNoT3ZlcmxheUNvbnRhaW5lcjxUPihcclxuICAgICAgICBjb250ZW50OiBUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgICAgIHsgY29udGVudENvbnRleHQsIHBvc2l0aW9uLCBjbGFzczogZWxlbWVudENsYXNzLCBtYW51YWxDbG9zaW5nLCBob3N0UmVmLCBhbGlnbm1lbnQgfTogSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsLFxyXG4gICAgICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXHJcbiAgICAgICAgcG9wb3ZlclJlZjogRHJQb3BvdmVyUmVmPFQ+XHJcbiAgICApOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsPERyUG9wb3ZlckNvbXBvbmVudDxUPj4oRHJQb3BvdmVyQ29tcG9uZW50LCBudWxsLCB0aGlzLmNyZWF0ZUluamVjdG9yKHBvcG92ZXJSZWYpKTtcclxuICAgICAgICBjb25zdCBjb250ZW50UmVmID0gb3ZlcmxheVJlZi5hdHRhY2g8RHJQb3BvdmVyQ29tcG9uZW50PFQ+Pihjb21wb25lbnRQb3J0YWwpO1xyXG5cclxuICAgICAgICBwb3BvdmVyUmVmLmNvbXBvbmVudFJlZiA9IGNvbnRlbnRSZWY7XHJcblxyXG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuY29udGVudCA9IGNvbnRlbnQ7XHJcbiAgICAgICAgY29udGVudFJlZi5pbnN0YW5jZS5jb250ZW50Q29udGV4dCA9IHsgLi4uY29udGVudENvbnRleHQsIGNsb3NlUG9wb3ZlcjogcG9wb3ZlclJlZi5jbG9zZS5iaW5kKHBvcG92ZXJSZWYpIH07XHJcbiAgICAgICAgY29udGVudFJlZi5pbnN0YW5jZS5jbGFzcyA9IGVsZW1lbnRDbGFzcyArICcgJyArIHBvc2l0aW9uO1xyXG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UubWFudWFsQ2xvc2luZyA9IG1hbnVhbENsb3Npbmc7XHJcbiAgICAgICAgY29udGVudFJlZi5pbnN0YW5jZS5ob3N0UmVmID0gaG9zdFJlZjtcclxuICAgICAgICBjb250ZW50UmVmLmluc3RhbmNlLmFsaWdubWVudCA9IGFsaWdubWVudDtcclxuICAgICAgICBjb250ZW50UmVmLmluc3RhbmNlLnBvc2l0aW9uID0gcG9zaXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KHBvcG92ZXJNb2RlbDogSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsKTogT3ZlcmxheVJlZiB7XHJcbiAgICAgICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IHRoaXMuZ2V0T3ZlcmxheUNvbmZpZyhwb3BvdmVyTW9kZWwpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0T3ZlcmxheUNvbmZpZyhwb3BvdmVyTW9kZWw6IElEclBvcG92ZXJDb21wb25lbnRNb2RlbCk6IE92ZXJsYXlDb25maWcge1xyXG4gICAgICAgIGlmICghUE9QVVBfUE9TSVRJT05TW3BvcG92ZXJNb2RlbC5wb3NpdGlvbl0pIHRocm93IG5ldyBFcnJvcihgRHJQb3BvdmVyIGRvZXMgbm90IHN1cHBvcnQgdGhlICcke3BvcG92ZXJNb2RlbD8ucG9zaXRpb259JyBwb3NpdGlvbiFgKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29uZmlnID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4ucG9wb3Zlck1vZGVsLm92ZXJsYXlDb25maWcgfHwge319O1xyXG4gICAgICAgIGNvbnN0IGhvc3RFbGVtZW50ID0gdGhpcy5nZXRIb3N0RWxlbWVudChwb3BvdmVyTW9kZWwuaG9zdFJlZik7XHJcblxyXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlQb3NpdGlvbkJ1aWxkZXJcclxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8ocG9wb3Zlck1vZGVsLmhvc3RSZWYpXHJcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtQT1BVUF9QT1NJVElPTlNbcG9wb3Zlck1vZGVsLnBvc2l0aW9uXV0pO1xyXG5cclxuICAgICAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xyXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMubm9vcCgpLFxyXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxyXG4gICAgICAgICAgICAuLi5jb25maWcsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChwb3BvdmVyTW9kZWwuYWxpZ25tZW50ID09PSAnaG9zdCcgJiYgaG9zdEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgY29uc3QgYWxpZ25tZW50RGltZW5zaW9uID0gZ2V0QWxpZ25tZW50RGltZW5zaW9uKHBvcG92ZXJNb2RlbC5wb3NpdGlvbik7XHJcbiAgICAgICAgICAgIG92ZXJsYXlDb25maWdbYWxpZ25tZW50RGltZW5zaW9uXSA9IGhvc3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW2FsaWdubWVudERpbWVuc2lvbl07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3ZlcmxheUNvbmZpZztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZUluamVjdG9yPFQ+KHBvcG92ZXJSZWY6IERyUG9wb3ZlclJlZjxUPik6IEluamVjdG9yIHtcclxuICAgICAgICBjb25zdCBpbmplY3Rpb25Ub2tlbnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXHJcbiAgICAgICAgICAgIHsgcHJvdmlkZTogRHJQb3BvdmVyUmVmLCB1c2VWYWx1ZTogcG9wb3ZlclJlZiB9LFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoeyBwcm92aWRlcnM6IGluamVjdGlvblRva2VucywgcGFyZW50OiB0aGlzLmluamVjdG9yIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVnaXN0ZXJMaXN0ZW5lcnM8VD4ocG9wb3Zlck1vZGVsOiBJRHJQb3BvdmVyQ29tcG9uZW50TW9kZWwsIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsIHBvcG92ZXJSZWY6IERyUG9wb3ZlclJlZjxUPik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHBvcG92ZXJNb2RlbC5vdmVybGF5Q29uZmlnIHx8IHt9O1xyXG4gICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBwb3BvdmVyTW9kZWwudGFyZ2V0RWxlbWVudDtcclxuICAgICAgICBjb25zdCBob3N0RWxlbWVudCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQocG9wb3Zlck1vZGVsLmhvc3RSZWYpO1xyXG5cclxuICAgICAgICBpZiAoY29uZmlnPy5jbG9zZU9uQmFja2Ryb3BDbGljayAmJiBjb25maWc/Lmhhc0JhY2tkcm9wKSB7XHJcbiAgICAgICAgICAgIG92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiBwb3BvdmVyUmVmLmNsb3NlKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRhcmdldEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgKCkgPT4gcG9wb3ZlclJlZi5jbG9zZSgpLCB7IG9uY2U6IHRydWUgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocG9wb3Zlck1vZGVsLmFsaWdubWVudCA9PT0gJ2hvc3QnICYmIGhvc3RFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFsaWdubWVudERpbWVuc2lvbiA9IGdldEFsaWdubWVudERpbWVuc2lvbihwb3BvdmVyTW9kZWwucG9zaXRpb24pO1xyXG4gICAgICAgICAgICBjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihlbnRyaWVzID0+IHtcclxuICAgICAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaChob3N0ID0+IG92ZXJsYXlSZWYudXBkYXRlU2l6ZSh7IFthbGlnbm1lbnREaW1lbnNpb25dOiBob3N0LnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVthbGlnbm1lbnREaW1lbnNpb25dIH0pKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoaG9zdEVsZW1lbnQpO1xyXG4gICAgICAgICAgICBwb3BvdmVyUmVmLm9uQ2xvc2UucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4gcmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKGhvc3RFbGVtZW50KSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SG9zdEVsZW1lbnQ8VD4oaG9zdFJlZjogUG9pbnQgfCBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8VD4pOiBIVE1MRWxlbWVudCB7XHJcbiAgICAgICAgaWYgKCFob3N0UmVmIHx8ICg8UG9pbnQ+aG9zdFJlZikueCkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgaWYgKCg8RWxlbWVudFJlZj5ob3N0UmVmKS5uYXRpdmVFbGVtZW50KSByZXR1cm4gKDxFbGVtZW50UmVmPmhvc3RSZWYpLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgcmV0dXJuIDxIVE1MRWxlbWVudD5ob3N0UmVmO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|