@datarailsshared/datarailsshared 1.3.49 → 1.3.51
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/_datarailsshared.styles.css +3 -3
- package/assets/styles/_styles.scss +2 -2
- package/assets/styles/img/default-avatar.svg +5 -5
- package/bundles/datarailsshared-datarailsshared.umd.js +3984 -3995
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
- package/datarailsshared-datarailsshared-1.3.51.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +9 -9
- package/datarailsshared-datarailsshared.metadata.json +1 -1
- package/esm2015/datarailsshared-datarailsshared.js +9 -9
- package/esm2015/lib/date-tags/date-tag.component.js +70 -70
- package/esm2015/lib/date-tags/date-tag.module.js +50 -50
- package/esm2015/lib/date-tags/day-tag/day-tag.component.js +81 -81
- package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +143 -143
- package/esm2015/lib/date-tags/month-tag/month-tag.component.js +87 -87
- package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +101 -101
- package/esm2015/lib/date-tags/week-tag/week-tag.component.js +124 -124
- package/esm2015/lib/date-tags/year-tag/year-tag.component.js +93 -93
- package/esm2015/lib/dr-accordion/accordion-item-body.component.js +57 -57
- package/esm2015/lib/dr-accordion/accordion-item-header.component.js +79 -79
- package/esm2015/lib/dr-accordion/accordion-item.component.js +123 -123
- package/esm2015/lib/dr-accordion/accordion.component.js +43 -43
- package/esm2015/lib/dr-accordion/accordion.module.js +23 -23
- package/esm2015/lib/dr-avatar/dr-avatar.component.js +42 -42
- package/esm2015/lib/dr-avatar/dr-avatar.module.js +26 -26
- package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +15 -15
- package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +12 -12
- package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +97 -97
- package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +110 -110
- package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +89 -89
- package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +34 -34
- package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +24 -24
- package/esm2015/lib/dr-inputs/button/button.component.js +80 -80
- package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +63 -63
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.js +47 -47
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.component.js +183 -186
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.service.js +41 -41
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +129 -129
- package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +185 -185
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +51 -51
- package/esm2015/lib/dr-inputs/dr-model-debounce-change.directive.js +31 -31
- package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +90 -90
- package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +64 -64
- package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +56 -56
- package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +64 -64
- package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +164 -164
- package/esm2015/lib/dr-popover/dr-popover-ref.js +20 -20
- package/esm2015/lib/dr-popover/dr-popover.component.js +77 -77
- package/esm2015/lib/dr-popover/dr-popover.directive.js +72 -72
- package/esm2015/lib/dr-popover/dr-popover.module.js +23 -23
- package/esm2015/lib/dr-popover/dr-popover.service.js +102 -102
- package/esm2015/lib/dr-spinner/dr-spinner.component.js +29 -29
- package/esm2015/lib/dr-spinner/dr-spinner.directive.js +53 -53
- package/esm2015/lib/dr-spinner/dr-spinner.module.js +18 -18
- package/esm2015/lib/dr-tabs/dr-tab.component.js +23 -23
- package/esm2015/lib/dr-tabs/dr-tabs.component.js +28 -28
- package/esm2015/lib/dr-tabs/dr-tabs.module.js +30 -30
- package/esm2015/lib/dr-tags/dr-tag.component.js +54 -54
- package/esm2015/lib/dr-tags/dr-tag.module.js +22 -22
- package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +30 -30
- package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +102 -102
- package/esm2015/lib/dr-tooltip/dr-tooltip.module.js +23 -23
- package/esm2015/lib/list-tags/list-tag.component.js +41 -41
- package/esm2015/lib/list-tags/list-tag.module.js +29 -29
- package/esm2015/lib/models/constants.js +97 -97
- package/esm2015/lib/models/datePicker.js +40 -40
- package/esm2015/lib/models/dropdown.js +2 -2
- package/esm2015/lib/models/popover.js +27 -27
- package/esm2015/lib/models/serverTags.js +2 -2
- package/esm2015/public-api.js +57 -57
- package/fesm2015/datarailsshared-datarailsshared.js +3365 -3368
- package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
- package/lib/date-tags/date-tag.component.d.ts +27 -27
- package/lib/date-tags/date-tag.module.d.ts +4 -4
- package/lib/date-tags/day-tag/day-tag.component.d.ts +12 -12
- package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +21 -21
- package/lib/date-tags/month-tag/month-tag.component.d.ts +14 -14
- package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +17 -17
- package/lib/date-tags/week-tag/week-tag.component.d.ts +19 -19
- package/lib/date-tags/year-tag/year-tag.component.d.ts +14 -14
- package/lib/dr-accordion/accordion-item-body.component.d.ts +11 -11
- package/lib/dr-accordion/accordion-item-header.component.d.ts +16 -16
- package/lib/dr-accordion/accordion-item.component.d.ts +53 -53
- package/lib/dr-accordion/accordion.component.d.ts +19 -19
- package/lib/dr-accordion/accordion.module.d.ts +2 -2
- package/lib/dr-avatar/dr-avatar.component.d.ts +10 -10
- package/lib/dr-avatar/dr-avatar.module.d.ts +2 -2
- package/lib/dr-avatar/dr-avatar.pipe.d.ts +4 -4
- package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +5 -5
- package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +12 -12
- package/lib/dr-dropdown/dr-dropdown.component.d.ts +26 -26
- package/lib/dr-dropdown/dr-dropdown.directive.d.ts +23 -23
- package/lib/dr-dropdown/dr-dropdown.module.d.ts +2 -2
- package/lib/dr-dropdown/dr-dropdown.service.d.ts +11 -11
- package/lib/dr-inputs/button/button.component.d.ts +21 -21
- package/lib/dr-inputs/checkbox/checkbox.component.d.ts +20 -20
- package/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.d.ts +10 -10
- package/lib/dr-inputs/dr-date-picker/dr-date-picker.component.d.ts +54 -54
- package/lib/dr-inputs/dr-date-picker/dr-date-picker.service.d.ts +12 -12
- package/lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +41 -41
- package/lib/dr-inputs/dr-input/dr-input.component.d.ts +58 -58
- package/lib/dr-inputs/dr-inputs.module.d.ts +2 -2
- package/lib/dr-inputs/dr-model-debounce-change.directive.d.ts +11 -11
- package/lib/dr-inputs/dr-select/dr-select.component.d.ts +38 -38
- package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +23 -23
- package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +19 -19
- package/lib/dr-inputs/radio-button/radio-button.component.d.ts +21 -21
- package/lib/dr-inputs/radio-button/radio-group.component.d.ts +39 -39
- package/lib/dr-popover/dr-popover-ref.d.ts +16 -16
- package/lib/dr-popover/dr-popover.component.d.ts +26 -26
- package/lib/dr-popover/dr-popover.directive.d.ts +26 -26
- package/lib/dr-popover/dr-popover.module.d.ts +2 -2
- package/lib/dr-popover/dr-popover.service.d.ts +17 -17
- package/lib/dr-spinner/dr-spinner.component.d.ts +10 -10
- package/lib/dr-spinner/dr-spinner.directive.d.ts +15 -15
- package/lib/dr-spinner/dr-spinner.module.d.ts +2 -2
- package/lib/dr-tabs/dr-tab.component.d.ts +8 -8
- package/lib/dr-tabs/dr-tabs.component.d.ts +11 -11
- package/lib/dr-tabs/dr-tabs.module.d.ts +2 -2
- package/lib/dr-tags/dr-tag.component.d.ts +15 -15
- package/lib/dr-tags/dr-tag.module.d.ts +2 -2
- package/lib/dr-tooltip/dr-tooltip.component.d.ts +16 -16
- package/lib/dr-tooltip/dr-tooltip.directive.d.ts +23 -23
- package/lib/dr-tooltip/dr-tooltip.module.d.ts +2 -2
- package/lib/list-tags/list-tag.component.d.ts +14 -14
- package/lib/list-tags/list-tag.module.d.ts +2 -2
- package/lib/models/constants.d.ts +87 -87
- package/lib/models/datePicker.d.ts +25 -25
- package/lib/models/dropdown.d.ts +48 -48
- package/lib/models/popover.d.ts +32 -32
- package/lib/models/serverTags.d.ts +28 -28
- package/package.json +1 -1
- package/public-api.d.ts +55 -55
- package/datarailsshared-datarailsshared-1.3.49.tgz +0 -0
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';
|
|
3
|
-
import { NgModel } from '@angular/forms';
|
|
4
|
-
export class DrModelDebounceChangeDirective {
|
|
5
|
-
constructor(ngModel) {
|
|
6
|
-
this.ngModel = ngModel;
|
|
7
|
-
this.debounce = 200;
|
|
8
|
-
this.ngModelDebounceChange = new EventEmitter();
|
|
9
|
-
}
|
|
10
|
-
ngOnInit() {
|
|
11
|
-
this.subscription = this.ngModel.control.valueChanges
|
|
12
|
-
.pipe(skip(1), debounceTime(this.debounce), distinctUntilChanged())
|
|
13
|
-
.subscribe(value => this.ngModelDebounceChange.emit(value));
|
|
14
|
-
}
|
|
15
|
-
ngOnDestroy() {
|
|
16
|
-
this.subscription.unsubscribe();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
DrModelDebounceChangeDirective.decorators = [
|
|
20
|
-
{ type: Directive, args: [{
|
|
21
|
-
selector: '[ngModelDebounceChange]'
|
|
22
|
-
},] }
|
|
23
|
-
];
|
|
24
|
-
DrModelDebounceChangeDirective.ctorParameters = () => [
|
|
25
|
-
{ type: NgModel }
|
|
26
|
-
];
|
|
27
|
-
DrModelDebounceChangeDirective.propDecorators = {
|
|
28
|
-
debounce: [{ type: Input }],
|
|
29
|
-
ngModelDebounceChange: [{ type: Output }]
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';
|
|
3
|
+
import { NgModel } from '@angular/forms';
|
|
4
|
+
export class DrModelDebounceChangeDirective {
|
|
5
|
+
constructor(ngModel) {
|
|
6
|
+
this.ngModel = ngModel;
|
|
7
|
+
this.debounce = 200;
|
|
8
|
+
this.ngModelDebounceChange = new EventEmitter();
|
|
9
|
+
}
|
|
10
|
+
ngOnInit() {
|
|
11
|
+
this.subscription = this.ngModel.control.valueChanges
|
|
12
|
+
.pipe(skip(1), debounceTime(this.debounce), distinctUntilChanged())
|
|
13
|
+
.subscribe(value => this.ngModelDebounceChange.emit(value));
|
|
14
|
+
}
|
|
15
|
+
ngOnDestroy() {
|
|
16
|
+
this.subscription.unsubscribe();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
DrModelDebounceChangeDirective.decorators = [
|
|
20
|
+
{ type: Directive, args: [{
|
|
21
|
+
selector: '[ngModelDebounceChange]'
|
|
22
|
+
},] }
|
|
23
|
+
];
|
|
24
|
+
DrModelDebounceChangeDirective.ctorParameters = () => [
|
|
25
|
+
{ type: NgModel }
|
|
26
|
+
];
|
|
27
|
+
DrModelDebounceChangeDirective.propDecorators = {
|
|
28
|
+
debounce: [{ type: Input }],
|
|
29
|
+
ngModelDebounceChange: [{ type: Output }]
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItbW9kZWwtZGVib3VuY2UtY2hhbmdlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1tb2RlbC1kZWJvdW5jZS1jaGFuZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3pDLE1BQU0sT0FBTyw4QkFBOEI7SUFNekMsWUFBb0IsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUgzQixhQUFRLEdBQVcsR0FBRyxDQUFDO1FBQ3RCLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFHMUQsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVk7YUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUM7YUFDbEUsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7WUFwQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7YUFDcEM7OztZQUpRLE9BQU87Ozt1QkFRYixLQUFLO29DQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHNraXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ01vZGVsRGVib3VuY2VDaGFuZ2VdJ1xufSlcbmV4cG9ydCBjbGFzcyBEck1vZGVsRGVib3VuY2VDaGFuZ2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQElucHV0KCkgZGVib3VuY2U6IG51bWJlciA9IDIwMDtcbiAgQE91dHB1dCgpIG5nTW9kZWxEZWJvdW5jZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdNb2RlbDogTmdNb2RlbCkge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubmdNb2RlbC5jb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgIC5waXBlKHNraXAoMSksIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMubmdNb2RlbERlYm91bmNlQ2hhbmdlLmVtaXQodmFsdWUpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
import { Component, ContentChild, EventEmitter, Input, Output, ElementRef } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
const SELECT_HOST_ATTRIBUTES = [
|
|
4
|
-
'no-left-border',
|
|
5
|
-
'no-left-border-radius',
|
|
6
|
-
'no-right-border',
|
|
7
|
-
'no-right-border-radius',
|
|
8
|
-
];
|
|
9
|
-
export class DrSelectComponent {
|
|
10
|
-
constructor(elementRef) {
|
|
11
|
-
this.elementRef = elementRef;
|
|
12
|
-
this.items = [];
|
|
13
|
-
this.appendTo = 'body';
|
|
14
|
-
this.disabled = false;
|
|
15
|
-
this.optionWithDescription = false;
|
|
16
|
-
this.keyDownFn = () => true;
|
|
17
|
-
this.change = new EventEmitter();
|
|
18
|
-
this.onChange = () => { };
|
|
19
|
-
this.onTouched = () => { };
|
|
20
|
-
for (const attr of SELECT_HOST_ATTRIBUTES) {
|
|
21
|
-
if (this.hasHostAttributes(attr)) {
|
|
22
|
-
(this.getHostElement()).classList.add(attr);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
writeValue(value) {
|
|
27
|
-
this.selectedItem = value;
|
|
28
|
-
this.onChange(this.selectedItem);
|
|
29
|
-
}
|
|
30
|
-
registerOnChange(fn) {
|
|
31
|
-
this.onChange = fn;
|
|
32
|
-
if (fn && this.selectedItem) {
|
|
33
|
-
this.onChange(this.selectedItem);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
registerOnTouched(fn) {
|
|
37
|
-
this.onTouched = fn;
|
|
38
|
-
}
|
|
39
|
-
setDisabledState(isDisabled) {
|
|
40
|
-
this.disabled = isDisabled;
|
|
41
|
-
}
|
|
42
|
-
getHostElement() {
|
|
43
|
-
return this.elementRef.nativeElement;
|
|
44
|
-
}
|
|
45
|
-
hasHostAttributes(...attributes) {
|
|
46
|
-
return attributes.some(attribute => this.getHostElement().hasAttribute(attribute));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
DrSelectComponent.decorators = [
|
|
50
|
-
{ type: Component, args: [{
|
|
51
|
-
selector: 'dr-select',
|
|
52
|
-
template: " <ng-select [(ngModel)]=\"selectedItem\"\
|
|
53
|
-
providers: [{
|
|
54
|
-
provide: NG_VALUE_ACCESSOR,
|
|
55
|
-
useExisting: DrSelectComponent,
|
|
56
|
-
multi: true
|
|
57
|
-
}],
|
|
58
|
-
styles: [":host{width:100%;height:32px}:host.no-left-border-radius ::ng-deep ng-select.ng-select .ng-select-container{border-bottom-left-radius:0!important;border-top-left-radius:0!important}:host.no-right-border-radius ::ng-deep ng-select.ng-select .ng-select-container{border-bottom-right-radius:0!important;border-top-right-radius:0!important}:host.no-right-border ::ng-deep ng-select.ng-select .ng-select-container{border-right:none!important}:host.no-left-border ::ng-deep ng-select.ng-select .ng-select-container{border-left:none!important}:host ::ng-deep ng-select.ng-select .ng-select-container{min-height:32px;height:32px;width:100%;border-radius:6px!important;border:1px solid #C3C4CE;box-shadow:none!important}:host ::ng-deep ng-select.ng-select .ng-select-container:hover{border-color:#85889c}:host ::ng-deep ng-select.ng-select .ng-select-container:focus-within{border-color:#21b8f1}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-input{top:0!important;line-height:30px;padding:0 50px 0 8px!important;color:#151b3f;font-size:14px;font-weight:400}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container{padding:0 0 0 8px;height:100%;overflow:auto;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container .ng-input{padding:0 0 0 3px!important}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container{max-height:58px;height:100%}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container{max-height:58px;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{color:#151a41;height:24px;padding:2px 8px;font-size:12px;margin:2px 2px 2px 0;background:#E5E6EA;display:flex;flex-direction:row-reverse;align-items:center;border-radius:12px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-label{line-height:20px;padding:0!important}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon{border:none!important;padding:0 0 0 9px!important;color:#51566f;font-size:16px;font-weight:bold}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon,:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon:hover{background:transparent!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within{background:#E5E6EA!important;border:1px solid #E5E6EA!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-value,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover .ng-value,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within .ng-value{color:#bcbcbc!important}:host ::ng-deep ng-select.ng-select.ng-select-single.ng-invalid.ng-touched .ng-select-container,:host ::ng-deep ng-select.ng-select.ng-select-multiple.ng-invalid.ng-touched .ng-select-container{border-color:#de2833}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select{border:1px solid #DBDEE3;border-radius:6px!important;margin-top:8px!important;overflow:hidden}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option:empty{display:none}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option{display:flex;align-items:center;min-height:36px;padding:8px 12px;font-size:14px;line-height:22px}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option>.ng-option-label{text-overflow:ellipsis;overflow:hidden}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-marked{background:#fff}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{background:#F3F7FF;color:#151b3f}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected span,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked span{font-weight:normal!important}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option:hover,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected:hover,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked:hover{background:#F6F7F8}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description{max-width:97%;word-break:break-word;color:#4e566c;font-weight:400;font-size:12px;line-height:20px}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select.ng-option-selected .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select.ng-option-selected.ng-option-marked .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description{color:#0c142b}\n"]
|
|
59
|
-
},] }
|
|
60
|
-
];
|
|
61
|
-
DrSelectComponent.ctorParameters = () => [
|
|
62
|
-
{ type: ElementRef }
|
|
63
|
-
];
|
|
64
|
-
DrSelectComponent.propDecorators = {
|
|
65
|
-
className: [{ type: Input }],
|
|
66
|
-
items: [{ type: Input }],
|
|
67
|
-
addTag: [{ type: Input }],
|
|
68
|
-
appendTo: [{ type: Input }],
|
|
69
|
-
bindLabel: [{ type: Input }],
|
|
70
|
-
bindValue: [{ type: Input }],
|
|
71
|
-
clearable: [{ type: Input }],
|
|
72
|
-
searchable: [{ type: Input }],
|
|
73
|
-
searchFn: [{ type: Input }],
|
|
74
|
-
multiple: [{ type: Input }],
|
|
75
|
-
hideSelected: [{ type: Input }],
|
|
76
|
-
placeholder: [{ type: Input }],
|
|
77
|
-
loading: [{ type: Input }],
|
|
78
|
-
readonly: [{ type: Input }],
|
|
79
|
-
disabled: [{ type: Input }],
|
|
80
|
-
optionWithDescription: [{ type: Input }],
|
|
81
|
-
id: [{ type: Input }],
|
|
82
|
-
keyDownFn: [{ type: Input }],
|
|
83
|
-
selectedItem: [{ type: Input }],
|
|
84
|
-
change: [{ type: Output }],
|
|
85
|
-
labelTemplate: [{ type: ContentChild, args: ['labelTemplate',] }],
|
|
86
|
-
optionTemplate: [{ type: ContentChild, args: ['optionTemplate',] }],
|
|
87
|
-
optionHeaderTemplate: [{ type: ContentChild, args: ['optionHeaderTemplate',] }],
|
|
88
|
-
optionFooterTemplate: [{ type: ContentChild, args: ['optionFooterTemplate',] }]
|
|
89
|
-
};
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, ContentChild, EventEmitter, Input, Output, ElementRef } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
const SELECT_HOST_ATTRIBUTES = [
|
|
4
|
+
'no-left-border',
|
|
5
|
+
'no-left-border-radius',
|
|
6
|
+
'no-right-border',
|
|
7
|
+
'no-right-border-radius',
|
|
8
|
+
];
|
|
9
|
+
export class DrSelectComponent {
|
|
10
|
+
constructor(elementRef) {
|
|
11
|
+
this.elementRef = elementRef;
|
|
12
|
+
this.items = [];
|
|
13
|
+
this.appendTo = 'body';
|
|
14
|
+
this.disabled = false;
|
|
15
|
+
this.optionWithDescription = false;
|
|
16
|
+
this.keyDownFn = () => true;
|
|
17
|
+
this.change = new EventEmitter();
|
|
18
|
+
this.onChange = () => { };
|
|
19
|
+
this.onTouched = () => { };
|
|
20
|
+
for (const attr of SELECT_HOST_ATTRIBUTES) {
|
|
21
|
+
if (this.hasHostAttributes(attr)) {
|
|
22
|
+
(this.getHostElement()).classList.add(attr);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
writeValue(value) {
|
|
27
|
+
this.selectedItem = value;
|
|
28
|
+
this.onChange(this.selectedItem);
|
|
29
|
+
}
|
|
30
|
+
registerOnChange(fn) {
|
|
31
|
+
this.onChange = fn;
|
|
32
|
+
if (fn && this.selectedItem) {
|
|
33
|
+
this.onChange(this.selectedItem);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
registerOnTouched(fn) {
|
|
37
|
+
this.onTouched = fn;
|
|
38
|
+
}
|
|
39
|
+
setDisabledState(isDisabled) {
|
|
40
|
+
this.disabled = isDisabled;
|
|
41
|
+
}
|
|
42
|
+
getHostElement() {
|
|
43
|
+
return this.elementRef.nativeElement;
|
|
44
|
+
}
|
|
45
|
+
hasHostAttributes(...attributes) {
|
|
46
|
+
return attributes.some(attribute => this.getHostElement().hasAttribute(attribute));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
DrSelectComponent.decorators = [
|
|
50
|
+
{ type: Component, args: [{
|
|
51
|
+
selector: 'dr-select',
|
|
52
|
+
template: " <ng-select [(ngModel)]=\"selectedItem\"\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [multiple]=\"multiple\"\n [addTag]=\"addTag\"\n [appendTo]=\"appendTo\"\n [clearable]=\"clearable\"\n [searchable]=\"searchable\"\n [hideSelected]=\"hideSelected\"\n [placeholder]=\"placeholder\"\n [loading]=\"loading\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [keyDownFn]=\"keyDownFn\"\n [searchFn]=\"searchFn\"\n (change)=\"change.emit(selectedItem); onChange(selectedItem)\"\n class=\"dr-select\">\n <ng-template *ngIf=\"optionHeaderTemplate\" ng-header-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionHeaderTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"labelTemplate\" ng-label-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionTemplate\" ng-option-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionWithDescription\" ng-option-tmp let-item=\"item\">\n <div class=\"dr-select__option-with-desc__wrapper\">\n <div>{{ item.name }}</div>\n <div class=\"dr-select__option-with-desc__description\"\n >{{ item?.description }}</div>\n </div>\n </ng-template>\n <ng-template *ngIf=\"optionFooterTemplate\" ng-footer-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionFooterTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n </ng-template>\n </ng-select>\n",
|
|
53
|
+
providers: [{
|
|
54
|
+
provide: NG_VALUE_ACCESSOR,
|
|
55
|
+
useExisting: DrSelectComponent,
|
|
56
|
+
multi: true
|
|
57
|
+
}],
|
|
58
|
+
styles: [":host{width:100%;height:32px}:host.no-left-border-radius ::ng-deep ng-select.ng-select .ng-select-container{border-bottom-left-radius:0!important;border-top-left-radius:0!important}:host.no-right-border-radius ::ng-deep ng-select.ng-select .ng-select-container{border-bottom-right-radius:0!important;border-top-right-radius:0!important}:host.no-right-border ::ng-deep ng-select.ng-select .ng-select-container{border-right:none!important}:host.no-left-border ::ng-deep ng-select.ng-select .ng-select-container{border-left:none!important}:host ::ng-deep ng-select.ng-select .ng-select-container{min-height:32px;height:32px;width:100%;border-radius:6px!important;border:1px solid #C3C4CE;box-shadow:none!important}:host ::ng-deep ng-select.ng-select .ng-select-container:hover{border-color:#85889c}:host ::ng-deep ng-select.ng-select .ng-select-container:focus-within{border-color:#21b8f1}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-input{top:0!important;line-height:30px;padding:0 50px 0 8px!important;color:#151b3f;font-size:14px;font-weight:400}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container{padding:0 0 0 8px;height:100%;overflow:auto;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container .ng-input{padding:0 0 0 3px!important}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container{max-height:58px;height:100%}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container{max-height:58px;font-size:14px;line-height:18px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{color:#151a41;height:24px;padding:2px 8px;font-size:12px;margin:2px 2px 2px 0;background:#E5E6EA;display:flex;flex-direction:row-reverse;align-items:center;border-radius:12px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-label{line-height:20px;padding:0!important}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon{border:none!important;padding:0 0 0 9px!important;color:#51566f;font-size:16px;font-weight:bold}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon,:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value-icon:hover{background:transparent!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within{background:#E5E6EA!important;border:1px solid #E5E6EA!important}:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container .ng-value,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:hover .ng-value,:host ::ng-deep ng-select.ng-select.ng-select-disabled .ng-select-container:focus-within .ng-value{color:#bcbcbc!important}:host ::ng-deep ng-select.ng-select.ng-select-single.ng-invalid.ng-touched .ng-select-container,:host ::ng-deep ng-select.ng-select.ng-select-multiple.ng-invalid.ng-touched .ng-select-container{border-color:#de2833}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select{border:1px solid #DBDEE3;border-radius:6px!important;margin-top:8px!important;overflow:hidden}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option:empty{display:none}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option{display:flex;align-items:center;min-height:36px;padding:8px 12px;font-size:14px;line-height:22px}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option>.ng-option-label{text-overflow:ellipsis;overflow:hidden}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-marked{background:#fff}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{background:#F3F7FF;color:#151b3f}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected span,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked span{font-weight:normal!important}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option:hover,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected:hover,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked:hover{background:#F6F7F8}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description{max-width:97%;word-break:break-word;color:#4e566c;font-weight:400;font-size:12px;line-height:20px}::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select.ng-option-selected .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description,::ng-deep ng-dropdown-panel.ng-dropdown-panel.dr-select.ng-option-selected.ng-option-marked .dr-select__option-with-desc__wrapper .dr-select__option-with-desc__description{color:#0c142b}\n"]
|
|
59
|
+
},] }
|
|
60
|
+
];
|
|
61
|
+
DrSelectComponent.ctorParameters = () => [
|
|
62
|
+
{ type: ElementRef }
|
|
63
|
+
];
|
|
64
|
+
DrSelectComponent.propDecorators = {
|
|
65
|
+
className: [{ type: Input }],
|
|
66
|
+
items: [{ type: Input }],
|
|
67
|
+
addTag: [{ type: Input }],
|
|
68
|
+
appendTo: [{ type: Input }],
|
|
69
|
+
bindLabel: [{ type: Input }],
|
|
70
|
+
bindValue: [{ type: Input }],
|
|
71
|
+
clearable: [{ type: Input }],
|
|
72
|
+
searchable: [{ type: Input }],
|
|
73
|
+
searchFn: [{ type: Input }],
|
|
74
|
+
multiple: [{ type: Input }],
|
|
75
|
+
hideSelected: [{ type: Input }],
|
|
76
|
+
placeholder: [{ type: Input }],
|
|
77
|
+
loading: [{ type: Input }],
|
|
78
|
+
readonly: [{ type: Input }],
|
|
79
|
+
disabled: [{ type: Input }],
|
|
80
|
+
optionWithDescription: [{ type: Input }],
|
|
81
|
+
id: [{ type: Input }],
|
|
82
|
+
keyDownFn: [{ type: Input }],
|
|
83
|
+
selectedItem: [{ type: Input }],
|
|
84
|
+
change: [{ type: Output }],
|
|
85
|
+
labelTemplate: [{ type: ContentChild, args: ['labelTemplate',] }],
|
|
86
|
+
optionTemplate: [{ type: ContentChild, args: ['optionTemplate',] }],
|
|
87
|
+
optionHeaderTemplate: [{ type: ContentChild, args: ['optionHeaderTemplate',] }],
|
|
88
|
+
optionFooterTemplate: [{ type: ContentChild, args: ['optionFooterTemplate',] }]
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1zZWxlY3QvZHItc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE1BQU0sc0JBQXNCLEdBQUc7SUFDM0IsZ0JBQWdCO0lBQ2hCLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsd0JBQXdCO0NBQzNCLENBQUM7QUFZRixNQUFNLE9BQU8saUJBQWlCO0lBNEIxQixZQUFvQixVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQXpCOUMsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUV2QixhQUFRLEdBQUcsTUFBTSxDQUFDO1FBV2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBRTlCLGNBQVMsR0FBdUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBRTFELFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQWU5RCxhQUFRLEdBQTZCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUM5QyxjQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBUjdCLEtBQUssTUFBTSxJQUFJLElBQUksc0JBQXNCLEVBQUU7WUFDdkMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzlCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMvQztTQUNKO0lBQ0wsQ0FBQztJQUtELFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBRW5CLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDcEM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVPLGNBQWM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRU8saUJBQWlCLENBQUMsR0FBRyxVQUFvQjtRQUM3QyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQzs7O1lBNUVKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsV0FBVztnQkFDckIsazlEQUF5QztnQkFFekMsU0FBUyxFQUFFLENBQUM7d0JBQ1IsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLGlCQUFpQjt3QkFDOUIsS0FBSyxFQUFFLElBQUk7cUJBQ2QsQ0FBQzs7YUFDTDs7O1lBbkIyRSxVQUFVOzs7d0JBc0JqRixLQUFLO29CQUNMLEtBQUs7cUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3dCQUNMLEtBQUs7d0JBQ0wsS0FBSzt3QkFDTCxLQUFLO3lCQUNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLOzJCQUNMLEtBQUs7MEJBQ0wsS0FBSztzQkFDTCxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSztvQ0FDTCxLQUFLO2lCQUNMLEtBQUs7d0JBQ0wsS0FBSzsyQkFDTCxLQUFLO3FCQUNMLE1BQU07NEJBRU4sWUFBWSxTQUFDLGVBQWU7NkJBQzVCLFlBQVksU0FBQyxnQkFBZ0I7bUNBQzdCLFlBQVksU0FBQyxzQkFBc0I7bUNBQ25DLFlBQVksU0FBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5jb25zdCBTRUxFQ1RfSE9TVF9BVFRSSUJVVEVTID0gW1xuICAgICduby1sZWZ0LWJvcmRlcicsXG4gICAgJ25vLWxlZnQtYm9yZGVyLXJhZGl1cycsXG4gICAgJ25vLXJpZ2h0LWJvcmRlcicsXG4gICAgJ25vLXJpZ2h0LWJvcmRlci1yYWRpdXMnLFxuXTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW3tcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgIHVzZUV4aXN0aW5nOiBEclNlbGVjdENvbXBvbmVudCxcbiAgICAgICAgbXVsdGk6IHRydWVcbiAgICB9XVxufSlcbmV4cG9ydCBjbGFzcyBEclNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICAgIEBJbnB1dCgpIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGl0ZW1zOiBBcnJheTxhbnk+ID0gW107XG4gICAgQElucHV0KCkgYWRkVGFnOiBib29sZWFuIHwgKCh0ZXJtOiBzdHJpbmcpID0+IGFueSB8IFByb21pc2U8YW55Pik7XG4gICAgQElucHV0KCkgYXBwZW5kVG8gPSAnYm9keSc7XG4gICAgQElucHV0KCkgYmluZExhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYmluZFZhbHVlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgY2xlYXJhYmxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2VhcmNoRm46ICh0ZXJtOiBzdHJpbmcsIGl0ZW06IGFueSkgPT4gYm9vbGVhbjtcbiAgICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoaWRlU2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgb3B0aW9uV2l0aERlc2NyaXB0aW9uID0gZmFsc2U7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBrZXlEb3duRm46ICgkZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkSXRlbTogYW55O1xuICAgIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKCdsYWJlbFRlbXBsYXRlJykgbGFiZWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkKCdvcHRpb25UZW1wbGF0ZScpIG9wdGlvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBDb250ZW50Q2hpbGQoJ29wdGlvbkhlYWRlclRlbXBsYXRlJykgb3B0aW9uSGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnb3B0aW9uRm9vdGVyVGVtcGxhdGUnKSBvcHRpb25Gb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICAgICAgZm9yIChjb25zdCBhdHRyIG9mIFNFTEVDVF9IT1NUX0FUVFJJQlVURVMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0hvc3RBdHRyaWJ1dGVzKGF0dHIpKSB7XG4gICAgICAgICAgICAgICAgKHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSkuY2xhc3NMaXN0LmFkZChhdHRyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRJdGVtKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuXG4gICAgICAgIGlmIChmbiAmJiB0aGlzLnNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkSXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzSG9zdEF0dHJpYnV0ZXMoLi4uYXR0cmlidXRlczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXMuc29tZShhdHRyaWJ1dGUgPT4gdGhpcy5nZXRIb3N0RWxlbWVudCgpLmhhc0F0dHJpYnV0ZShhdHRyaWJ1dGUpKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, HostBinding } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
export class DrToggleComponent {
|
|
4
|
-
constructor(cdr) {
|
|
5
|
-
this.cdr = cdr;
|
|
6
|
-
this._disabled = false;
|
|
7
|
-
this._elementClass = [];
|
|
8
|
-
this.checkedChange = new EventEmitter();
|
|
9
|
-
this.onChange = () => { };
|
|
10
|
-
this.onTouched = () => { };
|
|
11
|
-
}
|
|
12
|
-
set disabled(value) {
|
|
13
|
-
this.setDisabledState(value);
|
|
14
|
-
}
|
|
15
|
-
get elementClass() { return this._elementClass.join(' '); }
|
|
16
|
-
ngAfterViewInit() {
|
|
17
|
-
if (this.toggleTitleRight) {
|
|
18
|
-
this._elementClass.push('toggle-label-alignment');
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
writeValue(value) {
|
|
22
|
-
this.checkedStatus = value;
|
|
23
|
-
this.cdr.markForCheck();
|
|
24
|
-
}
|
|
25
|
-
registerOnChange(fn) {
|
|
26
|
-
this.onChange = fn;
|
|
27
|
-
}
|
|
28
|
-
registerOnTouched(fn) {
|
|
29
|
-
this.onTouched = fn;
|
|
30
|
-
}
|
|
31
|
-
setDisabledState(isDisabled) {
|
|
32
|
-
this._disabled = isDisabled;
|
|
33
|
-
}
|
|
34
|
-
setValue() {
|
|
35
|
-
this.checkedStatus = !this.checkedStatus;
|
|
36
|
-
this.onChange(this.checkedStatus);
|
|
37
|
-
this.checkedChange.emit(this.checkedStatus);
|
|
38
|
-
this.onTouched();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
DrToggleComponent.decorators = [
|
|
42
|
-
{ type: Component, args: [{
|
|
43
|
-
selector: 'dr-toggle',
|
|
44
|
-
template: "<span class=\"mr-3\" *ngIf=\"toggleTitle && !toggleTitleRight\">{{toggleTitle}}</span>\
|
|
45
|
-
providers: [
|
|
46
|
-
{ provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }
|
|
47
|
-
],
|
|
48
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
49
|
-
styles: [":host{display:flex;justify-content:space-between;align-items:center}:host.toggle-label-alignment{justify-content:start}:host .toggle-container{display:flex;align-items:center}:host .toggle-container.disabled{pointer-events:none}:host .toggle-container.disabled .toggle-body{background-color:#8f9bb329!important}:host .toggle-container.disabled .toggle-body i{background:rgba(143,155,179,.24)!important}:host .toggle-container.success input:checked+span.toggle-body{background-color:#03a678}:host .toggle-container input{display:none}:host .toggle-container input:checked+span.toggle-body>i,:host .toggle-container input:checked+span.toggle-body:active>i{margin-left:16px}:host .toggle-container input:checked+span.toggle-body{background-color:#4646ce}:host .toggle-container .toggle-body{cursor:pointer;display:block;width:30px;height:16px;margin:7px auto;border-radius:15px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;background-color:#8f929e;line-height:1}:host .toggle-container .toggle-body:active{background-color:#a6b9cb}:host .toggle-container .toggle-body-wrapper{display:flex;flex-direction:column}:host .toggle-container .toggle-body i{height:12px;width:12px;background:#fff;display:inline-block;border-radius:100px;margin-top:2px;margin-left:1.5px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;pointer-events:none}\n"]
|
|
50
|
-
},] }
|
|
51
|
-
];
|
|
52
|
-
DrToggleComponent.ctorParameters = () => [
|
|
53
|
-
{ type: ChangeDetectorRef }
|
|
54
|
-
];
|
|
55
|
-
DrToggleComponent.propDecorators = {
|
|
56
|
-
toggleTitle: [{ type: Input }],
|
|
57
|
-
toggleTitleRight: [{ type: Input }],
|
|
58
|
-
successType: [{ type: Input }],
|
|
59
|
-
checkedStatus: [{ type: Input }],
|
|
60
|
-
disabled: [{ type: Input }],
|
|
61
|
-
checkedChange: [{ type: Output }],
|
|
62
|
-
elementClass: [{ type: HostBinding, args: ['class',] }]
|
|
63
|
-
};
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, HostBinding } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
export class DrToggleComponent {
|
|
4
|
+
constructor(cdr) {
|
|
5
|
+
this.cdr = cdr;
|
|
6
|
+
this._disabled = false;
|
|
7
|
+
this._elementClass = [];
|
|
8
|
+
this.checkedChange = new EventEmitter();
|
|
9
|
+
this.onChange = () => { };
|
|
10
|
+
this.onTouched = () => { };
|
|
11
|
+
}
|
|
12
|
+
set disabled(value) {
|
|
13
|
+
this.setDisabledState(value);
|
|
14
|
+
}
|
|
15
|
+
get elementClass() { return this._elementClass.join(' '); }
|
|
16
|
+
ngAfterViewInit() {
|
|
17
|
+
if (this.toggleTitleRight) {
|
|
18
|
+
this._elementClass.push('toggle-label-alignment');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
writeValue(value) {
|
|
22
|
+
this.checkedStatus = value;
|
|
23
|
+
this.cdr.markForCheck();
|
|
24
|
+
}
|
|
25
|
+
registerOnChange(fn) {
|
|
26
|
+
this.onChange = fn;
|
|
27
|
+
}
|
|
28
|
+
registerOnTouched(fn) {
|
|
29
|
+
this.onTouched = fn;
|
|
30
|
+
}
|
|
31
|
+
setDisabledState(isDisabled) {
|
|
32
|
+
this._disabled = isDisabled;
|
|
33
|
+
}
|
|
34
|
+
setValue() {
|
|
35
|
+
this.checkedStatus = !this.checkedStatus;
|
|
36
|
+
this.onChange(this.checkedStatus);
|
|
37
|
+
this.checkedChange.emit(this.checkedStatus);
|
|
38
|
+
this.onTouched();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
DrToggleComponent.decorators = [
|
|
42
|
+
{ type: Component, args: [{
|
|
43
|
+
selector: 'dr-toggle',
|
|
44
|
+
template: "<span class=\"mr-3\" *ngIf=\"toggleTitle && !toggleTitleRight\">{{toggleTitle}}</span>\n<label class=\"toggle-container\" [class.success]=\"successType\" [class.disabled]=\"_disabled\">\n <input type=\"checkbox\"\n [checked]=\"checkedStatus\"\n [disabled]=\"_disabled\"\n (click)=\"setValue()\">\n <span class=\"toggle-body\">\n <i></i>\n </span>\n <ng-content></ng-content>\n</label>\n<span class=\"ml-3\" *ngIf=\"toggleTitle && toggleTitleRight\">{{toggleTitle}}</span>\n",
|
|
45
|
+
providers: [
|
|
46
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }
|
|
47
|
+
],
|
|
48
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
49
|
+
styles: [":host{display:flex;justify-content:space-between;align-items:center}:host.toggle-label-alignment{justify-content:start}:host .toggle-container{display:flex;align-items:center}:host .toggle-container.disabled{pointer-events:none}:host .toggle-container.disabled .toggle-body{background-color:#8f9bb329!important}:host .toggle-container.disabled .toggle-body i{background:rgba(143,155,179,.24)!important}:host .toggle-container.success input:checked+span.toggle-body{background-color:#03a678}:host .toggle-container input{display:none}:host .toggle-container input:checked+span.toggle-body>i,:host .toggle-container input:checked+span.toggle-body:active>i{margin-left:16px}:host .toggle-container input:checked+span.toggle-body{background-color:#4646ce}:host .toggle-container .toggle-body{cursor:pointer;display:block;width:30px;height:16px;margin:7px auto;border-radius:15px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;background-color:#8f929e;line-height:1}:host .toggle-container .toggle-body:active{background-color:#a6b9cb}:host .toggle-container .toggle-body-wrapper{display:flex;flex-direction:column}:host .toggle-container .toggle-body i{height:12px;width:12px;background:#fff;display:inline-block;border-radius:100px;margin-top:2px;margin-left:1.5px;transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;pointer-events:none}\n"]
|
|
50
|
+
},] }
|
|
51
|
+
];
|
|
52
|
+
DrToggleComponent.ctorParameters = () => [
|
|
53
|
+
{ type: ChangeDetectorRef }
|
|
54
|
+
];
|
|
55
|
+
DrToggleComponent.propDecorators = {
|
|
56
|
+
toggleTitle: [{ type: Input }],
|
|
57
|
+
toggleTitleRight: [{ type: Input }],
|
|
58
|
+
successType: [{ type: Input }],
|
|
59
|
+
checkedStatus: [{ type: Input }],
|
|
60
|
+
disabled: [{ type: Input }],
|
|
61
|
+
checkedChange: [{ type: Output }],
|
|
62
|
+
elementClass: [{ type: HostBinding, args: ['class',] }]
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci10b2dnbGUvZHItdG9nZ2xlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUVkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQVd2RSxNQUFNLE9BQU8saUJBQWlCO0lBbUIxQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWxCMUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQWFuQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFZN0MsYUFBUSxHQUE2QixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDOUMsY0FBUyxHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQVRZLENBQUM7SUFQOUMsSUFBYSxRQUFRLENBQUMsS0FBYztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUdELElBQTBCLFlBQVksS0FBWSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQztJQUl2RixlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFLSCxVQUFVLENBQUMsS0FBYztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQzs7O1lBNURKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsV0FBVztnQkFDckIsc2hCQUF5QztnQkFFekMsU0FBUyxFQUFFO29CQUNQLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO2lCQUM1RTtnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQWxCRyxpQkFBaUI7OzswQkF1QmhCLEtBQUs7K0JBRUwsS0FBSzswQkFFTCxLQUFLOzRCQUVMLEtBQUs7dUJBRUwsS0FBSzs0QkFHTCxNQUFNOzJCQUVOLFdBQVcsU0FBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBBZnRlclZpZXdJbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci10b2dnbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLXRvZ2dsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBEclRvZ2dsZUNvbXBvbmVudCwgbXVsdGk6IHRydWV9XG4gICAgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEclRvZ2dsZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcbiAgICBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBfZWxlbWVudENsYXNzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICB0b2dnbGVUaXRsZTogYW55O1xuICAgIEBJbnB1dCgpXG4gICAgdG9nZ2xlVGl0bGVSaWdodDogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIHN1Y2Nlc3NUeXBlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgY2hlY2tlZFN0YXR1czogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHZhbHVlKTtcbiAgICB9XG4gICAgQE91dHB1dCgpIGNoZWNrZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGVsZW1lbnRDbGFzcygpOiBzdHJpbmcge3JldHVybiB0aGlzLl9lbGVtZW50Q2xhc3Muam9pbignICcpO31cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudG9nZ2xlVGl0bGVSaWdodCkge1xuICAgICAgICAgIHRoaXMuX2VsZW1lbnRDbGFzcy5wdXNoKCd0b2dnbGUtbGFiZWwtYWxpZ25tZW50Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jaGVja2VkU3RhdHVzID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgpIHtcbiAgICAgICAgdGhpcy5jaGVja2VkU3RhdHVzID0gIXRoaXMuY2hlY2tlZFN0YXR1cztcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmNoZWNrZWRTdGF0dXMpO1xuICAgICAgICB0aGlzLmNoZWNrZWRDaGFuZ2UuZW1pdCh0aGlzLmNoZWNrZWRTdGF0dXMpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
export class DrToggleButtonComponent {
|
|
4
|
-
constructor(cdr) {
|
|
5
|
-
this.cdr = cdr;
|
|
6
|
-
this._disabled = false;
|
|
7
|
-
this.bindLabel = null;
|
|
8
|
-
this.bindValue = null;
|
|
9
|
-
this.onChange = () => { };
|
|
10
|
-
this.onTouched = () => { };
|
|
11
|
-
}
|
|
12
|
-
set disabled(value) {
|
|
13
|
-
this.setDisabledState(value);
|
|
14
|
-
}
|
|
15
|
-
writeValue(value) {
|
|
16
|
-
this.selectedValue = value;
|
|
17
|
-
this.cdr.markForCheck();
|
|
18
|
-
}
|
|
19
|
-
registerOnChange(fn) {
|
|
20
|
-
this.onChange = fn;
|
|
21
|
-
}
|
|
22
|
-
registerOnTouched(fn) {
|
|
23
|
-
this.onTouched = fn;
|
|
24
|
-
}
|
|
25
|
-
setDisabledState(isDisabled) {
|
|
26
|
-
this._disabled = isDisabled;
|
|
27
|
-
}
|
|
28
|
-
setValue(item) {
|
|
29
|
-
this.selectedValue = item[this.bindValue] || item;
|
|
30
|
-
this.onChange(this.selectedValue);
|
|
31
|
-
this.onTouched();
|
|
32
|
-
this.cdr.markForCheck();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
DrToggleButtonComponent.decorators = [
|
|
36
|
-
{ type: Component, args: [{
|
|
37
|
-
selector: 'dr-toggle-button',
|
|
38
|
-
template: "<div class=\"toggle-container\" [class.disabled]=\"this._disabled \">\
|
|
39
|
-
providers: [
|
|
40
|
-
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrToggleButtonComponent), multi: true }
|
|
41
|
-
],
|
|
42
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
43
|
-
styles: [".toggle-container{display:flex;flex-wrap:nowrap;background:#F6F7F8;border:1px solid #C3C4CE;box-sizing:border-box;border-radius:20px;height:28px}.toggle-container.disabled{pointer-events:none}.toggle-container__item{height:28px;display:flex;align-items:center;justify-content:center;padding:4px 16px;border-radius:20px;margin:-1px;cursor:pointer;font-weight:400;font-size:12px;line-height:20px;white-space:nowrap;color:#4e566c}.toggle-container__item.selected{font-weight:400;background:#F2F2FB;border:1px solid #7F7FDD;color:#25258c}\n"]
|
|
44
|
-
},] }
|
|
45
|
-
];
|
|
46
|
-
DrToggleButtonComponent.ctorParameters = () => [
|
|
47
|
-
{ type: ChangeDetectorRef }
|
|
48
|
-
];
|
|
49
|
-
DrToggleButtonComponent.propDecorators = {
|
|
50
|
-
items: [{ type: Input }],
|
|
51
|
-
bindLabel: [{ type: Input }],
|
|
52
|
-
bindValue: [{ type: Input }],
|
|
53
|
-
selectedValue: [{ type: Input }],
|
|
54
|
-
disabled: [{ type: Input }]
|
|
55
|
-
};
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
export class DrToggleButtonComponent {
|
|
4
|
+
constructor(cdr) {
|
|
5
|
+
this.cdr = cdr;
|
|
6
|
+
this._disabled = false;
|
|
7
|
+
this.bindLabel = null;
|
|
8
|
+
this.bindValue = null;
|
|
9
|
+
this.onChange = () => { };
|
|
10
|
+
this.onTouched = () => { };
|
|
11
|
+
}
|
|
12
|
+
set disabled(value) {
|
|
13
|
+
this.setDisabledState(value);
|
|
14
|
+
}
|
|
15
|
+
writeValue(value) {
|
|
16
|
+
this.selectedValue = value;
|
|
17
|
+
this.cdr.markForCheck();
|
|
18
|
+
}
|
|
19
|
+
registerOnChange(fn) {
|
|
20
|
+
this.onChange = fn;
|
|
21
|
+
}
|
|
22
|
+
registerOnTouched(fn) {
|
|
23
|
+
this.onTouched = fn;
|
|
24
|
+
}
|
|
25
|
+
setDisabledState(isDisabled) {
|
|
26
|
+
this._disabled = isDisabled;
|
|
27
|
+
}
|
|
28
|
+
setValue(item) {
|
|
29
|
+
this.selectedValue = item[this.bindValue] || item;
|
|
30
|
+
this.onChange(this.selectedValue);
|
|
31
|
+
this.onTouched();
|
|
32
|
+
this.cdr.markForCheck();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
DrToggleButtonComponent.decorators = [
|
|
36
|
+
{ type: Component, args: [{
|
|
37
|
+
selector: 'dr-toggle-button',
|
|
38
|
+
template: "<div class=\"toggle-container\" [class.disabled]=\"this._disabled \">\n <div *ngFor=\"let item of items\" (click)=\"setValue(item)\"\n [class.selected]=\"item[bindValue] === selectedValue || item === selectedValue\"\n class=\"toggle-container__item\">\n {{item[bindLabel] || item.name || item}}\n </div>\n</div>\n",
|
|
39
|
+
providers: [
|
|
40
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrToggleButtonComponent), multi: true }
|
|
41
|
+
],
|
|
42
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
43
|
+
styles: [".toggle-container{display:flex;flex-wrap:nowrap;background:#F6F7F8;border:1px solid #C3C4CE;box-sizing:border-box;border-radius:20px;height:28px}.toggle-container.disabled{pointer-events:none}.toggle-container__item{height:28px;display:flex;align-items:center;justify-content:center;padding:4px 16px;border-radius:20px;margin:-1px;cursor:pointer;font-weight:400;font-size:12px;line-height:20px;white-space:nowrap;color:#4e566c}.toggle-container__item.selected{font-weight:400;background:#F2F2FB;border:1px solid #7F7FDD;color:#25258c}\n"]
|
|
44
|
+
},] }
|
|
45
|
+
];
|
|
46
|
+
DrToggleButtonComponent.ctorParameters = () => [
|
|
47
|
+
{ type: ChangeDetectorRef }
|
|
48
|
+
];
|
|
49
|
+
DrToggleButtonComponent.propDecorators = {
|
|
50
|
+
items: [{ type: Input }],
|
|
51
|
+
bindLabel: [{ type: Input }],
|
|
52
|
+
bindValue: [{ type: Input }],
|
|
53
|
+
selectedValue: [{ type: Input }],
|
|
54
|
+
disabled: [{ type: Input }]
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZHItdG9nZ2xlLWJ1dHRvbi9kci10b2dnbGUtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsVUFBVSxFQUNyQixLQUFLLEdBQ1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBYXpFLE1BQU0sT0FBTyx1QkFBdUI7SUFXaEMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFWMUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdULGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBUXpDLGFBQVEsR0FBNkIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzlDLGNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFIWSxDQUFDO0lBSjlDLElBQWEsUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFPRCxVQUFVLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQUk7UUFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7OztZQWhESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsa1dBQWdEO2dCQUVoRCxTQUFTLEVBQUU7b0JBQ1AsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7aUJBQ3BHO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O1lBZEcsaUJBQWlCOzs7b0JBb0JoQixLQUFLO3dCQUNMLEtBQUs7d0JBQ0wsS0FBSzs0QkFDTCxLQUFLO3VCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCwgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItdG9nZ2xlLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLXRvZ2dsZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLXRvZ2dsZS1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEclRvZ2dsZUJ1dHRvbkNvbXBvbmVudCksIG11bHRpOiB0cnVlfVxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cblxuZXhwb3J0IGNsYXNzIERyVG9nZ2xlQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgaXRlbXM6IHN0cmluZ1tdIHwgYW55W107XG4gICAgQElucHV0KCkgYmluZExhYmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBiaW5kVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgb25DaGFuZ2U6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCA9ICgpID0+IHt9O1xuICAgIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoaXRlbSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBpdGVtW3RoaXMuYmluZFZhbHVlXSB8fCBpdGVtO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbn1cbiJdfQ==
|