@mintplayer/ng-bootstrap 21.7.0 → 21.8.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 (65) hide show
  1. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +16 -9
  2. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
  3. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +2 -2
  4. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  5. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +4 -4
  6. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
  7. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +133 -130
  8. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
  9. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +6 -6
  10. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  11. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +5 -5
  12. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  13. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +3 -0
  14. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
  15. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +8 -9
  16. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  17. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +6 -8
  18. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
  19. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +3 -3
  20. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  21. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +25 -6
  22. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  23. package/fesm2022/mintplayer-ng-bootstrap-range.mjs +16 -16
  24. package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
  25. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +58 -47
  26. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  27. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +8 -8
  28. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
  29. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +3 -1
  30. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
  31. package/fesm2022/mintplayer-ng-bootstrap-select.mjs +48 -49
  32. package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
  33. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +7 -7
  34. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
  35. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +5 -5
  36. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs.map +1 -1
  37. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +12 -6
  38. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  39. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +7 -7
  40. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
  41. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +15 -18
  42. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
  43. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +102 -102
  44. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
  45. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +7 -7
  46. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
  47. package/package.json +1 -1
  48. package/types/mintplayer-ng-bootstrap-accordion.d.ts +5 -3
  49. package/types/mintplayer-ng-bootstrap-code-snippet.d.ts +2 -2
  50. package/types/mintplayer-ng-bootstrap-color-picker.d.ts +37 -34
  51. package/types/mintplayer-ng-bootstrap-dock.d.ts +1 -1
  52. package/types/mintplayer-ng-bootstrap-dropdown-menu.d.ts +9 -9
  53. package/types/mintplayer-ng-bootstrap-file-upload.d.ts +1 -1
  54. package/types/mintplayer-ng-bootstrap-modal.d.ts +1 -1
  55. package/types/mintplayer-ng-bootstrap-navbar.d.ts +5 -3
  56. package/types/mintplayer-ng-bootstrap-range.d.ts +9 -9
  57. package/types/mintplayer-ng-bootstrap-resizable.d.ts +10 -10
  58. package/types/mintplayer-ng-bootstrap-scrollspy.d.ts +1 -1
  59. package/types/mintplayer-ng-bootstrap-select.d.ts +16 -16
  60. package/types/mintplayer-ng-bootstrap-select2.d.ts +3 -3
  61. package/types/mintplayer-ng-bootstrap-shell.d.ts +1 -1
  62. package/types/mintplayer-ng-bootstrap-tab-control.d.ts +1 -1
  63. package/types/mintplayer-ng-bootstrap-timepicker.d.ts +3 -3
  64. package/types/mintplayer-ng-bootstrap-toggle-button.d.ts +15 -15
  65. package/types/mintplayer-ng-bootstrap-typeahead.d.ts +2 -2
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, input, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { inject, input, signal, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { BsDropdownDirective } from '@mintplayer/ng-bootstrap/dropdown';
4
4
 
5
5
  // import { BsDropdownComponent } from '@mintplayer/ng-bootstrap/dropdown';
@@ -7,24 +7,24 @@ class BsDropdownMenuComponent {
7
7
  constructor() {
8
8
  this.bsDropdown = inject(BsDropdownDirective, { optional: true });
9
9
  this.maxHeight = input(null, ...(ngDevMode ? [{ debugName: "maxHeight" }] : []));
10
- this.dropdownWith = null;
10
+ this.dropdownWith = signal(null, ...(ngDevMode ? [{ debugName: "dropdownWith" }] : []));
11
11
  }
12
12
  onResize() {
13
13
  if ((typeof window !== 'undefined') && this.bsDropdown && this.bsDropdown.sameDropdownWidth()) {
14
14
  const element = this.bsDropdown.elementRef.nativeElement;
15
- this.dropdownWith = window.getComputedStyle(element).width;
15
+ this.dropdownWith.set(window.getComputedStyle(element).width);
16
16
  }
17
17
  }
18
18
  ngAfterViewInit() {
19
19
  this.onResize();
20
20
  }
21
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsDropdownMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.6", type: BsDropdownMenuComponent, isStandalone: true, selector: "bs-dropdown-menu", inputs: { maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize()" }, properties: { "style.width": "dropdownWith" } }, ngImport: i0, template: "<ul class=\"dropdown-menu position-static w-100 overflow-auto show\" [style.max-height.px]=\"maxHeight()\">\n <ng-content></ng-content>\n <!-- <ng-content select=\"bs-dropdown-item\"></ng-content> -->\n</ul>", styles: [":host ::ng-deep .dropup,:host ::ng-deep .dropend,:host ::ng-deep .dropdown,:host ::ng-deep .dropstart,:host ::ng-deep .dropup-center,:host ::ng-deep .dropdown-center{position:relative}:host ::ng-deep .dropdown-toggle{white-space:nowrap}:host ::ng-deep .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}:host ::ng-deep .dropdown-toggle:empty:after{margin-left:0}:host ::ng-deep .dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: var(--bs-box-shadow);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}:host ::ng-deep .dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}:host ::ng-deep .dropdown-menu-start{--bs-position: start}:host ::ng-deep .dropdown-menu-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-end{--bs-position: end}:host ::ng-deep .dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width:576px){:host ::ng-deep .dropdown-menu-sm-start{--bs-position: start}:host ::ng-deep .dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-sm-end{--bs-position: end}:host ::ng-deep .dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width:768px){:host ::ng-deep .dropdown-menu-md-start{--bs-position: start}:host ::ng-deep .dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-md-end{--bs-position: end}:host ::ng-deep .dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width:992px){:host ::ng-deep .dropdown-menu-lg-start{--bs-position: start}:host ::ng-deep .dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-lg-end{--bs-position: end}:host ::ng-deep .dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width:1200px){:host ::ng-deep .dropdown-menu-xl-start{--bs-position: start}:host ::ng-deep .dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-xl-end{--bs-position: end}:host ::ng-deep .dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width:1400px){:host ::ng-deep .dropdown-menu-xxl-start{--bs-position: start}:host ::ng-deep .dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-xxl-end{--bs-position: end}:host ::ng-deep .dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}:host ::ng-deep .dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}:host ::ng-deep .dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}:host ::ng-deep .dropup .dropdown-toggle:empty:after{margin-left:0}:host ::ng-deep .dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}:host ::ng-deep .dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}:host ::ng-deep .dropend .dropdown-toggle:empty:after{margin-left:0}:host ::ng-deep .dropend .dropdown-toggle:after{vertical-align:0}:host ::ng-deep .dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}:host ::ng-deep .dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\"}:host ::ng-deep .dropstart .dropdown-toggle:after{display:none}:host ::ng-deep .dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}:host ::ng-deep .dropstart .dropdown-toggle:empty:after{margin-left:0}:host ::ng-deep .dropstart .dropdown-toggle:before{vertical-align:0}:host ::ng-deep .dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}:host ::ng-deep .dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}:host ::ng-deep .dropdown-item:hover,:host ::ng-deep .dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}:host ::ng-deep .dropdown-item.active,:host ::ng-deep .dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}:host ::ng-deep .dropdown-item.disabled,:host ::ng-deep .dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}:host ::ng-deep .dropdown-menu.show{display:block}:host ::ng-deep .dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}:host ::ng-deep .dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}:host ::ng-deep .dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.6", type: BsDropdownMenuComponent, isStandalone: true, selector: "bs-dropdown-menu", inputs: { maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize()" }, properties: { "style.width": "dropdownWith()" } }, ngImport: i0, template: "<ul class=\"dropdown-menu position-static w-100 overflow-auto show\" [style.max-height.px]=\"maxHeight()\">\n <ng-content></ng-content>\n <!-- <ng-content select=\"bs-dropdown-item\"></ng-content> -->\n</ul>", styles: [":host ::ng-deep .dropup,:host ::ng-deep .dropend,:host ::ng-deep .dropdown,:host ::ng-deep .dropstart,:host ::ng-deep .dropup-center,:host ::ng-deep .dropdown-center{position:relative}:host ::ng-deep .dropdown-toggle{white-space:nowrap}:host ::ng-deep .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}:host ::ng-deep .dropdown-toggle:empty:after{margin-left:0}:host ::ng-deep .dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: var(--bs-box-shadow);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}:host ::ng-deep .dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}:host ::ng-deep .dropdown-menu-start{--bs-position: start}:host ::ng-deep .dropdown-menu-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-end{--bs-position: end}:host ::ng-deep .dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width:576px){:host ::ng-deep .dropdown-menu-sm-start{--bs-position: start}:host ::ng-deep .dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-sm-end{--bs-position: end}:host ::ng-deep .dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width:768px){:host ::ng-deep .dropdown-menu-md-start{--bs-position: start}:host ::ng-deep .dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-md-end{--bs-position: end}:host ::ng-deep .dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width:992px){:host ::ng-deep .dropdown-menu-lg-start{--bs-position: start}:host ::ng-deep .dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-lg-end{--bs-position: end}:host ::ng-deep .dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width:1200px){:host ::ng-deep .dropdown-menu-xl-start{--bs-position: start}:host ::ng-deep .dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-xl-end{--bs-position: end}:host ::ng-deep .dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width:1400px){:host ::ng-deep .dropdown-menu-xxl-start{--bs-position: start}:host ::ng-deep .dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-xxl-end{--bs-position: end}:host ::ng-deep .dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}:host ::ng-deep .dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}:host ::ng-deep .dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}:host ::ng-deep .dropup .dropdown-toggle:empty:after{margin-left:0}:host ::ng-deep .dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}:host ::ng-deep .dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}:host ::ng-deep .dropend .dropdown-toggle:empty:after{margin-left:0}:host ::ng-deep .dropend .dropdown-toggle:after{vertical-align:0}:host ::ng-deep .dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}:host ::ng-deep .dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\"}:host ::ng-deep .dropstart .dropdown-toggle:after{display:none}:host ::ng-deep .dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}:host ::ng-deep .dropstart .dropdown-toggle:empty:after{margin-left:0}:host ::ng-deep .dropstart .dropdown-toggle:before{vertical-align:0}:host ::ng-deep .dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}:host ::ng-deep .dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}:host ::ng-deep .dropdown-item:hover,:host ::ng-deep .dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}:host ::ng-deep .dropdown-item.active,:host ::ng-deep .dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}:host ::ng-deep .dropdown-item.disabled,:host ::ng-deep .dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}:host ::ng-deep .dropdown-menu.show{display:block}:host ::ng-deep .dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}:host ::ng-deep .dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}:host ::ng-deep .dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
23
  }
24
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsDropdownMenuComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{ selector: 'bs-dropdown-menu', changeDetection: ChangeDetectionStrategy.OnPush, host: {
27
- '[style.width]': 'dropdownWith',
27
+ '[style.width]': 'dropdownWith()',
28
28
  '(window:resize)': 'onResize()',
29
29
  }, template: "<ul class=\"dropdown-menu position-static w-100 overflow-auto show\" [style.max-height.px]=\"maxHeight()\">\n <ng-content></ng-content>\n <!-- <ng-content select=\"bs-dropdown-item\"></ng-content> -->\n</ul>", styles: [":host ::ng-deep .dropup,:host ::ng-deep .dropend,:host ::ng-deep .dropdown,:host ::ng-deep .dropstart,:host ::ng-deep .dropup-center,:host ::ng-deep .dropdown-center{position:relative}:host ::ng-deep .dropdown-toggle{white-space:nowrap}:host ::ng-deep .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}:host ::ng-deep .dropdown-toggle:empty:after{margin-left:0}:host ::ng-deep .dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: var(--bs-box-shadow);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}:host ::ng-deep .dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}:host ::ng-deep .dropdown-menu-start{--bs-position: start}:host ::ng-deep .dropdown-menu-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-end{--bs-position: end}:host ::ng-deep .dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width:576px){:host ::ng-deep .dropdown-menu-sm-start{--bs-position: start}:host ::ng-deep .dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-sm-end{--bs-position: end}:host ::ng-deep .dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width:768px){:host ::ng-deep .dropdown-menu-md-start{--bs-position: start}:host ::ng-deep .dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-md-end{--bs-position: end}:host ::ng-deep .dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width:992px){:host ::ng-deep .dropdown-menu-lg-start{--bs-position: start}:host ::ng-deep .dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-lg-end{--bs-position: end}:host ::ng-deep .dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width:1200px){:host ::ng-deep .dropdown-menu-xl-start{--bs-position: start}:host ::ng-deep .dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-xl-end{--bs-position: end}:host ::ng-deep .dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width:1400px){:host ::ng-deep .dropdown-menu-xxl-start{--bs-position: start}:host ::ng-deep .dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}:host ::ng-deep .dropdown-menu-xxl-end{--bs-position: end}:host ::ng-deep .dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}:host ::ng-deep .dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}:host ::ng-deep .dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}:host ::ng-deep .dropup .dropdown-toggle:empty:after{margin-left:0}:host ::ng-deep .dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}:host ::ng-deep .dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}:host ::ng-deep .dropend .dropdown-toggle:empty:after{margin-left:0}:host ::ng-deep .dropend .dropdown-toggle:after{vertical-align:0}:host ::ng-deep .dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}:host ::ng-deep .dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\"\"}:host ::ng-deep .dropstart .dropdown-toggle:after{display:none}:host ::ng-deep .dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}:host ::ng-deep .dropstart .dropdown-toggle:empty:after{margin-left:0}:host ::ng-deep .dropstart .dropdown-toggle:before{vertical-align:0}:host ::ng-deep .dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}:host ::ng-deep .dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}:host ::ng-deep .dropdown-item:hover,:host ::ng-deep .dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}:host ::ng-deep .dropdown-item.active,:host ::ng-deep .dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}:host ::ng-deep .dropdown-item.disabled,:host ::ng-deep .dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}:host ::ng-deep .dropdown-menu.show{display:block}:host ::ng-deep .dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}:host ::ng-deep .dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}:host ::ng-deep .dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}\n"] }]
30
30
  }], propDecorators: { maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-dropdown-menu.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/dropdown-menu/src/dropdown-menu/dropdown-menu.component.ts","../../../../libs/mintplayer-ng-bootstrap/dropdown-menu/src/dropdown-menu/dropdown-menu.component.html","../../../../libs/mintplayer-ng-bootstrap/dropdown-menu/src/dropdown-item/dropdown-item.component.ts","../../../../libs/mintplayer-ng-bootstrap/dropdown-menu/src/dropdown-item/dropdown-item.component.html","../../../../libs/mintplayer-ng-bootstrap/dropdown-menu/mintplayer-ng-bootstrap-dropdown-menu.ts"],"sourcesContent":["import { AfterViewInit, Component, inject, input, ChangeDetectionStrategy} from '@angular/core';\nimport { BsDropdownDirective } from '@mintplayer/ng-bootstrap/dropdown';\n// import { BsDropdownComponent } from '@mintplayer/ng-bootstrap/dropdown';\n\n@Component({\n selector: 'bs-dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n styleUrls: ['./dropdown-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.width]': 'dropdownWith',\n '(window:resize)': 'onResize()',\n },\n})\nexport class BsDropdownMenuComponent implements AfterViewInit {\n private bsDropdown = inject(BsDropdownDirective, { optional: true });\n\n readonly maxHeight = input<number | null>(null);\n dropdownWith: string | null = null;\n\n onResize() {\n if ((typeof window !== 'undefined') && this.bsDropdown && this.bsDropdown.sameDropdownWidth()) {\n const element = this.bsDropdown.elementRef.nativeElement;\n this.dropdownWith = window.getComputedStyle(element).width;\n }\n }\n\n ngAfterViewInit() {\n this.onResize();\n }\n}\n","<ul class=\"dropdown-menu position-static w-100 overflow-auto show\" [style.max-height.px]=\"maxHeight()\">\n <ng-content></ng-content>\n <!-- <ng-content select=\"bs-dropdown-item\"></ng-content> -->\n</ul>","import { Component, input, ChangeDetectionStrategy} from '@angular/core';\n\n@Component({\n selector: 'bs-dropdown-item',\n templateUrl: './dropdown-item.component.html',\n styleUrls: ['./dropdown-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsDropdownItemComponent {\n readonly isSelected = input(false);\n readonly disabled = input(false);\n}\n","<li class=\"dropdown-item cursor-pointer\" [class.active]=\"isSelected()\" [class.disabled]=\"disabled()\">\n <ng-content></ng-content>\n</li>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAEA;MAYa,uBAAuB,CAAA;AAVpC,IAAA,WAAA,GAAA;QAWU,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE3D,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,qDAAC;QAC/C,IAAA,CAAA,YAAY,GAAkB,IAAI;AAYnC,IAAA;IAVC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE;YAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa;YACxD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK;QAC5D;IACF;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,QAAQ,EAAE;IACjB;8GAfW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,mUCdpC,uNAGK,EAAA,MAAA,EAAA,CAAA,y4OAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDWQ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,eAAe,EAAE,cAAc;AAC/B,wBAAA,iBAAiB,EAAE,YAAY;AAChC,qBAAA,EAAA,QAAA,EAAA,uNAAA,EAAA,MAAA,EAAA,CAAA,y4OAAA,CAAA,EAAA;;;MEJU,uBAAuB,CAAA;AANpC,IAAA,WAAA,GAAA;AAOW,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,sDAAC;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;AACjC,IAAA;8GAHY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,gWCRpC,mJAEK,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDMQ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACE,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mJAAA,EAAA;;;AENjD;;AAEG;;;;"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-dropdown-menu.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/dropdown-menu/src/dropdown-menu/dropdown-menu.component.ts","../../../../libs/mintplayer-ng-bootstrap/dropdown-menu/src/dropdown-menu/dropdown-menu.component.html","../../../../libs/mintplayer-ng-bootstrap/dropdown-menu/src/dropdown-item/dropdown-item.component.ts","../../../../libs/mintplayer-ng-bootstrap/dropdown-menu/src/dropdown-item/dropdown-item.component.html","../../../../libs/mintplayer-ng-bootstrap/dropdown-menu/mintplayer-ng-bootstrap-dropdown-menu.ts"],"sourcesContent":["import { AfterViewInit, Component, inject, input, signal, ChangeDetectionStrategy} from '@angular/core';\nimport { BsDropdownDirective } from '@mintplayer/ng-bootstrap/dropdown';\n// import { BsDropdownComponent } from '@mintplayer/ng-bootstrap/dropdown';\n\n@Component({\n selector: 'bs-dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n styleUrls: ['./dropdown-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.width]': 'dropdownWith()',\n '(window:resize)': 'onResize()',\n },\n})\nexport class BsDropdownMenuComponent implements AfterViewInit {\n private bsDropdown = inject(BsDropdownDirective, { optional: true });\n\n readonly maxHeight = input<number | null>(null);\n dropdownWith = signal<string | null>(null);\n\n onResize() {\n if ((typeof window !== 'undefined') && this.bsDropdown && this.bsDropdown.sameDropdownWidth()) {\n const element = this.bsDropdown.elementRef.nativeElement;\n this.dropdownWith.set(window.getComputedStyle(element).width);\n }\n }\n\n ngAfterViewInit() {\n this.onResize();\n }\n}\n","<ul class=\"dropdown-menu position-static w-100 overflow-auto show\" [style.max-height.px]=\"maxHeight()\">\n <ng-content></ng-content>\n <!-- <ng-content select=\"bs-dropdown-item\"></ng-content> -->\n</ul>","import { Component, input, ChangeDetectionStrategy} from '@angular/core';\n\n@Component({\n selector: 'bs-dropdown-item',\n templateUrl: './dropdown-item.component.html',\n styleUrls: ['./dropdown-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsDropdownItemComponent {\n readonly isSelected = input(false);\n readonly disabled = input(false);\n}\n","<li class=\"dropdown-item cursor-pointer\" [class.active]=\"isSelected()\" [class.disabled]=\"disabled()\">\n <ng-content></ng-content>\n</li>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAEA;MAYa,uBAAuB,CAAA;AAVpC,IAAA,WAAA,GAAA;QAWU,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE3D,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,qDAAC;AAC/C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAgB,IAAI,wDAAC;AAY3C,IAAA;IAVC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE;YAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa;AACxD,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;QAC/D;IACF;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,QAAQ,EAAE;IACjB;8GAfW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,qUCdpC,uNAGK,EAAA,MAAA,EAAA,CAAA,y4OAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDWQ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,eAAe,EAAE,gBAAgB;AACjC,wBAAA,iBAAiB,EAAE,YAAY;AAChC,qBAAA,EAAA,QAAA,EAAA,uNAAA,EAAA,MAAA,EAAA,CAAA,y4OAAA,CAAA,EAAA;;;MEJU,uBAAuB,CAAA;AANpC,IAAA,WAAA,GAAA;AAOW,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,sDAAC;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;AACjC,IAAA;8GAHY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,gWCRpC,mJAEK,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDMQ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACE,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mJAAA,EAAA;;;AENjD;;AAEG;;;;"}
@@ -61,6 +61,9 @@ class BsDropdownMenuDirective extends ClickOutsideDirective {
61
61
  const ev = event;
62
62
  if (!this.bsDevelopment) {
63
63
  if (!this.wait) {
64
+ if (this.dropdown.elementRef.nativeElement.contains(ev.target)) {
65
+ return;
66
+ }
64
67
  if (!this.overlayRef?.overlayElement.contains(ev.target)) {
65
68
  this.doClose();
66
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-dropdown.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/dropdown/src/dropdown-menu/dropdown-menu.directive.ts","../../../../libs/mintplayer-ng-bootstrap/dropdown/src/dropdown-toggle/dropdown-toggle.directive.ts","../../../../libs/mintplayer-ng-bootstrap/dropdown/src/dropdown/dropdown.directive.ts","../../../../libs/mintplayer-ng-bootstrap/dropdown/mintplayer-ng-bootstrap-dropdown.ts"],"sourcesContent":["import { DestroyRef, Directive, effect, forwardRef, inject, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ClickOutsideDirective } from '@mintplayer/ng-click-outside';\nimport { BS_DEVELOPMENT } from '@mintplayer/ng-bootstrap';\nimport { BsDropdownDirective } from '../dropdown/dropdown.directive';\n\n@Directive({\n selector: '[bsDropdownMenu]',\n host: {\n '(clickOutside)': 'clickedOutside($event)',\n '(document:keydown.escape)': 'onEscape($event)',\n },\n})\nexport class BsDropdownMenuDirective extends ClickOutsideDirective {\n\n private dropdown = inject(forwardRef(() => BsDropdownDirective));\n private viewContainerRef = inject(ViewContainerRef);\n private templateRef = inject(TemplateRef);\n private overlay = inject(Overlay);\n private destroy = inject(DestroyRef);\n private bsDevelopment = inject(BS_DEVELOPMENT, { optional: true });\n\n private wait = false;\n private overlayRef: OverlayRef | null = null;\n private templatePortal: TemplatePortal<any> | null = null;\n\n constructor() {\n super();\n\n effect(() => {\n const isOpen = this.dropdown.isOpen();\n if (isOpen) {\n // Prevent creating duplicate overlays if effect re-runs while still open\n if (this.overlayRef) {\n return;\n }\n\n this.wait = true;\n setTimeout(() => this.wait = false, 100);\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: this.dropdown.hasBackdrop(),\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(!this.dropdown.toggle() ? this.dropdown.elementRef : this.dropdown.toggle()!.toggleButton)\n .withPositions([\n { originX: \"start\", originY: \"bottom\", overlayX: \"start\", overlayY: \"top\", offsetY: 0 },\n { originX: \"start\", originY: \"top\", overlayX: \"start\", overlayY: \"bottom\", offsetY: 0 },\n ]),\n });\n\n if (this.dropdown.hasBackdrop() && this.dropdown.closeOnClickOutside()) {\n this.overlayRef.backdropClick().subscribe(() => {\n this.dropdown.isOpen.set(false);\n });\n }\n\n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n const view = this.overlayRef.attach(this.templatePortal);\n\n if (this.dropdown.sameDropdownWidth()) {\n const width = this.dropdown.elementRef.nativeElement.offsetWidth;\n view.rootNodes[0].style.width = width + 'px';\n }\n } else {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n });\n }\n\n clickedOutside(event: Event) {\n const ev = event as MouseEvent;\n if (!this.bsDevelopment) {\n if (!this.wait) {\n if (!this.overlayRef?.overlayElement.contains(<any>ev.target)) {\n this.doClose();\n }\n }\n }\n }\n\n onEscape(event: Event) {\n this.doClose();\n }\n\n private doClose() {\n const isOpen = this.dropdown.isOpen();\n if (isOpen && !this.dropdown.hasBackdrop() && this.dropdown.closeOnClickOutside()) {\n this.dropdown.isOpen.set(false);\n }\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { BsDropdownDirective } from '../dropdown/dropdown.directive';\n\n@Directive({\n selector: '[bsDropdownToggle]',\n host: {\n '[attr.aria-haspopup]': '\"true\"',\n '[attr.aria-expanded]': 'dropdown.isOpen()',\n '(click)': 'onClick()',\n },\n})\nexport class BsDropdownToggleDirective {\n\n constructor(\n public dropdown: BsDropdownDirective,\n toggleButton: ElementRef) {\n this.toggleButton = toggleButton;\n }\n\n toggleButton: ElementRef;\n\n onClick() {\n this.dropdown.isOpen.set(!this.dropdown.isOpen());\n }\n}\n","import { contentChild, Directive, effect, ElementRef, inject, input, model, Optional } from '@angular/core';\nimport { BS_DEVELOPMENT } from '@mintplayer/ng-bootstrap';\nimport { BsDropdownMenuDirective } from '../dropdown-menu/dropdown-menu.directive';\nimport { BsDropdownToggleDirective } from '../dropdown-toggle/dropdown-toggle.directive';\n\n@Directive({\n selector: '[bsDropdown]',\n host: {\n '(window:blur)': 'onBlur()',\n },\n})\nexport class BsDropdownDirective {\n\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private bsDevelopment = inject(BS_DEVELOPMENT, { optional: true });\n\n readonly menu = contentChild.required(BsDropdownMenuDirective);\n readonly toggle = contentChild(BsDropdownToggleDirective);\n\n hasBackdrop = input(false);\n sameWidth = input(false);\n closeOnClickOutside = input(true);\n sameDropdownWidth = input(false);\n isOpen = model<boolean>(false);\n\n onBlur() {\n if (this.closeOnClickOutside() && !this.bsDevelopment) {\n this.isOpen.set(false);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsDropdownDirective"],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-dropdown.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/dropdown/src/dropdown-menu/dropdown-menu.directive.ts","../../../../libs/mintplayer-ng-bootstrap/dropdown/src/dropdown-toggle/dropdown-toggle.directive.ts","../../../../libs/mintplayer-ng-bootstrap/dropdown/src/dropdown/dropdown.directive.ts","../../../../libs/mintplayer-ng-bootstrap/dropdown/mintplayer-ng-bootstrap-dropdown.ts"],"sourcesContent":["import { DestroyRef, Directive, effect, forwardRef, inject, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ClickOutsideDirective } from '@mintplayer/ng-click-outside';\nimport { BS_DEVELOPMENT } from '@mintplayer/ng-bootstrap';\nimport { BsDropdownDirective } from '../dropdown/dropdown.directive';\n\n@Directive({\n selector: '[bsDropdownMenu]',\n host: {\n '(clickOutside)': 'clickedOutside($event)',\n '(document:keydown.escape)': 'onEscape($event)',\n },\n})\nexport class BsDropdownMenuDirective extends ClickOutsideDirective {\n\n private dropdown = inject(forwardRef(() => BsDropdownDirective));\n private viewContainerRef = inject(ViewContainerRef);\n private templateRef = inject(TemplateRef);\n private overlay = inject(Overlay);\n private destroy = inject(DestroyRef);\n private bsDevelopment = inject(BS_DEVELOPMENT, { optional: true });\n\n private wait = false;\n private overlayRef: OverlayRef | null = null;\n private templatePortal: TemplatePortal<any> | null = null;\n\n constructor() {\n super();\n\n effect(() => {\n const isOpen = this.dropdown.isOpen();\n if (isOpen) {\n // Prevent creating duplicate overlays if effect re-runs while still open\n if (this.overlayRef) {\n return;\n }\n\n this.wait = true;\n setTimeout(() => this.wait = false, 100);\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: this.dropdown.hasBackdrop(),\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(!this.dropdown.toggle() ? this.dropdown.elementRef : this.dropdown.toggle()!.toggleButton)\n .withPositions([\n { originX: \"start\", originY: \"bottom\", overlayX: \"start\", overlayY: \"top\", offsetY: 0 },\n { originX: \"start\", originY: \"top\", overlayX: \"start\", overlayY: \"bottom\", offsetY: 0 },\n ]),\n });\n\n if (this.dropdown.hasBackdrop() && this.dropdown.closeOnClickOutside()) {\n this.overlayRef.backdropClick().subscribe(() => {\n this.dropdown.isOpen.set(false);\n });\n }\n\n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n const view = this.overlayRef.attach(this.templatePortal);\n\n if (this.dropdown.sameDropdownWidth()) {\n const width = this.dropdown.elementRef.nativeElement.offsetWidth;\n view.rootNodes[0].style.width = width + 'px';\n }\n } else {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n });\n }\n\n clickedOutside(event: Event) {\n const ev = event as MouseEvent;\n if (!this.bsDevelopment) {\n if (!this.wait) {\n if (this.dropdown.elementRef.nativeElement.contains(ev.target as Node)) {\n return;\n }\n if (!this.overlayRef?.overlayElement.contains(<any>ev.target)) {\n this.doClose();\n }\n }\n }\n }\n\n onEscape(event: Event) {\n this.doClose();\n }\n\n private doClose() {\n const isOpen = this.dropdown.isOpen();\n if (isOpen && !this.dropdown.hasBackdrop() && this.dropdown.closeOnClickOutside()) {\n this.dropdown.isOpen.set(false);\n }\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { BsDropdownDirective } from '../dropdown/dropdown.directive';\n\n@Directive({\n selector: '[bsDropdownToggle]',\n host: {\n '[attr.aria-haspopup]': '\"true\"',\n '[attr.aria-expanded]': 'dropdown.isOpen()',\n '(click)': 'onClick()',\n },\n})\nexport class BsDropdownToggleDirective {\n\n constructor(\n public dropdown: BsDropdownDirective,\n toggleButton: ElementRef) {\n this.toggleButton = toggleButton;\n }\n\n toggleButton: ElementRef;\n\n onClick() {\n this.dropdown.isOpen.set(!this.dropdown.isOpen());\n }\n}\n","import { contentChild, Directive, effect, ElementRef, inject, input, model, Optional } from '@angular/core';\nimport { BS_DEVELOPMENT } from '@mintplayer/ng-bootstrap';\nimport { BsDropdownMenuDirective } from '../dropdown-menu/dropdown-menu.directive';\nimport { BsDropdownToggleDirective } from '../dropdown-toggle/dropdown-toggle.directive';\n\n@Directive({\n selector: '[bsDropdown]',\n host: {\n '(window:blur)': 'onBlur()',\n },\n})\nexport class BsDropdownDirective {\n\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private bsDevelopment = inject(BS_DEVELOPMENT, { optional: true });\n\n readonly menu = contentChild.required(BsDropdownMenuDirective);\n readonly toggle = contentChild(BsDropdownToggleDirective);\n\n hasBackdrop = input(false);\n sameWidth = input(false);\n closeOnClickOutside = input(true);\n sameDropdownWidth = input(false);\n isOpen = model<boolean>(false);\n\n onBlur() {\n if (this.closeOnClickOutside() && !this.bsDevelopment) {\n this.isOpen.set(false);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsDropdownDirective"],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Pipe, input, model, output, ChangeDetectionStrategy, Component, inject, TemplateRef, Directive } from '@angular/core';
2
+ import { Pipe, input, signal, model, output, ChangeDetectionStrategy, Component, inject, TemplateRef, Directive } from '@angular/core';
3
3
  import { NgTemplateOutlet } from '@angular/common';
4
4
  import { BsForDirective } from '@mintplayer/ng-bootstrap/for';
5
5
  import { BsListGroupComponent, BsListGroupItemComponent } from '@mintplayer/ng-bootstrap/list-group';
6
6
  import { BsProgressComponent, BsProgressBarComponent } from '@mintplayer/ng-bootstrap/progress-bar';
7
- import { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';
8
7
  import { Color } from '@mintplayer/ng-bootstrap';
9
8
 
10
9
  class BsFormatBytesPipe {
@@ -35,7 +34,7 @@ class BsFileUploadComponent {
35
34
  this.browseFilesCaption = input('Browse for files', ...(ngDevMode ? [{ debugName: "browseFilesCaption" }] : []));
36
35
  this.placeholder = input('Drop files to upload', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
37
36
  this.colors = Color;
38
- this.isDraggingFile = false;
37
+ this.isDraggingFile = signal(false, ...(ngDevMode ? [{ debugName: "isDraggingFile" }] : []));
39
38
  this.files = model([], ...(ngDevMode ? [{ debugName: "files" }] : []));
40
39
  this.filesDropped = output();
41
40
  }
@@ -55,19 +54,19 @@ class BsFileUploadComponent {
55
54
  event.preventDefault();
56
55
  event.stopPropagation();
57
56
  if (event.dataTransfer) {
58
- this.isDraggingFile = true;
57
+ this.isDraggingFile.set(true);
59
58
  event.dataTransfer.effectAllowed = "copy";
60
59
  }
61
60
  }
62
61
  onDragLeave(event) {
63
62
  event.preventDefault();
64
63
  event.stopPropagation();
65
- this.isDraggingFile = false;
64
+ this.isDraggingFile.set(false);
66
65
  }
67
66
  onDrop(event) {
68
67
  event.preventDefault();
69
68
  event.stopPropagation();
70
- this.isDraggingFile = false;
69
+ this.isDraggingFile.set(false);
71
70
  if (event.dataTransfer && event.dataTransfer.files) {
72
71
  this.processDroppedFiles(event.dataTransfer.files);
73
72
  }
@@ -81,15 +80,15 @@ class BsFileUploadComponent {
81
80
  this.filesDropped.emit(newFiles);
82
81
  }
83
82
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
84
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: BsFileUploadComponent, isStandalone: true, selector: "bs-file-upload", inputs: { dropFilesCaption: { classPropertyName: "dropFilesCaption", publicName: "dropFilesCaption", isSignal: true, isRequired: false, transformFunction: null }, browseFilesCaption: { classPropertyName: "browseFilesCaption", publicName: "browseFilesCaption", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { files: "filesChange", filesDropped: "filesDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, ngImport: i0, template: "<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder()\" [placeholder]=\"placeholder()\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder()\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption() }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption() }}</label>\n</div>\n<bs-list-group class=\"files-list\">\n @for (upload of files(); track upload.index) {\n <bs-list-group-item>\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </bs-list-group-item>\n }\n</bs-list-group>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>", styles: [".dropzone{z-index:1}.dropzone.dragging{border:4px solid #CB1535!important;background:#dc88a8;margin:-3px -3px -4px}.dropzone input{opacity:0;z-index:2;top:0;left:0}.dropzone .btn{z-index:5}.files-list{margin-top:-1px}.files-list .d-flex{max-width:400px}.text-grey{color:#999}.list-group span{margin:-5px auto}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: BsForDirective, selector: "label[bsFor]", inputs: ["bsFor"] }, { kind: "component", type: BsListGroupComponent, selector: "bs-list-group" }, { kind: "component", type: BsListGroupItemComponent, selector: "bs-list-group-item" }, { kind: "component", type: BsProgressComponent, selector: "bs-progress", inputs: ["height", "isIndeterminate"] }, { kind: "component", type: BsProgressBarComponent, selector: "bs-progress-bar", inputs: ["minimum", "maximum", "value", "color", "striped", "animated"] }, { kind: "pipe", type: BsFormatBytesPipe, name: "bsFormatBytes" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: BsFileUploadComponent, isStandalone: true, selector: "bs-file-upload", inputs: { dropFilesCaption: { classPropertyName: "dropFilesCaption", publicName: "dropFilesCaption", isSignal: true, isRequired: false, transformFunction: null }, browseFilesCaption: { classPropertyName: "browseFilesCaption", publicName: "browseFilesCaption", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { files: "filesChange", filesDropped: "filesDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, ngImport: i0, template: "<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile()\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder()\" [placeholder]=\"placeholder()\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder()\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption() }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption() }}</label>\n</div>\n<bs-list-group class=\"files-list\">\n @for (upload of files(); track upload.index) {\n <bs-list-group-item>\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </bs-list-group-item>\n }\n</bs-list-group>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>", styles: [".dropzone{z-index:1}.dropzone.dragging{border:4px solid #CB1535!important;background:#dc88a8;margin:-3px -3px -4px}.dropzone input{opacity:0;z-index:2;top:0;left:0}.dropzone .btn{z-index:5}.files-list{margin-top:-1px}.files-list .d-flex{max-width:400px}.text-grey{color:#999}.list-group span{margin:-5px auto}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: BsForDirective, selector: "label[bsFor]", inputs: ["bsFor"] }, { kind: "component", type: BsListGroupComponent, selector: "bs-list-group" }, { kind: "component", type: BsListGroupItemComponent, selector: "bs-list-group-item" }, { kind: "component", type: BsProgressComponent, selector: "bs-progress", inputs: ["height", "isIndeterminate"] }, { kind: "component", type: BsProgressBarComponent, selector: "bs-progress-bar", inputs: ["minimum", "maximum", "value", "color", "striped", "animated"] }, { kind: "pipe", type: BsFormatBytesPipe, name: "bsFormatBytes" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
85
84
  }
86
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsFileUploadComponent, decorators: [{
87
86
  type: Component,
88
- args: [{ selector: 'bs-file-upload', imports: [NgTemplateOutlet, BsForDirective, BsListGroupComponent, BsListGroupItemComponent, BsProgressComponent, BsProgressBarComponent, BsButtonTypeDirective, BsFormatBytesPipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
87
+ args: [{ selector: 'bs-file-upload', imports: [NgTemplateOutlet, BsForDirective, BsListGroupComponent, BsListGroupItemComponent, BsProgressComponent, BsProgressBarComponent, BsFormatBytesPipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
89
88
  '(dragover)': 'onDragOver($event)',
90
89
  '(dragleave)': 'onDragLeave($event)',
91
90
  '(drop)': 'onDrop($event)',
92
- }, template: "<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder()\" [placeholder]=\"placeholder()\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder()\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption() }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption() }}</label>\n</div>\n<bs-list-group class=\"files-list\">\n @for (upload of files(); track upload.index) {\n <bs-list-group-item>\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </bs-list-group-item>\n }\n</bs-list-group>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>", styles: [".dropzone{z-index:1}.dropzone.dragging{border:4px solid #CB1535!important;background:#dc88a8;margin:-3px -3px -4px}.dropzone input{opacity:0;z-index:2;top:0;left:0}.dropzone .btn{z-index:5}.files-list{margin-top:-1px}.files-list .d-flex{max-width:400px}.text-grey{color:#999}.list-group span{margin:-5px auto}\n"] }]
91
+ }, template: "<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile()\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder()\" [placeholder]=\"placeholder()\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder()\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption() }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption() }}</label>\n</div>\n<bs-list-group class=\"files-list\">\n @for (upload of files(); track upload.index) {\n <bs-list-group-item>\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </bs-list-group-item>\n }\n</bs-list-group>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>", styles: [".dropzone{z-index:1}.dropzone.dragging{border:4px solid #CB1535!important;background:#dc88a8;margin:-3px -3px -4px}.dropzone input{opacity:0;z-index:2;top:0;left:0}.dropzone .btn{z-index:5}.files-list{margin-top:-1px}.files-list .d-flex{max-width:400px}.text-grey{color:#999}.list-group span{margin:-5px auto}\n"] }]
93
92
  }], propDecorators: { dropFilesCaption: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropFilesCaption", required: false }] }], browseFilesCaption: [{ type: i0.Input, args: [{ isSignal: true, alias: "browseFilesCaption", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], files: [{ type: i0.Input, args: [{ isSignal: true, alias: "files", required: false }] }, { type: i0.Output, args: ["filesChange"] }], filesDropped: [{ type: i0.Output, args: ["filesDropped"] }] } });
94
93
 
95
94
  class BsFileUploadTemplateDirective {
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-file-upload.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/file-upload/src/pipes/format-bytes/format-bytes.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/component/file-upload.component.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/component/file-upload.component.html","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/directive/file-upload-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/mintplayer-ng-bootstrap-file-upload.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsFormatBytes',\n pure: true,\n})\nexport class BsFormatBytesPipe implements PipeTransform {\n\n transform(value: number, decimals = 2) {\n if (value === 0) {\n return \"0 Bytes\";\n }\n\n const k = 1024;\n const dm = decimals <= 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n const i = Math.floor(Math.log(value) / Math.log(k));\n\n return parseFloat((value / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\n }\n\n}\n","import { Component, input, model, output, TemplateRef, ChangeDetectionStrategy} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BsForDirective } from '@mintplayer/ng-bootstrap/for';\nimport { BsListGroupComponent } from '@mintplayer/ng-bootstrap/list-group';\nimport { BsListGroupItemComponent } from '@mintplayer/ng-bootstrap/list-group';\nimport { BsProgressComponent, BsProgressBarComponent } from '@mintplayer/ng-bootstrap/progress-bar';\nimport { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { FileUpload } from '../file-upload';\nimport { BsFormatBytesPipe } from '../pipes/format-bytes/format-bytes.pipe';\n\n@Component({\n selector: 'bs-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n imports: [NgTemplateOutlet, BsForDirective, BsListGroupComponent, BsListGroupItemComponent, BsProgressComponent, BsProgressBarComponent, BsButtonTypeDirective, BsFormatBytesPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(dragover)': 'onDragOver($event)',\n '(dragleave)': 'onDragLeave($event)',\n '(drop)': 'onDrop($event)',\n },\n})\nexport class BsFileUploadComponent {\n\n readonly dropFilesCaption = input('Drop your files here');\n readonly browseFilesCaption = input('Browse for files');\n readonly placeholder = input('Drop files to upload');\n\n colors = Color;\n isDraggingFile = false;\n fileTemplate?: TemplateRef<FileUpload>;\n readonly files = model<FileUpload[]>([]);\n readonly filesDropped = output<FileUpload[]>();\n\n onChange(event: Event) {\n if (!event.target) return;\n if (!('files' in event.target)) return;\n if (!event.target['files']) return;\n\n const files = (<HTMLInputElement>event.target).files;\n if (!files) return;\n\n this.processDroppedFiles(files);\n }\n\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n if (event.dataTransfer) {\n this.isDraggingFile = true;\n event.dataTransfer.effectAllowed = \"copy\";\n }\n }\n\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDraggingFile = false;\n }\n\n onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDraggingFile = false;\n if (event.dataTransfer && event.dataTransfer.files) {\n this.processDroppedFiles(event.dataTransfer.files);\n }\n }\n\n private processDroppedFiles(fileList: FileList) {\n const newFiles = [...Array(fileList.length).keys()]\n .map(i => fileList.item(i))\n .filter(f => !!f)\n .map((file, index) => <FileUpload>{ file, progress: 0, index: this.files().length + index });\n\n this.files.update(f => [...f, ...newFiles]);\n this.filesDropped.emit(newFiles);\n }\n}\n","<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder()\" [placeholder]=\"placeholder()\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder()\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption() }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption() }}</label>\n</div>\n<bs-list-group class=\"files-list\">\n @for (upload of files(); track upload.index) {\n <bs-list-group-item>\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </bs-list-group-item>\n }\n</bs-list-group>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>","import { Directive, inject, input, TemplateRef } from '@angular/core';\nimport { BsFileUploadComponent } from '../component/file-upload.component';\nimport { FileUpload } from '../file-upload';\n\n@Directive({\n selector: '[bsFileUploadTemplate]',\n})\nexport class BsFileUploadTemplateDirective {\n private fileUploadComponent = inject(BsFileUploadComponent);\n\n constructor() {\n const templateRef = inject(TemplateRef);\n this.fileUploadComponent.fileTemplate = templateRef;\n\n // TODO: fileUploadComponent.files is now an input() signal and cannot be assigned from the directive.\n // Consider converting files to model() on BsFileUploadComponent to restore this functionality.\n }\n\n readonly bsFileUploadTemplateOf = input<FileUpload[] | undefined>(undefined);\n\n static ngTemplateContextGuard(dir: BsFileUploadTemplateDirective, ctx: any): ctx is BsFileUploadTemplateContext {\n return true;\n }\n\n}\n\nexport class BsFileUploadTemplateContext {\n $implicit: FileUpload = null!;\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-file-upload.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/file-upload/src/pipes/format-bytes/format-bytes.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/component/file-upload.component.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/component/file-upload.component.html","../../../../libs/mintplayer-ng-bootstrap/file-upload/src/directive/file-upload-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/file-upload/mintplayer-ng-bootstrap-file-upload.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsFormatBytes',\n pure: true,\n})\nexport class BsFormatBytesPipe implements PipeTransform {\n\n transform(value: number, decimals = 2) {\n if (value === 0) {\n return \"0 Bytes\";\n }\n\n const k = 1024;\n const dm = decimals <= 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n const i = Math.floor(Math.log(value) / Math.log(k));\n\n return parseFloat((value / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\n }\n\n}\n","import { Component, input, model, output, signal, TemplateRef, ChangeDetectionStrategy} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BsForDirective } from '@mintplayer/ng-bootstrap/for';\nimport { BsListGroupComponent } from '@mintplayer/ng-bootstrap/list-group';\nimport { BsListGroupItemComponent } from '@mintplayer/ng-bootstrap/list-group';\nimport { BsProgressComponent, BsProgressBarComponent } from '@mintplayer/ng-bootstrap/progress-bar';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { FileUpload } from '../file-upload';\nimport { BsFormatBytesPipe } from '../pipes/format-bytes/format-bytes.pipe';\n\n@Component({\n selector: 'bs-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n imports: [NgTemplateOutlet, BsForDirective, BsListGroupComponent, BsListGroupItemComponent, BsProgressComponent, BsProgressBarComponent, BsFormatBytesPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(dragover)': 'onDragOver($event)',\n '(dragleave)': 'onDragLeave($event)',\n '(drop)': 'onDrop($event)',\n },\n})\nexport class BsFileUploadComponent {\n\n readonly dropFilesCaption = input('Drop your files here');\n readonly browseFilesCaption = input('Browse for files');\n readonly placeholder = input('Drop files to upload');\n\n colors = Color;\n isDraggingFile = signal(false);\n fileTemplate?: TemplateRef<FileUpload>;\n readonly files = model<FileUpload[]>([]);\n readonly filesDropped = output<FileUpload[]>();\n\n onChange(event: Event) {\n if (!event.target) return;\n if (!('files' in event.target)) return;\n if (!event.target['files']) return;\n\n const files = (<HTMLInputElement>event.target).files;\n if (!files) return;\n\n this.processDroppedFiles(files);\n }\n\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n if (event.dataTransfer) {\n this.isDraggingFile.set(true);\n event.dataTransfer.effectAllowed = \"copy\";\n }\n }\n\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDraggingFile.set(false);\n }\n\n onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isDraggingFile.set(false);\n if (event.dataTransfer && event.dataTransfer.files) {\n this.processDroppedFiles(event.dataTransfer.files);\n }\n }\n\n private processDroppedFiles(fileList: FileList) {\n const newFiles = [...Array(fileList.length).keys()]\n .map(i => fileList.item(i))\n .filter(f => !!f)\n .map((file, index) => <FileUpload>{ file, progress: 0, index: this.files().length + index });\n\n this.files.update(f => [...f, ...newFiles]);\n this.filesDropped.emit(newFiles);\n }\n}\n","<div class=\"dropzone border position-relative p-5\" [class.dragging]=\"isDraggingFile()\">\n <input type=\"file\" multiple #fileUpload (change)=\"onChange($event)\" [title]=\"placeholder()\" [placeholder]=\"placeholder()\" class=\"position-absolute w-100 h-100\">\n <!-- <img src=\"/assets/ic-file-upload.svg\" [alt]=\"placeholder()\"> -->\n <span class=\"h3 d-block\">{{ dropFilesCaption() }}</span>\n <label class=\"btn btn-primary position-relative\" [bsFor]=\"fileUpload\">{{ browseFilesCaption() }}</label>\n</div>\n<bs-list-group class=\"files-list\">\n @for (upload of files(); track upload.index) {\n <bs-list-group-item>\n <ng-container *ngTemplateOutlet=\"fileTemplate ?? defaultFileTemplate; context: { $implicit: upload }\"></ng-container>\n </bs-list-group-item>\n }\n</bs-list-group>\n\n<ng-template #defaultFileTemplate let-upload>\n <div class=\"d-flex flex-row mx-auto\">\n <div class=\"file-img\"></div>\n <div class=\"flex-grow-1 text-start px-2\">\n <span class=\"d-block text-truncate text-secondary\">{{ upload.file.name }}</span>\n <span class=\"d-block text-grey mb-0\">{{ upload.file.size | bsFormatBytes }}</span>\n <bs-progress [height]=\"4\">\n <bs-progress-bar [minimum]=\"0\" [maximum]=\"upload.file.size\" [value]=\"upload.progress\"></bs-progress-bar>\n </bs-progress>\n </div>\n </div>\n</ng-template>","import { Directive, inject, input, TemplateRef } from '@angular/core';\nimport { BsFileUploadComponent } from '../component/file-upload.component';\nimport { FileUpload } from '../file-upload';\n\n@Directive({\n selector: '[bsFileUploadTemplate]',\n})\nexport class BsFileUploadTemplateDirective {\n private fileUploadComponent = inject(BsFileUploadComponent);\n\n constructor() {\n const templateRef = inject(TemplateRef);\n this.fileUploadComponent.fileTemplate = templateRef;\n\n // TODO: fileUploadComponent.files is now an input() signal and cannot be assigned from the directive.\n // Consider converting files to model() on BsFileUploadComponent to restore this functionality.\n }\n\n readonly bsFileUploadTemplateOf = input<FileUpload[] | undefined>(undefined);\n\n static ngTemplateContextGuard(dir: BsFileUploadTemplateDirective, ctx: any): ctx is BsFileUploadTemplateContext {\n return true;\n }\n\n}\n\nexport class BsFileUploadTemplateContext {\n $implicit: FileUpload = null!;\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ChangeDetectionStrategy, Component, Injector, ComponentFactoryResolver, model, input, effect, TemplateRef, Directive } from '@angular/core';
2
+ import { InjectionToken, inject, signal, ChangeDetectionStrategy, Component, Injector, ComponentFactoryResolver, model, input, effect, TemplateRef, Directive } from '@angular/core';
3
3
  import { NgTemplateOutlet } from '@angular/common';
4
4
  import { FadeInOutAnimation, EnterFromTopAnimation } from '@mintplayer/ng-animations';
5
5
  import { Overlay } from '@angular/cdk/overlay';
@@ -11,14 +11,14 @@ const MODAL_CONTENT = new InjectionToken('ModalContent');
11
11
  class BsModalComponent {
12
12
  constructor() {
13
13
  this.template = inject(MODAL_CONTENT);
14
- this.isOpen = false;
14
+ this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
15
15
  }
16
16
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: BsModalComponent, isStandalone: true, selector: "bs-modal-content", ngImport: i0, template: "@if (isOpen) {\n <div class=\"modal d-block\"\n [@fadeInOut]\n [@enterFromTop]\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n </div>\n </div>\n\n <div [@fadeInOut]>\n <div class=\"modal-backdrop fade\" [class.show]=\"isOpen\" aria-hidden=\"true\"></div>\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 .modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: var(--bs-body-color);--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: var(--bs-box-shadow-sm);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}:host ::ng-deep .modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade :host ::ng-deep .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}@media(prefers-reduced-motion:reduce){.modal.fade :host ::ng-deep .modal-dialog{transition:none}}.modal.show :host ::ng-deep .modal-dialog{transform:none}.modal.modal-static :host ::ng-deep .modal-dialog{transform:scale(1.02)}:host ::ng-deep .modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}:host ::ng-deep .modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}:host ::ng-deep .modal-dialog-scrollable .modal-body{overflow-y:auto}:host ::ng-deep .modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}:host ::ng-deep .modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}:host ::ng-deep .modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}:host ::ng-deep .modal-backdrop.fade{opacity:0}:host ::ng-deep .modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}:host ::ng-deep .modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}:host ::ng-deep .modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin-top:calc(-.5 * var(--bs-modal-header-padding-y));margin-right:calc(-.5 * var(--bs-modal-header-padding-x));margin-bottom:calc(-.5 * var(--bs-modal-header-padding-y));margin-left:auto}:host ::ng-deep .modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}:host ::ng-deep .modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}:host ::ng-deep .modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}:host ::ng-deep .modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media(min-width:576px){:host ::ng-deep .modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: var(--bs-box-shadow)}:host ::ng-deep .modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}:host ::ng-deep .modal-sm{--bs-modal-width: 300px}}@media(min-width:992px){:host ::ng-deep .modal-lg,:host ::ng-deep .modal-xl{--bs-modal-width: 800px}}@media(min-width:1200px){:host ::ng-deep .modal-xl{--bs-modal-width: 1140px}}:host ::ng-deep .modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen .modal-header,:host ::ng-deep .modal-fullscreen .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen .modal-body{overflow-y:auto}@media(max-width:575.98px){:host ::ng-deep .modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-sm-down .modal-header,:host ::ng-deep .modal-fullscreen-sm-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width:767.98px){:host ::ng-deep .modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-md-down .modal-header,:host ::ng-deep .modal-fullscreen-md-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width:991.98px){:host ::ng-deep .modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-lg-down .modal-header,:host ::ng-deep .modal-fullscreen-lg-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width:1199.98px){:host ::ng-deep .modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-xl-down .modal-header,:host ::ng-deep .modal-fullscreen-xl-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width:1399.98px){:host ::ng-deep .modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-xxl-down .modal-header,:host ::ng-deep .modal-fullscreen-xxl-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [FadeInOutAnimation, EnterFromTopAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: BsModalComponent, isStandalone: true, selector: "bs-modal-content", ngImport: i0, template: "@if (isOpen()) {\n <div class=\"modal d-block\"\n [@fadeInOut]\n [@enterFromTop]\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n </div>\n </div>\n\n <div [@fadeInOut]>\n <div class=\"modal-backdrop fade\" [class.show]=\"isOpen()\" aria-hidden=\"true\"></div>\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 .modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: var(--bs-body-color);--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: var(--bs-box-shadow-sm);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}:host ::ng-deep .modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade :host ::ng-deep .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}@media(prefers-reduced-motion:reduce){.modal.fade :host ::ng-deep .modal-dialog{transition:none}}.modal.show :host ::ng-deep .modal-dialog{transform:none}.modal.modal-static :host ::ng-deep .modal-dialog{transform:scale(1.02)}:host ::ng-deep .modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}:host ::ng-deep .modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}:host ::ng-deep .modal-dialog-scrollable .modal-body{overflow-y:auto}:host ::ng-deep .modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}:host ::ng-deep .modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}:host ::ng-deep .modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}:host ::ng-deep .modal-backdrop.fade{opacity:0}:host ::ng-deep .modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}:host ::ng-deep .modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}:host ::ng-deep .modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin-top:calc(-.5 * var(--bs-modal-header-padding-y));margin-right:calc(-.5 * var(--bs-modal-header-padding-x));margin-bottom:calc(-.5 * var(--bs-modal-header-padding-y));margin-left:auto}:host ::ng-deep .modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}:host ::ng-deep .modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}:host ::ng-deep .modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}:host ::ng-deep .modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media(min-width:576px){:host ::ng-deep .modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: var(--bs-box-shadow)}:host ::ng-deep .modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}:host ::ng-deep .modal-sm{--bs-modal-width: 300px}}@media(min-width:992px){:host ::ng-deep .modal-lg,:host ::ng-deep .modal-xl{--bs-modal-width: 800px}}@media(min-width:1200px){:host ::ng-deep .modal-xl{--bs-modal-width: 1140px}}:host ::ng-deep .modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen .modal-header,:host ::ng-deep .modal-fullscreen .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen .modal-body{overflow-y:auto}@media(max-width:575.98px){:host ::ng-deep .modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-sm-down .modal-header,:host ::ng-deep .modal-fullscreen-sm-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width:767.98px){:host ::ng-deep .modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-md-down .modal-header,:host ::ng-deep .modal-fullscreen-md-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width:991.98px){:host ::ng-deep .modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-lg-down .modal-header,:host ::ng-deep .modal-fullscreen-lg-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width:1199.98px){:host ::ng-deep .modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-xl-down .modal-header,:host ::ng-deep .modal-fullscreen-xl-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width:1399.98px){:host ::ng-deep .modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-xxl-down .modal-header,:host ::ng-deep .modal-fullscreen-xxl-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [FadeInOutAnimation, EnterFromTopAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18
18
  }
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsModalComponent, decorators: [{
20
20
  type: Component,
21
- args: [{ selector: 'bs-modal-content', imports: [NgTemplateOutlet], animations: [FadeInOutAnimation, EnterFromTopAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isOpen) {\n <div class=\"modal d-block\"\n [@fadeInOut]\n [@enterFromTop]\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n </div>\n </div>\n\n <div [@fadeInOut]>\n <div class=\"modal-backdrop fade\" [class.show]=\"isOpen\" aria-hidden=\"true\"></div>\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 .modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: var(--bs-body-color);--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: var(--bs-box-shadow-sm);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}:host ::ng-deep .modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade :host ::ng-deep .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}@media(prefers-reduced-motion:reduce){.modal.fade :host ::ng-deep .modal-dialog{transition:none}}.modal.show :host ::ng-deep .modal-dialog{transform:none}.modal.modal-static :host ::ng-deep .modal-dialog{transform:scale(1.02)}:host ::ng-deep .modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}:host ::ng-deep .modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}:host ::ng-deep .modal-dialog-scrollable .modal-body{overflow-y:auto}:host ::ng-deep .modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}:host ::ng-deep .modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}:host ::ng-deep .modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}:host ::ng-deep .modal-backdrop.fade{opacity:0}:host ::ng-deep .modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}:host ::ng-deep .modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}:host ::ng-deep .modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin-top:calc(-.5 * var(--bs-modal-header-padding-y));margin-right:calc(-.5 * var(--bs-modal-header-padding-x));margin-bottom:calc(-.5 * var(--bs-modal-header-padding-y));margin-left:auto}:host ::ng-deep .modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}:host ::ng-deep .modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}:host ::ng-deep .modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}:host ::ng-deep .modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media(min-width:576px){:host ::ng-deep .modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: var(--bs-box-shadow)}:host ::ng-deep .modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}:host ::ng-deep .modal-sm{--bs-modal-width: 300px}}@media(min-width:992px){:host ::ng-deep .modal-lg,:host ::ng-deep .modal-xl{--bs-modal-width: 800px}}@media(min-width:1200px){:host ::ng-deep .modal-xl{--bs-modal-width: 1140px}}:host ::ng-deep .modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen .modal-header,:host ::ng-deep .modal-fullscreen .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen .modal-body{overflow-y:auto}@media(max-width:575.98px){:host ::ng-deep .modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-sm-down .modal-header,:host ::ng-deep .modal-fullscreen-sm-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width:767.98px){:host ::ng-deep .modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-md-down .modal-header,:host ::ng-deep .modal-fullscreen-md-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width:991.98px){:host ::ng-deep .modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-lg-down .modal-header,:host ::ng-deep .modal-fullscreen-lg-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width:1199.98px){:host ::ng-deep .modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-xl-down .modal-header,:host ::ng-deep .modal-fullscreen-xl-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width:1399.98px){:host ::ng-deep .modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-xxl-down .modal-header,:host ::ng-deep .modal-fullscreen-xxl-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}\n"] }]
21
+ args: [{ selector: 'bs-modal-content', imports: [NgTemplateOutlet], animations: [FadeInOutAnimation, EnterFromTopAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isOpen()) {\n <div class=\"modal d-block\"\n [@fadeInOut]\n [@enterFromTop]\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n </div>\n </div>\n\n <div [@fadeInOut]>\n <div class=\"modal-backdrop fade\" [class.show]=\"isOpen()\" aria-hidden=\"true\"></div>\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 .modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: var(--bs-body-color);--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: var(--bs-box-shadow-sm);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}:host ::ng-deep .modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade :host ::ng-deep .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}@media(prefers-reduced-motion:reduce){.modal.fade :host ::ng-deep .modal-dialog{transition:none}}.modal.show :host ::ng-deep .modal-dialog{transform:none}.modal.modal-static :host ::ng-deep .modal-dialog{transform:scale(1.02)}:host ::ng-deep .modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}:host ::ng-deep .modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}:host ::ng-deep .modal-dialog-scrollable .modal-body{overflow-y:auto}:host ::ng-deep .modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}:host ::ng-deep .modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}:host ::ng-deep .modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}:host ::ng-deep .modal-backdrop.fade{opacity:0}:host ::ng-deep .modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}:host ::ng-deep .modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}:host ::ng-deep .modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin-top:calc(-.5 * var(--bs-modal-header-padding-y));margin-right:calc(-.5 * var(--bs-modal-header-padding-x));margin-bottom:calc(-.5 * var(--bs-modal-header-padding-y));margin-left:auto}:host ::ng-deep .modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}:host ::ng-deep .modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}:host ::ng-deep .modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}:host ::ng-deep .modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media(min-width:576px){:host ::ng-deep .modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: var(--bs-box-shadow)}:host ::ng-deep .modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}:host ::ng-deep .modal-sm{--bs-modal-width: 300px}}@media(min-width:992px){:host ::ng-deep .modal-lg,:host ::ng-deep .modal-xl{--bs-modal-width: 800px}}@media(min-width:1200px){:host ::ng-deep .modal-xl{--bs-modal-width: 1140px}}:host ::ng-deep .modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen .modal-header,:host ::ng-deep .modal-fullscreen .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen .modal-body{overflow-y:auto}@media(max-width:575.98px){:host ::ng-deep .modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-sm-down .modal-header,:host ::ng-deep .modal-fullscreen-sm-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width:767.98px){:host ::ng-deep .modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-md-down .modal-header,:host ::ng-deep .modal-fullscreen-md-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width:991.98px){:host ::ng-deep .modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-lg-down .modal-header,:host ::ng-deep .modal-fullscreen-lg-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width:1199.98px){:host ::ng-deep .modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-xl-down .modal-header,:host ::ng-deep .modal-fullscreen-xl-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width:1399.98px){:host ::ng-deep .modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}:host ::ng-deep .modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}:host ::ng-deep .modal-fullscreen-xxl-down .modal-header,:host ::ng-deep .modal-fullscreen-xxl-down .modal-footer{border-radius:0}:host ::ng-deep .modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}\n"] }]
22
22
  }] });
23
23
 
24
24
  const PORTAL_FACTORY = new InjectionToken('ModalPortalFactory');
@@ -36,8 +36,7 @@ class BsModalHostComponent {
36
36
  effect(() => {
37
37
  const value = this.isOpen();
38
38
  if (this.componentInstance) {
39
- this.componentInstance.instance.isOpen = value;
40
- this.componentInstance.changeDetectorRef.detectChanges();
39
+ this.componentInstance.instance.isOpen.set(value);
41
40
  }
42
41
  });
43
42
  }
@@ -58,8 +57,7 @@ class BsModalHostComponent {
58
57
  hasBackdrop: false
59
58
  });
60
59
  this.componentInstance = this.overlayRef.attach(portal);
61
- this.componentInstance.instance.isOpen = this.isOpen();
62
- this.componentInstance.changeDetectorRef.detectChanges();
60
+ this.componentInstance.instance.isOpen.set(this.isOpen());
63
61
  }
64
62
  ngOnDestroy() {
65
63
  this.isOpen.set(false);
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-modal.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/modal/src/providers/modal-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/components/modal/modal.component.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/components/modal/modal.component.html","../../../../libs/mintplayer-ng-bootstrap/modal/src/providers/portal-factory.provider.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/components/modal-host/modal-host.component.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/components/modal-host/modal-host.component.html","../../../../libs/mintplayer-ng-bootstrap/modal/src/directives/modal/modal.directive.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/directives/modal-header/modal-header.directive.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/directives/modal-body/modal-body.directive.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/directives/modal-footer/modal-footer.directive.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/directives/modal-close/modal-close.directive.ts","../../../../libs/mintplayer-ng-bootstrap/modal/mintplayer-ng-bootstrap-modal.ts"],"sourcesContent":["import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const MODAL_CONTENT = new InjectionToken<TemplateRef<any>>('ModalContent');","import { Component, inject, TemplateRef, ChangeDetectionStrategy} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EnterFromTopAnimation, FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { MODAL_CONTENT } from '../../providers/modal-content.provider';\n\n@Component({\n selector: 'bs-modal-content',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n imports: [NgTemplateOutlet],\n animations: [FadeInOutAnimation, EnterFromTopAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsModalComponent {\n\n template = inject<TemplateRef<any>>(MODAL_CONTENT);\n isOpen = false;\n\n}\n","@if (isOpen) {\n <div class=\"modal d-block\"\n [@fadeInOut]\n [@enterFromTop]\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n </div>\n </div>\n\n <div [@fadeInOut]>\n <div class=\"modal-backdrop fade\" [class.show]=\"isOpen\" aria-hidden=\"true\"></div>\n </div>\n}","import { ComponentPortal } from \"@angular/cdk/portal\";\nimport { InjectionToken, Injector } from \"@angular/core\";\n\nexport const PORTAL_FACTORY = new InjectionToken<(injector: Injector) => ComponentPortal<any>>('ModalPortalFactory');","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { AfterViewInit, Component, ComponentFactoryResolver, ComponentRef, effect, inject, Injector, input, model, OnDestroy, TemplateRef, ChangeDetectionStrategy} from '@angular/core';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { MODAL_CONTENT } from '../../providers/modal-content.provider';\nimport { PORTAL_FACTORY } from '../../providers/portal-factory.provider';\nimport { BsModalComponent } from '../modal/modal.component';\n\n@Component({\n selector: 'bs-modal',\n templateUrl: './modal-host.component.html',\n styleUrls: ['./modal-host.component.scss'],\n imports: [BsHasOverlayComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: PORTAL_FACTORY,\n useValue: (injector: Injector) => {\n return new ComponentPortal(BsModalComponent, null, injector);\n }\n }],\n host: {\n '(document:keydown)': 'onKeyDown($event)',\n },\n})\nexport class BsModalHostComponent implements AfterViewInit, OnDestroy {\n private overlay = inject(Overlay);\n private parentInjector = inject(Injector);\n private portalFactory = inject<(injector: Injector) => ComponentPortal<BsModalComponent>>(PORTAL_FACTORY);\n private componentFactoryResolver = inject(ComponentFactoryResolver);\n\n overlayRef!: OverlayRef;\n componentInstance?: ComponentRef<BsModalComponent>;\n template!: TemplateRef<any>;\n\n //#region isOpen\n readonly isOpen = model<boolean>(false);\n //#endregion\n readonly closeOnEscape = input(true);\n\n constructor() {\n effect(() => {\n const value = this.isOpen();\n if (this.componentInstance) {\n this.componentInstance.instance.isOpen = value;\n this.componentInstance.changeDetectorRef.detectChanges();\n }\n });\n }\n\n ngAfterViewInit() {\n const injector = Injector.create({\n providers: [\n { provide: MODAL_CONTENT, useValue: this.template }\n ],\n parent: this.parentInjector\n });\n // const portal = new ComponentPortal(BsModalComponent, null, injector, this.componentFactoryResolver);\n const portal = this.portalFactory(injector);\n this.overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .global().centerHorizontally().bottom('0').top('0').left('0').right('0'),\n width: '100%',\n hasBackdrop: false\n });\n this.componentInstance = this.overlayRef.attach<BsModalComponent>(portal);\n this.componentInstance.instance.isOpen = this.isOpen();\n this.componentInstance.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy() {\n this.isOpen.set(false);\n setTimeout(() => this.overlayRef && this.overlayRef.dispose(), 500);\n }\n\n onKeyDown(event: Event) {\n const ev = event as KeyboardEvent;\n if (this.isOpen() && this.closeOnEscape() && ev.code === 'Escape') {\n this.isOpen.set(false);\n }\n }\n}","<bs-has-overlay></bs-has-overlay>","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsModalHostComponent } from '../../components/modal-host/modal-host.component';\n\n@Directive({\n selector: '[bsModal]',\n})\nexport class BsModalDirective {\n\n constructor() {\n const template = inject(TemplateRef);\n const host = inject(BsModalHostComponent);\n host.template = template;\n }\n\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[bsModalHeader]',\n host: {\n '[class.modal-header]': 'true',\n },\n})\nexport class BsModalHeaderDirective {\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[bsModalBody]',\n host: {\n '[class.modal-body]': 'true',\n },\n})\nexport class BsModalBodyDirective {\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[bsModalFooter]',\n host: {\n '[class.modal-footer]': 'true',\n },\n})\nexport class BsModalFooterDirective {\n}\n","import { Directive, inject } from '@angular/core';\nimport { BsModalHostComponent } from '../../components/modal-host/modal-host.component';\n\n@Directive({\n selector: '[bsModalClose]',\n host: {\n '[attr.aria-label]': '\"Close\"',\n '(click)': 'onClick()',\n },\n})\nexport class BsModalCloseDirective {\n private host = inject(BsModalHostComponent);\n\n onClick() {\n this.host.isOpen.set(false);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-modal.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/modal/src/providers/modal-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/components/modal/modal.component.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/components/modal/modal.component.html","../../../../libs/mintplayer-ng-bootstrap/modal/src/providers/portal-factory.provider.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/components/modal-host/modal-host.component.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/components/modal-host/modal-host.component.html","../../../../libs/mintplayer-ng-bootstrap/modal/src/directives/modal/modal.directive.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/directives/modal-header/modal-header.directive.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/directives/modal-body/modal-body.directive.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/directives/modal-footer/modal-footer.directive.ts","../../../../libs/mintplayer-ng-bootstrap/modal/src/directives/modal-close/modal-close.directive.ts","../../../../libs/mintplayer-ng-bootstrap/modal/mintplayer-ng-bootstrap-modal.ts"],"sourcesContent":["import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const MODAL_CONTENT = new InjectionToken<TemplateRef<any>>('ModalContent');","import { Component, inject, signal, TemplateRef, ChangeDetectionStrategy} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EnterFromTopAnimation, FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { MODAL_CONTENT } from '../../providers/modal-content.provider';\n\n@Component({\n selector: 'bs-modal-content',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n imports: [NgTemplateOutlet],\n animations: [FadeInOutAnimation, EnterFromTopAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsModalComponent {\n\n template = inject<TemplateRef<any>>(MODAL_CONTENT);\n isOpen = signal(false);\n\n}\n","@if (isOpen()) {\n <div class=\"modal d-block\"\n [@fadeInOut]\n [@enterFromTop]\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n </div>\n </div>\n\n <div [@fadeInOut]>\n <div class=\"modal-backdrop fade\" [class.show]=\"isOpen()\" aria-hidden=\"true\"></div>\n </div>\n}","import { ComponentPortal } from \"@angular/cdk/portal\";\nimport { InjectionToken, Injector } from \"@angular/core\";\n\nexport const PORTAL_FACTORY = new InjectionToken<(injector: Injector) => ComponentPortal<any>>('ModalPortalFactory');","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { AfterViewInit, Component, ComponentFactoryResolver, ComponentRef, effect, inject, Injector, input, model, OnDestroy, TemplateRef, ChangeDetectionStrategy} from '@angular/core';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { MODAL_CONTENT } from '../../providers/modal-content.provider';\nimport { PORTAL_FACTORY } from '../../providers/portal-factory.provider';\nimport { BsModalComponent } from '../modal/modal.component';\n\n@Component({\n selector: 'bs-modal',\n templateUrl: './modal-host.component.html',\n styleUrls: ['./modal-host.component.scss'],\n imports: [BsHasOverlayComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: PORTAL_FACTORY,\n useValue: (injector: Injector) => {\n return new ComponentPortal(BsModalComponent, null, injector);\n }\n }],\n host: {\n '(document:keydown)': 'onKeyDown($event)',\n },\n})\nexport class BsModalHostComponent implements AfterViewInit, OnDestroy {\n private overlay = inject(Overlay);\n private parentInjector = inject(Injector);\n private portalFactory = inject<(injector: Injector) => ComponentPortal<BsModalComponent>>(PORTAL_FACTORY);\n private componentFactoryResolver = inject(ComponentFactoryResolver);\n\n overlayRef!: OverlayRef;\n componentInstance?: ComponentRef<BsModalComponent>;\n template!: TemplateRef<any>;\n\n //#region isOpen\n readonly isOpen = model<boolean>(false);\n //#endregion\n readonly closeOnEscape = input(true);\n\n constructor() {\n effect(() => {\n const value = this.isOpen();\n if (this.componentInstance) {\n this.componentInstance.instance.isOpen.set(value);\n }\n });\n }\n\n ngAfterViewInit() {\n const injector = Injector.create({\n providers: [\n { provide: MODAL_CONTENT, useValue: this.template }\n ],\n parent: this.parentInjector\n });\n // const portal = new ComponentPortal(BsModalComponent, null, injector, this.componentFactoryResolver);\n const portal = this.portalFactory(injector);\n this.overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .global().centerHorizontally().bottom('0').top('0').left('0').right('0'),\n width: '100%',\n hasBackdrop: false\n });\n this.componentInstance = this.overlayRef.attach<BsModalComponent>(portal);\n this.componentInstance.instance.isOpen.set(this.isOpen());\n }\n\n ngOnDestroy() {\n this.isOpen.set(false);\n setTimeout(() => this.overlayRef && this.overlayRef.dispose(), 500);\n }\n\n onKeyDown(event: Event) {\n const ev = event as KeyboardEvent;\n if (this.isOpen() && this.closeOnEscape() && ev.code === 'Escape') {\n this.isOpen.set(false);\n }\n }\n}","<bs-has-overlay></bs-has-overlay>","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsModalHostComponent } from '../../components/modal-host/modal-host.component';\n\n@Directive({\n selector: '[bsModal]',\n})\nexport class BsModalDirective {\n\n constructor() {\n const template = inject(TemplateRef);\n const host = inject(BsModalHostComponent);\n host.template = template;\n }\n\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[bsModalHeader]',\n host: {\n '[class.modal-header]': 'true',\n },\n})\nexport class BsModalHeaderDirective {\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[bsModalBody]',\n host: {\n '[class.modal-body]': 'true',\n },\n})\nexport class BsModalBodyDirective {\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[bsModalFooter]',\n host: {\n '[class.modal-footer]': 'true',\n },\n})\nexport class BsModalFooterDirective {\n}\n","import { Directive, inject } from '@angular/core';\nimport { BsModalHostComponent } from '../../components/modal-host/modal-host.component';\n\n@Directive({\n selector: '[bsModalClose]',\n host: {\n '[attr.aria-label]': '\"Close\"',\n '(click)': 'onClick()',\n },\n})\nexport class BsModalCloseDirective {\n private host = inject(BsModalHostComponent);\n\n onClick() {\n this.host.isOpen.set(false);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}