@mintplayer/ng-bootstrap 21.0.0 → 21.1.1

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 (155) hide show
  1. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +33 -46
  2. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
  3. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +12 -30
  4. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
  5. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +6 -18
  6. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs.map +1 -1
  7. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +31 -65
  8. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  9. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +200 -132
  10. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  11. package/fesm2022/mintplayer-ng-bootstrap-close.mjs +5 -7
  12. package/fesm2022/mintplayer-ng-bootstrap-close.mjs.map +1 -1
  13. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +14 -17
  14. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
  15. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +231 -347
  16. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
  17. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +43 -39
  18. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
  19. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +7 -35
  20. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
  21. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +1 -0
  22. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  23. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +1 -1
  24. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  25. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +46 -86
  26. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
  27. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +7 -7
  28. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs.map +1 -1
  29. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +7 -6
  30. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  31. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +32 -74
  32. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs.map +1 -1
  33. package/fesm2022/mintplayer-ng-bootstrap-let.mjs +6 -7
  34. package/fesm2022/mintplayer-ng-bootstrap-let.mjs.map +1 -1
  35. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +18 -18
  36. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs.map +1 -1
  37. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +20 -22
  38. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
  39. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +16 -10
  40. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  41. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +8 -28
  42. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
  43. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +208 -265
  44. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  45. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +8 -21
  46. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs.map +1 -1
  47. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +43 -38
  48. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
  49. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +6 -6
  50. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs.map +1 -1
  51. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +59 -120
  52. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
  53. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +11 -25
  54. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
  55. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +8 -28
  56. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
  57. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +67 -103
  58. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
  59. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +34 -63
  60. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
  61. package/fesm2022/mintplayer-ng-bootstrap-range.mjs +6 -6
  62. package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
  63. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +19 -47
  64. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  65. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +35 -41
  66. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  67. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +205 -779
  68. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
  69. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +34 -39
  70. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
  71. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +74 -100
  72. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
  73. package/fesm2022/mintplayer-ng-bootstrap-select.mjs +37 -79
  74. package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
  75. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +78 -45
  76. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
  77. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +16 -26
  78. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs.map +1 -1
  79. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +14 -40
  80. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
  81. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +8 -32
  82. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs.map +1 -1
  83. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs +70 -76
  84. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs.map +1 -1
  85. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +11 -11
  86. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs.map +1 -1
  87. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +53 -99
  88. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  89. package/fesm2022/mintplayer-ng-bootstrap-table.mjs +7 -38
  90. package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
  91. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +23 -49
  92. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
  93. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +33 -38
  94. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
  95. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +45 -98
  96. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
  97. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +12 -24
  98. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
  99. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +21 -43
  100. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
  101. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +6 -6
  102. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs.map +1 -1
  103. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +29 -49
  104. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
  105. package/package.json +5 -5
  106. package/types/mintplayer-ng-bootstrap-accordion.d.ts +11 -15
  107. package/types/mintplayer-ng-bootstrap-alert.d.ts +4 -9
  108. package/types/mintplayer-ng-bootstrap-badge.d.ts +5 -9
  109. package/types/mintplayer-ng-bootstrap-calendar.d.ts +14 -22
  110. package/types/mintplayer-ng-bootstrap-carousel.d.ts +41 -35
  111. package/types/mintplayer-ng-bootstrap-close.d.ts +1 -2
  112. package/types/mintplayer-ng-bootstrap-code-snippet.d.ts +4 -5
  113. package/types/mintplayer-ng-bootstrap-color-picker.d.ts +70 -97
  114. package/types/mintplayer-ng-bootstrap-datatable.d.ts +11 -11
  115. package/types/mintplayer-ng-bootstrap-datepicker.d.ts +6 -13
  116. package/types/mintplayer-ng-bootstrap-dropdown.d.ts +14 -20
  117. package/types/mintplayer-ng-bootstrap-enhanced-paste.d.ts +1 -3
  118. package/types/mintplayer-ng-bootstrap-file-upload.d.ts +1 -1
  119. package/types/mintplayer-ng-bootstrap-grid.d.ts +14 -26
  120. package/types/mintplayer-ng-bootstrap-let.d.ts +0 -2
  121. package/types/mintplayer-ng-bootstrap-markdown.d.ts +1 -5
  122. package/types/mintplayer-ng-bootstrap-modal.d.ts +3 -6
  123. package/types/mintplayer-ng-bootstrap-multiselect.d.ts +6 -6
  124. package/types/mintplayer-ng-bootstrap-navbar-toggler.d.ts +5 -11
  125. package/types/mintplayer-ng-bootstrap-navbar.d.ts +75 -80
  126. package/types/mintplayer-ng-bootstrap-navigation-lock.d.ts +2 -4
  127. package/types/mintplayer-ng-bootstrap-offcanvas.d.ts +12 -14
  128. package/types/mintplayer-ng-bootstrap-ordinal-number.d.ts +1 -2
  129. package/types/mintplayer-ng-bootstrap-pagination.d.ts +17 -31
  130. package/types/mintplayer-ng-bootstrap-placeholder.d.ts +3 -8
  131. package/types/mintplayer-ng-bootstrap-playlist-toggler.d.ts +5 -11
  132. package/types/mintplayer-ng-bootstrap-popover.d.ts +15 -23
  133. package/types/mintplayer-ng-bootstrap-progress-bar.d.ts +19 -22
  134. package/types/mintplayer-ng-bootstrap-range.d.ts +1 -2
  135. package/types/mintplayer-ng-bootstrap-rating.d.ts +8 -14
  136. package/types/mintplayer-ng-bootstrap-resizable.d.ts +7 -11
  137. package/types/mintplayer-ng-bootstrap-scheduler.d.ts +132 -220
  138. package/types/mintplayer-ng-bootstrap-scrollspy.d.ts +14 -15
  139. package/types/mintplayer-ng-bootstrap-searchbox.d.ts +20 -27
  140. package/types/mintplayer-ng-bootstrap-select.d.ts +13 -23
  141. package/types/mintplayer-ng-bootstrap-select2.d.ts +16 -14
  142. package/types/mintplayer-ng-bootstrap-shell.d.ts +6 -12
  143. package/types/mintplayer-ng-bootstrap-signature-pad.d.ts +7 -12
  144. package/types/mintplayer-ng-bootstrap-spinner.d.ts +8 -16
  145. package/types/mintplayer-ng-bootstrap-splitter.d.ts +21 -27
  146. package/types/mintplayer-ng-bootstrap-sticky-footer.d.ts +3 -3
  147. package/types/mintplayer-ng-bootstrap-tab-control.d.ts +29 -37
  148. package/types/mintplayer-ng-bootstrap-table.d.ts +6 -13
  149. package/types/mintplayer-ng-bootstrap-timepicker.d.ts +7 -14
  150. package/types/mintplayer-ng-bootstrap-toast.d.ts +5 -10
  151. package/types/mintplayer-ng-bootstrap-toggle-button.d.ts +22 -36
  152. package/types/mintplayer-ng-bootstrap-tooltip.d.ts +4 -7
  153. package/types/mintplayer-ng-bootstrap-treeview.d.ts +10 -15
  154. package/types/mintplayer-ng-bootstrap-trust-html.d.ts +0 -2
  155. package/types/mintplayer-ng-bootstrap-typeahead.d.ts +14 -17
@@ -1,48 +1,34 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Input, Component, HostBinding, Directive, NgModule } from '@angular/core';
3
- import { BehaviorSubject } from 'rxjs';
4
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
2
+ import { model, ChangeDetectionStrategy, Component, inject, effect, HostBinding, Directive, NgModule } from '@angular/core';
5
3
  import { CommonModule } from '@angular/common';
6
4
 
7
5
  class BsPlaceholderComponent {
8
6
  constructor() {
9
- //#region isLoading
10
- this.isLoading$ = new BehaviorSubject(false);
11
- this.isLoadingChange = new EventEmitter();
12
- }
13
- get isLoading() {
14
- return this.isLoading$.value;
15
- }
16
- set isLoading(value) {
17
- this.isLoading$.next(value);
18
- this.isLoadingChange.emit(value);
7
+ this.isLoading = model(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
19
8
  }
20
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsPlaceholderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: BsPlaceholderComponent, isStandalone: false, selector: "bs-placeholder", inputs: { isLoading: "isLoading" }, ngImport: i0, template: "<div class=\"placeholder-glow\">\n <ng-content></ng-content>\n</div>", styles: [":host ::ng-deep .placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}:host ::ng-deep .placeholder.btn:before{display:inline-block;content:\"\"}:host ::ng-deep .placeholder-xs{min-height:.6em}:host ::ng-deep .placeholder-sm{min-height:.8em}:host ::ng-deep .placeholder-lg{min-height:1.2em}:host ::ng-deep .placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}:host ::ng-deep .placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}:host ::ng-deep .placeholder{min-height:calc(1em - 1px)!important}\n"] }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: BsPlaceholderComponent, isStandalone: false, selector: "bs-placeholder", inputs: { isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isLoading: "isLoadingChange" }, ngImport: i0, template: "<div class=\"placeholder-glow\">\n <ng-content></ng-content>\n</div>", styles: [":host ::ng-deep .placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}:host ::ng-deep .placeholder.btn:before{display:inline-block;content:\"\"}:host ::ng-deep .placeholder-xs{min-height:.6em}:host ::ng-deep .placeholder-sm{min-height:.8em}:host ::ng-deep .placeholder-lg{min-height:1.2em}:host ::ng-deep .placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}:host ::ng-deep .placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}:host ::ng-deep .placeholder{min-height:calc(1em - 1px)!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
11
  }
23
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsPlaceholderComponent, decorators: [{
24
13
  type: Component,
25
- args: [{ selector: 'bs-placeholder', standalone: false, template: "<div class=\"placeholder-glow\">\n <ng-content></ng-content>\n</div>", styles: [":host ::ng-deep .placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}:host ::ng-deep .placeholder.btn:before{display:inline-block;content:\"\"}:host ::ng-deep .placeholder-xs{min-height:.6em}:host ::ng-deep .placeholder-sm{min-height:.8em}:host ::ng-deep .placeholder-lg{min-height:1.2em}:host ::ng-deep .placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}:host ::ng-deep .placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}:host ::ng-deep .placeholder{min-height:calc(1em - 1px)!important}\n"] }]
26
- }], propDecorators: { isLoading: [{
27
- type: Input
28
- }] } });
14
+ args: [{ selector: 'bs-placeholder', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"placeholder-glow\">\n <ng-content></ng-content>\n</div>", styles: [":host ::ng-deep .placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}:host ::ng-deep .placeholder.btn:before{display:inline-block;content:\"\"}:host ::ng-deep .placeholder-xs{min-height:.6em}:host ::ng-deep .placeholder-sm{min-height:.8em}:host ::ng-deep .placeholder-lg{min-height:1.2em}:host ::ng-deep .placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}:host ::ng-deep .placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}:host ::ng-deep .placeholder{min-height:calc(1em - 1px)!important}\n"] }]
15
+ }], propDecorators: { isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }, { type: i0.Output, args: ["isLoadingChange"] }] } });
29
16
 
30
17
  class BsPlaceholderFieldDirective {
31
- constructor(placeholder) {
32
- this.placeholder = placeholder;
18
+ constructor() {
19
+ this.placeholder = inject(BsPlaceholderComponent);
33
20
  this.html = undefined;
34
21
  this.minWidth = 80;
35
22
  this.marginBottom = 0;
36
23
  this.placeholderClass = true;
37
- this.placeholder.isLoading$
38
- .pipe(takeUntilDestroyed())
39
- .subscribe((isLoading) => {
24
+ effect(() => {
25
+ const isLoading = this.placeholder.isLoading();
40
26
  this.placeholderClass = isLoading;
41
27
  this.marginBottom = isLoading ? -1 : 0;
42
28
  this.html = isLoading ? '&nbsp;' : undefined;
43
29
  });
44
30
  }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsPlaceholderFieldDirective, deps: [{ token: BsPlaceholderComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsPlaceholderFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
46
32
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: BsPlaceholderFieldDirective, isStandalone: false, selector: "[bsPlaceholderField]", host: { properties: { "attr.innerHtml": "this.html", "style.min-width.px": "this.minWidth", "style.margin-bottom.px": "this.marginBottom", "class.placeholder": "this.placeholderClass" } }, ngImport: i0 }); }
47
33
  }
48
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsPlaceholderFieldDirective, decorators: [{
@@ -51,7 +37,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
51
37
  selector: '[bsPlaceholderField]',
52
38
  standalone: false,
53
39
  }]
54
- }], ctorParameters: () => [{ type: BsPlaceholderComponent }], propDecorators: { html: [{
40
+ }], ctorParameters: () => [], propDecorators: { html: [{
55
41
  type: HostBinding,
56
42
  args: ['attr.innerHtml']
57
43
  }], minWidth: [{
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-placeholder.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder/placeholder.component.ts","../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder/placeholder.component.html","../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder-field/placeholder-field.directive.ts","../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder.module.ts","../../../../libs/mintplayer-ng-bootstrap/placeholder/mintplayer-ng-bootstrap-placeholder.ts"],"sourcesContent":["import { Component, EventEmitter, HostBinding, Input } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'bs-placeholder',\n templateUrl: './placeholder.component.html',\n styleUrls: ['./placeholder.component.scss'],\n standalone: false,\n})\nexport class BsPlaceholderComponent {\n //#region isLoading\n isLoading$ = new BehaviorSubject<boolean>(false);\n isLoadingChange = new EventEmitter<boolean>();\n public get isLoading() {\n return this.isLoading$.value;\n }\n @Input() public set isLoading(value: boolean) {\n this.isLoading$.next(value);\n this.isLoadingChange.emit(value);\n }\n //#endregion\n}\n","<div class=\"placeholder-glow\">\n <ng-content></ng-content>\n</div>","import { Directive, HostBinding } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BsPlaceholderComponent } from '../placeholder/placeholder.component';\n\n@Directive({\n selector: '[bsPlaceholderField]',\n standalone: false,\n})\nexport class BsPlaceholderFieldDirective {\n\n constructor(private placeholder: BsPlaceholderComponent) {\n this.placeholder.isLoading$\n .pipe(takeUntilDestroyed())\n .subscribe((isLoading) => {\n this.placeholderClass = isLoading;\n this.marginBottom = isLoading ? -1 : 0;\n this.html = isLoading ? '&nbsp;' : undefined;\n });\n }\n\n @HostBinding('attr.innerHtml') html?: string = undefined;\n @HostBinding('style.min-width.px') minWidth = 80;\n @HostBinding('style.margin-bottom.px') marginBottom = 0;\n @HostBinding('class.placeholder') placeholderClass = true; \n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsPlaceholderComponent } from './placeholder/placeholder.component';\nimport { BsPlaceholderFieldDirective } from './placeholder-field/placeholder-field.directive';\n\n@NgModule({\n declarations: [BsPlaceholderComponent, BsPlaceholderFieldDirective],\n imports: [CommonModule],\n exports: [BsPlaceholderComponent, BsPlaceholderFieldDirective],\n})\nexport class BsPlaceholderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsPlaceholderComponent"],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-placeholder.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder/placeholder.component.ts","../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder/placeholder.component.html","../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder-field/placeholder-field.directive.ts","../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder.module.ts","../../../../libs/mintplayer-ng-bootstrap/placeholder/mintplayer-ng-bootstrap-placeholder.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model } from '@angular/core';\n\n@Component({\n selector: 'bs-placeholder',\n templateUrl: './placeholder.component.html',\n styleUrls: ['./placeholder.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsPlaceholderComponent {\n isLoading = model<boolean>(false);\n}\n","<div class=\"placeholder-glow\">\n <ng-content></ng-content>\n</div>","import { Directive, effect, HostBinding, inject } from '@angular/core';\nimport { BsPlaceholderComponent } from '../placeholder/placeholder.component';\n\n@Directive({\n selector: '[bsPlaceholderField]',\n standalone: false,\n})\nexport class BsPlaceholderFieldDirective {\n private placeholder = inject(BsPlaceholderComponent);\n\n constructor() {\n effect(() => {\n const isLoading = this.placeholder.isLoading();\n this.placeholderClass = isLoading;\n this.marginBottom = isLoading ? -1 : 0;\n this.html = isLoading ? '&nbsp;' : undefined;\n });\n }\n\n @HostBinding('attr.innerHtml') html?: string = undefined;\n @HostBinding('style.min-width.px') minWidth = 80;\n @HostBinding('style.margin-bottom.px') marginBottom = 0;\n @HostBinding('class.placeholder') placeholderClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsPlaceholderComponent } from './placeholder/placeholder.component';\nimport { BsPlaceholderFieldDirective } from './placeholder-field/placeholder-field.directive';\n\n@NgModule({\n declarations: [BsPlaceholderComponent, BsPlaceholderFieldDirective],\n imports: [CommonModule],\n exports: [BsPlaceholderComponent, BsPlaceholderFieldDirective],\n})\nexport class BsPlaceholderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,43 +1,23 @@
1
- import { AsyncPipe } from '@angular/common';
2
1
  import * as i0 from '@angular/core';
3
- import { EventEmitter, HostListener, Input, Output, Component } from '@angular/core';
4
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
- import { BehaviorSubject, distinctUntilChanged } from 'rxjs';
2
+ import { model, input, HostListener, ChangeDetectionStrategy, Component } from '@angular/core';
6
3
 
7
4
  class BsPlaylistTogglerComponent {
8
5
  constructor() {
9
- //#region State
10
- this.state$ = new BehaviorSubject(false);
11
- this.stateChange = new EventEmitter();
12
- //#endregion
13
- this.toggleOnClick = true;
14
- this.state$.pipe(distinctUntilChanged(), takeUntilDestroyed())
15
- .subscribe(state => this.stateChange.emit(state));
16
- }
17
- get state() {
18
- return this.state$.value;
19
- }
20
- set state(value) {
21
- this.state$.next(value);
6
+ this.state = model(false, ...(ngDevMode ? [{ debugName: "state" }] : []));
7
+ this.toggleOnClick = input(true, ...(ngDevMode ? [{ debugName: "toggleOnClick" }] : []));
22
8
  }
23
9
  toggleState(ev) {
24
- if (this.toggleOnClick) {
25
- this.state$.next(!this.state);
10
+ if (this.toggleOnClick()) {
11
+ this.state.update(v => !v);
26
12
  }
27
13
  }
28
14
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsPlaylistTogglerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: BsPlaylistTogglerComponent, isStandalone: true, selector: "bs-playlist-toggler", inputs: { state: "state", toggleOnClick: "toggleOnClick" }, outputs: { stateChange: "stateChange" }, host: { listeners: { "click": "toggleState($event)" } }, ngImport: i0, template: "<div class=\"playlist-toggler float-left\" [class.open]=\"state$ | async\">\n <div></div>\n <div></div>\n <div></div>\n</div>", styles: [".playlist-toggler{width:3.5rem;padding:.75rem}.playlist-toggler>div{width:25px;height:2px;background:#bbb;margin:6px 0;transition:.4s}.playlist-toggler.open>div:nth-of-type(1){-webkit-transform:rotate(-45deg) translate(-7px,5px);transform:rotate(-45deg) translate(-7px,5px)}.playlist-toggler.open>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:0}.playlist-toggler.open>div:nth-of-type(3){-webkit-transform:rotate(45deg) translate(-6px,-4px);transform:rotate(45deg) translate(-6px,-4px)}.playlist-toggler:not(.open)>div:nth-of-type(1){-webkit-transform:rotate(-30deg) translate(-10px,11px);transform:rotate(-30deg) translate(-10px,11px)}.playlist-toggler:not(.open)>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:1}.playlist-toggler:not(.open)>div:nth-of-type(3){-webkit-transform:rotate(30deg) translate(-10px,-11px);transform:rotate(30deg) translate(-10px,-11px)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }] }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: BsPlaylistTogglerComponent, isStandalone: true, selector: "bs-playlist-toggler", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, toggleOnClick: { classPropertyName: "toggleOnClick", publicName: "toggleOnClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { state: "stateChange" }, host: { listeners: { "click": "toggleState($event)" } }, ngImport: i0, template: "<div class=\"playlist-toggler float-left\" [class.open]=\"state()\">\n <div></div>\n <div></div>\n <div></div>\n</div>", styles: [".playlist-toggler{width:3.5rem;padding:.75rem}.playlist-toggler>div{width:25px;height:2px;background:#bbb;margin:6px 0;transition:.4s}.playlist-toggler.open>div:nth-of-type(1){-webkit-transform:rotate(-45deg) translate(-7px,5px);transform:rotate(-45deg) translate(-7px,5px)}.playlist-toggler.open>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:0}.playlist-toggler.open>div:nth-of-type(3){-webkit-transform:rotate(45deg) translate(-6px,-4px);transform:rotate(45deg) translate(-6px,-4px)}.playlist-toggler:not(.open)>div:nth-of-type(1){-webkit-transform:rotate(-30deg) translate(-10px,11px);transform:rotate(-30deg) translate(-10px,11px)}.playlist-toggler:not(.open)>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:1}.playlist-toggler:not(.open)>div:nth-of-type(3){-webkit-transform:rotate(30deg) translate(-10px,-11px);transform:rotate(30deg) translate(-10px,-11px)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
16
  }
31
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsPlaylistTogglerComponent, decorators: [{
32
18
  type: Component,
33
- args: [{ selector: 'bs-playlist-toggler', standalone: true, imports: [AsyncPipe], template: "<div class=\"playlist-toggler float-left\" [class.open]=\"state$ | async\">\n <div></div>\n <div></div>\n <div></div>\n</div>", styles: [".playlist-toggler{width:3.5rem;padding:.75rem}.playlist-toggler>div{width:25px;height:2px;background:#bbb;margin:6px 0;transition:.4s}.playlist-toggler.open>div:nth-of-type(1){-webkit-transform:rotate(-45deg) translate(-7px,5px);transform:rotate(-45deg) translate(-7px,5px)}.playlist-toggler.open>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:0}.playlist-toggler.open>div:nth-of-type(3){-webkit-transform:rotate(45deg) translate(-6px,-4px);transform:rotate(45deg) translate(-6px,-4px)}.playlist-toggler:not(.open)>div:nth-of-type(1){-webkit-transform:rotate(-30deg) translate(-10px,11px);transform:rotate(-30deg) translate(-10px,11px)}.playlist-toggler:not(.open)>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:1}.playlist-toggler:not(.open)>div:nth-of-type(3){-webkit-transform:rotate(30deg) translate(-10px,-11px);transform:rotate(30deg) translate(-10px,-11px)}\n"] }]
34
- }], ctorParameters: () => [], propDecorators: { stateChange: [{
35
- type: Output
36
- }], state: [{
37
- type: Input
38
- }], toggleOnClick: [{
39
- type: Input
40
- }], toggleState: [{
19
+ args: [{ selector: 'bs-playlist-toggler', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"playlist-toggler float-left\" [class.open]=\"state()\">\n <div></div>\n <div></div>\n <div></div>\n</div>", styles: [".playlist-toggler{width:3.5rem;padding:.75rem}.playlist-toggler>div{width:25px;height:2px;background:#bbb;margin:6px 0;transition:.4s}.playlist-toggler.open>div:nth-of-type(1){-webkit-transform:rotate(-45deg) translate(-7px,5px);transform:rotate(-45deg) translate(-7px,5px)}.playlist-toggler.open>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:0}.playlist-toggler.open>div:nth-of-type(3){-webkit-transform:rotate(45deg) translate(-6px,-4px);transform:rotate(45deg) translate(-6px,-4px)}.playlist-toggler:not(.open)>div:nth-of-type(1){-webkit-transform:rotate(-30deg) translate(-10px,11px);transform:rotate(-30deg) translate(-10px,11px)}.playlist-toggler:not(.open)>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:1}.playlist-toggler:not(.open)>div:nth-of-type(3){-webkit-transform:rotate(30deg) translate(-10px,-11px);transform:rotate(30deg) translate(-10px,-11px)}\n"] }]
20
+ }], propDecorators: { state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }, { type: i0.Output, args: ["stateChange"] }], toggleOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleOnClick", required: false }] }], toggleState: [{
41
21
  type: HostListener,
42
22
  args: ['click', ['$event']]
43
23
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-playlist-toggler.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/playlist-toggler/src/playlist-toggler/playlist-toggler.component.ts","../../../../libs/mintplayer-ng-bootstrap/playlist-toggler/src/playlist-toggler/playlist-toggler.component.html","../../../../libs/mintplayer-ng-bootstrap/playlist-toggler/mintplayer-ng-bootstrap-playlist-toggler.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, distinctUntilChanged } from 'rxjs';\n\n@Component({\n selector: 'bs-playlist-toggler',\n standalone: true,\n templateUrl: './playlist-toggler.component.html',\n styleUrls: ['./playlist-toggler.component.scss'],\n imports: [AsyncPipe],\n})\nexport class BsPlaylistTogglerComponent {\n constructor() {\n this.state$.pipe(distinctUntilChanged(), takeUntilDestroyed())\n .subscribe(state => this.stateChange.emit(state));\n }\n\n //#region State\n state$ = new BehaviorSubject<boolean>(false);\n @Output() public stateChange = new EventEmitter<boolean>();\n public get state() {\n return this.state$.value;\n }\n @Input() public set state(value: boolean) {\n this.state$.next(value);\n }\n //#endregion\n\n @Input() public toggleOnClick = true;\n\n @HostListener('click', ['$event'])\n toggleState(ev: MouseEvent) {\n if (this.toggleOnClick) {\n this.state$.next(!this.state);\n }\n }\n}\n","<div class=\"playlist-toggler float-left\" [class.open]=\"state$ | async\">\n <div></div>\n <div></div>\n <div></div>\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAYa,0BAA0B,CAAA;AACrC,IAAA,WAAA,GAAA;;AAMA,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AAC3B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAW;;QAS1C,IAAA,CAAA,aAAa,GAAG,IAAI;QAflC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,kBAAkB,EAAE;AAC1D,aAAA,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD;AAKA,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK;IAC1B;IACA,IAAoB,KAAK,CAAC,KAAc,EAAA;AACtC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB;AAMA,IAAA,WAAW,CAAC,EAAc,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/B;IACF;8GAxBW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZvC,wIAIM,EAAA,MAAA,EAAA,CAAA,s/BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDMM,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAER,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EAGP,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,s/BAAA,CAAA,EAAA;;sBAUnB;;sBAIA;;sBAKA;;sBAEA,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AE/BnC;;AAEG;;;;"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-playlist-toggler.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/playlist-toggler/src/playlist-toggler/playlist-toggler.component.ts","../../../../libs/mintplayer-ng-bootstrap/playlist-toggler/src/playlist-toggler/playlist-toggler.component.html","../../../../libs/mintplayer-ng-bootstrap/playlist-toggler/mintplayer-ng-bootstrap-playlist-toggler.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostListener, input, model } from '@angular/core';\n\n@Component({\n selector: 'bs-playlist-toggler',\n standalone: true,\n templateUrl: './playlist-toggler.component.html',\n styleUrls: ['./playlist-toggler.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsPlaylistTogglerComponent {\n state = model<boolean>(false);\n toggleOnClick = input(true);\n\n @HostListener('click', ['$event'])\n toggleState(ev: MouseEvent) {\n if (this.toggleOnClick()) {\n this.state.update(v => !v);\n }\n }\n}\n","<div class=\"playlist-toggler float-left\" [class.open]=\"state()\">\n <div></div>\n <div></div>\n <div></div>\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MASa,0BAA0B,CAAA;AAPvC,IAAA,WAAA,GAAA;AAQE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAU,KAAK,iDAAC;AAC7B,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,IAAI,yDAAC;AAQ5B,IAAA;AALC,IAAA,WAAW,CAAC,EAAc,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B;IACF;8GATW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,+bCTvC,iIAIM,EAAA,MAAA,EAAA,CAAA,s/BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDKO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,iIAAA,EAAA,MAAA,EAAA,CAAA,s/BAAA,CAAA,EAAA;;sBAM9C,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AEbnC;;AAEG;;;;"}
@@ -1,64 +1,41 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, HostBinding, Input, Inject, Component, Injector, Host, SkipSelf, Directive, NgModule } from '@angular/core';
2
+ import { InjectionToken, input, computed, HostBinding, Inject, ChangeDetectionStrategy, Component, inject, TemplateRef, Injector, ElementRef, signal, effect, Directive, NgModule } from '@angular/core';
3
3
  import { FadeInOutAnimation } from '@mintplayer/ng-animations';
4
- import { BehaviorSubject, map, delay, take } from 'rxjs';
5
4
  import * as i1 from '@angular/common';
6
5
  import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
7
6
  import * as i2 from '@mintplayer/ng-bootstrap/has-overlay';
8
7
  import { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';
9
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
10
- import * as i1$1 from '@angular/cdk/overlay';
11
- import { OverlayModule } from '@angular/cdk/overlay';
8
+ import { Overlay, OverlayModule } from '@angular/cdk/overlay';
12
9
  import { ComponentPortal } from '@angular/cdk/portal';
13
10
 
14
11
  const POPOVER_CONTENT = new InjectionToken('PopoverContent');
15
12
 
16
13
  class BsPopoverComponent {
17
14
  constructor(content) {
18
- //#region Position
19
- this.position$ = new BehaviorSubject('bottom');
20
- //#endregion
21
- //#region IsVisible
22
- this.isVisible$ = new BehaviorSubject(false);
23
- this.positionRelative = true;
24
- this.template = content;
25
- this.marginClass$ = this.position$.pipe(map((position) => {
26
- switch (position) {
15
+ this.position = input('bottom', ...(ngDevMode ? [{ debugName: "position" }] : []));
16
+ this.isVisible = input(false, ...(ngDevMode ? [{ debugName: "isVisible" }] : []));
17
+ this.marginClass = computed(() => {
18
+ switch (this.position()) {
27
19
  case 'top': return 'mb-2';
28
20
  case 'start': return 'me-2';
29
21
  case 'end': return 'ms-2';
30
22
  default: return 'mt-2';
31
23
  }
32
- }));
33
- this.positionClass$ = this.position$
34
- .pipe(map(position => `bs-popover-${position}`));
35
- }
36
- get position() {
37
- return this.position$.value;
38
- }
39
- set position(value) {
40
- this.position$.next(value);
41
- }
42
- get isVisible() {
43
- return this.isVisible$.value;
44
- }
45
- set isVisible(value) {
46
- this.isVisible$.next(value);
24
+ }, ...(ngDevMode ? [{ debugName: "marginClass" }] : []));
25
+ this.positionClass = computed(() => `bs-popover-${this.position()}`, ...(ngDevMode ? [{ debugName: "positionClass" }] : []));
26
+ this.positionRelative = true;
27
+ this.template = content;
47
28
  }
48
29
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsPopoverComponent, deps: [{ token: POPOVER_CONTENT }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BsPopoverComponent, isStandalone: false, selector: "bs-popover", inputs: { position: "position", isVisible: "isVisible" }, host: { properties: { "class.position-relative": "this.positionRelative" } }, ngImport: i0, template: "@if (isVisible$ | async) {\n <div class=\"popover position-relative fade show\" role=\"tooltip\"\n [class]=\"[marginClass$ | async, positionClass$ | async]\"\n [@fadeInOut]>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <div class=\"popover-arrow position-absolute\"></div>\n <bs-has-overlay></bs-has-overlay>\n </div>\n}", styles: [":host ::ng-deep .fade{transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){:host ::ng-deep .fade{transition:none}}:host ::ng-deep .fade:not(.show){opacity:0}:host ::ng-deep .collapse:not(.show){display:none}:host ::ng-deep .collapsing{height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion:reduce){:host ::ng-deep .collapsing{transition:none}}:host ::ng-deep .collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion:reduce){:host ::ng-deep .collapsing.collapse-horizontal{transition:none}}:host ::ng-deep .popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: var(--bs-box-shadow);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}:host ::ng-deep .popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}:host ::ng-deep .popover .popover-arrow:before,:host ::ng-deep .popover .popover-arrow:after{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid;border-width:0}:host ::ng-deep .bs-popover-top>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}:host ::ng-deep .bs-popover-top>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,:host ::ng-deep .bs-popover-top>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}:host ::ng-deep .bs-popover-top>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-top>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}:host ::ng-deep .bs-popover-end>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}:host ::ng-deep .bs-popover-end>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,:host ::ng-deep .bs-popover-end>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}:host ::ng-deep .bs-popover-end>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-end>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}:host ::ng-deep .bs-popover-bottom>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}:host ::ng-deep .bs-popover-bottom>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,:host ::ng-deep .bs-popover-bottom>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}:host ::ng-deep .bs-popover-bottom>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-bottom>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}:host ::ng-deep .bs-popover-bottom .popover-header:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:\"\";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}:host ::ng-deep .bs-popover-start>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}:host ::ng-deep .bs-popover-start>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,:host ::ng-deep .bs-popover-start>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}:host ::ng-deep .bs-popover-start>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-start>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}:host ::ng-deep .popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}:host ::ng-deep .popover-header:empty{display:none}:host ::ng-deep .popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.popover.bs-popover-top>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.popover.bs-popover-bottom>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{left:50%;transform:translate(-50%)}.popover.bs-popover-start>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.popover.bs-popover-end>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{top:50%;transform:translateY(-50%)}.popover:not(.show){pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.BsHasOverlayComponent, selector: "bs-has-overlay" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [FadeInOutAnimation] }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BsPopoverComponent, isStandalone: false, selector: "bs-popover", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, isVisible: { classPropertyName: "isVisible", publicName: "isVisible", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.position-relative": "this.positionRelative" } }, ngImport: i0, template: "@if (isVisible()) {\n <div class=\"popover position-relative fade show\" role=\"tooltip\"\n [class]=\"[marginClass(), positionClass()]\"\n [@fadeInOut]>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <div class=\"popover-arrow position-absolute\"></div>\n <bs-has-overlay></bs-has-overlay>\n </div>\n}\n", styles: [":host ::ng-deep .fade{transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){:host ::ng-deep .fade{transition:none}}:host ::ng-deep .fade:not(.show){opacity:0}:host ::ng-deep .collapse:not(.show){display:none}:host ::ng-deep .collapsing{height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion:reduce){:host ::ng-deep .collapsing{transition:none}}:host ::ng-deep .collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion:reduce){:host ::ng-deep .collapsing.collapse-horizontal{transition:none}}:host ::ng-deep .popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: var(--bs-box-shadow);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}:host ::ng-deep .popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}:host ::ng-deep .popover .popover-arrow:before,:host ::ng-deep .popover .popover-arrow:after{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid;border-width:0}:host ::ng-deep .bs-popover-top>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}:host ::ng-deep .bs-popover-top>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,:host ::ng-deep .bs-popover-top>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}:host ::ng-deep .bs-popover-top>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-top>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}:host ::ng-deep .bs-popover-end>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}:host ::ng-deep .bs-popover-end>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,:host ::ng-deep .bs-popover-end>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}:host ::ng-deep .bs-popover-end>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-end>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}:host ::ng-deep .bs-popover-bottom>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}:host ::ng-deep .bs-popover-bottom>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,:host ::ng-deep .bs-popover-bottom>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}:host ::ng-deep .bs-popover-bottom>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-bottom>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}:host ::ng-deep .bs-popover-bottom .popover-header:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:\"\";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}:host ::ng-deep .bs-popover-start>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}:host ::ng-deep .bs-popover-start>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,:host ::ng-deep .bs-popover-start>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}:host ::ng-deep .bs-popover-start>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-start>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}:host ::ng-deep .popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}:host ::ng-deep .popover-header:empty{display:none}:host ::ng-deep .popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.popover.bs-popover-top>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.popover.bs-popover-bottom>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{left:50%;transform:translate(-50%)}.popover.bs-popover-start>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.popover.bs-popover-end>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{top:50%;transform:translateY(-50%)}.popover:not(.show){pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.BsHasOverlayComponent, selector: "bs-has-overlay" }], animations: [FadeInOutAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
50
31
  }
51
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsPopoverComponent, decorators: [{
52
33
  type: Component,
53
- args: [{ selector: 'bs-popover', standalone: false, animations: [FadeInOutAnimation], template: "@if (isVisible$ | async) {\n <div class=\"popover position-relative fade show\" role=\"tooltip\"\n [class]=\"[marginClass$ | async, positionClass$ | async]\"\n [@fadeInOut]>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <div class=\"popover-arrow position-absolute\"></div>\n <bs-has-overlay></bs-has-overlay>\n </div>\n}", styles: [":host ::ng-deep .fade{transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){:host ::ng-deep .fade{transition:none}}:host ::ng-deep .fade:not(.show){opacity:0}:host ::ng-deep .collapse:not(.show){display:none}:host ::ng-deep .collapsing{height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion:reduce){:host ::ng-deep .collapsing{transition:none}}:host ::ng-deep .collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion:reduce){:host ::ng-deep .collapsing.collapse-horizontal{transition:none}}:host ::ng-deep .popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: var(--bs-box-shadow);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}:host ::ng-deep .popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}:host ::ng-deep .popover .popover-arrow:before,:host ::ng-deep .popover .popover-arrow:after{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid;border-width:0}:host ::ng-deep .bs-popover-top>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}:host ::ng-deep .bs-popover-top>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,:host ::ng-deep .bs-popover-top>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}:host ::ng-deep .bs-popover-top>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-top>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}:host ::ng-deep .bs-popover-end>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}:host ::ng-deep .bs-popover-end>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,:host ::ng-deep .bs-popover-end>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}:host ::ng-deep .bs-popover-end>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-end>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}:host ::ng-deep .bs-popover-bottom>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}:host ::ng-deep .bs-popover-bottom>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,:host ::ng-deep .bs-popover-bottom>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}:host ::ng-deep .bs-popover-bottom>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-bottom>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}:host ::ng-deep .bs-popover-bottom .popover-header:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:\"\";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}:host ::ng-deep .bs-popover-start>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}:host ::ng-deep .bs-popover-start>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,:host ::ng-deep .bs-popover-start>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}:host ::ng-deep .bs-popover-start>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-start>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}:host ::ng-deep .popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}:host ::ng-deep .popover-header:empty{display:none}:host ::ng-deep .popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.popover.bs-popover-top>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.popover.bs-popover-bottom>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{left:50%;transform:translate(-50%)}.popover.bs-popover-start>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.popover.bs-popover-end>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{top:50%;transform:translateY(-50%)}.popover:not(.show){pointer-events:none}\n"] }]
34
+ args: [{ selector: 'bs-popover', standalone: false, animations: [FadeInOutAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isVisible()) {\n <div class=\"popover position-relative fade show\" role=\"tooltip\"\n [class]=\"[marginClass(), positionClass()]\"\n [@fadeInOut]>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <div class=\"popover-arrow position-absolute\"></div>\n <bs-has-overlay></bs-has-overlay>\n </div>\n}\n", styles: [":host ::ng-deep .fade{transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){:host ::ng-deep .fade{transition:none}}:host ::ng-deep .fade:not(.show){opacity:0}:host ::ng-deep .collapse:not(.show){display:none}:host ::ng-deep .collapsing{height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion:reduce){:host ::ng-deep .collapsing{transition:none}}:host ::ng-deep .collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion:reduce){:host ::ng-deep .collapsing.collapse-horizontal{transition:none}}:host ::ng-deep .popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: var(--bs-box-shadow);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}:host ::ng-deep .popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}:host ::ng-deep .popover .popover-arrow:before,:host ::ng-deep .popover .popover-arrow:after{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid;border-width:0}:host ::ng-deep .bs-popover-top>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}:host ::ng-deep .bs-popover-top>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,:host ::ng-deep .bs-popover-top>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}:host ::ng-deep .bs-popover-top>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-top>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}:host ::ng-deep .bs-popover-end>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}:host ::ng-deep .bs-popover-end>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,:host ::ng-deep .bs-popover-end>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}:host ::ng-deep .bs-popover-end>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-end>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}:host ::ng-deep .bs-popover-bottom>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}:host ::ng-deep .bs-popover-bottom>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,:host ::ng-deep .bs-popover-bottom>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}:host ::ng-deep .bs-popover-bottom>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-bottom>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}:host ::ng-deep .bs-popover-bottom .popover-header:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:\"\";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}:host ::ng-deep .bs-popover-start>.popover-arrow,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}:host ::ng-deep .bs-popover-start>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,:host ::ng-deep .bs-popover-start>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}:host ::ng-deep .bs-popover-start>.popover-arrow:before,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}:host ::ng-deep .bs-popover-start>.popover-arrow:after,:host ::ng-deep .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}:host ::ng-deep .popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}:host ::ng-deep .popover-header:empty{display:none}:host ::ng-deep .popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.popover.bs-popover-top>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.popover.bs-popover-bottom>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{left:50%;transform:translate(-50%)}.popover.bs-popover-start>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.popover.bs-popover-end>.popover-arrow,:host ::ng-deep .popover.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{top:50%;transform:translateY(-50%)}.popover:not(.show){pointer-events:none}\n"] }]
54
35
  }], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
55
36
  type: Inject,
56
37
  args: [POPOVER_CONTENT]
57
- }] }], propDecorators: { position: [{
58
- type: Input
59
- }], isVisible: [{
60
- type: Input
61
- }], positionRelative: [{
38
+ }] }], propDecorators: { position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], isVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "isVisible", required: false }] }], positionRelative: [{
62
39
  type: HostBinding,
63
40
  args: ['class.position-relative']
64
41
  }] } });
@@ -66,50 +43,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
66
43
  const PORTAL_FACTORY = new InjectionToken('PopoverPortalFactory');
67
44
 
68
45
  class BsPopoverDirective {
69
- constructor(overlay, destroy, templateRef, parentInjector, portalFactory, parent) {
70
- this.overlay = overlay;
71
- this.destroy = destroy;
72
- this.templateRef = templateRef;
73
- this.parentInjector = parentInjector;
74
- this.portalFactory = portalFactory;
75
- this.parent = parent;
76
- this.updatePosition = false;
77
- this.injector = null;
46
+ constructor() {
47
+ this.overlay = inject(Overlay);
48
+ this.templateRef = inject((TemplateRef));
49
+ this.parentInjector = inject(Injector);
50
+ this.portalFactory = inject(PORTAL_FACTORY);
51
+ this.parent = inject(ElementRef, { host: true, skipSelf: true });
52
+ this.bsPopover = input('bottom', ...(ngDevMode ? [{ debugName: "bsPopover" }] : []));
53
+ this.updatePosition = input(false, ...(ngDevMode ? [{ debugName: "updatePosition" }] : []));
54
+ this.localInjector = null;
78
55
  this.portal = null;
79
56
  this.overlayRef = null;
80
57
  this.component = null;
81
- this.position$ = new BehaviorSubject('bottom');
82
- this.isVisible$ = new BehaviorSubject(false);
83
- this.position$.pipe(takeUntilDestroyed()).subscribe((position) => {
84
- if (this.component) {
85
- this.component.instance.position = position;
86
- }
87
- });
88
- this.isVisible$.pipe(takeUntilDestroyed()).subscribe((isVisible) => {
89
- if (this.component) {
90
- this.component.instance.isVisible = isVisible;
91
- }
92
- });
93
- this.connectedPosition$ = this.position$
94
- .pipe(delay(20), map((position) => {
58
+ this.isVisible = signal(false, ...(ngDevMode ? [{ debugName: "isVisible" }] : []));
59
+ this.connectedPosition = computed(() => {
60
+ const position = this.bsPopover();
95
61
  switch (position) {
96
62
  case 'top':
97
63
  return {
98
64
  originX: "center",
99
- originY: "top", //<--
65
+ originY: "top",
100
66
  overlayX: "center",
101
67
  overlayY: "bottom"
102
68
  };
103
69
  case 'start':
104
70
  return {
105
- originX: "start", //<--
71
+ originX: "start",
106
72
  originY: "center",
107
73
  overlayX: "end",
108
74
  overlayY: "center",
109
75
  };
110
76
  case 'end':
111
77
  return {
112
- originX: "end", //<--
78
+ originX: "end",
113
79
  originY: "center",
114
80
  overlayX: "start",
115
81
  overlayY: "center"
@@ -117,46 +83,55 @@ class BsPopoverDirective {
117
83
  default:
118
84
  return {
119
85
  originX: "center",
120
- originY: "bottom", //<--
86
+ originY: "bottom",
121
87
  overlayX: "center",
122
88
  overlayY: "top"
123
89
  };
124
90
  }
125
- }));
126
- this.connectedPosition$
127
- .pipe(takeUntilDestroyed())
128
- .subscribe((connectedPosition) => {
91
+ }, ...(ngDevMode ? [{ debugName: "connectedPosition" }] : []));
92
+ effect(() => {
93
+ const position = this.bsPopover();
94
+ if (this.component) {
95
+ this.component.setInput('position', position);
96
+ }
97
+ });
98
+ effect(() => {
99
+ const isVisible = this.isVisible();
100
+ if (this.component) {
101
+ this.component.setInput('isVisible', isVisible);
102
+ }
103
+ });
104
+ effect(() => {
105
+ const connectedPosition = this.connectedPosition();
129
106
  if (this.overlayRef) {
130
- this.overlayRef.updatePositionStrategy(this.overlay.position()
131
- .flexibleConnectedTo(this.parent)
132
- .withPositions([connectedPosition]));
107
+ setTimeout(() => {
108
+ this.overlayRef?.updatePositionStrategy(this.overlay.position()
109
+ .flexibleConnectedTo(this.parent)
110
+ .withPositions([connectedPosition]));
111
+ }, 20);
133
112
  }
134
113
  });
135
114
  }
136
- set bsPopover(value) {
137
- this.position$.next(value);
138
- }
139
115
  ngAfterViewInit() {
140
- this.connectedPosition$.pipe(take(1), takeUntilDestroyed(this.destroy)).subscribe((connectedPosition) => {
141
- this.injector = Injector.create({
142
- providers: [{ provide: POPOVER_CONTENT, useValue: this.templateRef }],
143
- parent: this.parentInjector
144
- });
145
- this.portal = this.portalFactory(this.injector);
146
- this.overlayRef = this.overlay.create({
147
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
148
- positionStrategy: this.overlay.position()
149
- .flexibleConnectedTo(this.parent)
150
- .withPositions([connectedPosition]),
151
- });
152
- this.component = this.overlayRef.attach(this.portal);
153
- this.component.instance.position = this.position$.value;
116
+ const connectedPosition = this.connectedPosition();
117
+ this.localInjector = Injector.create({
118
+ providers: [{ provide: POPOVER_CONTENT, useValue: this.templateRef }],
119
+ parent: this.parentInjector
154
120
  });
121
+ this.portal = this.portalFactory(this.localInjector);
122
+ this.overlayRef = this.overlay.create({
123
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
124
+ positionStrategy: this.overlay.position()
125
+ .flexibleConnectedTo(this.parent)
126
+ .withPositions([connectedPosition]),
127
+ });
128
+ this.component = this.overlayRef.attach(this.portal);
129
+ this.component.setInput('position', this.bsPopover());
155
130
  this.parent.nativeElement.onclick = () => {
156
- if (this.updatePosition) {
131
+ if (this.updatePosition()) {
157
132
  this.overlayRef?.updatePosition();
158
133
  }
159
- this.isVisible$.next(!this.isVisible$.value);
134
+ this.isVisible.set(!this.isVisible());
160
135
  };
161
136
  }
162
137
  ngOnDestroy() {
@@ -166,8 +141,8 @@ class BsPopoverDirective {
166
141
  this.overlayRef = null;
167
142
  }
168
143
  }
169
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsPopoverDirective, deps: [{ token: i1$1.Overlay }, { token: i0.DestroyRef }, { token: i0.TemplateRef }, { token: i0.Injector }, { token: PORTAL_FACTORY }, { token: i0.ElementRef, host: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
170
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: BsPopoverDirective, isStandalone: false, selector: "*[bsPopover]", inputs: { bsPopover: "bsPopover", updatePosition: "updatePosition" }, ngImport: i0 }); }
144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsPopoverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
145
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.6", type: BsPopoverDirective, isStandalone: false, selector: "*[bsPopover]", inputs: { bsPopover: { classPropertyName: "bsPopover", publicName: "bsPopover", isSignal: true, isRequired: false, transformFunction: null }, updatePosition: { classPropertyName: "updatePosition", publicName: "updatePosition", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
171
146
  }
172
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsPopoverDirective, decorators: [{
173
148
  type: Directive,
@@ -175,18 +150,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
175
150
  selector: '*[bsPopover]',
176
151
  standalone: false,
177
152
  }]
178
- }], ctorParameters: () => [{ type: i1$1.Overlay }, { type: i0.DestroyRef }, { type: i0.TemplateRef }, { type: i0.Injector }, { type: undefined, decorators: [{
179
- type: Inject,
180
- args: [PORTAL_FACTORY]
181
- }] }, { type: i0.ElementRef, decorators: [{
182
- type: Host
183
- }, {
184
- type: SkipSelf
185
- }] }], propDecorators: { bsPopover: [{
186
- type: Input
187
- }], updatePosition: [{
188
- type: Input
189
- }] } });
153
+ }], ctorParameters: () => [], propDecorators: { bsPopover: [{ type: i0.Input, args: [{ isSignal: true, alias: "bsPopover", required: false }] }], updatePosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "updatePosition", required: false }] }] } });
190
154
 
191
155
  class BsPopoverBodyDirective {
192
156
  constructor() {