@mintplayer/ng-bootstrap 14.8.1 → 14.9.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.
Files changed (36) hide show
  1. package/_bootstrap.scss +10 -1
  2. package/esm2020/lib/components/context-menu/context-menu.directive.mjs +1 -6
  3. package/esm2020/lib/components/index.mjs +2 -1
  4. package/esm2020/lib/components/offcanvas/components/offcanvas/offcanvas.component.mjs +1 -2
  5. package/esm2020/lib/components/range/component/range.component.mjs +15 -0
  6. package/esm2020/lib/components/range/index.mjs +4 -0
  7. package/esm2020/lib/components/range/range.module.mjs +19 -0
  8. package/esm2020/lib/components/range/value-accessor/range-value-accessor.mjs +62 -0
  9. package/esm2020/lib/components/toggle-button/component/toggle-button.component.mjs +162 -0
  10. package/esm2020/lib/components/toggle-button/directives/index.mjs +2 -0
  11. package/esm2020/lib/components/toggle-button/directives/toggle-button-group/toggle-button-group.directive.mjs +19 -0
  12. package/esm2020/lib/components/toggle-button/index.mjs +5 -2
  13. package/esm2020/lib/components/toggle-button/toggle-button.module.mjs +15 -5
  14. package/esm2020/lib/components/toggle-button/types/check-style.mjs +2 -0
  15. package/esm2020/lib/components/toggle-button/types/index.mjs +2 -0
  16. package/esm2020/lib/components/toggle-button/value-accessor/toggle-button-value-accessor.mjs +108 -0
  17. package/fesm2015/mintplayer-ng-bootstrap.mjs +333 -15
  18. package/fesm2015/mintplayer-ng-bootstrap.mjs.map +1 -1
  19. package/fesm2020/mintplayer-ng-bootstrap.mjs +333 -15
  20. package/fesm2020/mintplayer-ng-bootstrap.mjs.map +1 -1
  21. package/lib/components/index.d.ts +1 -0
  22. package/lib/components/range/component/range.component.d.ts +8 -0
  23. package/lib/components/range/index.d.ts +3 -0
  24. package/lib/components/range/range.module.d.ts +9 -0
  25. package/lib/components/range/value-accessor/range-value-accessor.d.ts +20 -0
  26. package/lib/components/toggle-button/component/toggle-button.component.d.ts +38 -0
  27. package/lib/components/toggle-button/directives/index.d.ts +1 -0
  28. package/lib/components/toggle-button/directives/toggle-button-group/toggle-button-group.directive.d.ts +9 -0
  29. package/lib/components/toggle-button/index.d.ts +4 -1
  30. package/lib/components/toggle-button/toggle-button.module.d.ts +5 -3
  31. package/lib/components/toggle-button/types/check-style.d.ts +1 -0
  32. package/lib/components/toggle-button/types/index.d.ts +1 -0
  33. package/lib/components/toggle-button/value-accessor/toggle-button-value-accessor.d.ts +20 -0
  34. package/package.json +1 -1
  35. package/esm2020/lib/components/toggle-button/toggle-button.component.mjs +0 -45
  36. package/lib/components/toggle-button/toggle-button.component.d.ts +0 -15
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWJ1dHRvbi12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1ib290c3RyYXAvc3JjL2xpYi9jb21wb25lbnRzL3RvZ2dsZS1idXR0b24vdmFsdWUtYWNjZXNzb3IvdG9nZ2xlLWJ1dHRvbi12YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQXFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQVUvRSxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQW9CLElBQTZCO1FBQTdCLFNBQUksR0FBSixJQUFJLENBQXlCO1FBRWpELGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRnlCLENBQUM7SUFPckQseUJBQXlCO0lBQ3pCLGVBQWU7UUFDYixTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQzthQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNoQixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQzVDLE1BQU0sU0FBUyxHQUFzQixFQUFFLENBQUMsTUFBTyxDQUFDLE9BQU8sQ0FBQztnQkFDeEQsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtvQkFDdEIsS0FBSyxPQUFPLENBQUM7b0JBQ2IsS0FBSyxxQkFBcUI7d0JBQ3hCLElBQUksU0FBUyxFQUFFOzRCQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO3lCQUM1RDt3QkFDRCxNQUFNO29CQUNSO3dCQUNFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTs0QkFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzs0QkFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQzs0QkFFekQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLGFBQWE7aUNBQy9CLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztpQ0FDNUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQztpQ0FDdEMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUUvQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUU7Z0NBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO29DQUMvQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lDQUN4Qjs2QkFDRjtpQ0FBTTtnQ0FDTCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7b0NBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQ0FDN0M7NkJBQ0Y7NEJBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQzt5QkFDNUI7NkJBQU07NEJBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQzt5QkFDL0I7d0JBQ0QsTUFBTTtpQkFDVDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxZQUFZO0lBRVosNkNBQTZDO0lBQzdDLGdCQUFnQixDQUFDLEVBQW9CO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBa0M7UUFDM0MsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN0QixRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUN0QixLQUFLLE9BQU8sQ0FBQztnQkFDYixLQUFLLHFCQUFxQjtvQkFDeEIsSUFBWSxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7d0JBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO3FCQUNqRDtvQkFDRCxNQUFNO2dCQUNSO29CQUNFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7d0JBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQWMsS0FBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQU0sQ0FBQyxDQUFDO3FCQUN6Rjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFZLEtBQUssQ0FBQztxQkFDM0Q7b0JBQ0QsTUFBTTthQUNUO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztTQUN4RDtJQUNILENBQUM7O3dIQTFGVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiwyQ0FOM0IsQ0FBQztZQUNWLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztZQUMxRCxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUM7MkZBRVMsMkJBQTJCO2tCQVJ2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFNBQVMsRUFBRSxDQUFDOzRCQUNWLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDWixDQUFDO2lCQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc1RvZ2dsZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC90b2dnbGUtYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2JzLXRvZ2dsZS1idXR0b24nLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQnNUb2dnbGVCdXR0b25WYWx1ZUFjY2Vzc29yKSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEJzVG9nZ2xlQnV0dG9uVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvc3Q6IEJzVG9nZ2xlQnV0dG9uQ29tcG9uZW50KSB7fVxuXG4gIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIG9uVmFsdWVDaGFuZ2U/OiAodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcgfCBzdHJpbmdbXSkgPT4gdm9pZDtcbiAgb25Ub3VjaGVkPzogKCkgPT4gdm9pZDtcblxuICAvLyNyZWdpb24gTGlmZWN5Y2xlIGhvb2tzXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBmcm9tRXZlbnQodGhpcy5ob3N0LmNoZWNrYm94Lm5hdGl2ZUVsZW1lbnQsICdjaGFuZ2UnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChldikgPT4ge1xuICAgICAgICBpZiAodGhpcy5vblZhbHVlQ2hhbmdlICYmIHRoaXMuaG9zdC5jaGVja2JveCkge1xuICAgICAgICAgIGNvbnN0IGlzQ2hlY2tlZCA9ICg8SFRNTElucHV0RWxlbWVudD5ldi50YXJnZXQpLmNoZWNrZWQ7XG4gICAgICAgICAgc3dpdGNoICh0aGlzLmhvc3QudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAncmFkaW8nOlxuICAgICAgICAgICAgY2FzZSAncmFkaW9fdG9nZ2xlX2J1dHRvbic6XG4gICAgICAgICAgICAgIGlmIChpc0NoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UodGhpcy5ob3N0LmNoZWNrYm94Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaG9zdFsnZ3JvdXAnXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5ob3N0Wydncm91cCddO1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IHRoaXMuaG9zdC5jaGVja2JveC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGdyb3VwLnRvZ2dsZUJ1dHRvbnNcbiAgICAgICAgICAgICAgICAgIC5tYXAodGIgPT4gKHsgdmFsdWU6IHRiLnZhbHVlLCBjaGVja2VkOiB0Yi5jaGVja2JveC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgfSkpXG4gICAgICAgICAgICAgICAgICAuZmlsdGVyKHRiID0+ICEhdGIudmFsdWUgJiYgdGIuY2hlY2tlZClcbiAgICAgICAgICAgICAgICAgIC5tYXAodGIgPT4gPHN0cmluZz50Yi52YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ob3N0LmNoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuaW5jbHVkZXMoaXRlbVZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChpdGVtVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmluY2x1ZGVzKGl0ZW1WYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNwbGljZShyZXN1bHQuaW5kZXhPZihpdGVtVmFsdWUpLCAxKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UocmVzdWx0KTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UoaXNDaGVja2VkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2UgPSBmbjtcbiAgfVxuICBcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgaWYgKHRoaXMuaG9zdC5jaGVja2JveCkge1xuICAgICAgc3dpdGNoICh0aGlzLmhvc3QudHlwZSkge1xuICAgICAgICBjYXNlICdyYWRpbyc6XG4gICAgICAgIGNhc2UgJ3JhZGlvX3RvZ2dsZV9idXR0b24nOlxuICAgICAgICAgIGlmICg8c3RyaW5nPnZhbHVlID09PSB0aGlzLmhvc3QudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdC5jaGVja2JveC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAodGhpcy5ob3N0Lmdyb3VwKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3QuY2hlY2tib3gubmF0aXZlRWxlbWVudC5jaGVja2VkID0gKDxzdHJpbmdbXT52YWx1ZSkuaW5jbHVkZXModGhpcy5ob3N0LnZhbHVlISk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdC5jaGVja2JveC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSA8Ym9vbGVhbj52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuaG9zdC5jaGVja2JveCkge1xuICAgICAgdGhpcy5ob3N0LmNoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cbiAgfVxuICAvLyNlbmRyZWdpb25cblxufVxuIl19
@@ -3,7 +3,7 @@ import { EventEmitter, Component, ContentChildren, forwardRef, HostBinding, Outp
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule, DOCUMENT, isPlatformServer } from '@angular/common';
5
5
  import { SlideUpDownAnimation, FadeInOutAnimation, CarouselSlideAnimation, EnterFromTopAnimation } from '@mintplayer/ng-animations';
6
- import { BehaviorSubject, map, Subject, takeUntil, filter, take, combineLatest, debounceTime, delayWhen, of, interval, delay } from 'rxjs';
6
+ import { BehaviorSubject, map, Subject, takeUntil, filter, take, combineLatest, debounceTime, delayWhen, of, interval, delay, fromEvent } from 'rxjs';
7
7
  import { map as map$1, takeUntil as takeUntil$1, take as take$1 } from 'rxjs/operators';
8
8
  import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
9
9
  import * as i1$1 from '@angular/cdk/overlay';
@@ -16,7 +16,7 @@ import { FocusOnLoadModule } from '@mintplayer/ng-focus-on-load';
16
16
  import * as i1$3 from '@angular/router';
17
17
  import { RouterModule, ROUTER_CONFIGURATION } from '@angular/router';
18
18
  import * as i2 from '@angular/forms';
19
- import { FormsModule } from '@angular/forms';
19
+ import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
20
20
 
21
21
  class BsAccordionTabComponent {
22
22
  constructor(accordion) {
@@ -1125,11 +1125,6 @@ class BsContextMenuDirective {
1125
1125
  this.checkAndCloseExisting(ev);
1126
1126
  const target = {
1127
1127
  getBoundingClientRect: () => {
1128
- console.log('getBoundingClientRect', {
1129
- clientX: ev.clientX,
1130
- clientY: ev.clientY,
1131
- scrollY: window.scrollY,
1132
- });
1133
1128
  return ({
1134
1129
  width: 0,
1135
1130
  height: 0,
@@ -4208,7 +4203,6 @@ class BsOffcanvasComponent {
4208
4203
  return this.state$.value;
4209
4204
  }
4210
4205
  onBackdropClick(ev) {
4211
- console.log(1);
4212
4206
  this.backdropClick.emit(ev);
4213
4207
  }
4214
4208
  ngOnDestroy() {
@@ -4807,6 +4801,89 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
4807
4801
  }]
4808
4802
  }] });
4809
4803
 
4804
+ class BsRangeComponent {
4805
+ constructor() { }
4806
+ }
4807
+ BsRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4808
+ BsRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BsRangeComponent, selector: "bs-range", viewQueries: [{ propertyName: "slider", first: true, predicate: ["slider"], descendants: true }], ngImport: i0, template: "<input #slider type=\"range\" min=\"0\" max=\"5\" step=\"0.5\" class=\"form-range\">\n", styles: [":host ::ng-deep .form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;appearance:none}:host ::ng-deep .form-range:focus{outline:0}:host ::ng-deep .form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}:host ::ng-deep .form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}:host ::ng-deep .form-range::-moz-focus-outer{border:0}:host ::ng-deep .form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){:host ::ng-deep .form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}:host ::ng-deep .form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}:host ::ng-deep .form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}:host ::ng-deep .form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){:host ::ng-deep .form-range::-moz-range-thumb{-moz-transition:none;transition:none}}:host ::ng-deep .form-range::-moz-range-thumb:active{background-color:#b6d4fe}:host ::ng-deep .form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}:host ::ng-deep .form-range:disabled{pointer-events:none}:host ::ng-deep .form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}:host ::ng-deep .form-range:disabled::-moz-range-thumb{background-color:#adb5bd}\n"] });
4809
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeComponent, decorators: [{
4810
+ type: Component,
4811
+ args: [{ selector: 'bs-range', template: "<input #slider type=\"range\" min=\"0\" max=\"5\" step=\"0.5\" class=\"form-range\">\n", styles: [":host ::ng-deep .form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;appearance:none}:host ::ng-deep .form-range:focus{outline:0}:host ::ng-deep .form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}:host ::ng-deep .form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}:host ::ng-deep .form-range::-moz-focus-outer{border:0}:host ::ng-deep .form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){:host ::ng-deep .form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}:host ::ng-deep .form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}:host ::ng-deep .form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}:host ::ng-deep .form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){:host ::ng-deep .form-range::-moz-range-thumb{-moz-transition:none;transition:none}}:host ::ng-deep .form-range::-moz-range-thumb:active{background-color:#b6d4fe}:host ::ng-deep .form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}:host ::ng-deep .form-range:disabled{pointer-events:none}:host ::ng-deep .form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}:host ::ng-deep .form-range:disabled::-moz-range-thumb{background-color:#adb5bd}\n"] }]
4812
+ }], ctorParameters: function () { return []; }, propDecorators: { slider: [{
4813
+ type: ViewChild,
4814
+ args: ['slider']
4815
+ }] } });
4816
+
4817
+ class BsRangeValueAccessor {
4818
+ constructor(host) {
4819
+ this.host = host;
4820
+ this.destroyed$ = new Subject();
4821
+ }
4822
+ //#region Lifecycle hooks
4823
+ ngAfterViewInit() {
4824
+ fromEvent(this.host.slider.nativeElement, 'input')
4825
+ .pipe(takeUntil(this.destroyed$))
4826
+ .subscribe((ev) => {
4827
+ if (this.onValueChange) {
4828
+ const val = parseFloat(ev.target.value);
4829
+ this.onValueChange(val);
4830
+ }
4831
+ });
4832
+ }
4833
+ ngOnDestroy() {
4834
+ this.destroyed$.next(true);
4835
+ }
4836
+ //#endregion
4837
+ //#region ControlValueAccessor implementation
4838
+ registerOnChange(fn) {
4839
+ this.onValueChange = fn;
4840
+ }
4841
+ registerOnTouched(fn) {
4842
+ this.onTouched = fn;
4843
+ }
4844
+ writeValue(value) {
4845
+ if (this.host.slider) {
4846
+ this.host.slider.nativeElement.value = value.toString();
4847
+ }
4848
+ }
4849
+ setDisabledState(isDisabled) {
4850
+ if (this.host.slider) {
4851
+ this.host.slider.nativeElement.disabled = isDisabled;
4852
+ }
4853
+ }
4854
+ }
4855
+ BsRangeValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeValueAccessor, deps: [{ token: BsRangeComponent }], target: i0.ɵɵFactoryTarget.Directive });
4856
+ BsRangeValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BsRangeValueAccessor, selector: "bs-range", providers: [{
4857
+ provide: NG_VALUE_ACCESSOR,
4858
+ useExisting: forwardRef(() => BsRangeValueAccessor),
4859
+ multi: true,
4860
+ }], ngImport: i0 });
4861
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeValueAccessor, decorators: [{
4862
+ type: Directive,
4863
+ args: [{
4864
+ selector: 'bs-range',
4865
+ providers: [{
4866
+ provide: NG_VALUE_ACCESSOR,
4867
+ useExisting: forwardRef(() => BsRangeValueAccessor),
4868
+ multi: true,
4869
+ }],
4870
+ }]
4871
+ }], ctorParameters: function () { return [{ type: BsRangeComponent }]; } });
4872
+
4873
+ class BsRangeModule {
4874
+ }
4875
+ BsRangeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4876
+ BsRangeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: BsRangeModule, declarations: [BsRangeComponent, BsRangeValueAccessor], imports: [CommonModule], exports: [BsRangeComponent, BsRangeValueAccessor] });
4877
+ BsRangeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeModule, imports: [CommonModule] });
4878
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeModule, decorators: [{
4879
+ type: NgModule,
4880
+ args: [{
4881
+ declarations: [BsRangeComponent, BsRangeValueAccessor],
4882
+ imports: [CommonModule],
4883
+ exports: [BsRangeComponent, BsRangeValueAccessor],
4884
+ }]
4885
+ }] });
4886
+
4810
4887
  class BsRatingComponent {
4811
4888
  constructor() {
4812
4889
  this.destroyed$ = new Subject();
@@ -5780,6 +5857,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
5780
5857
  class BsToggleButtonComponent {
5781
5858
  constructor() {
5782
5859
  this.disableAnimations = true;
5860
+ //#region Type
5861
+ this.type$ = new BehaviorSubject('checkbox');
5862
+ //#endregion
5783
5863
  //#region isToggled
5784
5864
  this._isToggled = false;
5785
5865
  this.change = new EventEmitter();
@@ -5787,6 +5867,89 @@ class BsToggleButtonComponent {
5787
5867
  //#endregion
5788
5868
  //#region disabled
5789
5869
  this.disabled = false;
5870
+ //#endregion
5871
+ //#region name
5872
+ this.name$ = new BehaviorSubject(null);
5873
+ //#endregion
5874
+ //#region value
5875
+ this.value$ = new BehaviorSubject(null);
5876
+ //#endregion
5877
+ //#region Group
5878
+ this.group$ = new BehaviorSubject(null);
5879
+ this.mainCheckStyle$ = this.type$.pipe(map((type) => {
5880
+ switch (type) {
5881
+ case 'checkbox':
5882
+ case 'radio':
5883
+ case 'switch':
5884
+ return 'form-check';
5885
+ default:
5886
+ return null;
5887
+ }
5888
+ }));
5889
+ this.isSwitch$ = this.type$.pipe(map((type) => {
5890
+ switch (type) {
5891
+ case 'switch':
5892
+ return true;
5893
+ default:
5894
+ return false;
5895
+ }
5896
+ }));
5897
+ this.inputClass$ = this.type$.pipe(map((type) => {
5898
+ switch (type) {
5899
+ case 'checkbox':
5900
+ case 'radio':
5901
+ case 'switch':
5902
+ return 'form-check-input';
5903
+ default:
5904
+ return 'btn-check';
5905
+ }
5906
+ }));
5907
+ this.labelClass$ = this.type$.pipe(map((type) => {
5908
+ switch (type) {
5909
+ case 'checkbox':
5910
+ case 'radio':
5911
+ case 'switch':
5912
+ return 'form-check-label';
5913
+ case 'toggle_button':
5914
+ return 'btn btn-primary';
5915
+ case 'radio_toggle_button':
5916
+ return 'btn btn-secondary';
5917
+ }
5918
+ }));
5919
+ this.checkOrRadio$ = this.type$.pipe(map((type) => {
5920
+ switch (type) {
5921
+ case 'radio':
5922
+ case 'radio_toggle_button':
5923
+ return 'radio';
5924
+ default:
5925
+ return 'checkbox';
5926
+ }
5927
+ }));
5928
+ this.nameResult$ = combineLatest([this.name$, this.type$, this.group$])
5929
+ .pipe(map(([name, type, group]) => {
5930
+ switch (type) {
5931
+ case 'radio':
5932
+ case 'radio_toggle_button':
5933
+ return name;
5934
+ case 'checkbox':
5935
+ case 'toggle_button':
5936
+ case 'switch':
5937
+ if (group) {
5938
+ return `${name}[]`;
5939
+ }
5940
+ else {
5941
+ return name;
5942
+ }
5943
+ default:
5944
+ throw 'Invalid value';
5945
+ }
5946
+ }));
5947
+ }
5948
+ get type() {
5949
+ return this.type$.value;
5950
+ }
5951
+ set type(value) {
5952
+ this.type$.next(value);
5790
5953
  }
5791
5954
  get isToggled() {
5792
5955
  return this._isToggled;
@@ -5795,6 +5958,24 @@ class BsToggleButtonComponent {
5795
5958
  this._isToggled = value;
5796
5959
  this.isToggledChange.emit(this._isToggled);
5797
5960
  }
5961
+ get name() {
5962
+ return this.name$.value;
5963
+ }
5964
+ set name(value) {
5965
+ this.name$.next(value);
5966
+ }
5967
+ get value() {
5968
+ return this.value$.value;
5969
+ }
5970
+ set value(value) {
5971
+ this.value$.next(value);
5972
+ }
5973
+ get group() {
5974
+ return this.group$.value;
5975
+ }
5976
+ set group(value) {
5977
+ this.group$.next(value);
5978
+ }
5798
5979
  //#endregion
5799
5980
  onChange(event) {
5800
5981
  const val = event.target.checked;
@@ -5806,11 +5987,16 @@ class BsToggleButtonComponent {
5806
5987
  }
5807
5988
  }
5808
5989
  BsToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5809
- BsToggleButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: BsToggleButtonComponent, selector: "bs-toggle-button", inputs: { isToggled: "isToggled", disabled: "disabled" }, outputs: { change: "change", isToggledChange: "isToggledChange" }, ngImport: i0, template: "<label class=\"form-check form-switch\">\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"isToggled\" (change)=\"onChange($event)\" [disabled]=\"disabled\">\n <span class=\"form-check-label\">\n <ng-content></ng-content>\n </span>\n</label>", styles: [""] });
5990
+ 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" }] });
5810
5991
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonComponent, decorators: [{
5811
5992
  type: Component,
5812
- args: [{ selector: 'bs-toggle-button', template: "<label class=\"form-check form-switch\">\n <input class=\"form-check-input\" type=\"checkbox\" [checked]=\"isToggled\" (change)=\"onChange($event)\" [disabled]=\"disabled\">\n <span class=\"form-check-label\">\n <ng-content></ng-content>\n </span>\n</label>" }]
5813
- }], propDecorators: { change: [{
5993
+ 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"] }]
5994
+ }], ctorParameters: function () { return []; }, propDecorators: { checkbox: [{
5995
+ type: ViewChild,
5996
+ args: ['checkbox']
5997
+ }], type: [{
5998
+ type: Input
5999
+ }], change: [{
5814
6000
  type: Output
5815
6001
  }], isToggledChange: [{
5816
6002
  type: Output
@@ -5818,24 +6004,156 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
5818
6004
  type: Input
5819
6005
  }], disabled: [{
5820
6006
  type: Input
6007
+ }], name: [{
6008
+ type: Input
6009
+ }], value: [{
6010
+ type: Input
6011
+ }], group: [{
6012
+ type: Input
6013
+ }] } });
6014
+
6015
+ class BsToggleButtonGroupDirective {
6016
+ constructor() { }
6017
+ }
6018
+ BsToggleButtonGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6019
+ 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 });
6020
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonGroupDirective, decorators: [{
6021
+ type: Directive,
6022
+ args: [{
6023
+ selector: '[bsToggleButtonGroup]',
6024
+ exportAs: 'bsToggleButtonGroup'
6025
+ }]
6026
+ }], ctorParameters: function () { return []; }, propDecorators: { toggleButtons: [{
6027
+ type: ContentChildren,
6028
+ args: [BsToggleButtonComponent, { descendants: true }]
5821
6029
  }] } });
5822
6030
 
6031
+ class BsToggleButtonValueAccessor {
6032
+ constructor(host) {
6033
+ this.host = host;
6034
+ this.destroyed$ = new Subject();
6035
+ }
6036
+ //#region Lifecycle hooks
6037
+ ngAfterViewInit() {
6038
+ fromEvent(this.host.checkbox.nativeElement, 'change')
6039
+ .pipe(takeUntil(this.destroyed$))
6040
+ .subscribe((ev) => {
6041
+ if (this.onValueChange && this.host.checkbox) {
6042
+ const isChecked = ev.target.checked;
6043
+ switch (this.host.type) {
6044
+ case 'radio':
6045
+ case 'radio_toggle_button':
6046
+ if (isChecked) {
6047
+ this.onValueChange(this.host.checkbox.nativeElement.value);
6048
+ }
6049
+ break;
6050
+ default:
6051
+ if (this.host['group']) {
6052
+ const group = this.host['group'];
6053
+ const itemValue = this.host.checkbox.nativeElement.value;
6054
+ const result = group.toggleButtons
6055
+ .map(tb => ({ value: tb.value, checked: tb.checkbox.nativeElement.checked }))
6056
+ .filter(tb => !!tb.value && tb.checked)
6057
+ .map(tb => tb.value);
6058
+ if (this.host.checkbox.nativeElement.checked) {
6059
+ if (!result.includes(itemValue)) {
6060
+ result.push(itemValue);
6061
+ }
6062
+ }
6063
+ else {
6064
+ if (result.includes(itemValue)) {
6065
+ result.splice(result.indexOf(itemValue), 1);
6066
+ }
6067
+ }
6068
+ this.onValueChange(result);
6069
+ }
6070
+ else {
6071
+ this.onValueChange(isChecked);
6072
+ }
6073
+ break;
6074
+ }
6075
+ }
6076
+ });
6077
+ }
6078
+ ngOnDestroy() {
6079
+ this.destroyed$.next(true);
6080
+ }
6081
+ //#endregion
6082
+ //#region ControlValueAccessor implementation
6083
+ registerOnChange(fn) {
6084
+ this.onValueChange = fn;
6085
+ }
6086
+ registerOnTouched(fn) {
6087
+ this.onTouched = fn;
6088
+ }
6089
+ writeValue(value) {
6090
+ if (this.host.checkbox) {
6091
+ switch (this.host.type) {
6092
+ case 'radio':
6093
+ case 'radio_toggle_button':
6094
+ if (value === this.host.value) {
6095
+ this.host.checkbox.nativeElement.checked = true;
6096
+ }
6097
+ break;
6098
+ default:
6099
+ if (this.host.group) {
6100
+ this.host.checkbox.nativeElement.checked = value.includes(this.host.value);
6101
+ }
6102
+ else {
6103
+ this.host.checkbox.nativeElement.checked = value;
6104
+ }
6105
+ break;
6106
+ }
6107
+ }
6108
+ }
6109
+ setDisabledState(isDisabled) {
6110
+ if (this.host.checkbox) {
6111
+ this.host.checkbox.nativeElement.disabled = isDisabled;
6112
+ }
6113
+ }
6114
+ }
6115
+ BsToggleButtonValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonValueAccessor, deps: [{ token: BsToggleButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
6116
+ BsToggleButtonValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BsToggleButtonValueAccessor, selector: "bs-toggle-button", providers: [{
6117
+ provide: NG_VALUE_ACCESSOR,
6118
+ useExisting: forwardRef(() => BsToggleButtonValueAccessor),
6119
+ multi: true,
6120
+ }], ngImport: i0 });
6121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonValueAccessor, decorators: [{
6122
+ type: Directive,
6123
+ args: [{
6124
+ selector: 'bs-toggle-button',
6125
+ providers: [{
6126
+ provide: NG_VALUE_ACCESSOR,
6127
+ useExisting: forwardRef(() => BsToggleButtonValueAccessor),
6128
+ multi: true,
6129
+ }],
6130
+ }]
6131
+ }], ctorParameters: function () { return [{ type: BsToggleButtonComponent }]; } });
6132
+
5823
6133
  class BsToggleButtonModule {
5824
6134
  }
5825
6135
  BsToggleButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5826
- BsToggleButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, declarations: [BsToggleButtonComponent], imports: [CommonModule], exports: [BsToggleButtonComponent] });
6136
+ BsToggleButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, declarations: [BsToggleButtonComponent,
6137
+ BsToggleButtonValueAccessor,
6138
+ BsToggleButtonGroupDirective], imports: [CommonModule], exports: [BsToggleButtonComponent,
6139
+ BsToggleButtonValueAccessor,
6140
+ BsToggleButtonGroupDirective] });
5827
6141
  BsToggleButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, imports: [CommonModule] });
5828
6142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, decorators: [{
5829
6143
  type: NgModule,
5830
6144
  args: [{
5831
6145
  declarations: [
5832
- BsToggleButtonComponent
6146
+ BsToggleButtonComponent,
6147
+ BsToggleButtonValueAccessor,
6148
+ BsToggleButtonGroupDirective
5833
6149
  ],
5834
6150
  imports: [
5835
6151
  CommonModule
5836
6152
  ],
5837
6153
  exports: [
5838
- BsToggleButtonComponent
6154
+ BsToggleButtonComponent,
6155
+ BsToggleButtonValueAccessor,
6156
+ BsToggleButtonGroupDirective
5839
6157
  ]
5840
6158
  }]
5841
6159
  }] });
@@ -6157,5 +6475,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
6157
6475
  * Generated bundle index. Do not edit.
6158
6476
  */
6159
6477
 
6160
- export { BS_DEVELOPMENT, BsAccordionComponent, BsAccordionModule, BsAccordionTabComponent, BsAccordionTabHeaderComponent, BsAddPropertiesModule, BsAddPropertiesPipe, BsAlertCloseComponent, BsAlertComponent, BsAlertModule, BsBadgeComponent, BsBadgeModule, BsBreadcrumbComponent, BsBreadcrumbItemComponent, BsBreadcrumbModule, BsButtonGroupComponent, BsButtonGroupModule, BsButtonTemplateDirective, BsCalendarComponent, BsCalendarModule, BsCardComponent, BsCardHeaderComponent, BsCardModule, BsCarouselComponent, BsCarouselImageDirective, BsCarouselModule, BsCloseComponent, BsCloseModule, BsCodeSnippetComponent, BsCodeSnippetModule, BsContextMenuDirective, BsContextMenuModule, BsCopyDirective, BsCopyModule, BsDatatableColumnDirective, BsDatatableComponent, BsDatatableModule, BsDatepickerComponent, BsDatepickerModule, BsDropdownDirective, BsDropdownMenuDirective, BsDropdownModule, BsDropdownToggleDirective, BsExpandButtonDirective, BsFileUploadComponent, BsFileUploadModule, BsFileUploadTemplateDirective, BsFontColorPipe, BsFontColorPipeModule, BsFooterTemplateDirective, BsForDirective, BsForModule, BsFormatBytesModule, BsFormatBytesPipe, BsGridColumnDirective, BsGridComponent, BsGridModule, BsGridRowDirective, BsHeaderTemplateDirective, BsItemTemplateDirective, BsListGroupComponent, BsListGroupItemComponent, BsListGroupModule, BsModalBodyDirective, BsModalCloseDirective, BsModalComponent, BsModalDirective, BsModalFooterDirective, BsModalHeaderDirective, BsModalHostComponent, BsModalModule, BsMultiselectComponent, BsMultiselectModule, BsNavbarBrandComponent, BsNavbarComponent, BsNavbarDropdownComponent, BsNavbarItemComponent, BsNavbarModule, BsNavbarNavComponent, BsNavbarTogglerComponent, BsOffcanvasCloseDirective, BsOffcanvasComponent, BsOffcanvasContentDirective, BsOffcanvasHostComponent, BsOffcanvasModule, BsPaginationComponent, BsPaginationModule, BsPlaceholderComponent, BsPlaceholderFieldDirective, BsPlaceholderModule, BsPopoverBodyDirective, BsPopoverComponent, BsPopoverDirective, BsPopoverHeaderDirective, BsPopoverModule, BsProgressBarComponent, BsProgressBarModule, BsProgressComponent, BsRatingComponent, BsRatingModule, BsRowTemplateDirective, BsSchedulerComponent, BsSchedulerModule, BsScrollspyComponent, BsScrollspyDirective, BsScrollspyModule, BsSelect2Component, BsSelect2Module, BsSnackbarCloseDirective, BsSnackbarComponent, BsSnackbarModule, BsSnackbarService, BsSpinnerComponent, BsSpinnerModule, BsTabControlComponent, BsTabControlModule, BsTabPageComponent, BsTableComponent, BsTableModule, BsTimepickerComponent, BsTimepickerModule, BsToastBodyComponent, BsToastCloseDirective, BsToastComponent, BsToastContainerComponent, BsToastHeaderComponent, BsToastModule, BsToastService, BsToggleButtonComponent, BsToggleButtonModule, BsTooltipDirective, BsTooltipModule, BsTypeaheadComponent, BsTypeaheadModule, Color, DatatableSettings, DropdownToggleDirective, ESchedulerMode, EnhancedPasteDirective, NavLinkDirective, NavbarContentDirective, OffcanvasBodyComponent, OffcanvasHeaderComponent, Position, ResourceGroupPresenterComponent, availableScales };
6478
+ export { BS_DEVELOPMENT, BsAccordionComponent, BsAccordionModule, BsAccordionTabComponent, BsAccordionTabHeaderComponent, BsAddPropertiesModule, BsAddPropertiesPipe, BsAlertCloseComponent, BsAlertComponent, BsAlertModule, BsBadgeComponent, BsBadgeModule, BsBreadcrumbComponent, BsBreadcrumbItemComponent, BsBreadcrumbModule, BsButtonGroupComponent, BsButtonGroupModule, BsButtonTemplateDirective, BsCalendarComponent, BsCalendarModule, BsCardComponent, BsCardHeaderComponent, BsCardModule, BsCarouselComponent, BsCarouselImageDirective, BsCarouselModule, BsCloseComponent, BsCloseModule, BsCodeSnippetComponent, BsCodeSnippetModule, BsContextMenuDirective, BsContextMenuModule, BsCopyDirective, BsCopyModule, BsDatatableColumnDirective, BsDatatableComponent, BsDatatableModule, BsDatepickerComponent, BsDatepickerModule, BsDropdownDirective, BsDropdownMenuDirective, BsDropdownModule, BsDropdownToggleDirective, BsExpandButtonDirective, BsFileUploadComponent, BsFileUploadModule, BsFileUploadTemplateDirective, BsFontColorPipe, BsFontColorPipeModule, BsFooterTemplateDirective, BsForDirective, BsForModule, BsFormatBytesModule, BsFormatBytesPipe, BsGridColumnDirective, BsGridComponent, BsGridModule, BsGridRowDirective, BsHeaderTemplateDirective, BsItemTemplateDirective, BsListGroupComponent, BsListGroupItemComponent, BsListGroupModule, BsModalBodyDirective, BsModalCloseDirective, BsModalComponent, BsModalDirective, BsModalFooterDirective, BsModalHeaderDirective, BsModalHostComponent, BsModalModule, BsMultiselectComponent, BsMultiselectModule, BsNavbarBrandComponent, BsNavbarComponent, BsNavbarDropdownComponent, BsNavbarItemComponent, BsNavbarModule, BsNavbarNavComponent, BsNavbarTogglerComponent, BsOffcanvasCloseDirective, BsOffcanvasComponent, BsOffcanvasContentDirective, BsOffcanvasHostComponent, BsOffcanvasModule, BsPaginationComponent, BsPaginationModule, BsPlaceholderComponent, BsPlaceholderFieldDirective, BsPlaceholderModule, BsPopoverBodyDirective, BsPopoverComponent, BsPopoverDirective, BsPopoverHeaderDirective, BsPopoverModule, BsProgressBarComponent, BsProgressBarModule, BsProgressComponent, BsRangeComponent, BsRangeModule, BsRangeValueAccessor, BsRatingComponent, BsRatingModule, BsRowTemplateDirective, BsSchedulerComponent, BsSchedulerModule, BsScrollspyComponent, BsScrollspyDirective, BsScrollspyModule, BsSelect2Component, BsSelect2Module, BsSnackbarCloseDirective, BsSnackbarComponent, BsSnackbarModule, BsSnackbarService, BsSpinnerComponent, BsSpinnerModule, BsTabControlComponent, BsTabControlModule, BsTabPageComponent, BsTableComponent, BsTableModule, BsTimepickerComponent, BsTimepickerModule, BsToastBodyComponent, BsToastCloseDirective, BsToastComponent, BsToastContainerComponent, BsToastHeaderComponent, BsToastModule, BsToastService, BsToggleButtonComponent, BsToggleButtonGroupDirective, BsToggleButtonModule, BsToggleButtonValueAccessor, BsTooltipDirective, BsTooltipModule, BsTypeaheadComponent, BsTypeaheadModule, Color, DatatableSettings, DropdownToggleDirective, ESchedulerMode, EnhancedPasteDirective, NavLinkDirective, NavbarContentDirective, OffcanvasBodyComponent, OffcanvasHeaderComponent, Position, ResourceGroupPresenterComponent, availableScales };
6161
6479
  //# sourceMappingURL=mintplayer-ng-bootstrap.mjs.map