@open-rlb/ng-bootstrap 3.3.7 → 3.3.9

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.
@@ -3,7 +3,7 @@ import { input, booleanAttribute, output, viewChild, ChangeDetectionStrategy, Co
3
3
  import * as i2$1 from '@angular/router';
4
4
  import { RouterLink, RouterLinkActive, RouterModule } from '@angular/router';
5
5
  import { Collapse, Carousel, Dropdown, Modal, Toast, Offcanvas, ScrollSpy, Popover, Tooltip } from 'bootstrap';
6
- import { NgTemplateOutlet, TitleCasePipe, NgClass, formatDate, DatePipe, JsonPipe, CommonModule } from '@angular/common';
6
+ import { NgTemplateOutlet, TitleCasePipe, NgClass, formatDate, JsonPipe, CommonModule } from '@angular/common';
7
7
  import { Subject, of, map, shareReplay, take, filter, switchMap, Subscription, debounceTime, distinctUntilChanged, Observable, lastValueFrom, takeUntil } from 'rxjs';
8
8
  import * as i2 from '@angular/cdk/layout';
9
9
  import * as i1 from '@angular/forms';
@@ -4068,6 +4068,7 @@ class ChatItemComponent {
4068
4068
  this.replayId = input(undefined, { ...(ngDevMode ? { debugName: "replayId" } : /* istanbul ignore next */ {}), alias: 'replay-id' });
4069
4069
  this.position = input('left', { ...(ngDevMode ? { debugName: "position" } : /* istanbul ignore next */ {}), alias: 'position' });
4070
4070
  this.reaction = input(undefined, { ...(ngDevMode ? { debugName: "reaction" } : /* istanbul ignore next */ {}), alias: 'reaction' });
4071
+ this.hideReactionPicker = input(false, { ...(ngDevMode ? { debugName: "hideReactionPicker" } : /* istanbul ignore next */ {}), alias: 'hide-reaction-picker', transform: booleanAttribute });
4071
4072
  this.reply = output();
4072
4073
  this.reactionClick = output({ alias: 'reaction-click' });
4073
4074
  this.canReply = input(false, { ...(ngDevMode ? { debugName: "canReply" } : /* istanbul ignore next */ {}), alias: 'can-reply', transform: booleanAttribute });
@@ -4079,7 +4080,7 @@ class ChatItemComponent {
4079
4080
  this.reply.emit(this.replayId());
4080
4081
  }
4081
4082
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: ChatItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4082
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: ChatItemComponent, isStandalone: true, selector: "rlb-chat-item", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: "avatar", publicName: "avatar", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, dateTime: { classPropertyName: "dateTime", publicName: "date-time", isSignal: true, isRequired: false, transformFunction: null }, replayText: { classPropertyName: "replayText", publicName: "replay-text", isSignal: true, isRequired: false, transformFunction: null }, replaySubject: { classPropertyName: "replaySubject", publicName: "replay-subject", isSignal: true, isRequired: false, transformFunction: null }, replayId: { classPropertyName: "replayId", publicName: "replay-id", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, reaction: { classPropertyName: "reaction", publicName: "reaction", isSignal: true, isRequired: false, transformFunction: null }, canReply: { classPropertyName: "canReply", publicName: "can-reply", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { reply: "reply", reactionClick: "reaction-click", reactionSelector: "reaction-selector" }, host: { properties: { "class.ms-auto": "position() === \"right\"" } }, ngImport: i0, template: `
4083
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: ChatItemComponent, isStandalone: true, selector: "rlb-chat-item", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: "avatar", publicName: "avatar", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, dateTime: { classPropertyName: "dateTime", publicName: "date-time", isSignal: true, isRequired: false, transformFunction: null }, replayText: { classPropertyName: "replayText", publicName: "replay-text", isSignal: true, isRequired: false, transformFunction: null }, replaySubject: { classPropertyName: "replaySubject", publicName: "replay-subject", isSignal: true, isRequired: false, transformFunction: null }, replayId: { classPropertyName: "replayId", publicName: "replay-id", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, reaction: { classPropertyName: "reaction", publicName: "reaction", isSignal: true, isRequired: false, transformFunction: null }, hideReactionPicker: { classPropertyName: "hideReactionPicker", publicName: "hide-reaction-picker", isSignal: true, isRequired: false, transformFunction: null }, canReply: { classPropertyName: "canReply", publicName: "can-reply", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { reply: "reply", reactionClick: "reaction-click", reactionSelector: "reaction-selector" }, host: { properties: { "class.ms-auto": "position() === \"right\"" } }, ngImport: i0, template: `
4083
4084
  <div
4084
4085
  [id]="id()"
4085
4086
  class="chat-bubble-item"
@@ -4118,11 +4119,11 @@ class ChatItemComponent {
4118
4119
  direction="up"
4119
4120
  class="reaction"
4120
4121
  >
4121
- @if (!reaction()) {
4122
+ @if (!reaction() && !hideReactionPicker()) {
4122
4123
  <a
4123
4124
  rlb-button
4124
4125
  rlb-dropdown
4125
- autoClose="manual"
4126
+ [auto-close]="'manual'"
4126
4127
  class="reaction add p-1"
4127
4128
  [class.right]="position() === 'right'"
4128
4129
  [class.left]="position() === 'left'"
@@ -4208,11 +4209,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
4208
4209
  direction="up"
4209
4210
  class="reaction"
4210
4211
  >
4211
- @if (!reaction()) {
4212
+ @if (!reaction() && !hideReactionPicker()) {
4212
4213
  <a
4213
4214
  rlb-button
4214
4215
  rlb-dropdown
4215
- autoClose="manual"
4216
+ [auto-close]="'manual'"
4216
4217
  class="reaction add p-1"
4217
4218
  [class.right]="position() === 'right'"
4218
4219
  [class.left]="position() === 'left'"
@@ -4256,16 +4257,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
4256
4257
  `,
4257
4258
  host: { '[class.ms-auto]': 'position() === "right"' },
4258
4259
  changeDetection: ChangeDetectionStrategy.OnPush,
4259
- imports: [
4260
- DropdownComponent,
4261
- ButtonComponent,
4262
- DropdownDirective,
4263
- DropdownContainerComponent,
4264
- DataTableActionComponent,
4265
- DatePipe,
4266
- ],
4260
+ imports: [DropdownComponent, ButtonComponent, DropdownDirective, DropdownContainerComponent],
4267
4261
  }]
4268
- }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], avatar: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatar", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], dateTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "date-time", required: false }] }], replayText: [{ type: i0.Input, args: [{ isSignal: true, alias: "replay-text", required: false }] }], replaySubject: [{ type: i0.Input, args: [{ isSignal: true, alias: "replay-subject", required: false }] }], replayId: [{ type: i0.Input, args: [{ isSignal: true, alias: "replay-id", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], reaction: [{ type: i0.Input, args: [{ isSignal: true, alias: "reaction", required: false }] }], reply: [{ type: i0.Output, args: ["reply"] }], reactionClick: [{ type: i0.Output, args: ["reaction-click"] }], canReply: [{ type: i0.Input, args: [{ isSignal: true, alias: "can-reply", required: false }] }], reactionSelector: [{ type: i0.Output, args: ["reaction-selector"] }] } });
4262
+ }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], avatar: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatar", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], dateTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "date-time", required: false }] }], replayText: [{ type: i0.Input, args: [{ isSignal: true, alias: "replay-text", required: false }] }], replaySubject: [{ type: i0.Input, args: [{ isSignal: true, alias: "replay-subject", required: false }] }], replayId: [{ type: i0.Input, args: [{ isSignal: true, alias: "replay-id", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], reaction: [{ type: i0.Input, args: [{ isSignal: true, alias: "reaction", required: false }] }], hideReactionPicker: [{ type: i0.Input, args: [{ isSignal: true, alias: "hide-reaction-picker", required: false }] }], reply: [{ type: i0.Output, args: ["reply"] }], reactionClick: [{ type: i0.Output, args: ["reaction-click"] }], canReply: [{ type: i0.Input, args: [{ isSignal: true, alias: "can-reply", required: false }] }], reactionSelector: [{ type: i0.Output, args: ["reaction-selector"] }] } });
4269
4263
 
4270
4264
  class ListComponent {
4271
4265
  constructor() {
@@ -6225,7 +6219,14 @@ class AbstractAutocompleteComponent extends AbstractComponent {
6225
6219
  const dropdown = this.dropdownEl();
6226
6220
  if (!dropdown)
6227
6221
  return;
6228
- // Always ensure the display is set, even if isOpen was already true
6222
+ const rect = this.el?.nativeElement.getBoundingClientRect();
6223
+ if (rect) {
6224
+ this.renderer.setStyle(dropdown.nativeElement, 'position', 'fixed');
6225
+ this.renderer.setStyle(dropdown.nativeElement, 'top', `${rect.bottom}px`);
6226
+ this.renderer.setStyle(dropdown.nativeElement, 'left', `${rect.left}px`);
6227
+ this.renderer.setStyle(dropdown.nativeElement, 'width', `${rect.width}px`);
6228
+ this.renderer.setStyle(dropdown.nativeElement, 'z-index', '1050');
6229
+ }
6229
6230
  this.renderer.setStyle(dropdown.nativeElement, 'display', 'block');
6230
6231
  this.isOpen = true;
6231
6232
  }
@@ -6354,6 +6355,9 @@ class AutocompleteCountryDialCodeComponent extends AbstractComponent {
6354
6355
  constructor() {
6355
6356
  super();
6356
6357
  this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
6358
+ this.dropdownTop = signal(0, ...(ngDevMode ? [{ debugName: "dropdownTop" }] : /* istanbul ignore next */ []));
6359
+ this.dropdownLeft = signal(0, ...(ngDevMode ? [{ debugName: "dropdownLeft" }] : /* istanbul ignore next */ []));
6360
+ this.dropdownWidth = signal(0, ...(ngDevMode ? [{ debugName: "dropdownWidth" }] : /* istanbul ignore next */ []));
6357
6361
  this.suggestions = signal([], ...(ngDevMode ? [{ debugName: "suggestions" }] : /* istanbul ignore next */ []));
6358
6362
  this.hasSuggestions = computed(() => this.suggestions().length > 0, ...(ngDevMode ? [{ debugName: "hasSuggestions" }] : /* istanbul ignore next */ []));
6359
6363
  this.disabled = model(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
@@ -7646,6 +7650,12 @@ class AutocompleteCountryDialCodeComponent extends AbstractComponent {
7646
7650
  this.closeDropdown();
7647
7651
  }
7648
7652
  openDropdown() {
7653
+ const rect = this.el()?.nativeElement.getBoundingClientRect();
7654
+ if (rect) {
7655
+ this.dropdownTop.set(rect.bottom);
7656
+ this.dropdownLeft.set(rect.left);
7657
+ this.dropdownWidth.set(rect.width);
7658
+ }
7649
7659
  this.isOpen.set(true);
7650
7660
  }
7651
7661
  closeDropdown() {
@@ -7690,10 +7700,13 @@ class AutocompleteCountryDialCodeComponent extends AbstractComponent {
7690
7700
  @if (isOpen()) {
7691
7701
  <div
7692
7702
  #autocomplete
7693
- class="dropdown-menu show w-100 position-absolute overflow-y-auto shadow"
7703
+ class="dropdown-menu show overflow-y-auto shadow"
7694
7704
  [style.max-height.px]="maxHeight()"
7695
7705
  [style.max-width.px]="menuMaxWidth()"
7696
- style="z-index: 1000; top: 100%;"
7706
+ [style.top.px]="dropdownTop()"
7707
+ [style.left.px]="dropdownLeft()"
7708
+ [style.width.px]="dropdownWidth()"
7709
+ style="z-index: 1050; position: fixed;"
7697
7710
  >
7698
7711
  @if (!hasSuggestions()) {
7699
7712
  <a class="dropdown-item disabled text-center italic">No suggestions</a>
@@ -7768,10 +7781,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
7768
7781
  @if (isOpen()) {
7769
7782
  <div
7770
7783
  #autocomplete
7771
- class="dropdown-menu show w-100 position-absolute overflow-y-auto shadow"
7784
+ class="dropdown-menu show overflow-y-auto shadow"
7772
7785
  [style.max-height.px]="maxHeight()"
7773
7786
  [style.max-width.px]="menuMaxWidth()"
7774
- style="z-index: 1000; top: 100%;"
7787
+ [style.top.px]="dropdownTop()"
7788
+ [style.left.px]="dropdownLeft()"
7789
+ [style.width.px]="dropdownWidth()"
7790
+ style="z-index: 1050; position: fixed;"
7775
7791
  >
7776
7792
  @if (!hasSuggestions()) {
7777
7793
  <a class="dropdown-item disabled text-center italic">No suggestions</a>
@@ -7815,12 +7831,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
7815
7831
  '[attr.id]': 'null',
7816
7832
  },
7817
7833
  changeDetection: ChangeDetectionStrategy.OnPush,
7818
- imports: [
7819
- NgClass,
7820
- InputValidationComponent,
7821
- ProgressComponent,
7822
- DataTableActionComponent,
7823
- ],
7834
+ imports: [NgClass, InputValidationComponent, ProgressComponent],
7824
7835
  }]
7825
7836
  }], ctorParameters: () => [], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "max-height", required: false }] }], menuMaxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "menu-max-width", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], userDefinedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], enableFlagIcons: [{ type: i0.Input, args: [{ isSignal: true, alias: "enable-flag-icons", required: false }] }], enableValidation: [{ type: i0.Input, args: [{ isSignal: true, alias: "enable-validation", required: false }] }], el: [{ type: i0.ViewChild, args: ['field', { isSignal: true }] }], dropdown: [{ type: i0.ViewChild, args: ['autocomplete', { isSignal: true }] }], selected: [{ type: i0.Output, args: ["selected"] }] } });
7826
7837
 
@@ -7828,6 +7839,9 @@ class AutocompleteCountryComponent extends AbstractComponent {
7828
7839
  constructor() {
7829
7840
  super();
7830
7841
  this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
7842
+ this.dropdownTop = signal(0, ...(ngDevMode ? [{ debugName: "dropdownTop" }] : /* istanbul ignore next */ []));
7843
+ this.dropdownLeft = signal(0, ...(ngDevMode ? [{ debugName: "dropdownLeft" }] : /* istanbul ignore next */ []));
7844
+ this.dropdownWidth = signal(0, ...(ngDevMode ? [{ debugName: "dropdownWidth" }] : /* istanbul ignore next */ []));
7831
7845
  this.suggestions = signal([], ...(ngDevMode ? [{ debugName: "suggestions" }] : /* istanbul ignore next */ []));
7832
7846
  this.hasSuggestions = computed(() => this.suggestions().length > 0, ...(ngDevMode ? [{ debugName: "hasSuggestions" }] : /* istanbul ignore next */ []));
7833
7847
  this.disabled = model(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
@@ -8105,6 +8119,12 @@ class AutocompleteCountryComponent extends AbstractComponent {
8105
8119
  this.closeDropdown();
8106
8120
  }
8107
8121
  openDropdown() {
8122
+ const rect = this.el()?.nativeElement.getBoundingClientRect();
8123
+ if (rect) {
8124
+ this.dropdownTop.set(rect.bottom);
8125
+ this.dropdownLeft.set(rect.left);
8126
+ this.dropdownWidth.set(rect.width);
8127
+ }
8108
8128
  this.isOpen.set(true);
8109
8129
  }
8110
8130
  closeDropdown() {
@@ -8149,10 +8169,13 @@ class AutocompleteCountryComponent extends AbstractComponent {
8149
8169
  @if (isOpen()) {
8150
8170
  <div
8151
8171
  #autocomplete
8152
- class="dropdown-menu show w-100 position-absolute overflow-y-auto"
8172
+ class="dropdown-menu show overflow-y-auto"
8153
8173
  [style.max-height.px]="maxHeight()"
8154
8174
  [style.max-width.px]="menuMaxWidth()"
8155
- style="z-index: 1000; top: 100%;"
8175
+ [style.top.px]="dropdownTop()"
8176
+ [style.left.px]="dropdownLeft()"
8177
+ [style.width.px]="dropdownWidth()"
8178
+ style="z-index: 1050; position: fixed;"
8156
8179
  >
8157
8180
  @if (!hasSuggestions()) {
8158
8181
  <a class="dropdown-item disabled text-center">No suggestions</a>
@@ -8216,10 +8239,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
8216
8239
  @if (isOpen()) {
8217
8240
  <div
8218
8241
  #autocomplete
8219
- class="dropdown-menu show w-100 position-absolute overflow-y-auto"
8242
+ class="dropdown-menu show overflow-y-auto"
8220
8243
  [style.max-height.px]="maxHeight()"
8221
8244
  [style.max-width.px]="menuMaxWidth()"
8222
- style="z-index: 1000; top: 100%;"
8245
+ [style.top.px]="dropdownTop()"
8246
+ [style.left.px]="dropdownLeft()"
8247
+ [style.width.px]="dropdownWidth()"
8248
+ style="z-index: 1050; position: fixed;"
8223
8249
  >
8224
8250
  @if (!hasSuggestions()) {
8225
8251
  <a class="dropdown-item disabled text-center">No suggestions</a>
@@ -8253,11 +8279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
8253
8279
  '[attr.id]': 'null',
8254
8280
  },
8255
8281
  changeDetection: ChangeDetectionStrategy.OnPush,
8256
- imports: [
8257
- NgClass,
8258
- InputValidationComponent,
8259
- DataTableActionComponent,
8260
- ],
8282
+ imports: [NgClass, InputValidationComponent],
8261
8283
  }]
8262
8284
  }], ctorParameters: () => [], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "max-height", required: false }] }], menuMaxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "menu-max-width", required: false }] }], userDefinedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], enableFlagIcons: [{ type: i0.Input, args: [{ isSignal: true, alias: "enable-flag-icons", required: false }] }], enableValidation: [{ type: i0.Input, args: [{ isSignal: true, alias: "enable-validation", required: false }] }], el: [{ type: i0.ViewChild, args: ['field', { isSignal: true }] }], dropdown: [{ type: i0.ViewChild, args: ['autocomplete', { isSignal: true }] }], selected: [{ type: i0.Output, args: ["selected"] }] } });
8263
8285
 
@@ -8501,6 +8523,9 @@ class AutocompleteComponent extends AbstractComponent {
8501
8523
  this.acLoading = signal(false, ...(ngDevMode ? [{ debugName: "acLoading" }] : /* istanbul ignore next */ []));
8502
8524
  // State
8503
8525
  this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
8526
+ this.dropdownTop = signal(0, ...(ngDevMode ? [{ debugName: "dropdownTop" }] : /* istanbul ignore next */ []));
8527
+ this.dropdownLeft = signal(0, ...(ngDevMode ? [{ debugName: "dropdownLeft" }] : /* istanbul ignore next */ []));
8528
+ this.dropdownWidth = signal(0, ...(ngDevMode ? [{ debugName: "dropdownWidth" }] : /* istanbul ignore next */ []));
8504
8529
  this.suggestions = signal([], ...(ngDevMode ? [{ debugName: "suggestions" }] : /* istanbul ignore next */ []));
8505
8530
  this.hasSuggestions = computed(() => this.suggestions().length > 0, ...(ngDevMode ? [{ debugName: "hasSuggestions" }] : /* istanbul ignore next */ []));
8506
8531
  // Inputs
@@ -8629,6 +8654,12 @@ class AutocompleteComponent extends AbstractComponent {
8629
8654
  openDropdown() {
8630
8655
  if (this.isOpen())
8631
8656
  return;
8657
+ const rect = this.el()?.nativeElement.getBoundingClientRect();
8658
+ if (rect) {
8659
+ this.dropdownTop.set(rect.bottom);
8660
+ this.dropdownLeft.set(rect.left);
8661
+ this.dropdownWidth.set(rect.width);
8662
+ }
8632
8663
  this.isOpen.set(true);
8633
8664
  }
8634
8665
  closeDropdown() {
@@ -8670,10 +8701,13 @@ class AutocompleteComponent extends AbstractComponent {
8670
8701
  @if (isOpen()) {
8671
8702
  <div
8672
8703
  #autocomplete
8673
- class="dropdown-menu show w-100 position-absolute overflow-y-auto"
8704
+ class="dropdown-menu show overflow-y-auto"
8674
8705
  [style.max-height.px]="maxHeight()"
8675
8706
  [style.max-width.px]="menuMaxWidth()"
8676
- style="z-index: 1000; top: 100%;"
8707
+ [style.top.px]="dropdownTop()"
8708
+ [style.left.px]="dropdownLeft()"
8709
+ [style.width.px]="dropdownWidth()"
8710
+ style="z-index: 1050; position: fixed;"
8677
8711
  >
8678
8712
  @if (acLoading()) {
8679
8713
  <div class="dropdown-item disabled text-center">Loading...</div>
@@ -8738,10 +8772,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
8738
8772
  @if (isOpen()) {
8739
8773
  <div
8740
8774
  #autocomplete
8741
- class="dropdown-menu show w-100 position-absolute overflow-y-auto"
8775
+ class="dropdown-menu show overflow-y-auto"
8742
8776
  [style.max-height.px]="maxHeight()"
8743
8777
  [style.max-width.px]="menuMaxWidth()"
8744
- style="z-index: 1000; top: 100%;"
8778
+ [style.top.px]="dropdownTop()"
8779
+ [style.left.px]="dropdownLeft()"
8780
+ [style.width.px]="dropdownWidth()"
8781
+ style="z-index: 1050; position: fixed;"
8745
8782
  >
8746
8783
  @if (acLoading()) {
8747
8784
  <div class="dropdown-item disabled text-center">Loading...</div>
@@ -8770,17 +8807,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
8770
8807
  <ng-content select="[after]"></ng-content>
8771
8808
  `,
8772
8809
  host: {
8773
- // Modern Angular 21 syntax for global listeners
8774
8810
  '(document:pointerdown)': 'onDocumentPointerDown($event)',
8775
8811
  '(document:keydown.escape)': 'onEscape($event)',
8776
8812
  '[attr.id]': 'null',
8777
8813
  },
8778
8814
  changeDetection: ChangeDetectionStrategy.OnPush,
8779
- imports: [
8780
- NgClass,
8781
- InputValidationComponent,
8782
- DataTableActionComponent,
8783
- ],
8815
+ imports: [NgClass, InputValidationComponent],
8784
8816
  }]
8785
8817
  }], ctorParameters: () => [], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "max-height", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], charsToSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "chars-to-search", required: false }] }], menuMaxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "menu-max-width", required: false }] }], userDefinedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], enableValidation: [{ type: i0.Input, args: [{ isSignal: true, alias: "enable-validation", required: false }] }], inputAutocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputAutocomplete", required: false }] }], el: [{ type: i0.ViewChild, args: ['field', { isSignal: true }] }], dropdown: [{ type: i0.ViewChild, args: ['autocomplete', { isSignal: true }] }], selected: [{ type: i0.Output, args: ["selected"] }] } });
8786
8818