pdm-ui-kit 0.1.47 → 0.1.49

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.
@@ -1932,6 +1932,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1932
1932
  type: Output
1933
1933
  }] } });
1934
1934
 
1935
+ /**
1936
+ * Creates a flexible position strategy that automatically adjusts
1937
+ * to keep the overlay within the viewport edges.
1938
+ *
1939
+ * The strategy tries positions in this order:
1940
+ * 1. Bottom-left (origin bottom edge, aligns to left)
1941
+ * 2. Top-left (origin top edge, aligns to left)
1942
+ * 3. Bottom-right (origin bottom edge, aligns to right)
1943
+ * 4. Top-right (origin top edge, aligns to right)
1944
+ *
1945
+ * CDK Overlay will use the first position that fits within the viewport.
1946
+ */
1947
+ function createFlexiblePositionStrategy(overlay, triggerElement, offset = 4) {
1948
+ return overlay
1949
+ .position()
1950
+ .flexibleConnectedTo(triggerElement)
1951
+ .withPositions([
1952
+ // Bottom-left (default) - opens downward from left edge
1953
+ {
1954
+ originX: 'start',
1955
+ originY: 'bottom',
1956
+ overlayX: 'start',
1957
+ overlayY: 'top',
1958
+ offsetY: offset
1959
+ },
1960
+ // Top-left - opens upward from left edge
1961
+ {
1962
+ originX: 'start',
1963
+ originY: 'top',
1964
+ overlayX: 'start',
1965
+ overlayY: 'bottom',
1966
+ offsetY: -offset
1967
+ },
1968
+ // Bottom-right - opens downward from right edge
1969
+ {
1970
+ originX: 'end',
1971
+ originY: 'bottom',
1972
+ overlayX: 'end',
1973
+ overlayY: 'top',
1974
+ offsetY: offset
1975
+ },
1976
+ // Top-right - opens upward from right edge
1977
+ {
1978
+ originX: 'end',
1979
+ originY: 'top',
1980
+ overlayX: 'end',
1981
+ overlayY: 'bottom',
1982
+ offsetY: -offset
1983
+ }
1984
+ ])
1985
+ .withFlexibleDimensions(false)
1986
+ .withPush(true);
1987
+ }
1988
+
1935
1989
  class PdmLabelComponent {
1936
1990
  constructor() {
1937
1991
  this.forId = '';
@@ -2159,27 +2213,7 @@ class PdmDatePickerComponent {
2159
2213
  this._open = true;
2160
2214
  this.openChange.emit(true);
2161
2215
  this.cdr.markForCheck();
2162
- const positionStrategy = this.overlay
2163
- .position()
2164
- .flexibleConnectedTo(triggerEl)
2165
- .withPositions([
2166
- {
2167
- originX: 'start',
2168
- originY: 'bottom',
2169
- overlayX: 'start',
2170
- overlayY: 'top',
2171
- offsetY: 8
2172
- },
2173
- {
2174
- originX: 'start',
2175
- originY: 'top',
2176
- overlayX: 'start',
2177
- overlayY: 'bottom',
2178
- offsetY: -8
2179
- }
2180
- ])
2181
- .withFlexibleDimensions(false)
2182
- .withPush(true);
2216
+ const positionStrategy = createFlexiblePositionStrategy(this.overlay, triggerEl, 8);
2183
2217
  // Resolve panelClass: overlayOptions.panelClass wins; otherwise map panelClassName.
2184
2218
  const resolvedPanelClass = this.overlayOptions?.panelClass
2185
2219
  ?? (this.panelClassName ? ['block', this.panelClassName] : ['block']);
@@ -2551,27 +2585,7 @@ class PdmDropdownMenuComponent {
2551
2585
  return;
2552
2586
  this.open = true;
2553
2587
  this.cdr.markForCheck();
2554
- const positionStrategy = this.overlay
2555
- .position()
2556
- .flexibleConnectedTo(triggerEl)
2557
- .withPositions([
2558
- {
2559
- originX: 'start',
2560
- originY: 'bottom',
2561
- overlayX: 'start',
2562
- overlayY: 'top',
2563
- offsetY: 8
2564
- },
2565
- {
2566
- originX: 'start',
2567
- originY: 'top',
2568
- overlayX: 'start',
2569
- overlayY: 'bottom',
2570
- offsetY: -8
2571
- }
2572
- ])
2573
- .withFlexibleDimensions(false)
2574
- .withPush(true);
2588
+ const positionStrategy = createFlexiblePositionStrategy(this.overlay, triggerEl, 8);
2575
2589
  // Resolve panelClass: overlayOptions.panelClass wins; otherwise map panelClassName.
2576
2590
  const resolvedPanelClass = this.overlayOptions?.panelClass
2577
2591
  ?? (this.panelClassName ? ['block', this.panelClassName] : ['block']);
@@ -3477,27 +3491,7 @@ class PdmSelectComponent {
3477
3491
  return;
3478
3492
  this.open = true;
3479
3493
  this.cdr.markForCheck();
3480
- const positionStrategy = this.overlay
3481
- .position()
3482
- .flexibleConnectedTo(triggerEl)
3483
- .withPositions([
3484
- {
3485
- originX: 'start',
3486
- originY: 'bottom',
3487
- overlayX: 'start',
3488
- overlayY: 'top',
3489
- offsetY: 4
3490
- },
3491
- {
3492
- originX: 'start',
3493
- originY: 'top',
3494
- overlayX: 'start',
3495
- overlayY: 'bottom',
3496
- offsetY: -4
3497
- }
3498
- ])
3499
- .withFlexibleDimensions(false)
3500
- .withPush(true);
3494
+ const positionStrategy = createFlexiblePositionStrategy(this.overlay, triggerEl, 4);
3501
3495
  this.overlayRef = this.overlay.create({
3502
3496
  // Fix: use a token array — DOMTokenList.add() rejects space-containing strings.
3503
3497
  panelClass: ['block'],
@@ -4660,5 +4654,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4660
4654
  * Generated bundle index. Do not edit.
4661
4655
  */
4662
4656
 
4663
- export { PdmAccordionComponent, PdmAlertComponent, PdmAlertDialogComponent, PdmAspectRatioComponent, PdmAvatarComponent, PdmBadgeComponent, PdmBreadcrumbComponent, PdmButtonComponent, PdmButtonGroupComponent, PdmCalendarComponent, PdmCardComponent, PdmCarouselComponent, PdmChartComponent, PdmCheckboxComponent, PdmCollapsibleComponent, PdmComboboxComponent, PdmCommandComponent, PdmContextMenuComponent, PdmDataTableComponent, PdmDatePickerComponent, PdmDialogComponent, PdmDrawerComponent, PdmDropdownMenuComponent, PdmEmptyComponent, PdmFieldComponent, PdmHoverCardComponent, PdmIconComponent, PdmInputComponent, PdmInputGroupComponent, PdmInputOtpComponent, PdmInputPasswordComponent, PdmItemComponent, PdmKbdComponent, PdmLabelComponent, PdmMenubarComponent, PdmNativeSelectComponent, PdmNavigationMenuComponent, PdmPaginationComponent, PdmPopoverComponent, PdmProgressComponent, PdmRadioGroupComponent, PdmScrollAreaComponent, PdmSelectComponent, PdmSelectOptionDirective, PdmSeparatorComponent, PdmSheetComponent, PdmSidebarComponent, PdmSkeletonComponent, PdmSliderComponent, PdmSonnerComponent, PdmSpinnerComponent, PdmSwitchComponent, PdmTableComponent, PdmTabsComponent, PdmTextareaComponent, PdmToggleComponent, PdmToggleGroupComponent, PdmTooltipComponent, PdmUiKitModule };
4657
+ export { PdmAccordionComponent, PdmAlertComponent, PdmAlertDialogComponent, PdmAspectRatioComponent, PdmAvatarComponent, PdmBadgeComponent, PdmBreadcrumbComponent, PdmButtonComponent, PdmButtonGroupComponent, PdmCalendarComponent, PdmCardComponent, PdmCarouselComponent, PdmChartComponent, PdmCheckboxComponent, PdmCollapsibleComponent, PdmComboboxComponent, PdmCommandComponent, PdmContextMenuComponent, PdmDataTableComponent, PdmDatePickerComponent, PdmDialogComponent, PdmDrawerComponent, PdmDropdownMenuComponent, PdmEmptyComponent, PdmFieldComponent, PdmHoverCardComponent, PdmIconComponent, PdmInputComponent, PdmInputGroupComponent, PdmInputOtpComponent, PdmInputPasswordComponent, PdmItemComponent, PdmKbdComponent, PdmLabelComponent, PdmMenubarComponent, PdmNativeSelectComponent, PdmNavigationMenuComponent, PdmPaginationComponent, PdmPopoverComponent, PdmProgressComponent, PdmRadioGroupComponent, PdmScrollAreaComponent, PdmSelectComponent, PdmSelectOptionDirective, PdmSeparatorComponent, PdmSheetComponent, PdmSidebarComponent, PdmSkeletonComponent, PdmSliderComponent, PdmSonnerComponent, PdmSpinnerComponent, PdmSwitchComponent, PdmTableComponent, PdmTabsComponent, PdmTextareaComponent, PdmToggleComponent, PdmToggleGroupComponent, PdmTooltipComponent, PdmUiKitModule, createFlexiblePositionStrategy };
4664
4658
  //# sourceMappingURL=pdm-ui-kit.mjs.map