@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
@@ -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 * as i1$1 from '@angular/cdk/overlay';
9
9
  import { OverlayModule } from '@angular/cdk/overlay';
@@ -17,7 +17,7 @@ import { FocusOnLoadModule } from '@mintplayer/ng-focus-on-load';
17
17
  import * as i1$3 from '@angular/router';
18
18
  import { RouterModule, ROUTER_CONFIGURATION } from '@angular/router';
19
19
  import * as i2 from '@angular/forms';
20
- import { FormsModule } from '@angular/forms';
20
+ import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
21
21
 
22
22
  class BsAccordionTabComponent {
23
23
  constructor(accordion) {
@@ -1117,11 +1117,6 @@ class BsContextMenuDirective {
1117
1117
  this.checkAndCloseExisting(ev);
1118
1118
  const target = {
1119
1119
  getBoundingClientRect: () => {
1120
- console.log('getBoundingClientRect', {
1121
- clientX: ev.clientX,
1122
- clientY: ev.clientY,
1123
- scrollY: window.scrollY,
1124
- });
1125
1120
  return ({
1126
1121
  width: 0,
1127
1122
  height: 0,
@@ -4180,7 +4175,6 @@ class BsOffcanvasComponent {
4180
4175
  return this.state$.value;
4181
4176
  }
4182
4177
  onBackdropClick(ev) {
4183
- console.log(1);
4184
4178
  this.backdropClick.emit(ev);
4185
4179
  }
4186
4180
  ngOnDestroy() {
@@ -4771,6 +4765,89 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
4771
4765
  }]
4772
4766
  }] });
4773
4767
 
4768
+ class BsRangeComponent {
4769
+ constructor() { }
4770
+ }
4771
+ BsRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4772
+ 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"] });
4773
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeComponent, decorators: [{
4774
+ type: Component,
4775
+ 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"] }]
4776
+ }], ctorParameters: function () { return []; }, propDecorators: { slider: [{
4777
+ type: ViewChild,
4778
+ args: ['slider']
4779
+ }] } });
4780
+
4781
+ class BsRangeValueAccessor {
4782
+ constructor(host) {
4783
+ this.host = host;
4784
+ this.destroyed$ = new Subject();
4785
+ }
4786
+ //#region Lifecycle hooks
4787
+ ngAfterViewInit() {
4788
+ fromEvent(this.host.slider.nativeElement, 'input')
4789
+ .pipe(takeUntil(this.destroyed$))
4790
+ .subscribe((ev) => {
4791
+ if (this.onValueChange) {
4792
+ const val = parseFloat(ev.target.value);
4793
+ this.onValueChange(val);
4794
+ }
4795
+ });
4796
+ }
4797
+ ngOnDestroy() {
4798
+ this.destroyed$.next(true);
4799
+ }
4800
+ //#endregion
4801
+ //#region ControlValueAccessor implementation
4802
+ registerOnChange(fn) {
4803
+ this.onValueChange = fn;
4804
+ }
4805
+ registerOnTouched(fn) {
4806
+ this.onTouched = fn;
4807
+ }
4808
+ writeValue(value) {
4809
+ if (this.host.slider) {
4810
+ this.host.slider.nativeElement.value = value.toString();
4811
+ }
4812
+ }
4813
+ setDisabledState(isDisabled) {
4814
+ if (this.host.slider) {
4815
+ this.host.slider.nativeElement.disabled = isDisabled;
4816
+ }
4817
+ }
4818
+ }
4819
+ BsRangeValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeValueAccessor, deps: [{ token: BsRangeComponent }], target: i0.ɵɵFactoryTarget.Directive });
4820
+ BsRangeValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BsRangeValueAccessor, selector: "bs-range", providers: [{
4821
+ provide: NG_VALUE_ACCESSOR,
4822
+ useExisting: forwardRef(() => BsRangeValueAccessor),
4823
+ multi: true,
4824
+ }], ngImport: i0 });
4825
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeValueAccessor, decorators: [{
4826
+ type: Directive,
4827
+ args: [{
4828
+ selector: 'bs-range',
4829
+ providers: [{
4830
+ provide: NG_VALUE_ACCESSOR,
4831
+ useExisting: forwardRef(() => BsRangeValueAccessor),
4832
+ multi: true,
4833
+ }],
4834
+ }]
4835
+ }], ctorParameters: function () { return [{ type: BsRangeComponent }]; } });
4836
+
4837
+ class BsRangeModule {
4838
+ }
4839
+ BsRangeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4840
+ BsRangeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: BsRangeModule, declarations: [BsRangeComponent, BsRangeValueAccessor], imports: [CommonModule], exports: [BsRangeComponent, BsRangeValueAccessor] });
4841
+ BsRangeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeModule, imports: [CommonModule] });
4842
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsRangeModule, decorators: [{
4843
+ type: NgModule,
4844
+ args: [{
4845
+ declarations: [BsRangeComponent, BsRangeValueAccessor],
4846
+ imports: [CommonModule],
4847
+ exports: [BsRangeComponent, BsRangeValueAccessor],
4848
+ }]
4849
+ }] });
4850
+
4774
4851
  class BsRatingComponent {
4775
4852
  constructor() {
4776
4853
  this.destroyed$ = new Subject();
@@ -5737,6 +5814,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
5737
5814
  class BsToggleButtonComponent {
5738
5815
  constructor() {
5739
5816
  this.disableAnimations = true;
5817
+ //#region Type
5818
+ this.type$ = new BehaviorSubject('checkbox');
5819
+ //#endregion
5740
5820
  //#region isToggled
5741
5821
  this._isToggled = false;
5742
5822
  this.change = new EventEmitter();
@@ -5744,6 +5824,89 @@ class BsToggleButtonComponent {
5744
5824
  //#endregion
5745
5825
  //#region disabled
5746
5826
  this.disabled = false;
5827
+ //#endregion
5828
+ //#region name
5829
+ this.name$ = new BehaviorSubject(null);
5830
+ //#endregion
5831
+ //#region value
5832
+ this.value$ = new BehaviorSubject(null);
5833
+ //#endregion
5834
+ //#region Group
5835
+ this.group$ = new BehaviorSubject(null);
5836
+ this.mainCheckStyle$ = this.type$.pipe(map((type) => {
5837
+ switch (type) {
5838
+ case 'checkbox':
5839
+ case 'radio':
5840
+ case 'switch':
5841
+ return 'form-check';
5842
+ default:
5843
+ return null;
5844
+ }
5845
+ }));
5846
+ this.isSwitch$ = this.type$.pipe(map((type) => {
5847
+ switch (type) {
5848
+ case 'switch':
5849
+ return true;
5850
+ default:
5851
+ return false;
5852
+ }
5853
+ }));
5854
+ this.inputClass$ = this.type$.pipe(map((type) => {
5855
+ switch (type) {
5856
+ case 'checkbox':
5857
+ case 'radio':
5858
+ case 'switch':
5859
+ return 'form-check-input';
5860
+ default:
5861
+ return 'btn-check';
5862
+ }
5863
+ }));
5864
+ this.labelClass$ = this.type$.pipe(map((type) => {
5865
+ switch (type) {
5866
+ case 'checkbox':
5867
+ case 'radio':
5868
+ case 'switch':
5869
+ return 'form-check-label';
5870
+ case 'toggle_button':
5871
+ return 'btn btn-primary';
5872
+ case 'radio_toggle_button':
5873
+ return 'btn btn-secondary';
5874
+ }
5875
+ }));
5876
+ this.checkOrRadio$ = this.type$.pipe(map((type) => {
5877
+ switch (type) {
5878
+ case 'radio':
5879
+ case 'radio_toggle_button':
5880
+ return 'radio';
5881
+ default:
5882
+ return 'checkbox';
5883
+ }
5884
+ }));
5885
+ this.nameResult$ = combineLatest([this.name$, this.type$, this.group$])
5886
+ .pipe(map(([name, type, group]) => {
5887
+ switch (type) {
5888
+ case 'radio':
5889
+ case 'radio_toggle_button':
5890
+ return name;
5891
+ case 'checkbox':
5892
+ case 'toggle_button':
5893
+ case 'switch':
5894
+ if (group) {
5895
+ return `${name}[]`;
5896
+ }
5897
+ else {
5898
+ return name;
5899
+ }
5900
+ default:
5901
+ throw 'Invalid value';
5902
+ }
5903
+ }));
5904
+ }
5905
+ get type() {
5906
+ return this.type$.value;
5907
+ }
5908
+ set type(value) {
5909
+ this.type$.next(value);
5747
5910
  }
5748
5911
  get isToggled() {
5749
5912
  return this._isToggled;
@@ -5752,6 +5915,24 @@ class BsToggleButtonComponent {
5752
5915
  this._isToggled = value;
5753
5916
  this.isToggledChange.emit(this._isToggled);
5754
5917
  }
5918
+ get name() {
5919
+ return this.name$.value;
5920
+ }
5921
+ set name(value) {
5922
+ this.name$.next(value);
5923
+ }
5924
+ get value() {
5925
+ return this.value$.value;
5926
+ }
5927
+ set value(value) {
5928
+ this.value$.next(value);
5929
+ }
5930
+ get group() {
5931
+ return this.group$.value;
5932
+ }
5933
+ set group(value) {
5934
+ this.group$.next(value);
5935
+ }
5755
5936
  //#endregion
5756
5937
  onChange(event) {
5757
5938
  const val = event.target.checked;
@@ -5763,11 +5944,16 @@ class BsToggleButtonComponent {
5763
5944
  }
5764
5945
  }
5765
5946
  BsToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5766
- 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: [""] });
5947
+ 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" }] });
5767
5948
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonComponent, decorators: [{
5768
5949
  type: Component,
5769
- 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>" }]
5770
- }], propDecorators: { change: [{
5950
+ 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"] }]
5951
+ }], ctorParameters: function () { return []; }, propDecorators: { checkbox: [{
5952
+ type: ViewChild,
5953
+ args: ['checkbox']
5954
+ }], type: [{
5955
+ type: Input
5956
+ }], change: [{
5771
5957
  type: Output
5772
5958
  }], isToggledChange: [{
5773
5959
  type: Output
@@ -5775,24 +5961,156 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
5775
5961
  type: Input
5776
5962
  }], disabled: [{
5777
5963
  type: Input
5964
+ }], name: [{
5965
+ type: Input
5966
+ }], value: [{
5967
+ type: Input
5968
+ }], group: [{
5969
+ type: Input
5970
+ }] } });
5971
+
5972
+ class BsToggleButtonGroupDirective {
5973
+ constructor() { }
5974
+ }
5975
+ BsToggleButtonGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
5976
+ 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 });
5977
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonGroupDirective, decorators: [{
5978
+ type: Directive,
5979
+ args: [{
5980
+ selector: '[bsToggleButtonGroup]',
5981
+ exportAs: 'bsToggleButtonGroup'
5982
+ }]
5983
+ }], ctorParameters: function () { return []; }, propDecorators: { toggleButtons: [{
5984
+ type: ContentChildren,
5985
+ args: [BsToggleButtonComponent, { descendants: true }]
5778
5986
  }] } });
5779
5987
 
5988
+ class BsToggleButtonValueAccessor {
5989
+ constructor(host) {
5990
+ this.host = host;
5991
+ this.destroyed$ = new Subject();
5992
+ }
5993
+ //#region Lifecycle hooks
5994
+ ngAfterViewInit() {
5995
+ fromEvent(this.host.checkbox.nativeElement, 'change')
5996
+ .pipe(takeUntil(this.destroyed$))
5997
+ .subscribe((ev) => {
5998
+ if (this.onValueChange && this.host.checkbox) {
5999
+ const isChecked = ev.target.checked;
6000
+ switch (this.host.type) {
6001
+ case 'radio':
6002
+ case 'radio_toggle_button':
6003
+ if (isChecked) {
6004
+ this.onValueChange(this.host.checkbox.nativeElement.value);
6005
+ }
6006
+ break;
6007
+ default:
6008
+ if (this.host['group']) {
6009
+ const group = this.host['group'];
6010
+ const itemValue = this.host.checkbox.nativeElement.value;
6011
+ const result = group.toggleButtons
6012
+ .map(tb => ({ value: tb.value, checked: tb.checkbox.nativeElement.checked }))
6013
+ .filter(tb => !!tb.value && tb.checked)
6014
+ .map(tb => tb.value);
6015
+ if (this.host.checkbox.nativeElement.checked) {
6016
+ if (!result.includes(itemValue)) {
6017
+ result.push(itemValue);
6018
+ }
6019
+ }
6020
+ else {
6021
+ if (result.includes(itemValue)) {
6022
+ result.splice(result.indexOf(itemValue), 1);
6023
+ }
6024
+ }
6025
+ this.onValueChange(result);
6026
+ }
6027
+ else {
6028
+ this.onValueChange(isChecked);
6029
+ }
6030
+ break;
6031
+ }
6032
+ }
6033
+ });
6034
+ }
6035
+ ngOnDestroy() {
6036
+ this.destroyed$.next(true);
6037
+ }
6038
+ //#endregion
6039
+ //#region ControlValueAccessor implementation
6040
+ registerOnChange(fn) {
6041
+ this.onValueChange = fn;
6042
+ }
6043
+ registerOnTouched(fn) {
6044
+ this.onTouched = fn;
6045
+ }
6046
+ writeValue(value) {
6047
+ if (this.host.checkbox) {
6048
+ switch (this.host.type) {
6049
+ case 'radio':
6050
+ case 'radio_toggle_button':
6051
+ if (value === this.host.value) {
6052
+ this.host.checkbox.nativeElement.checked = true;
6053
+ }
6054
+ break;
6055
+ default:
6056
+ if (this.host.group) {
6057
+ this.host.checkbox.nativeElement.checked = value.includes(this.host.value);
6058
+ }
6059
+ else {
6060
+ this.host.checkbox.nativeElement.checked = value;
6061
+ }
6062
+ break;
6063
+ }
6064
+ }
6065
+ }
6066
+ setDisabledState(isDisabled) {
6067
+ if (this.host.checkbox) {
6068
+ this.host.checkbox.nativeElement.disabled = isDisabled;
6069
+ }
6070
+ }
6071
+ }
6072
+ BsToggleButtonValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonValueAccessor, deps: [{ token: BsToggleButtonComponent }], target: i0.ɵɵFactoryTarget.Directive });
6073
+ BsToggleButtonValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: BsToggleButtonValueAccessor, selector: "bs-toggle-button", providers: [{
6074
+ provide: NG_VALUE_ACCESSOR,
6075
+ useExisting: forwardRef(() => BsToggleButtonValueAccessor),
6076
+ multi: true,
6077
+ }], ngImport: i0 });
6078
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonValueAccessor, decorators: [{
6079
+ type: Directive,
6080
+ args: [{
6081
+ selector: 'bs-toggle-button',
6082
+ providers: [{
6083
+ provide: NG_VALUE_ACCESSOR,
6084
+ useExisting: forwardRef(() => BsToggleButtonValueAccessor),
6085
+ multi: true,
6086
+ }],
6087
+ }]
6088
+ }], ctorParameters: function () { return [{ type: BsToggleButtonComponent }]; } });
6089
+
5780
6090
  class BsToggleButtonModule {
5781
6091
  }
5782
6092
  BsToggleButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5783
- BsToggleButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, declarations: [BsToggleButtonComponent], imports: [CommonModule], exports: [BsToggleButtonComponent] });
6093
+ BsToggleButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, declarations: [BsToggleButtonComponent,
6094
+ BsToggleButtonValueAccessor,
6095
+ BsToggleButtonGroupDirective], imports: [CommonModule], exports: [BsToggleButtonComponent,
6096
+ BsToggleButtonValueAccessor,
6097
+ BsToggleButtonGroupDirective] });
5784
6098
  BsToggleButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, imports: [CommonModule] });
5785
6099
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: BsToggleButtonModule, decorators: [{
5786
6100
  type: NgModule,
5787
6101
  args: [{
5788
6102
  declarations: [
5789
- BsToggleButtonComponent
6103
+ BsToggleButtonComponent,
6104
+ BsToggleButtonValueAccessor,
6105
+ BsToggleButtonGroupDirective
5790
6106
  ],
5791
6107
  imports: [
5792
6108
  CommonModule
5793
6109
  ],
5794
6110
  exports: [
5795
- BsToggleButtonComponent
6111
+ BsToggleButtonComponent,
6112
+ BsToggleButtonValueAccessor,
6113
+ BsToggleButtonGroupDirective
5796
6114
  ]
5797
6115
  }]
5798
6116
  }] });
@@ -6110,5 +6428,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
6110
6428
  * Generated bundle index. Do not edit.
6111
6429
  */
6112
6430
 
6113
- 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 };
6431
+ 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 };
6114
6432
  //# sourceMappingURL=mintplayer-ng-bootstrap.mjs.map