@mintplayer/ng-bootstrap 14.8.1 → 14.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_bootstrap.scss +10 -1
- package/esm2020/lib/components/context-menu/context-menu.directive.mjs +1 -6
- package/esm2020/lib/components/index.mjs +3 -1
- package/esm2020/lib/components/offcanvas/components/offcanvas/offcanvas.component.mjs +1 -2
- package/esm2020/lib/components/range/component/range.component.mjs +15 -0
- package/esm2020/lib/components/range/index.mjs +4 -0
- package/esm2020/lib/components/range/range.module.mjs +19 -0
- package/esm2020/lib/components/range/value-accessor/range-value-accessor.mjs +62 -0
- package/esm2020/lib/components/select/component/select.component.mjs +85 -0
- package/esm2020/lib/components/select/index.mjs +5 -0
- package/esm2020/lib/components/select/select.module.mjs +31 -0
- package/esm2020/lib/components/select/types/index.mjs +2 -0
- package/esm2020/lib/components/select/types/select-size.mjs +2 -0
- package/esm2020/lib/components/select/value-accessors/index.mjs +2 -0
- package/esm2020/lib/components/select/value-accessors/select-value-accessor.mjs +171 -0
- package/esm2020/lib/components/toggle-button/component/toggle-button.component.mjs +162 -0
- package/esm2020/lib/components/toggle-button/directives/index.mjs +2 -0
- package/esm2020/lib/components/toggle-button/directives/toggle-button-group/toggle-button-group.directive.mjs +19 -0
- package/esm2020/lib/components/toggle-button/index.mjs +5 -2
- package/esm2020/lib/components/toggle-button/toggle-button.module.mjs +15 -5
- package/esm2020/lib/components/toggle-button/types/check-style.mjs +2 -0
- package/esm2020/lib/components/toggle-button/types/index.mjs +2 -0
- package/esm2020/lib/components/toggle-button/value-accessor/toggle-button-value-accessor.mjs +108 -0
- package/fesm2015/mintplayer-ng-bootstrap.mjs +605 -15
- package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap.mjs +603 -15
- package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
- package/lib/components/index.d.ts +2 -0
- package/lib/components/range/component/range.component.d.ts +8 -0
- package/lib/components/range/index.d.ts +3 -0
- package/lib/components/range/range.module.d.ts +9 -0
- package/lib/components/range/value-accessor/range-value-accessor.d.ts +20 -0
- package/lib/components/select/component/select.component.d.ts +26 -0
- package/lib/components/select/index.d.ts +4 -0
- package/lib/components/select/select.module.d.ts +9 -0
- package/lib/components/select/types/index.d.ts +1 -0
- package/lib/components/select/types/select-size.d.ts +1 -0
- package/lib/components/select/value-accessors/index.d.ts +1 -0
- package/lib/components/select/value-accessors/select-value-accessor.d.ts +44 -0
- package/lib/components/toggle-button/component/toggle-button.component.d.ts +38 -0
- package/lib/components/toggle-button/directives/index.d.ts +1 -0
- package/lib/components/toggle-button/directives/toggle-button-group/toggle-button-group.directive.d.ts +9 -0
- package/lib/components/toggle-button/index.d.ts +4 -1
- package/lib/components/toggle-button/toggle-button.module.d.ts +5 -3
- package/lib/components/toggle-button/types/check-style.d.ts +1 -0
- package/lib/components/toggle-button/types/index.d.ts +1 -0
- package/lib/components/toggle-button/value-accessor/toggle-button-value-accessor.d.ts +20 -0
- package/package.json +1 -1
- package/esm2020/lib/components/toggle-button/toggle-button.component.mjs +0 -45
- package/lib/components/toggle-button/toggle-button.component.d.ts +0 -15
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
// import { AfterViewInit, Directive, forwardRef, HostListener, Input, OnDestroy } from '@angular/core';
|
|
2
|
+
// import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
// import { fromEvent, Subject, takeUntil } from 'rxjs';
|
|
4
|
+
// import { BsSelectComponent } from '../component/select.component';
|
|
5
|
+
import { Directive, ElementRef, forwardRef, Host, HostListener, Input, Optional, Renderer2 } from "@angular/core";
|
|
6
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
7
|
+
import { BsSelectComponent } from "../component/select.component";
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../component/select.component";
|
|
10
|
+
export class BsSelectValueAccessor {
|
|
11
|
+
constructor(_renderer, _elementRef, selectBox) {
|
|
12
|
+
this._renderer = _renderer;
|
|
13
|
+
this._elementRef = _elementRef;
|
|
14
|
+
this.selectBox = selectBox;
|
|
15
|
+
this.onChange = (_) => { };
|
|
16
|
+
this.onTouched = () => { };
|
|
17
|
+
this.optionMap = new Map();
|
|
18
|
+
this.idCounter = 0;
|
|
19
|
+
this.compareWithFunction = Object.is;
|
|
20
|
+
}
|
|
21
|
+
registerOnTouched(fn) {
|
|
22
|
+
this.onTouched = fn;
|
|
23
|
+
}
|
|
24
|
+
registerOnChange(fn) {
|
|
25
|
+
this.onChange = (valueString) => {
|
|
26
|
+
// View -> Model
|
|
27
|
+
this.value = this.getOptionValue(valueString);
|
|
28
|
+
fn(this.value);
|
|
29
|
+
// fn(valueString);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
setDisabledState(isDisabled) {
|
|
33
|
+
this.setProperty('disabled', isDisabled);
|
|
34
|
+
}
|
|
35
|
+
setProperty(key, value) {
|
|
36
|
+
// if (this._elementRef) {
|
|
37
|
+
// this._renderer.setProperty(this._elementRef.nativeElement, key, value);
|
|
38
|
+
// }
|
|
39
|
+
if (this.selectBox.selectBox) {
|
|
40
|
+
this._renderer.setProperty(this.selectBox.selectBox.nativeElement, key, value);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
hostOnChange(ev) {
|
|
44
|
+
this.onChange(ev.target.value);
|
|
45
|
+
}
|
|
46
|
+
hostBlur(ev) {
|
|
47
|
+
this.onTouched();
|
|
48
|
+
}
|
|
49
|
+
set compareWith(value) {
|
|
50
|
+
if (typeof value !== 'function') {
|
|
51
|
+
throw new Error('compareWith must be a function');
|
|
52
|
+
}
|
|
53
|
+
this.compareWithFunction = value;
|
|
54
|
+
}
|
|
55
|
+
buildValueString(id, value) {
|
|
56
|
+
if (id == null) {
|
|
57
|
+
return `${value}`;
|
|
58
|
+
}
|
|
59
|
+
if (value && (typeof value === 'object')) {
|
|
60
|
+
value = 'Object';
|
|
61
|
+
}
|
|
62
|
+
return `${id}: ${value}`.slice(0, 50);
|
|
63
|
+
}
|
|
64
|
+
extractId(valueString) {
|
|
65
|
+
return valueString.split(':')[0];
|
|
66
|
+
}
|
|
67
|
+
writeValue(value) {
|
|
68
|
+
this.value = value;
|
|
69
|
+
// console.log(`WriteValue ${this.selectBox.identifier}`, value);
|
|
70
|
+
const id = this.getOptionId(value);
|
|
71
|
+
const valueString = this.buildValueString(id, value);
|
|
72
|
+
this.setProperty('value', valueString);
|
|
73
|
+
}
|
|
74
|
+
registerOption() {
|
|
75
|
+
return (this.idCounter++).toString();
|
|
76
|
+
}
|
|
77
|
+
getOptionId(value) {
|
|
78
|
+
for (const id of Array.from(this.optionMap.keys())) {
|
|
79
|
+
if (this.compareWithFunction(this.optionMap.get(id), value)) {
|
|
80
|
+
return id;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// This shouldn't happen
|
|
84
|
+
// debugger;
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
getOptionValue(valueString) {
|
|
88
|
+
const id = this.extractId(valueString);
|
|
89
|
+
return this.optionMap.has(id) ? this.optionMap.get(id) : valueString;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
BsSelectValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsSelectValueAccessor, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.BsSelectComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
93
|
+
BsSelectValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BsSelectValueAccessor, selector: "bs-select", inputs: { compareWith: "compareWith" }, host: { listeners: { "change": "hostOnChange($event)", "blur": "hostBlur($event)" } }, providers: [{
|
|
94
|
+
provide: NG_VALUE_ACCESSOR,
|
|
95
|
+
useExisting: forwardRef(() => BsSelectValueAccessor),
|
|
96
|
+
multi: true,
|
|
97
|
+
}], ngImport: i0 });
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsSelectValueAccessor, decorators: [{
|
|
99
|
+
type: Directive,
|
|
100
|
+
args: [{
|
|
101
|
+
selector: 'bs-select',
|
|
102
|
+
providers: [{
|
|
103
|
+
provide: NG_VALUE_ACCESSOR,
|
|
104
|
+
useExisting: forwardRef(() => BsSelectValueAccessor),
|
|
105
|
+
multi: true,
|
|
106
|
+
}],
|
|
107
|
+
}]
|
|
108
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.BsSelectComponent }]; }, propDecorators: { hostOnChange: [{
|
|
109
|
+
type: HostListener,
|
|
110
|
+
args: ['change', ['$event']]
|
|
111
|
+
}], hostBlur: [{
|
|
112
|
+
type: HostListener,
|
|
113
|
+
args: ['blur', ['$event']]
|
|
114
|
+
}], compareWith: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}] } });
|
|
117
|
+
export class BsSelectOption {
|
|
118
|
+
constructor(element, renderer, select) {
|
|
119
|
+
this.element = element;
|
|
120
|
+
this.renderer = renderer;
|
|
121
|
+
this.select = select;
|
|
122
|
+
if (this.select) {
|
|
123
|
+
this.id = this.select.registerOption();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
set ngValue(value) {
|
|
127
|
+
if (this.select) {
|
|
128
|
+
this.select.optionMap.set(this.id, value);
|
|
129
|
+
this.setElementValue(this.select.buildValueString(this.id, value));
|
|
130
|
+
// console.log('ngValue', this.select.value);
|
|
131
|
+
this.select.writeValue(this.select.value);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
set value(value) {
|
|
135
|
+
this.setElementValue(value);
|
|
136
|
+
if (this.select) {
|
|
137
|
+
this.select.writeValue(this.select.value);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
setElementValue(value) {
|
|
141
|
+
// console.log('setElementValue', value);
|
|
142
|
+
// const nativeSelect = this.select['selectBox'].selectBox;
|
|
143
|
+
// if (nativeSelect) {
|
|
144
|
+
// this.renderer.setProperty(nativeSelect.nativeElement, 'value', value);
|
|
145
|
+
// }
|
|
146
|
+
this.renderer.setProperty(this.element.nativeElement, 'value', value);
|
|
147
|
+
}
|
|
148
|
+
ngOnDestroy() {
|
|
149
|
+
if (this.select) {
|
|
150
|
+
this.select.optionMap.delete(this.id);
|
|
151
|
+
this.select.writeValue(this.select.value);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
BsSelectOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsSelectOption, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: BsSelectValueAccessor, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
156
|
+
BsSelectOption.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BsSelectOption, selector: "option", inputs: { ngValue: "ngValue", value: "value" }, ngImport: i0 });
|
|
157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsSelectOption, decorators: [{
|
|
158
|
+
type: Directive,
|
|
159
|
+
args: [{ selector: 'option' }]
|
|
160
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: BsSelectValueAccessor, decorators: [{
|
|
161
|
+
type: Optional
|
|
162
|
+
}, {
|
|
163
|
+
type: Host
|
|
164
|
+
}] }]; }, propDecorators: { ngValue: [{
|
|
165
|
+
type: Input,
|
|
166
|
+
args: ['ngValue']
|
|
167
|
+
}], value: [{
|
|
168
|
+
type: Input,
|
|
169
|
+
args: ['value']
|
|
170
|
+
}] } });
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXZhbHVlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3ZhbHVlLWFjY2Vzc29ycy9zZWxlY3QtdmFsdWUtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0dBQXdHO0FBQ3hHLDRFQUE0RTtBQUM1RSx3REFBd0Q7QUFDeEQscUVBQXFFO0FBRXJFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBd0IsaUJBQWlCLEVBQThCLE1BQU0sZ0JBQWdCLENBQUM7QUFDckcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQVVsRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQW9CLFNBQW9CLEVBQVUsV0FBdUIsRUFBVSxTQUE0QjtRQUEzRixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUUvRyxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUMxQixjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBa0NyQixjQUFTLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztRQUNuQyxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRU4sd0JBQW1CLEdBQTBDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUF4Q21DLENBQUM7SUFLbkgsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsZ0JB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VSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDOzsyR0F2Q1UsY0FBYzsrRkFBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFOzswQkFFd0MsUUFBUTs7MEJBQUksSUFBSTs0Q0FRakUsT0FBTztzQkFBNUIsS0FBSzt1QkFBQyxTQUFTO2dCQVNJLEtBQUs7c0JBQXhCLEtBQUs7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBpbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG4vLyBpbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuLy8gaW1wb3J0IHsgQnNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQvc2VsZWN0LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCwgUmVuZGVyZXIyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgU2VsZWN0Q29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEJzU2VsZWN0Q29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudC9zZWxlY3QuY29tcG9uZW50XCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2JzLXNlbGVjdCcsXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCc1NlbGVjdFZhbHVlQWNjZXNzb3IpLFxuICAgIG11bHRpOiB0cnVlLFxuICB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQnNTZWxlY3RWYWx1ZUFjY2Vzc29yIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHNlbGVjdEJveDogQnNTZWxlY3RDb21wb25lbnQpIHt9XG5cbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChwOiBhbnkpID0+IHt9KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9ICh2YWx1ZVN0cmluZzogc3RyaW5nKSA9PiB7XG4gICAgICAvLyBWaWV3IC0+IE1vZGVsXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRPcHRpb25WYWx1ZSh2YWx1ZVN0cmluZyk7XG4gICAgICBmbih0aGlzLnZhbHVlKTtcbiAgICAgIC8vIGZuKHZhbHVlU3RyaW5nKTtcbiAgICB9O1xuICB9XG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2V0UHJvcGVydHkoJ2Rpc2FibGVkJywgaXNEaXNhYmxlZCk7XG4gIH1cbiAgcHJvdGVjdGVkIHNldFByb3BlcnR5KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgLy8gaWYgKHRoaXMuX2VsZW1lbnRSZWYpIHtcbiAgICAvLyAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwga2V5LCB2YWx1ZSk7XG4gICAgLy8gfVxuICAgIGlmICh0aGlzLnNlbGVjdEJveC5zZWxlY3RCb3gpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuc2VsZWN0Qm94LnNlbGVjdEJveC5uYXRpdmVFbGVtZW50LCBrZXksIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudCddKSBob3N0T25DaGFuZ2UoZXY6IElucHV0RXZlbnQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlKCg8YW55PmV2LnRhcmdldCkudmFsdWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pIGhvc3RCbHVyKGV2OiBFdmVudCkge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICB2YWx1ZTogYW55O1xuICBvcHRpb25NYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuICBpZENvdW50ZXIgPSAwO1xuXG4gIHByaXZhdGUgY29tcGFyZVdpdGhGdW5jdGlvbjogKHZhbHVlMTogYW55LCB2YWx1ZTI6IGFueSkgPT4gYm9vbGVhbiA9IE9iamVjdC5pcztcbiAgQElucHV0KCkgc2V0IGNvbXBhcmVXaXRoKHZhbHVlOiAodmFsdWUxOiBhbnksIHZhbHVlMjogYW55KSA9PiBib29sZWFuKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb21wYXJlV2l0aCBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcbiAgICB9XG4gICAgdGhpcy5jb21wYXJlV2l0aEZ1bmN0aW9uID0gdmFsdWU7XG4gIH1cblxuICBidWlsZFZhbHVlU3RyaW5nKGlkOiBzdHJpbmcgfCBudWxsLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKGlkID09IG51bGwpIHtcbiAgICAgIHJldHVybiBgJHt2YWx1ZX1gO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSAmJiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JykpIHtcbiAgICAgIHZhbHVlID0gJ09iamVjdCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke2lkfTogJHt2YWx1ZX1gLnNsaWNlKDAsIDUwKTtcbiAgfVxuXG4gIGV4dHJhY3RJZCh2YWx1ZVN0cmluZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHZhbHVlU3RyaW5nLnNwbGl0KCc6JylbMF07XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgLy8gY29uc29sZS5sb2coYFdyaXRlVmFsdWUgJHt0aGlzLnNlbGVjdEJveC5pZGVudGlmaWVyfWAsIHZhbHVlKTtcblxuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRPcHRpb25JZCh2YWx1ZSk7XG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB0aGlzLmJ1aWxkVmFsdWVTdHJpbmcoaWQsIHZhbHVlKTtcbiAgICB0aGlzLnNldFByb3BlcnR5KCd2YWx1ZScsIHZhbHVlU3RyaW5nKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT3B0aW9uKCkge1xuICAgIHJldHVybiAodGhpcy5pZENvdW50ZXIrKykudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGdldE9wdGlvbklkKHZhbHVlOiBhbnkpIHtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIEFycmF5LmZyb20odGhpcy5vcHRpb25NYXAua2V5cygpKSkge1xuICAgICAgaWYgKHRoaXMuY29tcGFyZVdpdGhGdW5jdGlvbih0aGlzLm9wdGlvbk1hcC5nZXQoaWQpLCB2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlblxuICAgIC8vIGRlYnVnZ2VyO1xuICAgIFxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0T3B0aW9uVmFsdWUodmFsdWVTdHJpbmc6IHN0cmluZykge1xuICAgIGNvbnN0IGlkID0gdGhpcy5leHRyYWN0SWQodmFsdWVTdHJpbmcpO1xuICAgIHJldHVybiB0aGlzLm9wdGlvbk1hcC5oYXMoaWQpID8gdGhpcy5vcHRpb25NYXAuZ2V0KGlkKSA6IHZhbHVlU3RyaW5nO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ29wdGlvbicgfSlcbmV4cG9ydCBjbGFzcyBCc1NlbGVjdE9wdGlvbiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgc2VsZWN0OiBCc1NlbGVjdFZhbHVlQWNjZXNzb3IpIHtcbiAgICBpZiAodGhpcy5zZWxlY3QpIHtcbiAgICAgIHRoaXMuaWQgPSB0aGlzLnNlbGVjdC5yZWdpc3Rlck9wdGlvbigpO1xuICAgIH1cbiAgfVxuICBcbiAgaWQhOiBzdHJpbmc7XG5cbiAgQElucHV0KCduZ1ZhbHVlJykgc2V0IG5nVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLnNlbGVjdCkge1xuICAgICAgdGhpcy5zZWxlY3Qub3B0aW9uTWFwLnNldCh0aGlzLmlkLCB2YWx1ZSk7XG4gICAgICB0aGlzLnNldEVsZW1lbnRWYWx1ZSh0aGlzLnNlbGVjdC5idWlsZFZhbHVlU3RyaW5nKHRoaXMuaWQsIHZhbHVlKSk7XG4gICAgICAvLyBjb25zb2xlLmxvZygnbmdWYWx1ZScsIHRoaXMuc2VsZWN0LnZhbHVlKTtcbiAgICAgIHRoaXMuc2VsZWN0LndyaXRlVmFsdWUodGhpcy5zZWxlY3QudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgndmFsdWUnKSBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuc2V0RWxlbWVudFZhbHVlKHZhbHVlKTtcbiAgICBpZiAodGhpcy5zZWxlY3QpIHtcbiAgICAgIHRoaXMuc2VsZWN0LndyaXRlVmFsdWUodGhpcy5zZWxlY3QudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHNldEVsZW1lbnRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgLy8gY29uc29sZS5sb2coJ3NldEVsZW1lbnRWYWx1ZScsIHZhbHVlKTtcbiAgICAvLyBjb25zdCBuYXRpdmVTZWxlY3QgPSB0aGlzLnNlbGVjdFsnc2VsZWN0Qm94J10uc2VsZWN0Qm94O1xuICAgIC8vIGlmIChuYXRpdmVTZWxlY3QpIHtcbiAgICAvLyAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkobmF0aXZlU2VsZWN0Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHZhbHVlKTtcbiAgICAvLyB9XG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0KSB7XG4gICAgICB0aGlzLnNlbGVjdC5vcHRpb25NYXAuZGVsZXRlKHRoaXMuaWQpO1xuICAgICAgdGhpcy5zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLnNlbGVjdC52YWx1ZSk7XG4gICAgfVxuICB9XG59XG5cbi8vIEBEaXJlY3RpdmUoe1xuLy8gICBzZWxlY3RvcjogJ2JzLXNlbGVjdCcsXG4vLyAgIHByb3ZpZGVyczogW3tcbi8vICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbi8vICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCc1NlbGVjdFZhbHVlQWNjZXNzb3IpLFxuLy8gICAgIG11bHRpOiB0cnVlLFxuLy8gICB9XSxcbi8vIH0pXG4vLyBleHBvcnQgY2xhc3MgQnNTZWxlY3RWYWx1ZUFjY2Vzc29yIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4vLyAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaG9zdDogQnNTZWxlY3RDb21wb25lbnQpIHt9XG5cbi8vICAgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XG5cbi8vICAgb25WYWx1ZUNoYW5nZT86ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuLy8gICBvblRvdWNoZWQ/OiAoKSA9PiB2b2lkO1xuXG4vLyAgIC8vI3JlZ2lvbiBMaWZlY3ljbGUgaG9va3Ncbi8vICAgbmdBZnRlclZpZXdJbml0KCkge1xuLy8gICAgIGZyb21FdmVudCh0aGlzLmhvc3Quc2VsZWN0Qm94Lm5hdGl2ZUVsZW1lbnQsICdjaGFuZ2UnKVxuLy8gICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4vLyAgICAgICAuc3Vic2NyaWJlKChldikgPT4ge1xuLy8gICAgICAgICBpZiAodGhpcy5vblZhbHVlQ2hhbmdlKSB7XG4vLyAgICAgICAgICAgY29uc3QgdmFsID0gKDxIVE1MU2VsZWN0RWxlbWVudD5ldi50YXJnZXQpLnZhbHVlO1xuLy8gICAgICAgICAgIGNvbnNvbGUubG9nKCdzZWxlY3RlZCcsIHZhbCk7XG4vLyAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlKHZhbCk7XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH0pO1xuLy8gICB9XG5cbi8vICAgbmdPbkRlc3Ryb3koKSB7XG4vLyAgICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4vLyAgIH1cbi8vICAgLy8jZW5kcmVnaW9uXG5cbi8vICAgQElucHV0KCduZ1ZhbHVlJykgc2V0IG5nVmFsdWUodmFsdWU6IGFueSkge1xuLy8gICAgIGlmICh0aGlzLmhvc3QpIHtcbi8vICAgICAgIHRoaXMuaG9zdC5vcHRcbi8vICAgICB9XG4vLyAgIH1cblxuLy8gICAvLyNyZWdpb24gT3B0aW9uSWQgbWFwcGluZ1xuLy8gICBwcml2YXRlIGNvbXBhcmVXaXRoRnVuY3Rpb246ICh2YWx1ZTE6IGFueSwgdmFsdWUyOiBhbnkpID0+IGJvb2xlYW4gPSBPYmplY3QuaXM7XG4vLyAgIHByaXZhdGUgb3B0aW9uTWFwID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbi8vICAgQElucHV0KCkgcHVibGljIHNldCBjb21wYXJlV2l0aChmbjogKHZhbHVlMTogYW55LCB2YWx1ZTI6IGFueSkgPT4gYm9vbGVhbikge1xuLy8gICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbi8vICAgICAgIHRocm93IG5ldyBFcnJvcignY29tcGFyZVdpdGggbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4vLyAgICAgfVxuLy8gICAgIHRoaXMuY29tcGFyZVdpdGhGdW5jdGlvbiA9IGZuO1xuLy8gICB9XG5cbi8vICAgcHJpdmF0ZSBnZXRPcHRpb25JZCh2YWx1ZTogYW55KSB7XG4vLyAgICAgZm9yIChjb25zdCBpZCBvZiBBcnJheS5mcm9tKHRoaXMub3B0aW9uTWFwLmtleXMoKSkpIHtcbi8vICAgICAgIGlmICh0aGlzLmNvbXBhcmVXaXRoKHRoaXMub3B0aW9uTWFwLmdldChpZCksIHZhbHVlKSkge1xuLy8gICAgICAgICByZXR1cm4gaWQ7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuLy8gICAgIHJldHVybiBudWxsO1xuLy8gICB9XG5cbi8vICAgcHJpdmF0ZSBnZXRPcHRpb25WYWx1ZSh2YWx1ZVN0cmluZzogc3RyaW5nKSB7XG4vLyAgICAgY29uc3QgaWQgPSB0aGlzLmV4dHJhY3RJZCh2YWx1ZVN0cmluZyk7XG4vLyAgICAgcmV0dXJuIHRoaXMub3B0aW9uTWFwLmhhcyhpZCkgPyB0aGlzLm9wdGlvbk1hcC5nZXQoaWQpIDogdmFsdWVTdHJpbmc7XG4vLyAgIH1cblxuLy8gICBwcml2YXRlIGV4dHJhY3RJZCh2YWx1ZVN0cmluZzogc3RyaW5nKSB7XG4vLyAgICAgcmV0dXJuIHZhbHVlU3RyaW5nLnNwbGl0KCc6JylbMF07XG4vLyAgIH1cbi8vICAgLy8jZW5kcmVnaW9uXG5cbi8vICAgLy8jcmVnaW9uIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXG4vLyAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpIHtcbi8vICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UgPSAodmFsdWVTdHJpbmc6IHN0cmluZykgPT4ge1xuLy8gICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0T3B0aW9uVmFsdWUodmFsdWVTdHJpbmcpO1xuLy8gICAgICAgZm4odGhpcy52YWx1ZSk7XG4vLyAgICAgfTtcbi8vICAgfVxuICBcbi8vICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbi8vICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuLy8gICB9XG5cbi8vICAgdmFsdWU6IGFueTtcbi8vICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4vLyAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuLy8gICAgIGlmICh0aGlzLmhvc3Quc2VsZWN0Qm94KSB7XG4vLyAgICAgICAvLyB0aGlzLmhvc3Quc2VsZWN0Qm94Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0ZWRJbmRleCA9IHRoaXMuaG9zdC5zZWxlY3RCb3gubmF0aXZlRWxlbWVudC5vcHRpb25zLml0ZW0oKTtcbi8vICAgICB9XG4vLyAgIH1cblxuLy8gICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbi8vICAgICBpZiAodGhpcy5ob3N0LnNlbGVjdEJveCkge1xuLy8gICAgICAgdGhpcy5ob3N0LnNlbGVjdEJveC5uYXRpdmVFbGVtZW50LmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbi8vICAgICB9XG4vLyAgIH1cbi8vICAgLy8jZW5kcmVnaW9uXG5cbi8vIH1cbiJdfQ==
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, combineLatest, map } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class BsToggleButtonComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.disableAnimations = true;
|
|
8
|
+
//#region Type
|
|
9
|
+
this.type$ = new BehaviorSubject('checkbox');
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region isToggled
|
|
12
|
+
this._isToggled = false;
|
|
13
|
+
this.change = new EventEmitter();
|
|
14
|
+
this.isToggledChange = new EventEmitter();
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region disabled
|
|
17
|
+
this.disabled = false;
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region name
|
|
20
|
+
this.name$ = new BehaviorSubject(null);
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region value
|
|
23
|
+
this.value$ = new BehaviorSubject(null);
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region Group
|
|
26
|
+
this.group$ = new BehaviorSubject(null);
|
|
27
|
+
this.mainCheckStyle$ = this.type$.pipe(map((type) => {
|
|
28
|
+
switch (type) {
|
|
29
|
+
case 'checkbox':
|
|
30
|
+
case 'radio':
|
|
31
|
+
case 'switch':
|
|
32
|
+
return 'form-check';
|
|
33
|
+
default:
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}));
|
|
37
|
+
this.isSwitch$ = this.type$.pipe(map((type) => {
|
|
38
|
+
switch (type) {
|
|
39
|
+
case 'switch':
|
|
40
|
+
return true;
|
|
41
|
+
default:
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
}));
|
|
45
|
+
this.inputClass$ = this.type$.pipe(map((type) => {
|
|
46
|
+
switch (type) {
|
|
47
|
+
case 'checkbox':
|
|
48
|
+
case 'radio':
|
|
49
|
+
case 'switch':
|
|
50
|
+
return 'form-check-input';
|
|
51
|
+
default:
|
|
52
|
+
return 'btn-check';
|
|
53
|
+
}
|
|
54
|
+
}));
|
|
55
|
+
this.labelClass$ = this.type$.pipe(map((type) => {
|
|
56
|
+
switch (type) {
|
|
57
|
+
case 'checkbox':
|
|
58
|
+
case 'radio':
|
|
59
|
+
case 'switch':
|
|
60
|
+
return 'form-check-label';
|
|
61
|
+
case 'toggle_button':
|
|
62
|
+
return 'btn btn-primary';
|
|
63
|
+
case 'radio_toggle_button':
|
|
64
|
+
return 'btn btn-secondary';
|
|
65
|
+
}
|
|
66
|
+
}));
|
|
67
|
+
this.checkOrRadio$ = this.type$.pipe(map((type) => {
|
|
68
|
+
switch (type) {
|
|
69
|
+
case 'radio':
|
|
70
|
+
case 'radio_toggle_button':
|
|
71
|
+
return 'radio';
|
|
72
|
+
default:
|
|
73
|
+
return 'checkbox';
|
|
74
|
+
}
|
|
75
|
+
}));
|
|
76
|
+
this.nameResult$ = combineLatest([this.name$, this.type$, this.group$])
|
|
77
|
+
.pipe(map(([name, type, group]) => {
|
|
78
|
+
switch (type) {
|
|
79
|
+
case 'radio':
|
|
80
|
+
case 'radio_toggle_button':
|
|
81
|
+
return name;
|
|
82
|
+
case 'checkbox':
|
|
83
|
+
case 'toggle_button':
|
|
84
|
+
case 'switch':
|
|
85
|
+
if (group) {
|
|
86
|
+
return `${name}[]`;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return name;
|
|
90
|
+
}
|
|
91
|
+
default:
|
|
92
|
+
throw 'Invalid value';
|
|
93
|
+
}
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
get type() {
|
|
97
|
+
return this.type$.value;
|
|
98
|
+
}
|
|
99
|
+
set type(value) {
|
|
100
|
+
this.type$.next(value);
|
|
101
|
+
}
|
|
102
|
+
get isToggled() {
|
|
103
|
+
return this._isToggled;
|
|
104
|
+
}
|
|
105
|
+
set isToggled(value) {
|
|
106
|
+
this._isToggled = value;
|
|
107
|
+
this.isToggledChange.emit(this._isToggled);
|
|
108
|
+
}
|
|
109
|
+
get name() {
|
|
110
|
+
return this.name$.value;
|
|
111
|
+
}
|
|
112
|
+
set name(value) {
|
|
113
|
+
this.name$.next(value);
|
|
114
|
+
}
|
|
115
|
+
get value() {
|
|
116
|
+
return this.value$.value;
|
|
117
|
+
}
|
|
118
|
+
set value(value) {
|
|
119
|
+
this.value$.next(value);
|
|
120
|
+
}
|
|
121
|
+
get group() {
|
|
122
|
+
return this.group$.value;
|
|
123
|
+
}
|
|
124
|
+
set group(value) {
|
|
125
|
+
this.group$.next(value);
|
|
126
|
+
}
|
|
127
|
+
//#endregion
|
|
128
|
+
onChange(event) {
|
|
129
|
+
const val = event.target.checked;
|
|
130
|
+
this.isToggled = val;
|
|
131
|
+
this.change.emit(val);
|
|
132
|
+
}
|
|
133
|
+
ngAfterViewInit() {
|
|
134
|
+
this.disableAnimations = false;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
BsToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
138
|
+
BsToggleButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BsToggleButtonComponent, selector: "bs-toggle-button", inputs: { type: "type", isToggled: "isToggled", disabled: "disabled", name: "name", value: "value", group: "group" }, outputs: { change: "change", isToggledChange: "isToggledChange" }, viewQueries: [{ propertyName: "checkbox", first: true, predicate: ["checkbox"], descendants: true }], ngImport: i0, template: "<label [class]=\"mainCheckStyle$ | async\" [class.form-switch]=\"isSwitch$ | async\">\n <input #checkbox [class]=\"inputClass$ | async\" [type]=\"checkOrRadio$ | async\" [name]=\"name$ | async\" [value]=\"value$ | async\">\n <span [class]=\"labelClass$ | async\">\n <ng-content></ng-content>\n </span>\n</label>", styles: [":host ::ng-deep .form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}:host ::ng-deep .form-check .form-check-input{float:left;margin-left:-1.5em}:host ::ng-deep .form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}:host ::ng-deep .form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}:host ::ng-deep .form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}:host ::ng-deep .form-check-input[type=checkbox]{border-radius:.25em}:host ::ng-deep .form-check-input[type=radio]{border-radius:50%}:host ::ng-deep .form-check-input:active{filter:brightness(90%)}:host ::ng-deep .form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}:host ::ng-deep .form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}:host ::ng-deep .form-check-input:checked[type=checkbox]{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\")}:host ::ng-deep .form-check-input:checked[type=radio]{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e\")}:host ::ng-deep .form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\")}:host ::ng-deep .form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}:host ::ng-deep .form-check-input[disabled]~.form-check-label,:host ::ng-deep .form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}:host ::ng-deep .form-switch{padding-left:2.5em}:host ::ng-deep .form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e\");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .form-switch .form-check-input{transition:none}}:host ::ng-deep .form-switch .form-check-input:focus{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e\")}:host ::ng-deep .form-switch .form-check-input:checked{background-position:right center;background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}:host ::ng-deep .form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}:host ::ng-deep .form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}:host ::ng-deep .form-check-inline{display:inline-block;margin-right:1rem}:host ::ng-deep .btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}:host ::ng-deep .btn-check[disabled]+.btn,:host ::ng-deep .btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}\n"], dependencies: [{ kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonComponent, decorators: [{
|
|
140
|
+
type: Component,
|
|
141
|
+
args: [{ selector: 'bs-toggle-button', template: "<label [class]=\"mainCheckStyle$ | async\" [class.form-switch]=\"isSwitch$ | async\">\n <input #checkbox [class]=\"inputClass$ | async\" [type]=\"checkOrRadio$ | async\" [name]=\"name$ | async\" [value]=\"value$ | async\">\n <span [class]=\"labelClass$ | async\">\n <ng-content></ng-content>\n </span>\n</label>", styles: [":host ::ng-deep .form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}:host ::ng-deep .form-check .form-check-input{float:left;margin-left:-1.5em}:host ::ng-deep .form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}:host ::ng-deep .form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}:host ::ng-deep .form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}:host ::ng-deep .form-check-input[type=checkbox]{border-radius:.25em}:host ::ng-deep .form-check-input[type=radio]{border-radius:50%}:host ::ng-deep .form-check-input:active{filter:brightness(90%)}:host ::ng-deep .form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}:host ::ng-deep .form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}:host ::ng-deep .form-check-input:checked[type=checkbox]{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\")}:host ::ng-deep .form-check-input:checked[type=radio]{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e\")}:host ::ng-deep .form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\")}:host ::ng-deep .form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}:host ::ng-deep .form-check-input[disabled]~.form-check-label,:host ::ng-deep .form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}:host ::ng-deep .form-switch{padding-left:2.5em}:host ::ng-deep .form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e\");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .form-switch .form-check-input{transition:none}}:host ::ng-deep .form-switch .form-check-input:focus{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e\")}:host ::ng-deep .form-switch .form-check-input:checked{background-position:right center;background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}:host ::ng-deep .form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}:host ::ng-deep .form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}:host ::ng-deep .form-check-inline{display:inline-block;margin-right:1rem}:host ::ng-deep .btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}:host ::ng-deep .btn-check[disabled]+.btn,:host ::ng-deep .btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}\n"] }]
|
|
142
|
+
}], ctorParameters: function () { return []; }, propDecorators: { checkbox: [{
|
|
143
|
+
type: ViewChild,
|
|
144
|
+
args: ['checkbox']
|
|
145
|
+
}], type: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], change: [{
|
|
148
|
+
type: Output
|
|
149
|
+
}], isToggledChange: [{
|
|
150
|
+
type: Output
|
|
151
|
+
}], isToggled: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], disabled: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], name: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], value: [{
|
|
158
|
+
type: Input
|
|
159
|
+
}], group: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}] } });
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtYnV0dG9uL2NvbXBvbmVudC90b2dnbGUtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3RvZ2dsZS1idXR0b24vY29tcG9uZW50L3RvZ2dsZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVksTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQVN2RSxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDO1FBNkVBLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQVF6QixjQUFjO1FBQ2QsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFlLFVBQVUsQ0FBQyxDQUFDO1FBT3RELFlBQVk7UUFFWixtQkFBbUI7UUFDbkIsZUFBVSxHQUFtQixLQUFLLENBQUM7UUFDbEIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBQzVDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFRdEUsWUFBWTtRQUVaLGtCQUFrQjtRQUNGLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakMsWUFBWTtRQUVaLGNBQWM7UUFDZCxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBT2pELFlBQVk7UUFFWixlQUFlO1FBQ2YsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQU9sRCxZQUFZO1FBRVosZUFBZTtRQUNmLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBc0MsSUFBSSxDQUFDLENBQUM7UUFwSXRFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEQsUUFBUSxJQUFJLEVBQUU7Z0JBQ1osS0FBSyxVQUFVLENBQUM7Z0JBQ2hCLEtBQUssT0FBTyxDQUFDO2dCQUNiLEtBQUssUUFBUTtvQkFDWCxPQUFPLFlBQVksQ0FBQztnQkFDdEI7b0JBQ0UsT0FBTyxJQUFJLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzVDLFFBQVEsSUFBSSxFQUFFO2dCQUNaLEtBQUssUUFBUTtvQkFDWCxPQUFPLElBQUksQ0FBQztnQkFDZDtvQkFDRSxPQUFPLEtBQUssQ0FBQzthQUNoQjtRQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzlDLFFBQVEsSUFBSSxFQUFFO2dCQUNaLEtBQUssVUFBVSxDQUFDO2dCQUNoQixLQUFLLE9BQU8sQ0FBQztnQkFDYixLQUFLLFFBQVE7b0JBQ1gsT0FBTyxrQkFBa0IsQ0FBQztnQkFDNUI7b0JBQ0UsT0FBTyxXQUFXLENBQUM7YUFDdEI7UUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QyxRQUFRLElBQUksRUFBRTtnQkFDWixLQUFLLFVBQVUsQ0FBQztnQkFDaEIsS0FBSyxPQUFPLENBQUM7Z0JBQ2IsS0FBSyxRQUFRO29CQUNYLE9BQU8sa0JBQWtCLENBQUM7Z0JBQzVCLEtBQUssZUFBZTtvQkFDbEIsT0FBTyxpQkFBaUIsQ0FBQTtnQkFDMUIsS0FBSyxxQkFBcUI7b0JBQ3hCLE9BQU8sbUJBQW1CLENBQUM7YUFDOUI7UUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoRCxRQUFRLElBQUksRUFBRTtnQkFDWixLQUFLLE9BQU8sQ0FBQztnQkFDYixLQUFLLHFCQUFxQjtvQkFDeEIsT0FBTyxPQUFPLENBQUM7Z0JBQ2pCO29CQUNFLE9BQU8sVUFBVSxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDaEMsUUFBUSxJQUFJLEVBQUU7Z0JBQ1osS0FBSyxPQUFPLENBQUM7Z0JBQ2IsS0FBSyxxQkFBcUI7b0JBQ3RCLE9BQU8sSUFBSSxDQUFDO2dCQUNoQixLQUFLLFVBQVUsQ0FBQztnQkFDaEIsS0FBSyxlQUFlLENBQUM7Z0JBQ3JCLEtBQUssUUFBUTtvQkFDWCxJQUFJLEtBQUssRUFBRTt3QkFDVCxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUM7cUJBQ3BCO3lCQUFNO3dCQUNMLE9BQU8sSUFBSSxDQUFDO3FCQUNiO2dCQUNIO29CQUNFLE1BQU0sZUFBZSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFjRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFvQixJQUFJLENBQUMsS0FBbUI7UUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQU9ELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQW9CLFNBQVMsQ0FBQyxLQUFxQjtRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQVNELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQW9CLElBQUksQ0FBQyxLQUFvQjtRQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBS0QsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBb0IsS0FBSyxDQUFDLEtBQW9CO1FBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFLRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFvQixLQUFLLENBQUMsS0FBMEM7UUFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELFlBQVk7SUFFWixRQUFRLENBQUMsS0FBWTtRQUNuQixNQUFNLEdBQUcsR0FBUyxLQUFLLENBQUMsTUFBTyxDQUFDLE9BQU8sQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQzs7b0hBeEpVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHVWQ1ZwQyx5VUFLUTsyRkRLSyx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usa0JBQWtCOzBFQWlGTCxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBZUQsSUFBSTtzQkFBdkIsS0FBSztnQkFPVyxNQUFNO3NCQUF0QixNQUFNO2dCQUNVLGVBQWU7c0JBQS9CLE1BQU07Z0JBSWEsU0FBUztzQkFBNUIsS0FBSztnQkFPVSxRQUFRO3NCQUF2QixLQUFLO2dCQVFjLElBQUk7c0JBQXZCLEtBQUs7Z0JBVWMsS0FBSztzQkFBeEIsS0FBSztnQkFVYyxLQUFLO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc1RvZ2dsZUJ1dHRvbkdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgQnNDaGVja1N0eWxlIH0gZnJvbSAnLi4vdHlwZXMvY2hlY2stc3R5bGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy10b2dnbGUtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNUb2dnbGVCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm1haW5DaGVja1N0eWxlJCA9IHRoaXMudHlwZSQucGlwZShtYXAoKHR5cGUpID0+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdjaGVja2JveCc6XG4gICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICByZXR1cm4gJ2Zvcm0tY2hlY2snO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH0pKTtcblxuICAgIHRoaXMuaXNTd2l0Y2gkID0gdGhpcy50eXBlJC5waXBlKG1hcCgodHlwZSkgPT4ge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ3N3aXRjaCc6XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0pKTtcblxuICAgIHRoaXMuaW5wdXRDbGFzcyQgPSB0aGlzLnR5cGUkLnBpcGUobWFwKCh0eXBlKSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnY2hlY2tib3gnOlxuICAgICAgICBjYXNlICdyYWRpbyc6XG4gICAgICAgIGNhc2UgJ3N3aXRjaCc6XG4gICAgICAgICAgcmV0dXJuICdmb3JtLWNoZWNrLWlucHV0JztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gJ2J0bi1jaGVjayc7XG4gICAgICB9XG4gICAgfSkpO1xuICAgIFxuICAgIHRoaXMubGFiZWxDbGFzcyQgPSB0aGlzLnR5cGUkLnBpcGUobWFwKCh0eXBlKSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnY2hlY2tib3gnOlxuICAgICAgICBjYXNlICdyYWRpbyc6XG4gICAgICAgIGNhc2UgJ3N3aXRjaCc6XG4gICAgICAgICAgcmV0dXJuICdmb3JtLWNoZWNrLWxhYmVsJztcbiAgICAgICAgY2FzZSAndG9nZ2xlX2J1dHRvbic6XG4gICAgICAgICAgcmV0dXJuICdidG4gYnRuLXByaW1hcnknXG4gICAgICAgIGNhc2UgJ3JhZGlvX3RvZ2dsZV9idXR0b24nOlxuICAgICAgICAgIHJldHVybiAnYnRuIGJ0bi1zZWNvbmRhcnknO1xuICAgICAgfVxuICAgIH0pKTtcblxuICAgIHRoaXMuY2hlY2tPclJhZGlvJCA9IHRoaXMudHlwZSQucGlwZShtYXAoKHR5cGUpID0+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdyYWRpbyc6XG4gICAgICAgIGNhc2UgJ3JhZGlvX3RvZ2dsZV9idXR0b24nOlxuICAgICAgICAgIHJldHVybiAncmFkaW8nO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAnY2hlY2tib3gnO1xuICAgICAgfVxuICAgIH0pKTtcblxuICAgIHRoaXMubmFtZVJlc3VsdCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm5hbWUkLCB0aGlzLnR5cGUkLCB0aGlzLmdyb3VwJF0pXG4gICAgICAucGlwZShtYXAoKFtuYW1lLCB0eXBlLCBncm91cF0pID0+IHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSAncmFkaW8nOlxuICAgICAgICAgIGNhc2UgJ3JhZGlvX3RvZ2dsZV9idXR0b24nOlxuICAgICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICBjYXNlICdjaGVja2JveCc6XG4gICAgICAgICAgY2FzZSAndG9nZ2xlX2J1dHRvbic6XG4gICAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICAgIGlmIChncm91cCkge1xuICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX1bXWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgJ0ludmFsaWQgdmFsdWUnO1xuICAgICAgICB9XG4gICAgICB9KSk7XG4gIH1cblxuICBAVmlld0NoaWxkKCdjaGVja2JveCcpIGNoZWNrYm94ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBkaXNhYmxlQW5pbWF0aW9ucyA9IHRydWU7XG4gIG1haW5DaGVja1N0eWxlJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbiAgaXNTd2l0Y2gkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpbnB1dENsYXNzJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBsYWJlbENsYXNzJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBjaGVja09yUmFkaW8kOiBPYnNlcnZhYmxlPCdjaGVja2JveCcgfCAncmFkaW8nPjtcbiAgbmFtZVJlc3VsdCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD47XG5cbiAgLy8jcmVnaW9uIFR5cGVcbiAgdHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJzQ2hlY2tTdHlsZT4oJ2NoZWNrYm94Jyk7XG4gIHB1YmxpYyBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHR5cGUodmFsdWU6IEJzQ2hlY2tTdHlsZSkge1xuICAgIHRoaXMudHlwZSQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIGlzVG9nZ2xlZFxuICBfaXNUb2dnbGVkOiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbiB8IG51bGw+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgaXNUb2dnbGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuIHwgbnVsbD4oKTtcbiAgcHVibGljIGdldCBpc1RvZ2dsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzVG9nZ2xlZDtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGlzVG9nZ2xlZCh2YWx1ZTogYm9vbGVhbiB8IG51bGwpIHtcbiAgICB0aGlzLl9pc1RvZ2dsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLmlzVG9nZ2xlZENoYW5nZS5lbWl0KHRoaXMuX2lzVG9nZ2xlZCk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIGRpc2FibGVkXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gbmFtZVxuICBuYW1lJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IG5hbWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLm5hbWUkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiB2YWx1ZVxuICB2YWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy52YWx1ZSQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIEdyb3VwXG4gIGdyb3VwJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnNUb2dnbGVCdXR0b25Hcm91cERpcmVjdGl2ZSB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgZ2V0IGdyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLmdyb3VwJC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGdyb3VwKHZhbHVlOiBCc1RvZ2dsZUJ1dHRvbkdyb3VwRGlyZWN0aXZlIHwgbnVsbCkge1xuICAgIHRoaXMuZ3JvdXAkLm5leHQodmFsdWUpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHZhbCA9ICg8YW55PmV2ZW50LnRhcmdldCkuY2hlY2tlZDtcbiAgICB0aGlzLmlzVG9nZ2xlZCA9IHZhbDtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHZhbCk7XG4gIH1cbiAgXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmRpc2FibGVBbmltYXRpb25zID0gZmFsc2U7XG4gIH1cblxufVxuIiwiPGxhYmVsIFtjbGFzc109XCJtYWluQ2hlY2tTdHlsZSQgfCBhc3luY1wiIFtjbGFzcy5mb3JtLXN3aXRjaF09XCJpc1N3aXRjaCQgfCBhc3luY1wiPlxuICAgIDxpbnB1dCAjY2hlY2tib3ggW2NsYXNzXT1cImlucHV0Q2xhc3MkIHwgYXN5bmNcIiBbdHlwZV09XCJjaGVja09yUmFkaW8kIHwgYXN5bmNcIiBbbmFtZV09XCJuYW1lJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInZhbHVlJCB8IGFzeW5jXCI+XG4gICAgPHNwYW4gW2NsYXNzXT1cImxhYmVsQ2xhc3MkIHwgYXN5bmNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbjwvbGFiZWw+Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './toggle-button-group/toggle-button-group.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtYnV0dG9uL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxREFBcUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdG9nZ2xlLWJ1dHRvbi1ncm91cC90b2dnbGUtYnV0dG9uLWdyb3VwLmRpcmVjdGl2ZSc7Il19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ContentChildren, Directive, QueryList } from '@angular/core';
|
|
2
|
+
import { BsToggleButtonComponent } from '../../component/toggle-button.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class BsToggleButtonGroupDirective {
|
|
5
|
+
constructor() { }
|
|
6
|
+
}
|
|
7
|
+
BsToggleButtonGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
8
|
+
BsToggleButtonGroupDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BsToggleButtonGroupDirective, selector: "[bsToggleButtonGroup]", queries: [{ propertyName: "toggleButtons", predicate: BsToggleButtonComponent, descendants: true }], exportAs: ["bsToggleButtonGroup"], ngImport: i0 });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonGroupDirective, decorators: [{
|
|
10
|
+
type: Directive,
|
|
11
|
+
args: [{
|
|
12
|
+
selector: '[bsToggleButtonGroup]',
|
|
13
|
+
exportAs: 'bsToggleButtonGroup'
|
|
14
|
+
}]
|
|
15
|
+
}], ctorParameters: function () { return []; }, propDecorators: { toggleButtons: [{
|
|
16
|
+
type: ContentChildren,
|
|
17
|
+
args: [BsToggleButtonComponent, { descendants: true }]
|
|
18
|
+
}] } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWJ1dHRvbi1ncm91cC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtYnV0dG9uL2RpcmVjdGl2ZXMvdG9nZ2xlLWJ1dHRvbi1ncm91cC90b2dnbGUtYnV0dG9uLWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBUyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBTWxGLE1BQU0sT0FBTyw0QkFBNEI7SUFFdkMsZ0JBQWdCLENBQUM7O3lIQUZOLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLDJGQUl0Qix1QkFBdUI7MkZBSjdCLDRCQUE0QjtrQkFKeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzswRUFLa0UsYUFBYTtzQkFBN0UsZUFBZTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgSW5wdXQsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNUb2dnbGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnQvdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYnNUb2dnbGVCdXR0b25Hcm91cF0nLFxuICBleHBvcnRBczogJ2JzVG9nZ2xlQnV0dG9uR3JvdXAnXG59KVxuZXhwb3J0IGNsYXNzIEJzVG9nZ2xlQnV0dG9uR3JvdXBEaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgQENvbnRlbnRDaGlsZHJlbihCc1RvZ2dsZUJ1dHRvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSB0b2dnbGVCdXR0b25zITogUXVlcnlMaXN0PEJzVG9nZ2xlQnV0dG9uQ29tcG9uZW50Pjtcbn1cbiJdfQ==
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
export * from './toggle-button.component';
|
|
1
|
+
export * from './component/toggle-button.component';
|
|
2
|
+
export * from './directives';
|
|
3
|
+
export * from './value-accessor/toggle-button-value-accessor';
|
|
2
4
|
export * from './toggle-button.module';
|
|
3
|
-
|
|
5
|
+
export * from './types';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtYnV0dG9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnQvdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vdmFsdWUtYWNjZXNzb3IvdG9nZ2xlLWJ1dHRvbi12YWx1ZS1hY2Nlc3Nvcic7XG5leHBvcnQgKiBmcm9tICcuL3RvZ2dsZS1idXR0b24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnOyJdfQ==
|
|
@@ -1,24 +1,34 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { BsToggleButtonComponent } from './toggle-button.component';
|
|
3
|
+
import { BsToggleButtonComponent } from './component/toggle-button.component';
|
|
4
|
+
import { BsToggleButtonValueAccessor } from './value-accessor/toggle-button-value-accessor';
|
|
5
|
+
import { BsToggleButtonGroupDirective } from './directives/toggle-button-group/toggle-button-group.directive';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
7
|
export class BsToggleButtonModule {
|
|
6
8
|
}
|
|
7
9
|
BsToggleButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
-
BsToggleButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, declarations: [BsToggleButtonComponent
|
|
10
|
+
BsToggleButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, declarations: [BsToggleButtonComponent,
|
|
11
|
+
BsToggleButtonValueAccessor,
|
|
12
|
+
BsToggleButtonGroupDirective], imports: [CommonModule], exports: [BsToggleButtonComponent,
|
|
13
|
+
BsToggleButtonValueAccessor,
|
|
14
|
+
BsToggleButtonGroupDirective] });
|
|
9
15
|
BsToggleButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, imports: [CommonModule] });
|
|
10
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, decorators: [{
|
|
11
17
|
type: NgModule,
|
|
12
18
|
args: [{
|
|
13
19
|
declarations: [
|
|
14
|
-
BsToggleButtonComponent
|
|
20
|
+
BsToggleButtonComponent,
|
|
21
|
+
BsToggleButtonValueAccessor,
|
|
22
|
+
BsToggleButtonGroupDirective
|
|
15
23
|
],
|
|
16
24
|
imports: [
|
|
17
25
|
CommonModule
|
|
18
26
|
],
|
|
19
27
|
exports: [
|
|
20
|
-
BsToggleButtonComponent
|
|
28
|
+
BsToggleButtonComponent,
|
|
29
|
+
BsToggleButtonValueAccessor,
|
|
30
|
+
BsToggleButtonGroupDirective
|
|
21
31
|
]
|
|
22
32
|
}]
|
|
23
33
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWJ1dHRvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtYnV0dG9uL3RvZ2dsZS1idXR0b24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOztBQWlCOUcsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGlCQWI3Qix1QkFBdUI7UUFDdkIsMkJBQTJCO1FBQzNCLDRCQUE0QixhQUc1QixZQUFZLGFBR1osdUJBQXVCO1FBQ3ZCLDJCQUEyQjtRQUMzQiw0QkFBNEI7a0hBR25CLG9CQUFvQixZQVI3QixZQUFZOzJGQVFILG9CQUFvQjtrQkFmaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osdUJBQXVCO3dCQUN2QiwyQkFBMkI7d0JBQzNCLDRCQUE0QjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1Qjt3QkFDdkIsMkJBQTJCO3dCQUMzQiw0QkFBNEI7cUJBQzdCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCc1RvZ2dsZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50L3RvZ2dsZS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEJzVG9nZ2xlQnV0dG9uVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vdmFsdWUtYWNjZXNzb3IvdG9nZ2xlLWJ1dHRvbi12YWx1ZS1hY2Nlc3Nvcic7XG5pbXBvcnQgeyBCc1RvZ2dsZUJ1dHRvbkdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3RvZ2dsZS1idXR0b24tZ3JvdXAvdG9nZ2xlLWJ1dHRvbi1ncm91cC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBCc1RvZ2dsZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBCc1RvZ2dsZUJ1dHRvblZhbHVlQWNjZXNzb3IsXG4gICAgQnNUb2dnbGVCdXR0b25Hcm91cERpcmVjdGl2ZVxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCc1RvZ2dsZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBCc1RvZ2dsZUJ1dHRvblZhbHVlQWNjZXNzb3IsXG4gICAgQnNUb2dnbGVCdXR0b25Hcm91cERpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJzVG9nZ2xlQnV0dG9uTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stc3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtYnV0dG9uL3R5cGVzL2NoZWNrLXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBCc0NoZWNrU3R5bGUgPSAnY2hlY2tib3gnIHwgJ3JhZGlvJyB8ICdzd2l0Y2gnIHwgJ3RvZ2dsZV9idXR0b24nIHwgJ3JhZGlvX3RvZ2dsZV9idXR0b24nO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './check-style';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy90b2dnbGUtYnV0dG9uL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jaGVjay1zdHlsZSc7XG4iXX0=
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Directive, forwardRef } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { fromEvent, Subject, takeUntil } from 'rxjs';
|
|
4
|
+
import { BsToggleButtonComponent } from '../component/toggle-button.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../component/toggle-button.component";
|
|
7
|
+
export class BsToggleButtonValueAccessor {
|
|
8
|
+
constructor(host) {
|
|
9
|
+
this.host = host;
|
|
10
|
+
this.destroyed$ = new Subject();
|
|
11
|
+
}
|
|
12
|
+
//#region Lifecycle hooks
|
|
13
|
+
ngAfterViewInit() {
|
|
14
|
+
fromEvent(this.host.checkbox.nativeElement, 'change')
|
|
15
|
+
.pipe(takeUntil(this.destroyed$))
|
|
16
|
+
.subscribe((ev) => {
|
|
17
|
+
if (this.onValueChange && this.host.checkbox) {
|
|
18
|
+
const isChecked = ev.target.checked;
|
|
19
|
+
switch (this.host.type) {
|
|
20
|
+
case 'radio':
|
|
21
|
+
case 'radio_toggle_button':
|
|
22
|
+
if (isChecked) {
|
|
23
|
+
this.onValueChange(this.host.checkbox.nativeElement.value);
|
|
24
|
+
}
|
|
25
|
+
break;
|
|
26
|
+
default:
|
|
27
|
+
if (this.host['group']) {
|
|
28
|
+
const group = this.host['group'];
|
|
29
|
+
const itemValue = this.host.checkbox.nativeElement.value;
|
|
30
|
+
const result = group.toggleButtons
|
|
31
|
+
.map(tb => ({ value: tb.value, checked: tb.checkbox.nativeElement.checked }))
|
|
32
|
+
.filter(tb => !!tb.value && tb.checked)
|
|
33
|
+
.map(tb => tb.value);
|
|
34
|
+
if (this.host.checkbox.nativeElement.checked) {
|
|
35
|
+
if (!result.includes(itemValue)) {
|
|
36
|
+
result.push(itemValue);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
if (result.includes(itemValue)) {
|
|
41
|
+
result.splice(result.indexOf(itemValue), 1);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
this.onValueChange(result);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.onValueChange(isChecked);
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
ngOnDestroy() {
|
|
55
|
+
this.destroyed$.next(true);
|
|
56
|
+
}
|
|
57
|
+
//#endregion
|
|
58
|
+
//#region ControlValueAccessor implementation
|
|
59
|
+
registerOnChange(fn) {
|
|
60
|
+
this.onValueChange = fn;
|
|
61
|
+
}
|
|
62
|
+
registerOnTouched(fn) {
|
|
63
|
+
this.onTouched = fn;
|
|
64
|
+
}
|
|
65
|
+
writeValue(value) {
|
|
66
|
+
if (this.host.checkbox) {
|
|
67
|
+
switch (this.host.type) {
|
|
68
|
+
case 'radio':
|
|
69
|
+
case 'radio_toggle_button':
|
|
70
|
+
if (value === this.host.value) {
|
|
71
|
+
this.host.checkbox.nativeElement.checked = true;
|
|
72
|
+
}
|
|
73
|
+
break;
|
|
74
|
+
default:
|
|
75
|
+
if (this.host.group) {
|
|
76
|
+
this.host.checkbox.nativeElement.checked = value.includes(this.host.value);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.host.checkbox.nativeElement.checked = value;
|
|
80
|
+
}
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
setDisabledState(isDisabled) {
|
|
86
|
+
if (this.host.checkbox) {
|
|
87
|
+
this.host.checkbox.nativeElement.disabled = isDisabled;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
BsToggleButtonValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonValueAccessor, deps: [{ token: i1.BsToggleButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
92
|
+
BsToggleButtonValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BsToggleButtonValueAccessor, selector: "bs-toggle-button", providers: [{
|
|
93
|
+
provide: NG_VALUE_ACCESSOR,
|
|
94
|
+
useExisting: forwardRef(() => BsToggleButtonValueAccessor),
|
|
95
|
+
multi: true,
|
|
96
|
+
}], ngImport: i0 });
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonValueAccessor, decorators: [{
|
|
98
|
+
type: Directive,
|
|
99
|
+
args: [{
|
|
100
|
+
selector: 'bs-toggle-button',
|
|
101
|
+
providers: [{
|
|
102
|
+
provide: NG_VALUE_ACCESSOR,
|
|
103
|
+
useExisting: forwardRef(() => BsToggleButtonValueAccessor),
|
|
104
|
+
multi: true,
|
|
105
|
+
}],
|
|
106
|
+
}]
|
|
107
|
+
}], ctorParameters: function () { return [{ type: i1.BsToggleButtonComponent }]; } });
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWJ1dHRvbi12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3RvZ2dsZS1idXR0b24vdmFsdWUtYWNjZXNzb3IvdG9nZ2xlLWJ1dHRvbi12YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQXFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQVUvRSxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQW9CLElBQTZCO1FBQTdCLFNBQUksR0FBSixJQUFJLENBQXlCO1FBRWpELGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRnlCLENBQUM7SUFPckQseUJBQXlCO0lBQ3pCLGVBQWU7UUFDYixTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQzthQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNoQixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQzVDLE1BQU0sU0FBUyxHQUFzQixFQUFFLENBQUMsTUFBTyxDQUFDLE9BQU8sQ0FBQztnQkFDeEQsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtvQkFDdEIs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Rjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFZLEtBQUssQ0FBQztxQkFDM0Q7b0JBQ0QsTUFBTTthQUNUO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztTQUN4RDtJQUNILENBQUM7O3dIQTFGVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiwyQ0FOM0IsQ0FBQztZQUNWLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztZQUMxRCxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUM7MkZBRVMsMkJBQTJCO2tCQVJ2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFNBQVMsRUFBRSxDQUFDOzRCQUNWLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDWixDQUFDO2lCQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc1RvZ2dsZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC90b2dnbGUtYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2JzLXRvZ2dsZS1idXR0b24nLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQnNUb2dnbGVCdXR0b25WYWx1ZUFjY2Vzc29yKSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEJzVG9nZ2xlQnV0dG9uVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvc3Q6IEJzVG9nZ2xlQnV0dG9uQ29tcG9uZW50KSB7fVxuXG4gIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIG9uVmFsdWVDaGFuZ2U/OiAodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcgfCBzdHJpbmdbXSkgPT4gdm9pZDtcbiAgb25Ub3VjaGVkPzogKCkgPT4gdm9pZDtcblxuICAvLyNyZWdpb24gTGlmZWN5Y2xlIGhvb2tzXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBmcm9tRXZlbnQodGhpcy5ob3N0LmNoZWNrYm94Lm5hdGl2ZUVsZW1lbnQsICdjaGFuZ2UnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChldikgPT4ge1xuICAgICAgICBpZiAodGhpcy5vblZhbHVlQ2hhbmdlICYmIHRoaXMuaG9zdC5jaGVja2JveCkge1xuICAgICAgICAgIGNvbnN0IGlzQ2hlY2tlZCA9ICg8SFRNTElucHV0RWxlbWVudD5ldi50YXJnZXQpLmNoZWNrZWQ7XG4gICAgICAgICAgc3dpdGNoICh0aGlzLmhvc3QudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAncmFkaW8nOlxuICAgICAgICAgICAgY2FzZSAncmFkaW9fdG9nZ2xlX2J1dHRvbic6XG4gICAgICAgICAgICAgIGlmIChpc0NoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UodGhpcy5ob3N0LmNoZWNrYm94Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaG9zdFsnZ3JvdXAnXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5ob3N0Wydncm91cCddO1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IHRoaXMuaG9zdC5jaGVja2JveC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGdyb3VwLnRvZ2dsZUJ1dHRvbnNcbiAgICAgICAgICAgICAgICAgIC5tYXAodGIgPT4gKHsgdmFsdWU6IHRiLnZhbHVlLCBjaGVja2VkOiB0Yi5jaGVja2JveC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgfSkpXG4gICAgICAgICAgICAgICAgICAuZmlsdGVyKHRiID0+ICEhdGIudmFsdWUgJiYgdGIuY2hlY2tlZClcbiAgICAgICAgICAgICAgICAgIC5tYXAodGIgPT4gPHN0cmluZz50Yi52YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ob3N0LmNoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuaW5jbHVkZXMoaXRlbVZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChpdGVtVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmluY2x1ZGVzKGl0ZW1WYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNwbGljZShyZXN1bHQuaW5kZXhPZihpdGVtVmFsdWUpLCAxKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UocmVzdWx0KTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UoaXNDaGVja2VkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2UgPSBmbjtcbiAgfVxuICBcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgaWYgKHRoaXMuaG9zdC5jaGVja2JveCkge1xuICAgICAgc3dpdGNoICh0aGlzLmhvc3QudHlwZSkge1xuICAgICAgICBjYXNlICdyYWRpbyc6XG4gICAgICAgIGNhc2UgJ3JhZGlvX3RvZ2dsZV9idXR0b24nOlxuICAgICAgICAgIGlmICg8c3RyaW5nPnZhbHVlID09PSB0aGlzLmhvc3QudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdC5jaGVja2JveC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAodGhpcy5ob3N0Lmdyb3VwKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3QuY2hlY2tib3gubmF0aXZlRWxlbWVudC5jaGVja2VkID0gKDxzdHJpbmdbXT52YWx1ZSkuaW5jbHVkZXModGhpcy5ob3N0LnZhbHVlISk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdC5jaGVja2JveC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSA8Ym9vbGVhbj52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuaG9zdC5jaGVja2JveCkge1xuICAgICAgdGhpcy5ob3N0LmNoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cbiAgfVxuICAvLyNlbmRyZWdpb25cblxufVxuIl19
|