@ngbase/adk 0.1.19 → 0.1.21

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 (70) hide show
  1. package/fesm2022/ngbase-adk-a11y.mjs +15 -15
  2. package/fesm2022/ngbase-adk-accordion.mjs +12 -12
  3. package/fesm2022/ngbase-adk-autocomplete.mjs +6 -6
  4. package/fesm2022/ngbase-adk-avatar.mjs +6 -6
  5. package/fesm2022/ngbase-adk-bidi.mjs +3 -3
  6. package/fesm2022/ngbase-adk-breadcrumb.mjs +12 -12
  7. package/fesm2022/ngbase-adk-cache.mjs +3 -3
  8. package/fesm2022/ngbase-adk-carousel.mjs +15 -15
  9. package/fesm2022/ngbase-adk-checkbox.mjs +6 -6
  10. package/fesm2022/ngbase-adk-chip.mjs +9 -9
  11. package/fesm2022/ngbase-adk-clipboard.mjs +3 -3
  12. package/fesm2022/ngbase-adk-color-picker.mjs +30 -30
  13. package/fesm2022/ngbase-adk-cookies.mjs +3 -3
  14. package/fesm2022/ngbase-adk-datepicker.mjs +36 -36
  15. package/fesm2022/ngbase-adk-dialog.mjs +12 -12
  16. package/fesm2022/ngbase-adk-drag.mjs +12 -12
  17. package/fesm2022/ngbase-adk-form-field.mjs +20 -20
  18. package/fesm2022/ngbase-adk-form-field.mjs.map +1 -1
  19. package/fesm2022/ngbase-adk-hover-card.mjs +3 -3
  20. package/fesm2022/ngbase-adk-icon.mjs +6 -6
  21. package/fesm2022/ngbase-adk-inline-edit.mjs +9 -9
  22. package/fesm2022/ngbase-adk-jwt.mjs +6 -6
  23. package/fesm2022/ngbase-adk-keys.mjs +6 -6
  24. package/fesm2022/ngbase-adk-list.mjs +6 -6
  25. package/fesm2022/ngbase-adk-mask.mjs +6 -6
  26. package/fesm2022/ngbase-adk-menu.mjs +24 -24
  27. package/fesm2022/ngbase-adk-network.mjs +3 -3
  28. package/fesm2022/ngbase-adk-otp.mjs +9 -9
  29. package/fesm2022/ngbase-adk-pagination.mjs +6 -6
  30. package/fesm2022/ngbase-adk-popover.mjs +21 -21
  31. package/fesm2022/ngbase-adk-portal.mjs +12 -12
  32. package/fesm2022/ngbase-adk-portal.mjs.map +1 -1
  33. package/fesm2022/ngbase-adk-progress.mjs +6 -6
  34. package/fesm2022/ngbase-adk-radio.mjs +9 -9
  35. package/fesm2022/ngbase-adk-resizable.mjs +39 -131
  36. package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
  37. package/fesm2022/ngbase-adk-scroll-area.mjs +6 -6
  38. package/fesm2022/ngbase-adk-select.mjs +245 -102
  39. package/fesm2022/ngbase-adk-select.mjs.map +1 -1
  40. package/fesm2022/ngbase-adk-selectable.mjs +6 -6
  41. package/fesm2022/ngbase-adk-sheet.mjs +3 -3
  42. package/fesm2022/ngbase-adk-sidenav.mjs +18 -18
  43. package/fesm2022/ngbase-adk-slider.mjs +12 -12
  44. package/fesm2022/ngbase-adk-sonner.mjs +9 -9
  45. package/fesm2022/ngbase-adk-stepper.mjs +12 -12
  46. package/fesm2022/ngbase-adk-switch.mjs +12 -12
  47. package/fesm2022/ngbase-adk-table.mjs +39 -39
  48. package/fesm2022/ngbase-adk-tabs.mjs +21 -21
  49. package/fesm2022/ngbase-adk-toggle-group.mjs +6 -6
  50. package/fesm2022/ngbase-adk-toggle.mjs +3 -3
  51. package/fesm2022/ngbase-adk-tooltip.mjs +9 -9
  52. package/fesm2022/ngbase-adk-tour.mjs +12 -12
  53. package/fesm2022/ngbase-adk-translate.mjs +6 -6
  54. package/fesm2022/ngbase-adk-tree.mjs +15 -15
  55. package/fesm2022/ngbase-adk-utils.mjs +14 -10
  56. package/fesm2022/ngbase-adk-utils.mjs.map +1 -1
  57. package/fesm2022/ngbase-adk-virtualizer.mjs +11 -8
  58. package/fesm2022/ngbase-adk-virtualizer.mjs.map +1 -1
  59. package/package.json +1 -1
  60. package/schematics/components/files/pagination/pagination.ts.template +2 -2
  61. package/schematics/components/files/select/select.ts.template +92 -15
  62. package/schematics/components/files/sidenav/sidenav.ts.template +16 -8
  63. package/schematics/components/files/switch/switch.ts.template +1 -1
  64. package/types/ngbase-adk-color-picker.d.ts +1 -1
  65. package/types/ngbase-adk-form-field.d.ts +1 -1
  66. package/types/ngbase-adk-portal.d.ts +2 -3
  67. package/types/ngbase-adk-resizable.d.ts +3 -3
  68. package/types/ngbase-adk-scroll-area.d.ts +1 -1
  69. package/types/ngbase-adk-select.d.ts +27 -6
  70. package/types/ngbase-adk-virtualizer.d.ts +3 -2
@@ -369,10 +369,10 @@ class NgbPopoverArrowHost {
369
369
  constructor() {
370
370
  this.el = inject((ElementRef));
371
371
  }
372
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopoverArrowHost, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
373
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: NgbPopoverArrowHost, isStandalone: true, selector: "[ngbPopoverArrowHost]", exportAs: ["ngbPopoverArrowHost"], ngImport: i0 }); }
372
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopoverArrowHost, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
373
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.2", type: NgbPopoverArrowHost, isStandalone: true, selector: "[ngbPopoverArrowHost]", exportAs: ["ngbPopoverArrowHost"], ngImport: i0 }); }
374
374
  }
375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopoverArrowHost, decorators: [{
375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopoverArrowHost, decorators: [{
376
376
  type: Directive,
377
377
  args: [{
378
378
  selector: '[ngbPopoverArrowHost]',
@@ -473,8 +473,8 @@ class NgbPopoverArrow {
473
473
  }
474
474
  return { '--action-angle': deg, '--action-left': anchorLeft, '--action-top': anchorTop };
475
475
  }
476
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopoverArrow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
477
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: NgbPopoverArrow, isStandalone: true, selector: "[ngbPopoverArrow]", inputs: { anchor: { classPropertyName: "anchor", publicName: "anchor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style": "styles()" } }, ngImport: i0, template: `
476
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopoverArrow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
477
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: NgbPopoverArrow, isStandalone: true, selector: "[ngbPopoverArrow]", inputs: { anchor: { classPropertyName: "anchor", publicName: "anchor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style": "styles()" } }, ngImport: i0, template: `
478
478
  <ng-content />
479
479
  @if (anchor()) {
480
480
  <style>
@@ -507,7 +507,7 @@ class NgbPopoverArrow {
507
507
  }
508
508
  `, isInline: true, styles: [":host{--action-angle: 180deg;--action-left: 50%;--action-top: -1rem;--action-color: var(--color-background)}:host:before{content:\"\";position:absolute;width:0;height:0;border-style:solid;border-top:.5rem solid var(--action-color);border-left:.45rem solid transparent;border-right:.45rem solid transparent;top:var(--action-top);left:var(--action-left);transform-origin:50% 0;transform:translate(-50%) rotate(var(--action-angle, 180deg))}\n"] }); }
509
509
  }
510
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopoverArrow, decorators: [{
510
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopoverArrow, decorators: [{
511
511
  type: Component,
512
512
  args: [{
513
513
  selector: '[ngbPopoverArrow]',
@@ -555,10 +555,10 @@ class NgbPopoverBackdrop {
555
555
  this.focusTrap = inject(FocusTrap);
556
556
  this.focusTrap._focusTrap = linkedSignal(() => this.popover.options().focusTrap ?? true, ...(ngDevMode ? [{ debugName: "_focusTrap" }] : []));
557
557
  }
558
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopoverBackdrop, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
559
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: NgbPopoverBackdrop, isStandalone: true, selector: "[ngbPopoverBackdrop]", host: { listeners: { "click": "!popover.options().disableClose && popover.close()" }, properties: { "style.clipPath": "popover.options().clipPath?.()", "class": "popover.options().backdropClassName" } }, hostDirectives: [{ directive: i1.FocusTrap }], ngImport: i0 }); }
558
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopoverBackdrop, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
559
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.2", type: NgbPopoverBackdrop, isStandalone: true, selector: "[ngbPopoverBackdrop]", host: { listeners: { "click": "!popover.options().disableClose && popover.close()" }, properties: { "style.clipPath": "popover.options().clipPath?.()", "class": "popover.options().backdropClassName" } }, hostDirectives: [{ directive: i1.FocusTrap }], ngImport: i0 }); }
560
560
  }
561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopoverBackdrop, decorators: [{
561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopoverBackdrop, decorators: [{
562
562
  type: Directive,
563
563
  args: [{
564
564
  selector: '[ngbPopoverBackdrop]',
@@ -574,10 +574,10 @@ class NgbPopoverMain {
574
574
  constructor() {
575
575
  this.popover = inject(NgbPopover);
576
576
  }
577
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopoverMain, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
578
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: NgbPopoverMain, isStandalone: true, selector: "[ngbPopoverMain]", host: { properties: { "class": "popover.options().className" } }, ngImport: i0 }); }
577
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopoverMain, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
578
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.2", type: NgbPopoverMain, isStandalone: true, selector: "[ngbPopoverMain]", host: { properties: { "class": "popover.options().className" } }, ngImport: i0 }); }
579
579
  }
580
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopoverMain, decorators: [{
580
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopoverMain, decorators: [{
581
581
  type: Directive,
582
582
  args: [{
583
583
  selector: '[ngbPopoverMain]',
@@ -739,10 +739,10 @@ class NgbPopover extends BaseDialog {
739
739
  // console.log('setOptions', options);
740
740
  this.options.set(options);
741
741
  }
742
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
743
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.0", type: NgbPopover, isStandalone: true, selector: "ngb-popover", viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "container", first: true, predicate: NgbPopoverMain, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "backdropElement", first: true, predicate: NgbPopoverBackdrop, descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
742
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
743
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.2", type: NgbPopover, isStandalone: true, selector: "ngb-popover", viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "container", first: true, predicate: NgbPopoverMain, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "backdropElement", first: true, predicate: NgbPopoverBackdrop, descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
744
744
  }
745
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopover, decorators: [{
745
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopover, decorators: [{
746
746
  type: Component,
747
747
  args: [{
748
748
  selector: 'ngb-popover',
@@ -788,10 +788,10 @@ class NgbPopoverClose extends NgbPortalClose {
788
788
  close() {
789
789
  super.close(this.ngbPopoverClose());
790
790
  }
791
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopoverClose, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
792
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: NgbPopoverClose, isStandalone: true, selector: "[ngbPopoverClose]", inputs: { ngbPopoverClose: { classPropertyName: "ngbPopoverClose", publicName: "ngbPopoverClose", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
791
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopoverClose, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
792
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.2", type: NgbPopoverClose, isStandalone: true, selector: "[ngbPopoverClose]", inputs: { ngbPopoverClose: { classPropertyName: "ngbPopoverClose", publicName: "ngbPopoverClose", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
793
793
  }
794
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopoverClose, decorators: [{
794
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopoverClose, decorators: [{
795
795
  type: Directive,
796
796
  args: [{ selector: '[ngbPopoverClose]' }]
797
797
  }], propDecorators: { ngbPopoverClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngbPopoverClose", required: false }] }] } });
@@ -836,10 +836,10 @@ class NgbPopoverTrigger {
836
836
  close() {
837
837
  this.closeFn();
838
838
  }
839
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopoverTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
840
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: NgbPopoverTrigger, isStandalone: true, selector: "[ngbPopoverTrigger]", inputs: { ngbPopoverTrigger: { classPropertyName: "ngbPopoverTrigger", publicName: "ngbPopoverTrigger", isSignal: true, isRequired: true, transformFunction: null }, ngbPopoverTriggerData: { classPropertyName: "ngbPopoverTriggerData", publicName: "ngbPopoverTriggerData", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "open()" } }, exportAs: ["ngbPopoverTrigger"], ngImport: i0 }); }
839
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopoverTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
840
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.2", type: NgbPopoverTrigger, isStandalone: true, selector: "[ngbPopoverTrigger]", inputs: { ngbPopoverTrigger: { classPropertyName: "ngbPopoverTrigger", publicName: "ngbPopoverTrigger", isSignal: true, isRequired: true, transformFunction: null }, ngbPopoverTriggerData: { classPropertyName: "ngbPopoverTriggerData", publicName: "ngbPopoverTriggerData", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "open()" } }, exportAs: ["ngbPopoverTrigger"], ngImport: i0 }); }
841
841
  }
842
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPopoverTrigger, decorators: [{
842
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPopoverTrigger, decorators: [{
843
843
  type: Directive,
844
844
  args: [{
845
845
  selector: '[ngbPopoverTrigger]',
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, DOCUMENT, ElementRef, signal, InjectionToken, Injector, input, Directive, viewChild, ViewContainerRef, ChangeDetectionStrategy, Component, ApplicationRef, EnvironmentInjector, createComponent, Injectable, TemplateRef } from '@angular/core';
3
- import { Subject, first } from 'rxjs';
3
+ import { Subject, first, ReplaySubject } from 'rxjs';
4
4
  import { keyMap } from '@ngbase/adk/keys';
5
5
 
6
6
  class BaseDialog {
@@ -107,7 +107,7 @@ class DialogRef {
107
107
  this.onDestroy = this.onDestroySource.asObservable().pipe(first());
108
108
  this.afterClosedSource = new Subject();
109
109
  this.afterClosed = this.afterClosedSource.asObservable().pipe(first());
110
- this.events = new Subject();
110
+ this.events = new ReplaySubject(1);
111
111
  // Parent-child relationship
112
112
  this._parent = null;
113
113
  this._children = new Set();
@@ -211,10 +211,10 @@ class NgbPortalClose {
211
211
  close(data = this.ngbPortalClose()) {
212
212
  this.dialogRef.close(data);
213
213
  }
214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPortalClose, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
215
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: NgbPortalClose, isStandalone: true, selector: "[ngbPortalClose]", inputs: { ngbPortalClose: { classPropertyName: "ngbPortalClose", publicName: "ngbPortalClose", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "close()" } }, ngImport: i0 }); }
214
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPortalClose, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
215
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.2", type: NgbPortalClose, isStandalone: true, selector: "[ngbPortalClose]", inputs: { ngbPortalClose: { classPropertyName: "ngbPortalClose", publicName: "ngbPortalClose", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "close()" } }, ngImport: i0 }); }
216
216
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbPortalClose, decorators: [{
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbPortalClose, decorators: [{
218
218
  type: Directive,
219
219
  args: [{
220
220
  selector: '[ngbPortalClose]',
@@ -228,10 +228,10 @@ class Portal {
228
228
  constructor() {
229
229
  this.myDialog = viewChild('myDialog', { ...(ngDevMode ? { debugName: "myDialog" } : {}), read: ViewContainerRef });
230
230
  }
231
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: Portal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
232
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.0", type: Portal, isStandalone: true, selector: "ngb-portal", viewQueries: [{ propertyName: "myDialog", first: true, predicate: ["myDialog"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `<ng-container #myDialog />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
231
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: Portal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
232
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.2", type: Portal, isStandalone: true, selector: "ngb-portal", viewQueries: [{ propertyName: "myDialog", first: true, predicate: ["myDialog"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `<ng-container #myDialog />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
233
233
  }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: Portal, decorators: [{
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: Portal, decorators: [{
235
235
  type: Component,
236
236
  args: [{
237
237
  selector: 'ngb-portal',
@@ -286,13 +286,13 @@ class PortalService {
286
286
  elements?.forEach(c => c.instance?.close?.());
287
287
  }
288
288
  }
289
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PortalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
290
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PortalService, providedIn: 'root' }); }
289
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: PortalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
290
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: PortalService, providedIn: 'root' }); }
291
291
  }
292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PortalService, decorators: [{
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: PortalService, decorators: [{
293
293
  type: Injectable,
294
294
  args: [{ providedIn: 'root' }]
295
- }], ctorParameters: () => [] });
295
+ }] });
296
296
 
297
297
  function basePortal(name, baseComponent) {
298
298
  const NAME = name;
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-portal.mjs","sources":["../../../projects/adk/portal/dialog-ref.ts","../../../projects/adk/portal/portal-close.directive.ts","../../../projects/adk/portal/portal.component.ts","../../../projects/adk/portal/portal.service.ts","../../../projects/adk/portal/portal-base.service.ts","../../../projects/adk/portal/public-api.ts","../../../projects/adk/portal/ngbase-adk-portal.ts"],"sourcesContent":["import {\n ElementRef,\n InjectionToken,\n Injector,\n TemplateRef,\n Type,\n ViewContainerRef,\n inject,\n signal,\n DOCUMENT,\n} from '@angular/core';\nimport { Subject, first } from 'rxjs';\n\nexport type DialogInput<T = any> = Type<T> | TemplateRef<any>;\n\nexport abstract class BaseDialog {\n dialogRef = inject(DialogRef);\n document = inject(DOCUMENT);\n el = inject(ElementRef);\n\n // Subclasses must provide the ViewContainerRef via viewChild signal\n abstract readonly contentContainer: () => ViewContainerRef | undefined;\n\n get vcRef(): ViewContainerRef {\n return this.contentContainer()!;\n }\n\n target = signal<HTMLElement | null>(null);\n\n // Track animation state: false = waiting for enter, true = enter complete\n private enterAnimationDone = false;\n private isFirst = true;\n private currentActiveElement = new WeakRef(this.document.activeElement as HTMLElement);\n\n // Signal to track closing state for CSS animations\n readonly closing = signal(false);\n\n // Override in subclasses to indicate if animations are used\n // If false, close() will complete immediately without waiting for animationDone()\n protected readonly hasAnimations: boolean = false;\n\n constructor() {\n this.dialogRef.setBaseDialog(this);\n this.onOpen();\n // If no animations, mark enter as done immediately\n if (!this.hasAnimations) {\n this.enterAnimationDone = true;\n }\n }\n\n setOptions(_: DialogOptions): void {}\n\n close() {\n // Only start closing if enter animation is complete\n if (this.enterAnimationDone && !this.closing()) {\n this.closing.set(true);\n // If no animations, complete close immediately\n if (!this.hasAnimations) {\n this.dialogRef._completeClose();\n this.onClose();\n }\n // Otherwise, the actual close will happen after animationDone is called\n // which triggers when the leave animation completes\n }\n }\n\n onAnimationEnd(event: AnimationEvent) {\n if (event.target === event.currentTarget) {\n this.animationDone();\n }\n }\n\n animationDone = () => {\n if (!this.enterAnimationDone) {\n // First animation end = enter animation complete\n this.enterAnimationDone = true;\n } else if (this.closing()) {\n // Second animation end while closing = leave animation complete\n this.dialogRef._completeClose();\n this.onClose();\n }\n };\n\n private onOpen() {\n // make the body not scrollable and add padding to the right\n // calculate the padding based on the scrollbar width\n this.isFirst = this.document.body.style.overflow !== 'hidden';\n if (this.isFirst) {\n const padding = window.innerWidth - this.document.body.clientWidth;\n this.document.body.style.paddingRight = `${padding}px`;\n this.document.body.style.overflow = 'hidden';\n }\n }\n\n getTarget(): HTMLElement {\n return this.target()!;\n }\n\n onClose = () => {\n if (this.isFirst) {\n this.document.body.style.paddingRight = '';\n this.document.body.style.overflow = '';\n }\n const target =\n this.dialogRef.options.afterFocusEl || this.getTarget() || this.currentActiveElement.deref();\n target?.focus();\n };\n}\n\nexport interface CloseOptions {\n closeParent?: boolean;\n}\n\nexport class DialogRef<T = any> {\n data = this.options.data;\n private baseDialog: BaseDialog | null = null;\n private pendingCloseData: any = undefined;\n private _isClosing = false;\n\n // Expose closing state for consumers who need to check\n get isClosing(): boolean {\n return this._isClosing;\n }\n\n private onDestroySource = new Subject();\n onDestroy = this.onDestroySource.asObservable().pipe(first());\n\n private afterClosedSource = new Subject<any>();\n afterClosed = this.afterClosedSource.asObservable().pipe(first());\n\n events = new Subject<'created'>();\n\n // Parent-child relationship\n private _parent: DialogRef | null = null;\n private _children = new Set<DialogRef>();\n\n get parent(): DialogRef | null {\n return this._parent;\n }\n\n get children(): ReadonlySet<DialogRef> {\n return this._children;\n }\n\n get root(): DialogRef {\n return this._parent?.root ?? this;\n }\n\n constructor(\n public options: DialogOptions<T>,\n private destroyParent: VoidFunction,\n private closeAllFn: VoidFunction,\n private animation = true,\n ) {\n // Register with parent if provided\n if (options.parent) {\n this._setParent(options.parent);\n }\n }\n\n _setParent(parent: DialogRef) {\n this._parent = parent;\n parent._addChild(this);\n }\n\n _addChild(child: DialogRef) {\n this._children.add(child);\n }\n\n _removeChild(child: DialogRef) {\n this._children.delete(child);\n }\n\n // Set the BaseDialog reference so we can trigger animations\n setBaseDialog(baseDialog: BaseDialog) {\n this.baseDialog = baseDialog;\n }\n\n close = (data?: any, options?: CloseOptions) => {\n // Guard: do nothing if already closing - makes close() idempotent\n if (this._isClosing) {\n return;\n }\n\n this._isClosing = true;\n\n // 1. Close all children first (if closeChildrenOnClose is true)\n if (this.options.closeChildrenOnClose !== false) {\n // Create a copy since children will remove themselves during close\n [...this._children].forEach(child => child.close());\n }\n\n // 2. If we have a BaseDialog and animation is enabled, trigger the leave animation\n if (this.baseDialog && this.animation) {\n this.pendingCloseData = data;\n this.baseDialog.close();\n } else {\n // No animation, close immediately\n this.afterClosedSource.next(data);\n this.destroy();\n }\n\n // 3. If closeParent is true, close parent after self (child → parent order)\n // This ensures children animate out before parents, maintaining visual hierarchy\n if (options?.closeParent && this._parent) {\n this._parent.close(undefined, { closeParent: true });\n }\n };\n\n // Called by BaseDialog.animationDone() after leave animation completes\n _completeClose = () => {\n this.afterClosedSource.next(this.pendingCloseData);\n this.destroy();\n };\n\n closeAll() {\n this.closeAllFn();\n }\n\n destroy() {\n // Remove self from parent's children\n this._parent?._removeChild(this);\n\n this.afterClosedSource.complete();\n this.onDestroySource.next(false);\n this.destroyParent();\n }\n}\n\nexport class DialogTestingRef {\n close() {}\n}\n\nexport class DialogOptions<T = any> {\n backdrop? = true;\n backdropColor? = true;\n hideOverlay? = false;\n data?: T;\n // isSidePopup? = false;\n title?: string;\n fullWindow?: boolean;\n minWidth?: string;\n minHeight?: string;\n width?: string;\n height?: string;\n maxWidth?: string;\n maxHeight?: string;\n classNames?: string[] = [];\n header?: boolean;\n disableClose? = false;\n ayId?: string;\n focusTrap? = true;\n afterFocusEl?: HTMLElement;\n\n // Parent-child relationship options\n parent?: DialogRef;\n closeChildrenOnClose? = true;\n}\n\nexport const DIALOG_INJ = new InjectionToken('dialogInj');\n\nexport function createInj(parent: Injector, data: any, diaRef: DialogRef) {\n return Injector.create({\n providers: [\n { provide: DIALOG_INJ, useValue: data },\n { provide: DialogRef, useValue: diaRef },\n ],\n parent,\n name: 'dialogInj',\n });\n}\n\nexport const DialogTestProviders = [\n { provide: DIALOG_INJ, useValue: {} },\n { provide: DialogRef, useValue: null },\n];\n","import { Directive, inject, input } from '@angular/core';\nimport { DialogRef } from './dialog-ref';\n\n@Directive({\n selector: '[ngbPortalClose]',\n host: {\n '(click)': 'close()',\n },\n})\nexport class NgbPortalClose {\n readonly dialogRef = inject(DialogRef);\n readonly ngbPortalClose = input();\n\n close(data = this.ngbPortalClose()) {\n this.dialogRef.close(data);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewContainerRef, viewChild } from '@angular/core';\n\n@Component({\n selector: 'ngb-portal',\n template: `<ng-container #myDialog />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Portal {\n myDialog = viewChild('myDialog', { read: ViewContainerRef });\n}\n","import {\n Injectable,\n Injector,\n ApplicationRef,\n Type,\n ComponentRef,\n inject,\n EnvironmentInjector,\n createComponent,\n DOCUMENT,\n} from '@angular/core';\nimport { Portal } from './portal.component';\n\n@Injectable({ providedIn: 'root' })\nexport class PortalService {\n private mainContainer?: ComponentRef<Portal>;\n private document = inject(DOCUMENT);\n private appRef = inject(ApplicationRef);\n private environmentInjector = inject(EnvironmentInjector);\n\n private trackElements = new Map<string, ComponentRef<any>[]>();\n\n constructor() {}\n\n private componentCreator() {\n this.mainContainer ??= this.appendComponentToBody(Portal);\n return this.mainContainer!.instance.myDialog()!;\n }\n\n appendComponentToBody<T>(component: Type<T>) {\n // 1. Create a component reference from the component\n const componentRef = createComponent(component, {\n environmentInjector: this.environmentInjector,\n });\n\n // 2. append the component to the body\n this.document.body.appendChild(componentRef.location.nativeElement);\n\n // 3. Attach component to the appRef so that it's inside the ng component tree\n this.appRef.attachView(componentRef.hostView);\n return componentRef;\n }\n\n create<T>(component: Type<T>, injector: Injector, container: string) {\n const d = this.componentCreator().createComponent(component, { injector });\n if (!this.trackElements.has(container)) {\n this.trackElements.set(container, []);\n }\n this.trackElements.get(container)!.push(d);\n return d;\n }\n\n delete<T>(container: string, component: ComponentRef<T>) {\n component.destroy();\n const elements = this.trackElements.get(container);\n if (elements) {\n const index = elements.indexOf(component);\n elements.splice(index, 1);\n }\n }\n\n clear(container: string) {\n if (this.trackElements.has(container)) {\n const elements = this.trackElements.get(container);\n // Trigger close on each component to play leave animations\n // The BaseDialog.close() method will handle the animation and eventual destruction\n elements?.forEach(c => c.instance?.close?.());\n }\n }\n}\n","import {\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n TemplateRef,\n Type,\n ViewContainerRef,\n inject,\n signal,\n} from '@angular/core';\nimport { keyMap } from '@ngbase/adk/keys';\nimport { BaseDialog, DialogInput, DialogOptions, DialogRef, createInj } from './dialog-ref';\nimport { PortalService } from './portal.service';\n\nexport function basePortal<U>(name: string, baseComponent: Type<U>) {\n const NAME = name;\n const portal = inject(PortalService);\n const injector = inject(Injector);\n\n function updateBaseComponent(component: Type<U>) {\n baseComponent = component;\n }\n\n function open<T>(\n component?: DialogInput<T>,\n callback?: (comp: ComponentRef<U>, opt: DialogOptions) => void,\n opt?: DialogOptions,\n animation = true,\n parentComponent?: Type<U>,\n ) {\n const options = { ...new DialogOptions(), ...opt };\n const diaRef = new DialogRef(options, destroy, closeAll, animation);\n const childInjector = createInj(injector, options.data, diaRef);\n const parent = portal.create(parentComponent || baseComponent, childInjector, NAME);\n\n // set options\n callback?.(parent, options);\n\n // close on backdrop click\n let sub: () => void | undefined;\n const childSignal = signal<ComponentRef<any> | EmbeddedViewRef<any> | undefined>(undefined);\n\n if (component === undefined) {\n return { diaRef, parent, instance: null, childSignal };\n }\n\n const parentInstance = parent.instance as BaseDialog;\n\n // close on esc - call parentInstance.close() to trigger leave animation\n if (!options.disableClose) {\n sub = keyMap('esc', () => parentInstance.close(), { injector, stop: true });\n }\n\n function destroy() {\n portal.delete(NAME, parent);\n sub?.();\n }\n\n // Trigger change detection to initialize viewChild signals\n parent.changeDetectorRef.detectChanges();\n\n // VCR is now available after detectChanges\n const vcRef = parentInstance.vcRef;\n const child = createChild(component, vcRef);\n diaRef.events.next('created');\n childSignal.set(child);\n\n function replace(component: DialogInput<T>) {\n vcRef.clear();\n createChild(component, vcRef);\n }\n\n function createChild(component: DialogInput<any>, vcRef: ViewContainerRef) {\n // for template type\n if (component instanceof TemplateRef) {\n return vcRef.createEmbeddedView(\n component,\n { $implicit: options.data, ...(Array.isArray(options.data) ? {} : options.data) },\n { injector: parent.injector },\n );\n }\n // for component type\n return vcRef.createComponent(component, {\n injector: parent.injector,\n });\n }\n\n return { diaRef, parent, replace, childSignal };\n }\n\n function closeAll() {\n // Close each dialog properly to trigger leave animations\n portal.clear(NAME);\n }\n return { open, closeAll, updateBaseComponent };\n}\n","/*\n * Public API Surface of portal\n */\n\nexport * from './portal-close.directive';\nexport {\n BaseDialog,\n type CloseOptions,\n DIALOG_INJ,\n type DialogInput,\n DialogOptions,\n DialogRef,\n createInj,\n} from './dialog-ref';\nexport * from './portal-base.service';\nexport * from './portal.component';\nexport * from './portal.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngbase-adk-portal.mjs","sources":["../../../projects/adk/portal/dialog-ref.ts","../../../projects/adk/portal/portal-close.directive.ts","../../../projects/adk/portal/portal.component.ts","../../../projects/adk/portal/portal.service.ts","../../../projects/adk/portal/portal-base.service.ts","../../../projects/adk/portal/public-api.ts","../../../projects/adk/portal/ngbase-adk-portal.ts"],"sourcesContent":["import {\n ElementRef,\n InjectionToken,\n Injector,\n TemplateRef,\n Type,\n ViewContainerRef,\n inject,\n signal,\n DOCUMENT,\n} from '@angular/core';\nimport { ReplaySubject, Subject, first } from 'rxjs';\n\nexport type DialogInput<T = any> = Type<T> | TemplateRef<any>;\n\nexport abstract class BaseDialog {\n dialogRef = inject(DialogRef);\n document = inject(DOCUMENT);\n el = inject(ElementRef);\n\n // Subclasses must provide the ViewContainerRef via viewChild signal\n abstract readonly contentContainer: () => ViewContainerRef | undefined;\n\n get vcRef(): ViewContainerRef {\n return this.contentContainer()!;\n }\n\n target = signal<HTMLElement | null>(null);\n\n // Track animation state: false = waiting for enter, true = enter complete\n private enterAnimationDone = false;\n private isFirst = true;\n private currentActiveElement = new WeakRef(this.document.activeElement as HTMLElement);\n\n // Signal to track closing state for CSS animations\n readonly closing = signal(false);\n\n // Override in subclasses to indicate if animations are used\n // If false, close() will complete immediately without waiting for animationDone()\n protected readonly hasAnimations: boolean = false;\n\n constructor() {\n this.dialogRef.setBaseDialog(this);\n this.onOpen();\n // If no animations, mark enter as done immediately\n if (!this.hasAnimations) {\n this.enterAnimationDone = true;\n }\n }\n\n setOptions(_: DialogOptions): void {}\n\n close() {\n // Only start closing if enter animation is complete\n if (this.enterAnimationDone && !this.closing()) {\n this.closing.set(true);\n // If no animations, complete close immediately\n if (!this.hasAnimations) {\n this.dialogRef._completeClose();\n this.onClose();\n }\n // Otherwise, the actual close will happen after animationDone is called\n // which triggers when the leave animation completes\n }\n }\n\n onAnimationEnd(event: AnimationEvent) {\n if (event.target === event.currentTarget) {\n this.animationDone();\n }\n }\n\n animationDone = () => {\n if (!this.enterAnimationDone) {\n // First animation end = enter animation complete\n this.enterAnimationDone = true;\n } else if (this.closing()) {\n // Second animation end while closing = leave animation complete\n this.dialogRef._completeClose();\n this.onClose();\n }\n };\n\n private onOpen() {\n // make the body not scrollable and add padding to the right\n // calculate the padding based on the scrollbar width\n this.isFirst = this.document.body.style.overflow !== 'hidden';\n if (this.isFirst) {\n const padding = window.innerWidth - this.document.body.clientWidth;\n this.document.body.style.paddingRight = `${padding}px`;\n this.document.body.style.overflow = 'hidden';\n }\n }\n\n getTarget(): HTMLElement {\n return this.target()!;\n }\n\n onClose = () => {\n if (this.isFirst) {\n this.document.body.style.paddingRight = '';\n this.document.body.style.overflow = '';\n }\n const target =\n this.dialogRef.options.afterFocusEl || this.getTarget() || this.currentActiveElement.deref();\n target?.focus();\n };\n}\n\nexport interface CloseOptions {\n closeParent?: boolean;\n}\n\nexport class DialogRef<T = any> {\n data = this.options.data;\n private baseDialog: BaseDialog | null = null;\n private pendingCloseData: any = undefined;\n private _isClosing = false;\n\n // Expose closing state for consumers who need to check\n get isClosing(): boolean {\n return this._isClosing;\n }\n\n private onDestroySource = new Subject();\n onDestroy = this.onDestroySource.asObservable().pipe(first());\n\n private afterClosedSource = new Subject<any>();\n afterClosed = this.afterClosedSource.asObservable().pipe(first());\n\n events = new ReplaySubject<'created'>(1);\n\n // Parent-child relationship\n private _parent: DialogRef | null = null;\n private _children = new Set<DialogRef>();\n\n get parent(): DialogRef | null {\n return this._parent;\n }\n\n get children(): ReadonlySet<DialogRef> {\n return this._children;\n }\n\n get root(): DialogRef {\n return this._parent?.root ?? this;\n }\n\n constructor(\n public options: DialogOptions<T>,\n private destroyParent: VoidFunction,\n private closeAllFn: VoidFunction,\n private animation = true,\n ) {\n // Register with parent if provided\n if (options.parent) {\n this._setParent(options.parent);\n }\n }\n\n _setParent(parent: DialogRef) {\n this._parent = parent;\n parent._addChild(this);\n }\n\n _addChild(child: DialogRef) {\n this._children.add(child);\n }\n\n _removeChild(child: DialogRef) {\n this._children.delete(child);\n }\n\n // Set the BaseDialog reference so we can trigger animations\n setBaseDialog(baseDialog: BaseDialog) {\n this.baseDialog = baseDialog;\n }\n\n close = (data?: any, options?: CloseOptions) => {\n // Guard: do nothing if already closing - makes close() idempotent\n if (this._isClosing) {\n return;\n }\n\n this._isClosing = true;\n\n // 1. Close all children first (if closeChildrenOnClose is true)\n if (this.options.closeChildrenOnClose !== false) {\n // Create a copy since children will remove themselves during close\n [...this._children].forEach(child => child.close());\n }\n\n // 2. If we have a BaseDialog and animation is enabled, trigger the leave animation\n if (this.baseDialog && this.animation) {\n this.pendingCloseData = data;\n this.baseDialog.close();\n } else {\n // No animation, close immediately\n this.afterClosedSource.next(data);\n this.destroy();\n }\n\n // 3. If closeParent is true, close parent after self (child → parent order)\n // This ensures children animate out before parents, maintaining visual hierarchy\n if (options?.closeParent && this._parent) {\n this._parent.close(undefined, { closeParent: true });\n }\n };\n\n // Called by BaseDialog.animationDone() after leave animation completes\n _completeClose = () => {\n this.afterClosedSource.next(this.pendingCloseData);\n this.destroy();\n };\n\n closeAll() {\n this.closeAllFn();\n }\n\n destroy() {\n // Remove self from parent's children\n this._parent?._removeChild(this);\n\n this.afterClosedSource.complete();\n this.onDestroySource.next(false);\n this.destroyParent();\n }\n}\n\nexport class DialogTestingRef {\n close() {}\n}\n\nexport class DialogOptions<T = any> {\n backdrop? = true;\n backdropColor? = true;\n hideOverlay? = false;\n data?: T;\n // isSidePopup? = false;\n title?: string;\n fullWindow?: boolean;\n minWidth?: string;\n minHeight?: string;\n width?: string;\n height?: string;\n maxWidth?: string;\n maxHeight?: string;\n classNames?: string[] = [];\n header?: boolean;\n disableClose? = false;\n ayId?: string;\n focusTrap? = true;\n afterFocusEl?: HTMLElement;\n\n // Parent-child relationship options\n parent?: DialogRef;\n closeChildrenOnClose? = true;\n}\n\nexport const DIALOG_INJ = new InjectionToken('dialogInj');\n\nexport function createInj(parent: Injector, data: any, diaRef: DialogRef) {\n return Injector.create({\n providers: [\n { provide: DIALOG_INJ, useValue: data },\n { provide: DialogRef, useValue: diaRef },\n ],\n parent,\n name: 'dialogInj',\n });\n}\n\nexport const DialogTestProviders = [\n { provide: DIALOG_INJ, useValue: {} },\n { provide: DialogRef, useValue: null },\n];\n","import { Directive, inject, input } from '@angular/core';\nimport { DialogRef } from './dialog-ref';\n\n@Directive({\n selector: '[ngbPortalClose]',\n host: {\n '(click)': 'close()',\n },\n})\nexport class NgbPortalClose {\n readonly dialogRef = inject(DialogRef);\n readonly ngbPortalClose = input();\n\n close(data = this.ngbPortalClose()) {\n this.dialogRef.close(data);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewContainerRef, viewChild } from '@angular/core';\n\n@Component({\n selector: 'ngb-portal',\n template: `<ng-container #myDialog />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Portal {\n myDialog = viewChild('myDialog', { read: ViewContainerRef });\n}\n","import {\n Injectable,\n Injector,\n ApplicationRef,\n Type,\n ComponentRef,\n inject,\n EnvironmentInjector,\n createComponent,\n DOCUMENT,\n} from '@angular/core';\nimport { Portal } from './portal.component';\n\n@Injectable({ providedIn: 'root' })\nexport class PortalService {\n private mainContainer?: ComponentRef<Portal>;\n private document = inject(DOCUMENT);\n private appRef = inject(ApplicationRef);\n private environmentInjector = inject(EnvironmentInjector);\n\n private trackElements = new Map<string, ComponentRef<any>[]>();\n\n private componentCreator() {\n this.mainContainer ??= this.appendComponentToBody(Portal);\n return this.mainContainer!.instance.myDialog()!;\n }\n\n appendComponentToBody<T>(component: Type<T>) {\n // 1. Create a component reference from the component\n const componentRef = createComponent(component, {\n environmentInjector: this.environmentInjector,\n });\n\n // 2. append the component to the body\n this.document.body.appendChild(componentRef.location.nativeElement);\n\n // 3. Attach component to the appRef so that it's inside the ng component tree\n this.appRef.attachView(componentRef.hostView);\n return componentRef;\n }\n\n create<T>(component: Type<T>, injector: Injector, container: string) {\n const d = this.componentCreator().createComponent(component, { injector });\n if (!this.trackElements.has(container)) {\n this.trackElements.set(container, []);\n }\n this.trackElements.get(container)!.push(d);\n return d;\n }\n\n delete<T>(container: string, component: ComponentRef<T>) {\n component.destroy();\n const elements = this.trackElements.get(container);\n if (elements) {\n const index = elements.indexOf(component);\n elements.splice(index, 1);\n }\n }\n\n clear(container: string) {\n if (this.trackElements.has(container)) {\n const elements = this.trackElements.get(container);\n // Trigger close on each component to play leave animations\n // The BaseDialog.close() method will handle the animation and eventual destruction\n elements?.forEach(c => c.instance?.close?.());\n }\n }\n}\n","import {\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n TemplateRef,\n Type,\n ViewContainerRef,\n inject,\n signal,\n} from '@angular/core';\nimport { keyMap } from '@ngbase/adk/keys';\nimport { BaseDialog, DialogInput, DialogOptions, DialogRef, createInj } from './dialog-ref';\nimport { PortalService } from './portal.service';\n\nexport function basePortal<U>(name: string, baseComponent: Type<U>) {\n const NAME = name;\n const portal = inject(PortalService);\n const injector = inject(Injector);\n\n function updateBaseComponent(component: Type<U>) {\n baseComponent = component;\n }\n\n function open<T>(\n component?: DialogInput<T>,\n callback?: (comp: ComponentRef<U>, opt: DialogOptions) => void,\n opt?: DialogOptions,\n animation = true,\n parentComponent?: Type<U>,\n ) {\n const options = { ...new DialogOptions(), ...opt };\n const diaRef = new DialogRef(options, destroy, closeAll, animation);\n const childInjector = createInj(injector, options.data, diaRef);\n const parent = portal.create(parentComponent || baseComponent, childInjector, NAME);\n\n // set options\n callback?.(parent, options);\n\n // close on backdrop click\n let sub: () => void | undefined;\n const childSignal = signal<ComponentRef<any> | EmbeddedViewRef<any> | undefined>(undefined);\n\n if (component === undefined) {\n return { diaRef, parent, instance: null, childSignal };\n }\n\n const parentInstance = parent.instance as BaseDialog;\n\n // close on esc - call parentInstance.close() to trigger leave animation\n if (!options.disableClose) {\n sub = keyMap('esc', () => parentInstance.close(), { injector, stop: true });\n }\n\n function destroy() {\n portal.delete(NAME, parent);\n sub?.();\n }\n\n // Trigger change detection to initialize viewChild signals\n parent.changeDetectorRef.detectChanges();\n\n // VCR is now available after detectChanges\n const vcRef = parentInstance.vcRef;\n const child = createChild(component, vcRef);\n diaRef.events.next('created');\n childSignal.set(child);\n\n function replace(component: DialogInput<T>) {\n vcRef.clear();\n createChild(component, vcRef);\n }\n\n function createChild(component: DialogInput<any>, vcRef: ViewContainerRef) {\n // for template type\n if (component instanceof TemplateRef) {\n return vcRef.createEmbeddedView(\n component,\n { $implicit: options.data, ...(Array.isArray(options.data) ? {} : options.data) },\n { injector: parent.injector },\n );\n }\n // for component type\n return vcRef.createComponent(component, {\n injector: parent.injector,\n });\n }\n\n return { diaRef, parent, replace, childSignal };\n }\n\n function closeAll() {\n // Close each dialog properly to trigger leave animations\n portal.clear(NAME);\n }\n return { open, closeAll, updateBaseComponent };\n}\n","/*\n * Public API Surface of portal\n */\n\nexport * from './portal-close.directive';\nexport {\n BaseDialog,\n type CloseOptions,\n DIALOG_INJ,\n type DialogInput,\n DialogOptions,\n DialogRef,\n createInj,\n} from './dialog-ref';\nexport * from './portal-base.service';\nexport * from './portal.component';\nexport * from './portal.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -6,10 +6,10 @@ class NgbProgressBar {
6
6
  constructor() {
7
7
  this.progress = inject(NgbProgress);
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbProgressBar, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: NgbProgressBar, isStandalone: true, selector: "[ngbProgressBar]", host: { properties: { "style.transform": "'translateX(' + progress.total() + '%)'" } }, ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbProgressBar, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.2", type: NgbProgressBar, isStandalone: true, selector: "[ngbProgressBar]", host: { properties: { "style.transform": "'translateX(' + progress.total() + '%)'" } }, ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbProgressBar, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbProgressBar, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[ngbProgressBar]',
@@ -27,10 +27,10 @@ class NgbProgress {
27
27
  return this.dir.isRtl() ? 100 - percentage : percentage - 100;
28
28
  }, ...(ngDevMode ? [{ debugName: "total" }] : []));
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbProgress, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: NgbProgress, isStandalone: true, selector: "[ngbProgress]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar" }, properties: { "attr.aria-valuenow": "value()", "attr.aria-valuemin": "0", "attr.aria-valuemax": "100" }, styleAttribute: "overflow: hidden" }, exportAs: ["ngbProgress"], ngImport: i0 }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbProgress, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.2", type: NgbProgress, isStandalone: true, selector: "[ngbProgress]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar" }, properties: { "attr.aria-valuenow": "value()", "attr.aria-valuemin": "0", "attr.aria-valuemax": "100" }, styleAttribute: "overflow: hidden" }, exportAs: ["ngbProgress"], ngImport: i0 }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbProgress, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbProgress, decorators: [{
34
34
  type: Directive,
35
35
  args: [{
36
36
  selector: '[ngbProgress]',
@@ -21,10 +21,10 @@ class NgbRadioGroup {
21
21
  this.value.set(value);
22
22
  this.touched.set(true);
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbRadioGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
25
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.0", type: NgbRadioGroup, isStandalone: true, selector: "[ngbRadioGroup]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, host: { attributes: { "role": "radiogroup" }, classAttribute: "ngb-radio-group" }, queries: [{ propertyName: "radios", predicate: i0.forwardRef(() => NgbRadio), descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.AccessibleGroup }], ngImport: i0 }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbRadioGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
25
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.2", type: NgbRadioGroup, isStandalone: true, selector: "[ngbRadioGroup]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, host: { attributes: { "role": "radiogroup" }, classAttribute: "ngb-radio-group" }, queries: [{ propertyName: "radios", predicate: i0.forwardRef(() => NgbRadio), descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.AccessibleGroup }], ngImport: i0 }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbRadioGroup, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbRadioGroup, decorators: [{
28
28
  type: Directive,
29
29
  args: [{
30
30
  selector: '[ngbRadioGroup]',
@@ -44,14 +44,14 @@ class NgbRadioIndicator {
44
44
  this.allyItem._ayId.set(this.radio.ayId);
45
45
  this.allyItem._disabled = this.disabled;
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbRadioIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: NgbRadioIndicator, isStandalone: true, selector: "[ngbRadioIndicator]", host: { attributes: { "type": "button", "role": "radio" }, properties: { "attr.aria-checked": "radio.checked()" } }, exportAs: ["ngbRadioIndicator"], hostDirectives: [{ directive: i1.AccessibleItem }], ngImport: i0, template: `
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbRadioIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: NgbRadioIndicator, isStandalone: true, selector: "[ngbRadioIndicator]", host: { attributes: { "type": "button", "role": "radio" }, properties: { "attr.aria-checked": "radio.checked()" } }, exportAs: ["ngbRadioIndicator"], hostDirectives: [{ directive: i1.AccessibleItem }], ngImport: i0, template: `
49
49
  @if (radio.checked()) {
50
50
  <ng-content />
51
51
  }
52
52
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbRadioIndicator, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbRadioIndicator, decorators: [{
55
55
  type: Component,
56
56
  args: [{
57
57
  selector: '[ngbRadioIndicator]',
@@ -81,10 +81,10 @@ class NgbRadio {
81
81
  updateValue() {
82
82
  this.radio.updateValue(this.value());
83
83
  }
84
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbRadio, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
85
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: NgbRadio, isStandalone: true, selector: "[ngbRadio]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "!disabled() && updateValue()" }, properties: { "attr.aria-disabled": "disabled()" }, classAttribute: "ngb-radio" }, ngImport: i0 }); }
84
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbRadio, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
85
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.2", type: NgbRadio, isStandalone: true, selector: "[ngbRadio]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "!disabled() && updateValue()" }, properties: { "attr.aria-disabled": "disabled()" }, classAttribute: "ngb-radio" }, ngImport: i0 }); }
86
86
  }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbRadio, decorators: [{
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NgbRadio, decorators: [{
88
88
  type: Directive,
89
89
  args: [{
90
90
  selector: '[ngbRadio]',