@basis-ng/primitives 0.0.1-alpha.111 → 0.0.1-alpha.112
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.
- package/fesm2022/basis-ng-primitives.mjs +647 -585
- package/fesm2022/basis-ng-primitives.mjs.map +1 -1
- package/index.d.ts +368 -334
- package/package.json +1 -1
|
@@ -13,7 +13,7 @@ import { CommonModule, isPlatformBrowser } from '@angular/common';
|
|
|
13
13
|
import * as i1$1 from '@angular/cdk/menu';
|
|
14
14
|
import { CdkMenu, CdkMenuGroup, CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemRadio, CdkMenuTrigger } from '@angular/cdk/menu';
|
|
15
15
|
import * as i1$2 from '@angular/cdk/overlay';
|
|
16
|
-
import { CdkConnectedOverlay, Overlay as Overlay$1
|
|
16
|
+
import { CdkConnectedOverlay, ScrollStrategyOptions, CdkOverlayOrigin, Overlay as Overlay$1 } from '@angular/cdk/overlay';
|
|
17
17
|
import * as i1$3 from '@angular/cdk/drag-drop';
|
|
18
18
|
import { CdkDrag, CdkDragHandle, CdkDropList, CdkDropListGroup } from '@angular/cdk/drag-drop';
|
|
19
19
|
import { HttpClient } from '@angular/common/http';
|
|
@@ -1642,234 +1642,89 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
1642
1642
|
}]
|
|
1643
1643
|
}] });
|
|
1644
1644
|
|
|
1645
|
-
class Range {
|
|
1646
|
-
value = model('0', ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
1647
|
-
el = inject(ElementRef);
|
|
1648
|
-
ngAfterViewInit() {
|
|
1649
|
-
this.value.set(this.el.nativeElement.value);
|
|
1650
|
-
}
|
|
1651
|
-
onInput(event) {
|
|
1652
|
-
this.value.set(event.target.value);
|
|
1653
|
-
}
|
|
1654
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Range, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1655
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.6", type: Range, isStandalone: true, selector: "input[b-range]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "input": "onInput($event)" }, properties: { "attr.value": "value()" } }, ngImport: i0, template: ``, isInline: true });
|
|
1656
|
-
}
|
|
1657
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Range, decorators: [{
|
|
1658
|
-
type: Component,
|
|
1659
|
-
args: [{
|
|
1660
|
-
selector: 'input[b-range]',
|
|
1661
|
-
template: ``,
|
|
1662
|
-
host: {
|
|
1663
|
-
'[attr.value]': 'value()',
|
|
1664
|
-
'(input)': 'onInput($event)',
|
|
1665
|
-
},
|
|
1666
|
-
}]
|
|
1667
|
-
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
|
|
1668
|
-
|
|
1669
1645
|
/**
|
|
1670
|
-
* Directive
|
|
1671
|
-
*
|
|
1672
|
-
* flexible overlay positioning and triggering mechanisms.
|
|
1646
|
+
* Directive that wires an Angular CDK connected overlay to a trigger and exposes
|
|
1647
|
+
* reactive signals for positions and scroll strategy.
|
|
1673
1648
|
*/
|
|
1674
|
-
class
|
|
1649
|
+
class Overlay {
|
|
1675
1650
|
/**
|
|
1676
|
-
*
|
|
1677
|
-
* @default false
|
|
1651
|
+
* Reference to the CDK connected overlay instance.
|
|
1678
1652
|
*/
|
|
1679
|
-
|
|
1653
|
+
cdkConnectedOverlay = inject(CdkConnectedOverlay);
|
|
1680
1654
|
/**
|
|
1681
|
-
*
|
|
1682
|
-
* This input is required.
|
|
1655
|
+
* Options for scroll handling provided by the CDK.
|
|
1683
1656
|
*/
|
|
1684
|
-
|
|
1657
|
+
scrollStrategyOptions = inject(ScrollStrategyOptions);
|
|
1685
1658
|
/**
|
|
1686
|
-
*
|
|
1659
|
+
* The overlay trigger object (signal) that controls the overlay origin and active state.
|
|
1687
1660
|
*/
|
|
1688
|
-
|
|
1689
|
-
'top-left': {
|
|
1690
|
-
originX: 'start',
|
|
1691
|
-
originY: 'top',
|
|
1692
|
-
overlayX: 'start',
|
|
1693
|
-
overlayY: 'bottom',
|
|
1694
|
-
offsetX: 0,
|
|
1695
|
-
offsetY: -4,
|
|
1696
|
-
},
|
|
1697
|
-
'top-center': {
|
|
1698
|
-
originX: 'center',
|
|
1699
|
-
originY: 'top',
|
|
1700
|
-
overlayX: 'center',
|
|
1701
|
-
overlayY: 'bottom',
|
|
1702
|
-
offsetX: 0,
|
|
1703
|
-
offsetY: -4,
|
|
1704
|
-
},
|
|
1705
|
-
'top-right': {
|
|
1706
|
-
originX: 'end',
|
|
1707
|
-
originY: 'top',
|
|
1708
|
-
overlayX: 'end',
|
|
1709
|
-
overlayY: 'bottom',
|
|
1710
|
-
offsetX: 0,
|
|
1711
|
-
offsetY: -4,
|
|
1712
|
-
},
|
|
1713
|
-
'bottom-left': {
|
|
1714
|
-
originX: 'start',
|
|
1715
|
-
originY: 'bottom',
|
|
1716
|
-
overlayX: 'start',
|
|
1717
|
-
overlayY: 'top',
|
|
1718
|
-
offsetX: 0,
|
|
1719
|
-
offsetY: 4,
|
|
1720
|
-
},
|
|
1721
|
-
'bottom-center': {
|
|
1722
|
-
originX: 'center',
|
|
1723
|
-
originY: 'bottom',
|
|
1724
|
-
overlayX: 'center',
|
|
1725
|
-
overlayY: 'top',
|
|
1726
|
-
offsetX: 0,
|
|
1727
|
-
offsetY: 4,
|
|
1728
|
-
},
|
|
1729
|
-
'bottom-right': {
|
|
1730
|
-
originX: 'end',
|
|
1731
|
-
originY: 'bottom',
|
|
1732
|
-
overlayX: 'end',
|
|
1733
|
-
overlayY: 'top',
|
|
1734
|
-
offsetX: 0,
|
|
1735
|
-
offsetY: 4,
|
|
1736
|
-
},
|
|
1737
|
-
'left-top': {
|
|
1738
|
-
originX: 'start',
|
|
1739
|
-
originY: 'top',
|
|
1740
|
-
overlayX: 'end',
|
|
1741
|
-
overlayY: 'top',
|
|
1742
|
-
offsetX: -4,
|
|
1743
|
-
offsetY: 0,
|
|
1744
|
-
},
|
|
1745
|
-
'left-center': {
|
|
1746
|
-
originX: 'start',
|
|
1747
|
-
originY: 'center',
|
|
1748
|
-
overlayX: 'end',
|
|
1749
|
-
overlayY: 'center',
|
|
1750
|
-
offsetX: -4,
|
|
1751
|
-
offsetY: 0,
|
|
1752
|
-
},
|
|
1753
|
-
'left-bottom': {
|
|
1754
|
-
originX: 'start',
|
|
1755
|
-
originY: 'bottom',
|
|
1756
|
-
overlayX: 'end',
|
|
1757
|
-
overlayY: 'bottom',
|
|
1758
|
-
offsetX: -4,
|
|
1759
|
-
offsetY: 0,
|
|
1760
|
-
},
|
|
1761
|
-
'right-top': {
|
|
1762
|
-
originX: 'end',
|
|
1763
|
-
originY: 'top',
|
|
1764
|
-
overlayX: 'start',
|
|
1765
|
-
overlayY: 'top',
|
|
1766
|
-
offsetX: 4,
|
|
1767
|
-
offsetY: 0,
|
|
1768
|
-
},
|
|
1769
|
-
'right-center': {
|
|
1770
|
-
originX: 'end',
|
|
1771
|
-
originY: 'center',
|
|
1772
|
-
overlayX: 'start',
|
|
1773
|
-
overlayY: 'center',
|
|
1774
|
-
offsetX: 4,
|
|
1775
|
-
offsetY: 0,
|
|
1776
|
-
},
|
|
1777
|
-
'right-bottom': {
|
|
1778
|
-
originX: 'end',
|
|
1779
|
-
originY: 'bottom',
|
|
1780
|
-
overlayX: 'start',
|
|
1781
|
-
overlayY: 'bottom',
|
|
1782
|
-
offsetX: 4,
|
|
1783
|
-
offsetY: 0,
|
|
1784
|
-
},
|
|
1785
|
-
}), ...(ngDevMode ? [{ debugName: "positionsMap" }] : []));
|
|
1661
|
+
trigger = input(...(ngDevMode ? [undefined, { debugName: "trigger" }] : []));
|
|
1786
1662
|
/**
|
|
1787
|
-
*
|
|
1788
|
-
* @default ['bottom-left']
|
|
1663
|
+
* Whether the overlay is open.
|
|
1789
1664
|
*/
|
|
1790
|
-
|
|
1791
|
-
/**
|
|
1792
|
-
|
|
1793
|
-
* @
|
|
1665
|
+
open = computed(() => this.trigger()?.active() || false, ...(ngDevMode ? [{ debugName: "open" }] : []));
|
|
1666
|
+
/** Preferred overlay positions in priority order.
|
|
1667
|
+
|
|
1668
|
+
* @defaultValue ['bottom-center', 'top-center']
|
|
1794
1669
|
*/
|
|
1795
|
-
|
|
1796
|
-
/**
|
|
1797
|
-
|
|
1670
|
+
positions = input(['bottom-center', 'top-center'], ...(ngDevMode ? [{ debugName: "positions" }] : []));
|
|
1671
|
+
/** Whether clicking outside closes the overlay.
|
|
1672
|
+
|
|
1673
|
+
* @defaultValue true
|
|
1798
1674
|
*/
|
|
1799
|
-
|
|
1675
|
+
closeOnClickOutside = model(true, ...(ngDevMode ? [{ debugName: "closeOnClickOutside" }] : []));
|
|
1676
|
+
/** Whether pressing Escape closes the overlay.
|
|
1677
|
+
|
|
1678
|
+
* @defaultValue true
|
|
1679
|
+
*/
|
|
1680
|
+
closeOnTypeEscape = model(true, ...(ngDevMode ? [{ debugName: "closeOnTypeEscape" }] : []));
|
|
1800
1681
|
/**
|
|
1801
|
-
*
|
|
1682
|
+
* Whether to focus the trigger element when the overlay closes.
|
|
1683
|
+
*
|
|
1684
|
+
* @defaultValue true
|
|
1802
1685
|
*/
|
|
1803
|
-
|
|
1686
|
+
focusTriggerOnClose = model(true, ...(ngDevMode ? [{ debugName: "focusTriggerOnClose" }] : []));
|
|
1687
|
+
/** Scroll handling mode applied to the overlay.
|
|
1688
|
+
|
|
1689
|
+
* @defaultValue 'reposition'
|
|
1690
|
+
*/
|
|
1691
|
+
scrollStrategy = model('reposition', ...(ngDevMode ? [{ debugName: "scrollStrategy" }] : []));
|
|
1804
1692
|
/**
|
|
1805
|
-
*
|
|
1693
|
+
* Computed array of CDK ConnectedPosition values derived from `positions`.
|
|
1806
1694
|
*/
|
|
1807
|
-
|
|
1695
|
+
connectedPositions = computed(() => this.positions().map((position) => positionsMap[position]), ...(ngDevMode ? [{ debugName: "connectedPositions" }] : []));
|
|
1808
1696
|
/**
|
|
1809
|
-
*
|
|
1697
|
+
* Linked signal that holds the currently active ConnectionPositionPair.
|
|
1810
1698
|
*/
|
|
1811
|
-
|
|
1699
|
+
connectedPositionPair = linkedSignal(() => this.connectedPositions()[0], ...(ngDevMode ? [{ debugName: "connectedPositionPair" }] : []));
|
|
1812
1700
|
/**
|
|
1813
|
-
* Computed direction
|
|
1701
|
+
* Computed overlay direction string derived from the active connection pair (e.g. 'top', 'bottom').
|
|
1814
1702
|
*/
|
|
1815
1703
|
direction = computed(() => {
|
|
1816
1704
|
const pair = this.connectedPositionPair();
|
|
1817
|
-
return Object.entries(
|
|
1705
|
+
return Object.entries(positionsMap)
|
|
1818
1706
|
.find(([, position]) => position.originX === pair.originX &&
|
|
1819
1707
|
position.originY === pair.originY &&
|
|
1820
1708
|
position.overlayX === pair.overlayX &&
|
|
1821
1709
|
position.overlayY === pair.overlayY)?.[0]
|
|
1822
1710
|
.split('-')[0];
|
|
1823
1711
|
}, ...(ngDevMode ? [{ debugName: "direction" }] : []));
|
|
1824
|
-
/**
|
|
1825
|
-
* Event emitter for overlay detach events.
|
|
1826
|
-
*/
|
|
1827
|
-
detachEmitter = output();
|
|
1828
|
-
/**
|
|
1829
|
-
* Event emitter for overlay attach events.
|
|
1830
|
-
*/
|
|
1831
|
-
attachEmitter = output();
|
|
1832
|
-
/**
|
|
1833
|
-
* Event emitter for overlay outside click events.
|
|
1834
|
-
*/
|
|
1835
|
-
outsideClickEmitter = output();
|
|
1836
|
-
/**
|
|
1837
|
-
* Event emitter for overlay backdrop click events.
|
|
1838
|
-
*/
|
|
1839
|
-
backdropClickEmitter = output();
|
|
1840
1712
|
/**
|
|
1841
1713
|
* Flag to indicate if el overlay ya fue abierto al menos una vez.
|
|
1842
1714
|
*/
|
|
1843
1715
|
hasBeenOpened = false;
|
|
1844
|
-
/**
|
|
1845
|
-
* Constructor to initialize the directive and set up reactive effects.
|
|
1846
|
-
*/
|
|
1847
1716
|
constructor() {
|
|
1848
1717
|
effect(() => {
|
|
1849
|
-
this.
|
|
1850
|
-
this.
|
|
1851
|
-
this.
|
|
1718
|
+
this.handleAttach();
|
|
1719
|
+
this.setScrollStrategy();
|
|
1720
|
+
this.setPositions();
|
|
1852
1721
|
});
|
|
1853
1722
|
}
|
|
1854
1723
|
/**
|
|
1855
|
-
*
|
|
1856
|
-
*
|
|
1857
|
-
*/
|
|
1858
|
-
handleOrigin() {
|
|
1859
|
-
this.cdkConnectedOverlay.origin = this.trigger().trigger;
|
|
1860
|
-
}
|
|
1861
|
-
/**
|
|
1862
|
-
* Handles the connected positions for the overlay.
|
|
1863
|
-
* This method updates the `cdkConnectedOverlay` positions based on the current state.
|
|
1864
|
-
*/
|
|
1865
|
-
handleConnectedPositions() {
|
|
1866
|
-
this.cdkConnectedOverlay.positions = this.connectedPositions();
|
|
1867
|
-
}
|
|
1868
|
-
/**
|
|
1869
|
-
* Handles the opening and closing of the overlay based on the `open` input.
|
|
1870
|
-
* Determines whether to open or close the overlay and invokes the appropriate method.
|
|
1724
|
+
* Attach or detach the overlay based on the `open` signal.
|
|
1725
|
+
* Also manages focus on the trigger element when closing.
|
|
1871
1726
|
*/
|
|
1872
|
-
|
|
1727
|
+
handleAttach() {
|
|
1873
1728
|
if (this.open()) {
|
|
1874
1729
|
this.cdkConnectedOverlay.attachOverlay();
|
|
1875
1730
|
this.hasBeenOpened = true;
|
|
@@ -1878,29 +1733,559 @@ class ConnectedOverlay {
|
|
|
1878
1733
|
this.cdkConnectedOverlay.detachOverlay();
|
|
1879
1734
|
// Only focus the trigger if the overlay has been opened at least once
|
|
1880
1735
|
if (this.hasBeenOpened && this.focusTriggerOnClose()) {
|
|
1881
|
-
this.trigger()
|
|
1736
|
+
this.trigger()?.el.nativeElement.focus();
|
|
1882
1737
|
}
|
|
1883
1738
|
}
|
|
1884
1739
|
}
|
|
1885
1740
|
/**
|
|
1886
|
-
*
|
|
1887
|
-
*
|
|
1741
|
+
* Set the active connection pair when the CDK overlay reports a position change.
|
|
1742
|
+
*
|
|
1743
|
+
* @param event - The position change event containing the new connection pair.
|
|
1888
1744
|
*/
|
|
1889
|
-
|
|
1890
|
-
this.
|
|
1745
|
+
setPositionPair(event) {
|
|
1746
|
+
this.connectedPositionPair.set(event.connectionPair);
|
|
1891
1747
|
}
|
|
1892
1748
|
/**
|
|
1893
|
-
*
|
|
1749
|
+
* Deactivate the overlay trigger when the overlay detaches.
|
|
1894
1750
|
*/
|
|
1895
|
-
|
|
1896
|
-
this.
|
|
1751
|
+
deactivateTrigger() {
|
|
1752
|
+
this.trigger()?.active?.set(false);
|
|
1897
1753
|
}
|
|
1898
1754
|
/**
|
|
1899
|
-
*
|
|
1755
|
+
* Close the overlay if a click occurs outside and `closeOnClickOutside` is enabled.
|
|
1900
1756
|
*/
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1757
|
+
closeIfClickedOutside() {
|
|
1758
|
+
console.log('clicked outside');
|
|
1759
|
+
if (this.closeOnClickOutside()) {
|
|
1760
|
+
this.trigger()?.active?.set(false);
|
|
1761
|
+
}
|
|
1762
|
+
}
|
|
1763
|
+
/**
|
|
1764
|
+
* Close the overlay when the Escape key is pressed and `closeOnTypeEscape` is enabled.
|
|
1765
|
+
*
|
|
1766
|
+
* @param event - The keyboard event emitted by the overlay.
|
|
1767
|
+
*/
|
|
1768
|
+
closeOnEscape(event) {
|
|
1769
|
+
if (this.closeOnTypeEscape() && event.key === 'Escape') {
|
|
1770
|
+
this.trigger()?.active?.set(false);
|
|
1771
|
+
}
|
|
1772
|
+
}
|
|
1773
|
+
/**
|
|
1774
|
+
* Apply the selected scroll strategy to the CDK connected overlay.
|
|
1775
|
+
*/
|
|
1776
|
+
setScrollStrategy() {
|
|
1777
|
+
switch (this.scrollStrategy()) {
|
|
1778
|
+
case 'close':
|
|
1779
|
+
this.cdkConnectedOverlay.scrollStrategy = this.scrollStrategyOptions.close();
|
|
1780
|
+
break;
|
|
1781
|
+
case 'reposition':
|
|
1782
|
+
this.cdkConnectedOverlay.scrollStrategy = this.scrollStrategyOptions.reposition();
|
|
1783
|
+
break;
|
|
1784
|
+
case 'block':
|
|
1785
|
+
this.cdkConnectedOverlay.scrollStrategy = this.scrollStrategyOptions.block();
|
|
1786
|
+
break;
|
|
1787
|
+
}
|
|
1788
|
+
}
|
|
1789
|
+
/**
|
|
1790
|
+
* Update the overlay's available positions from the computed `connectedPositions`.
|
|
1791
|
+
*/
|
|
1792
|
+
setPositions() {
|
|
1793
|
+
this.cdkConnectedOverlay.positions = this.connectedPositions();
|
|
1794
|
+
}
|
|
1795
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Overlay, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1796
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.6", type: Overlay, isStandalone: true, selector: "[bOverlay]", inputs: { trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: false, transformFunction: null }, closeOnClickOutside: { classPropertyName: "closeOnClickOutside", publicName: "closeOnClickOutside", isSignal: true, isRequired: false, transformFunction: null }, closeOnTypeEscape: { classPropertyName: "closeOnTypeEscape", publicName: "closeOnTypeEscape", isSignal: true, isRequired: false, transformFunction: null }, focusTriggerOnClose: { classPropertyName: "focusTriggerOnClose", publicName: "focusTriggerOnClose", isSignal: true, isRequired: false, transformFunction: null }, scrollStrategy: { classPropertyName: "scrollStrategy", publicName: "scrollStrategy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeOnClickOutside: "closeOnClickOutsideChange", closeOnTypeEscape: "closeOnTypeEscapeChange", focusTriggerOnClose: "focusTriggerOnCloseChange", scrollStrategy: "scrollStrategyChange" }, host: { listeners: { "positionChange": "setPositionPair($event)", "detach": "deactivateTrigger()", "overlayOutsideClick": "closeIfClickedOutside()", "overlayKeydown": "closeOnEscape($event)" } }, hostDirectives: [{ directive: i1$2.CdkConnectedOverlay, inputs: ["cdkConnectedOverlayBackdropClass", "backdropClass", "cdkConnectedOverlayDisposeOnNavigation", "disposeOnNavigation", "cdkConnectedOverlayFlexibleDimensions", "flexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "growAfterOpen", "cdkConnectedOverlayHasBackdrop", "hasBackdrop", "cdkConnectedOverlayHeight", "height", "cdkConnectedOverlayLockPosition", "lockPosition", "cdkConnectedOverlayMinHeight", "minHeight", "cdkConnectedOverlayMinWidth", "minWidth", "cdkConnectedOverlayOffsetX", "offsetX", "cdkConnectedOverlayOffsetY", "offsetY", "cdkConnectedOverlayOrigin", "trigger", "cdkConnectedOverlayPanelClass", "panelClass", "cdkConnectedOverlayPositionStrategy", "positionStrategy", "cdkConnectedOverlayPush", "push", "cdkConnectedOverlayTransformOriginOn", "transformOriginSelector", "cdkConnectedOverlayViewportMargin", "viewportMargin", "cdkConnectedOverlayWidth", "width"], outputs: ["attach", "attach", "detach", "detach", "overlayKeydown", "overlayKeydown", "overlayOutsideClick", "overlayOutsideClick", "positionChange", "positionChange"] }], ngImport: i0 });
|
|
1797
|
+
}
|
|
1798
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Overlay, decorators: [{
|
|
1799
|
+
type: Directive,
|
|
1800
|
+
args: [{
|
|
1801
|
+
selector: '[bOverlay]',
|
|
1802
|
+
hostDirectives: [
|
|
1803
|
+
{
|
|
1804
|
+
directive: CdkConnectedOverlay,
|
|
1805
|
+
inputs: [
|
|
1806
|
+
'cdkConnectedOverlayBackdropClass: backdropClass',
|
|
1807
|
+
'cdkConnectedOverlayDisposeOnNavigation: disposeOnNavigation',
|
|
1808
|
+
'cdkConnectedOverlayFlexibleDimensions: flexibleDimensions',
|
|
1809
|
+
'cdkConnectedOverlayGrowAfterOpen: growAfterOpen',
|
|
1810
|
+
'cdkConnectedOverlayHasBackdrop: hasBackdrop',
|
|
1811
|
+
'cdkConnectedOverlayHeight: height',
|
|
1812
|
+
'cdkConnectedOverlayLockPosition: lockPosition',
|
|
1813
|
+
'cdkConnectedOverlayMinHeight: minHeight',
|
|
1814
|
+
'cdkConnectedOverlayMinWidth: minWidth',
|
|
1815
|
+
'cdkConnectedOverlayOffsetX: offsetX',
|
|
1816
|
+
'cdkConnectedOverlayOffsetY: offsetY',
|
|
1817
|
+
'cdkConnectedOverlayOrigin: trigger',
|
|
1818
|
+
'cdkConnectedOverlayPanelClass: panelClass',
|
|
1819
|
+
'cdkConnectedOverlayPositionStrategy: positionStrategy',
|
|
1820
|
+
'cdkConnectedOverlayPush: push',
|
|
1821
|
+
'cdkConnectedOverlayTransformOriginOn: transformOriginSelector',
|
|
1822
|
+
'cdkConnectedOverlayViewportMargin: viewportMargin',
|
|
1823
|
+
'cdkConnectedOverlayWidth: width',
|
|
1824
|
+
],
|
|
1825
|
+
outputs: [
|
|
1826
|
+
'attach: attach',
|
|
1827
|
+
'detach: detach',
|
|
1828
|
+
'overlayKeydown: overlayKeydown',
|
|
1829
|
+
'overlayOutsideClick: overlayOutsideClick',
|
|
1830
|
+
'positionChange: positionChange',
|
|
1831
|
+
],
|
|
1832
|
+
},
|
|
1833
|
+
],
|
|
1834
|
+
host: {
|
|
1835
|
+
'(positionChange)': 'setPositionPair($event)',
|
|
1836
|
+
'(detach)': 'deactivateTrigger()',
|
|
1837
|
+
'(overlayOutsideClick)': 'closeIfClickedOutside()',
|
|
1838
|
+
'(overlayKeydown)': 'closeOnEscape($event)',
|
|
1839
|
+
},
|
|
1840
|
+
}]
|
|
1841
|
+
}], ctorParameters: () => [], propDecorators: { trigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "trigger", required: false }] }], positions: [{ type: i0.Input, args: [{ isSignal: true, alias: "positions", required: false }] }], closeOnClickOutside: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnClickOutside", required: false }] }, { type: i0.Output, args: ["closeOnClickOutsideChange"] }], closeOnTypeEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnTypeEscape", required: false }] }, { type: i0.Output, args: ["closeOnTypeEscapeChange"] }], focusTriggerOnClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusTriggerOnClose", required: false }] }, { type: i0.Output, args: ["focusTriggerOnCloseChange"] }], scrollStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollStrategy", required: false }] }, { type: i0.Output, args: ["scrollStrategyChange"] }] } });
|
|
1842
|
+
/** Map of semantic positions to CDK ConnectedPosition configuration objects. */
|
|
1843
|
+
const positionsMap = {
|
|
1844
|
+
'top-left': {
|
|
1845
|
+
originX: 'start',
|
|
1846
|
+
originY: 'top',
|
|
1847
|
+
overlayX: 'start',
|
|
1848
|
+
overlayY: 'bottom',
|
|
1849
|
+
offsetX: 0,
|
|
1850
|
+
offsetY: -4,
|
|
1851
|
+
},
|
|
1852
|
+
'top-center': {
|
|
1853
|
+
originX: 'center',
|
|
1854
|
+
originY: 'top',
|
|
1855
|
+
overlayX: 'center',
|
|
1856
|
+
overlayY: 'bottom',
|
|
1857
|
+
offsetX: 0,
|
|
1858
|
+
offsetY: -4,
|
|
1859
|
+
},
|
|
1860
|
+
'top-right': {
|
|
1861
|
+
originX: 'end',
|
|
1862
|
+
originY: 'top',
|
|
1863
|
+
overlayX: 'end',
|
|
1864
|
+
overlayY: 'bottom',
|
|
1865
|
+
offsetX: 0,
|
|
1866
|
+
offsetY: -4,
|
|
1867
|
+
},
|
|
1868
|
+
'bottom-left': {
|
|
1869
|
+
originX: 'start',
|
|
1870
|
+
originY: 'bottom',
|
|
1871
|
+
overlayX: 'start',
|
|
1872
|
+
overlayY: 'top',
|
|
1873
|
+
offsetX: 0,
|
|
1874
|
+
offsetY: 4,
|
|
1875
|
+
},
|
|
1876
|
+
'bottom-center': {
|
|
1877
|
+
originX: 'center',
|
|
1878
|
+
originY: 'bottom',
|
|
1879
|
+
overlayX: 'center',
|
|
1880
|
+
overlayY: 'top',
|
|
1881
|
+
offsetX: 0,
|
|
1882
|
+
offsetY: 4,
|
|
1883
|
+
},
|
|
1884
|
+
'bottom-right': {
|
|
1885
|
+
originX: 'end',
|
|
1886
|
+
originY: 'bottom',
|
|
1887
|
+
overlayX: 'end',
|
|
1888
|
+
overlayY: 'top',
|
|
1889
|
+
offsetX: 0,
|
|
1890
|
+
offsetY: 4,
|
|
1891
|
+
},
|
|
1892
|
+
'left-top': {
|
|
1893
|
+
originX: 'start',
|
|
1894
|
+
originY: 'top',
|
|
1895
|
+
overlayX: 'end',
|
|
1896
|
+
overlayY: 'top',
|
|
1897
|
+
offsetX: -4,
|
|
1898
|
+
offsetY: 0,
|
|
1899
|
+
},
|
|
1900
|
+
'left-center': {
|
|
1901
|
+
originX: 'start',
|
|
1902
|
+
originY: 'center',
|
|
1903
|
+
overlayX: 'end',
|
|
1904
|
+
overlayY: 'center',
|
|
1905
|
+
offsetX: -4,
|
|
1906
|
+
offsetY: 0,
|
|
1907
|
+
},
|
|
1908
|
+
'left-bottom': {
|
|
1909
|
+
originX: 'start',
|
|
1910
|
+
originY: 'bottom',
|
|
1911
|
+
overlayX: 'end',
|
|
1912
|
+
overlayY: 'bottom',
|
|
1913
|
+
offsetX: -4,
|
|
1914
|
+
offsetY: 0,
|
|
1915
|
+
},
|
|
1916
|
+
'right-top': {
|
|
1917
|
+
originX: 'end',
|
|
1918
|
+
originY: 'top',
|
|
1919
|
+
overlayX: 'start',
|
|
1920
|
+
overlayY: 'top',
|
|
1921
|
+
offsetX: 4,
|
|
1922
|
+
offsetY: 0,
|
|
1923
|
+
},
|
|
1924
|
+
'right-center': {
|
|
1925
|
+
originX: 'end',
|
|
1926
|
+
originY: 'center',
|
|
1927
|
+
overlayX: 'start',
|
|
1928
|
+
overlayY: 'center',
|
|
1929
|
+
offsetX: 4,
|
|
1930
|
+
offsetY: 0,
|
|
1931
|
+
},
|
|
1932
|
+
'right-bottom': {
|
|
1933
|
+
originX: 'end',
|
|
1934
|
+
originY: 'bottom',
|
|
1935
|
+
overlayX: 'start',
|
|
1936
|
+
overlayY: 'bottom',
|
|
1937
|
+
offsetX: 4,
|
|
1938
|
+
offsetY: 0,
|
|
1939
|
+
},
|
|
1940
|
+
};
|
|
1941
|
+
|
|
1942
|
+
/**
|
|
1943
|
+
* Popover directive that configures an overlay for displaying popover content.
|
|
1944
|
+
* Popovers differ from tooltips in that they allow multi-line content and use
|
|
1945
|
+
* padding-based sizing (no fixed heights) and do not expose variant classes.
|
|
1946
|
+
*/
|
|
1947
|
+
class Popover extends Overlay {
|
|
1948
|
+
ngOnInit() {
|
|
1949
|
+
this.setScrollStrategyToClose();
|
|
1950
|
+
}
|
|
1951
|
+
/**
|
|
1952
|
+
* Sets the scroll strategy to close the popover when scrolling occurs.
|
|
1953
|
+
*/
|
|
1954
|
+
setScrollStrategyToClose() {
|
|
1955
|
+
this.scrollStrategy.set('close');
|
|
1956
|
+
}
|
|
1957
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Popover, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
1958
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: Popover, isStandalone: true, selector: "[bPopover]", usesInheritance: true, ngImport: i0 });
|
|
1959
|
+
}
|
|
1960
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Popover, decorators: [{
|
|
1961
|
+
type: Directive,
|
|
1962
|
+
args: [{
|
|
1963
|
+
selector: '[bPopover]',
|
|
1964
|
+
}]
|
|
1965
|
+
}] });
|
|
1966
|
+
|
|
1967
|
+
/**
|
|
1968
|
+
* Popover content that is displayed within a connected overlay.
|
|
1969
|
+
* Unlike tooltip content, popover content uses padding and flexible height
|
|
1970
|
+
* so it can contain multiple lines of text and larger blocks.
|
|
1971
|
+
*/
|
|
1972
|
+
class PopoverContent {
|
|
1973
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: PopoverContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1974
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: PopoverContent, isStandalone: true, selector: "b-popover-content", ngImport: i0, template: ` <ng-content /> `, isInline: true });
|
|
1975
|
+
}
|
|
1976
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: PopoverContent, decorators: [{
|
|
1977
|
+
type: Component,
|
|
1978
|
+
args: [{
|
|
1979
|
+
selector: 'b-popover-content',
|
|
1980
|
+
template: ` <ng-content /> `,
|
|
1981
|
+
}]
|
|
1982
|
+
}] });
|
|
1983
|
+
|
|
1984
|
+
/**
|
|
1985
|
+
* Directive that marks an element as an overlay trigger and toggles its active state on click.
|
|
1986
|
+
*/
|
|
1987
|
+
class OverlayTrigger extends CdkOverlayOrigin {
|
|
1988
|
+
/**
|
|
1989
|
+
* Signal that holds whether the overlay trigger is active.
|
|
1990
|
+
*
|
|
1991
|
+
* @defaultValue false
|
|
1992
|
+
*/
|
|
1993
|
+
active = signal(false, ...(ngDevMode ? [{ debugName: "active" }] : []));
|
|
1994
|
+
/**
|
|
1995
|
+
* Reference to the `ElementRef` of the host element.
|
|
1996
|
+
* This is used to access the native DOM element.
|
|
1997
|
+
*/
|
|
1998
|
+
el = inject(ElementRef);
|
|
1999
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OverlayTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
2000
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: OverlayTrigger, isStandalone: true, selector: "[bOverlayTrigger]", exportAs: ["bOverlayTrigger"], usesInheritance: true, hostDirectives: [{ directive: i1$2.CdkOverlayOrigin }], ngImport: i0 });
|
|
2001
|
+
}
|
|
2002
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OverlayTrigger, decorators: [{
|
|
2003
|
+
type: Directive,
|
|
2004
|
+
args: [{
|
|
2005
|
+
selector: '[bOverlayTrigger]',
|
|
2006
|
+
hostDirectives: [CdkOverlayOrigin],
|
|
2007
|
+
exportAs: 'bOverlayTrigger',
|
|
2008
|
+
}]
|
|
2009
|
+
}] });
|
|
2010
|
+
|
|
2011
|
+
/**
|
|
2012
|
+
* Trigger directive that emits activation events for popovers.
|
|
2013
|
+
* Exposes the same `trigger` and `el` properties expected by `ConnectedOverlay`.
|
|
2014
|
+
*/
|
|
2015
|
+
class PopoverTrigger extends OverlayTrigger {
|
|
2016
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: PopoverTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
2017
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: PopoverTrigger, isStandalone: true, selector: "[bPopoverTrigger]", host: { listeners: { "click": "active.set(!active())" } }, exportAs: ["bPopoverTrigger"], usesInheritance: true, ngImport: i0 });
|
|
2018
|
+
}
|
|
2019
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: PopoverTrigger, decorators: [{
|
|
2020
|
+
type: Directive,
|
|
2021
|
+
args: [{
|
|
2022
|
+
selector: '[bPopoverTrigger]',
|
|
2023
|
+
host: {
|
|
2024
|
+
'(click)': 'active.set(!active())',
|
|
2025
|
+
},
|
|
2026
|
+
exportAs: 'bPopoverTrigger',
|
|
2027
|
+
}]
|
|
2028
|
+
}] });
|
|
2029
|
+
|
|
2030
|
+
class Range {
|
|
2031
|
+
value = model('0', ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
2032
|
+
el = inject(ElementRef);
|
|
2033
|
+
ngAfterViewInit() {
|
|
2034
|
+
this.value.set(this.el.nativeElement.value);
|
|
2035
|
+
}
|
|
2036
|
+
onInput(event) {
|
|
2037
|
+
this.value.set(event.target.value);
|
|
2038
|
+
}
|
|
2039
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Range, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2040
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.6", type: Range, isStandalone: true, selector: "input[b-range]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "input": "onInput($event)" }, properties: { "attr.value": "value()" } }, ngImport: i0, template: ``, isInline: true });
|
|
2041
|
+
}
|
|
2042
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Range, decorators: [{
|
|
2043
|
+
type: Component,
|
|
2044
|
+
args: [{
|
|
2045
|
+
selector: 'input[b-range]',
|
|
2046
|
+
template: ``,
|
|
2047
|
+
host: {
|
|
2048
|
+
'[attr.value]': 'value()',
|
|
2049
|
+
'(input)': 'onInput($event)',
|
|
2050
|
+
},
|
|
2051
|
+
}]
|
|
2052
|
+
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
|
|
2053
|
+
|
|
2054
|
+
/**
|
|
2055
|
+
* Directive to manage overlay behavior and positioning.
|
|
2056
|
+
* Integrates with Angular CDK's `CdkConnectedOverlay` to provide
|
|
2057
|
+
* flexible overlay positioning and triggering mechanisms.
|
|
2058
|
+
*/
|
|
2059
|
+
class ConnectedOverlay {
|
|
2060
|
+
/**
|
|
2061
|
+
* Controls whether the overlay is open.
|
|
2062
|
+
* @default false
|
|
2063
|
+
*/
|
|
2064
|
+
open = model(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
|
|
2065
|
+
/**
|
|
2066
|
+
* The trigger directive that activates the overlay.
|
|
2067
|
+
* This input is required.
|
|
2068
|
+
*/
|
|
2069
|
+
trigger = input.required(...(ngDevMode ? [{ debugName: "trigger" }] : []));
|
|
2070
|
+
/**
|
|
2071
|
+
* A computed map of positions to their corresponding `ConnectedPosition` configurations.
|
|
2072
|
+
*/
|
|
2073
|
+
positionsMap = computed(() => ({
|
|
2074
|
+
'top-left': {
|
|
2075
|
+
originX: 'start',
|
|
2076
|
+
originY: 'top',
|
|
2077
|
+
overlayX: 'start',
|
|
2078
|
+
overlayY: 'bottom',
|
|
2079
|
+
offsetX: 0,
|
|
2080
|
+
offsetY: -4,
|
|
2081
|
+
},
|
|
2082
|
+
'top-center': {
|
|
2083
|
+
originX: 'center',
|
|
2084
|
+
originY: 'top',
|
|
2085
|
+
overlayX: 'center',
|
|
2086
|
+
overlayY: 'bottom',
|
|
2087
|
+
offsetX: 0,
|
|
2088
|
+
offsetY: -4,
|
|
2089
|
+
},
|
|
2090
|
+
'top-right': {
|
|
2091
|
+
originX: 'end',
|
|
2092
|
+
originY: 'top',
|
|
2093
|
+
overlayX: 'end',
|
|
2094
|
+
overlayY: 'bottom',
|
|
2095
|
+
offsetX: 0,
|
|
2096
|
+
offsetY: -4,
|
|
2097
|
+
},
|
|
2098
|
+
'bottom-left': {
|
|
2099
|
+
originX: 'start',
|
|
2100
|
+
originY: 'bottom',
|
|
2101
|
+
overlayX: 'start',
|
|
2102
|
+
overlayY: 'top',
|
|
2103
|
+
offsetX: 0,
|
|
2104
|
+
offsetY: 4,
|
|
2105
|
+
},
|
|
2106
|
+
'bottom-center': {
|
|
2107
|
+
originX: 'center',
|
|
2108
|
+
originY: 'bottom',
|
|
2109
|
+
overlayX: 'center',
|
|
2110
|
+
overlayY: 'top',
|
|
2111
|
+
offsetX: 0,
|
|
2112
|
+
offsetY: 4,
|
|
2113
|
+
},
|
|
2114
|
+
'bottom-right': {
|
|
2115
|
+
originX: 'end',
|
|
2116
|
+
originY: 'bottom',
|
|
2117
|
+
overlayX: 'end',
|
|
2118
|
+
overlayY: 'top',
|
|
2119
|
+
offsetX: 0,
|
|
2120
|
+
offsetY: 4,
|
|
2121
|
+
},
|
|
2122
|
+
'left-top': {
|
|
2123
|
+
originX: 'start',
|
|
2124
|
+
originY: 'top',
|
|
2125
|
+
overlayX: 'end',
|
|
2126
|
+
overlayY: 'top',
|
|
2127
|
+
offsetX: -4,
|
|
2128
|
+
offsetY: 0,
|
|
2129
|
+
},
|
|
2130
|
+
'left-center': {
|
|
2131
|
+
originX: 'start',
|
|
2132
|
+
originY: 'center',
|
|
2133
|
+
overlayX: 'end',
|
|
2134
|
+
overlayY: 'center',
|
|
2135
|
+
offsetX: -4,
|
|
2136
|
+
offsetY: 0,
|
|
2137
|
+
},
|
|
2138
|
+
'left-bottom': {
|
|
2139
|
+
originX: 'start',
|
|
2140
|
+
originY: 'bottom',
|
|
2141
|
+
overlayX: 'end',
|
|
2142
|
+
overlayY: 'bottom',
|
|
2143
|
+
offsetX: -4,
|
|
2144
|
+
offsetY: 0,
|
|
2145
|
+
},
|
|
2146
|
+
'right-top': {
|
|
2147
|
+
originX: 'end',
|
|
2148
|
+
originY: 'top',
|
|
2149
|
+
overlayX: 'start',
|
|
2150
|
+
overlayY: 'top',
|
|
2151
|
+
offsetX: 4,
|
|
2152
|
+
offsetY: 0,
|
|
2153
|
+
},
|
|
2154
|
+
'right-center': {
|
|
2155
|
+
originX: 'end',
|
|
2156
|
+
originY: 'center',
|
|
2157
|
+
overlayX: 'start',
|
|
2158
|
+
overlayY: 'center',
|
|
2159
|
+
offsetX: 4,
|
|
2160
|
+
offsetY: 0,
|
|
2161
|
+
},
|
|
2162
|
+
'right-bottom': {
|
|
2163
|
+
originX: 'end',
|
|
2164
|
+
originY: 'bottom',
|
|
2165
|
+
overlayX: 'start',
|
|
2166
|
+
overlayY: 'bottom',
|
|
2167
|
+
offsetX: 4,
|
|
2168
|
+
offsetY: 0,
|
|
2169
|
+
},
|
|
2170
|
+
}), ...(ngDevMode ? [{ debugName: "positionsMap" }] : []));
|
|
2171
|
+
/**
|
|
2172
|
+
* List of positions for the overlay.
|
|
2173
|
+
* @default ['bottom-left']
|
|
2174
|
+
*/
|
|
2175
|
+
positions = input(['bottom-left'], ...(ngDevMode ? [{ debugName: "positions" }] : []));
|
|
2176
|
+
/**
|
|
2177
|
+
* Controls whether the trigger element should be focused when the overlay is closed.
|
|
2178
|
+
* @default true
|
|
2179
|
+
*/
|
|
2180
|
+
focusTriggerOnClose = input(true, ...(ngDevMode ? [{ debugName: "focusTriggerOnClose" }] : []));
|
|
2181
|
+
/**
|
|
2182
|
+
* Computed list of `ConnectedPosition` objects based on the `positions` input.
|
|
2183
|
+
*/
|
|
2184
|
+
connectedPositions = computed(() => this.positions().map((position) => this.positionsMap()[position]), ...(ngDevMode ? [{ debugName: "connectedPositions" }] : []));
|
|
2185
|
+
/**
|
|
2186
|
+
* Signal to track the currently active `ConnectionPositionPair`.
|
|
2187
|
+
*/
|
|
2188
|
+
connectedPositionPair = linkedSignal(() => this.connectedPositions()[0], ...(ngDevMode ? [{ debugName: "connectedPositionPair" }] : []));
|
|
2189
|
+
/**
|
|
2190
|
+
* Injected instance of `CdkConnectedOverlay`.
|
|
2191
|
+
*/
|
|
2192
|
+
cdkConnectedOverlay = inject(CdkConnectedOverlay);
|
|
2193
|
+
/**
|
|
2194
|
+
* Injected instance of `Overlay`.
|
|
2195
|
+
*/
|
|
2196
|
+
overlay = inject(Overlay$1);
|
|
2197
|
+
/**
|
|
2198
|
+
* Computed direction of the overlay based on the active position pair.
|
|
2199
|
+
*/
|
|
2200
|
+
direction = computed(() => {
|
|
2201
|
+
const pair = this.connectedPositionPair();
|
|
2202
|
+
return Object.entries(this.positionsMap())
|
|
2203
|
+
.find(([, position]) => position.originX === pair.originX &&
|
|
2204
|
+
position.originY === pair.originY &&
|
|
2205
|
+
position.overlayX === pair.overlayX &&
|
|
2206
|
+
position.overlayY === pair.overlayY)?.[0]
|
|
2207
|
+
.split('-')[0];
|
|
2208
|
+
}, ...(ngDevMode ? [{ debugName: "direction" }] : []));
|
|
2209
|
+
/**
|
|
2210
|
+
* Event emitter for overlay detach events.
|
|
2211
|
+
*/
|
|
2212
|
+
detachEmitter = output();
|
|
2213
|
+
/**
|
|
2214
|
+
* Event emitter for overlay attach events.
|
|
2215
|
+
*/
|
|
2216
|
+
attachEmitter = output();
|
|
2217
|
+
/**
|
|
2218
|
+
* Event emitter for overlay outside click events.
|
|
2219
|
+
*/
|
|
2220
|
+
outsideClickEmitter = output();
|
|
2221
|
+
/**
|
|
2222
|
+
* Event emitter for overlay backdrop click events.
|
|
2223
|
+
*/
|
|
2224
|
+
backdropClickEmitter = output();
|
|
2225
|
+
/**
|
|
2226
|
+
* Flag to indicate if el overlay ya fue abierto al menos una vez.
|
|
2227
|
+
*/
|
|
2228
|
+
hasBeenOpened = false;
|
|
2229
|
+
/**
|
|
2230
|
+
* Constructor to initialize the directive and set up reactive effects.
|
|
2231
|
+
*/
|
|
2232
|
+
constructor() {
|
|
2233
|
+
effect(() => {
|
|
2234
|
+
this.handleOrigin();
|
|
2235
|
+
this.handleConnectedPositions();
|
|
2236
|
+
this.handleOpen();
|
|
2237
|
+
});
|
|
2238
|
+
}
|
|
2239
|
+
/**
|
|
2240
|
+
* Handles the origin of the overlay.
|
|
2241
|
+
* This method sets the `cdkConnectedOverlay.origin` to the trigger element.
|
|
2242
|
+
*/
|
|
2243
|
+
handleOrigin() {
|
|
2244
|
+
this.cdkConnectedOverlay.origin = this.trigger().trigger;
|
|
2245
|
+
}
|
|
2246
|
+
/**
|
|
2247
|
+
* Handles the connected positions for the overlay.
|
|
2248
|
+
* This method updates the `cdkConnectedOverlay` positions based on the current state.
|
|
2249
|
+
*/
|
|
2250
|
+
handleConnectedPositions() {
|
|
2251
|
+
this.cdkConnectedOverlay.positions = this.connectedPositions();
|
|
2252
|
+
}
|
|
2253
|
+
/**
|
|
2254
|
+
* Handles the opening and closing of the overlay based on the `open` input.
|
|
2255
|
+
* Determines whether to open or close the overlay and invokes the appropriate method.
|
|
2256
|
+
*/
|
|
2257
|
+
handleOpen() {
|
|
2258
|
+
if (this.open()) {
|
|
2259
|
+
this.cdkConnectedOverlay.attachOverlay();
|
|
2260
|
+
this.hasBeenOpened = true;
|
|
2261
|
+
}
|
|
2262
|
+
else {
|
|
2263
|
+
this.cdkConnectedOverlay.detachOverlay();
|
|
2264
|
+
// Only focus the trigger if the overlay has been opened at least once
|
|
2265
|
+
if (this.hasBeenOpened && this.focusTriggerOnClose()) {
|
|
2266
|
+
this.trigger().el.nativeElement.focus();
|
|
2267
|
+
}
|
|
2268
|
+
}
|
|
2269
|
+
}
|
|
2270
|
+
/**
|
|
2271
|
+
* Toggles the open state of the overlay.
|
|
2272
|
+
* If the overlay is open, it will be closed, and vice versa.
|
|
2273
|
+
*/
|
|
2274
|
+
toggleOverlay() {
|
|
2275
|
+
this.open.set(!this.open());
|
|
2276
|
+
}
|
|
2277
|
+
/**
|
|
2278
|
+
* Closes the overlay by setting the `open` state to false.
|
|
2279
|
+
*/
|
|
2280
|
+
closeOverlay() {
|
|
2281
|
+
this.open.set(false);
|
|
2282
|
+
}
|
|
2283
|
+
/**
|
|
2284
|
+
* Opens the overlay by setting the `open` state to true.
|
|
2285
|
+
*/
|
|
2286
|
+
openOverlay() {
|
|
2287
|
+
this.open.set(true);
|
|
2288
|
+
}
|
|
1904
2289
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ConnectedOverlay, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1905
2290
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.6", type: ConnectedOverlay, isStandalone: true, selector: "[bConnectedOverlay]", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: true, transformFunction: null }, positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: false, transformFunction: null }, focusTriggerOnClose: { classPropertyName: "focusTriggerOnClose", publicName: "focusTriggerOnClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", detachEmitter: "detachEmitter", attachEmitter: "attachEmitter", outsideClickEmitter: "outsideClickEmitter", backdropClickEmitter: "backdropClickEmitter" }, host: { listeners: { "positionChange": "connectedPositionPair.set($event.connectionPair)", "detach": "detachEmitter.emit()", "attach": "attachEmitter.emit()", "outsideClick": "outsideClickEmitter.emit()", "backdropClick": "backdropClickEmitter.emit()" } }, hostDirectives: [{ directive: i1$2.CdkConnectedOverlay, inputs: ["cdkConnectedOverlayWidth", "width", "cdkConnectedOverlayMinWidth", "minWidth", "cdkConnectedOverlayBackdropClass", "customBackdropClass", "cdkConnectedOverlayPanelClass", "panelClass"], outputs: ["detach", "detach", "attach", "attach", "overlayOutsideClick", "outsideClick", "backdropClick", "backdropClick", "positionChange", "positionChange"] }], ngImport: i0 });
|
|
1906
2291
|
}
|
|
@@ -2523,378 +2908,82 @@ class Tabs {
|
|
|
2523
2908
|
/**
|
|
2524
2909
|
* Query list of Tab child components.
|
|
2525
2910
|
*/
|
|
2526
|
-
tabs = contentChildren(Tab, ...(ngDevMode ? [{ debugName: "tabs" }] : []));
|
|
2527
|
-
/**
|
|
2528
|
-
* Computed array of underlying CDK options for navigation.
|
|
2529
|
-
*/
|
|
2530
|
-
cdkOptions = computed(() => this.tabs().map((tab) => tab.cdkOption), ...(ngDevMode ? [{ debugName: "cdkOptions" }] : []));
|
|
2531
|
-
/**
|
|
2532
|
-
* Keyboard manager that handles arrow navigation between tabs.
|
|
2533
|
-
*/
|
|
2534
|
-
listKeyManager = computed(() => new ActiveDescendantKeyManager(this.cdkOptions()).withWrap().withHorizontalOrientation('ltr'), ...(ngDevMode ? [{ debugName: "listKeyManager" }] : []));
|
|
2535
|
-
/**
|
|
2536
|
-
* Move highlight to the previous tab.
|
|
2537
|
-
*/
|
|
2538
|
-
previousTab() {
|
|
2539
|
-
this.listKeyManager().setPreviousItemActive();
|
|
2540
|
-
}
|
|
2541
|
-
/**
|
|
2542
|
-
* Move highlight to the next tab.
|
|
2543
|
-
*/
|
|
2544
|
-
nextTab() {
|
|
2545
|
-
this.listKeyManager().setNextItemActive();
|
|
2546
|
-
}
|
|
2547
|
-
/**
|
|
2548
|
-
* Initialize CDK listbox behaviors on component init.
|
|
2549
|
-
*/
|
|
2550
|
-
ngOnInit() {
|
|
2551
|
-
this.cdkListbox.useActiveDescendant = true;
|
|
2552
|
-
this.cdkListbox.orientation = 'horizontal';
|
|
2553
|
-
}
|
|
2554
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Tabs, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2555
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.6", type: Tabs, isStandalone: true, selector: "b-tabs", host: { listeners: { "keydown.arrowLeft": "previousTab()", "keydown.arrowUp": "previousTab()", "keydown.arrowRight": "nextTab()", "keydown.arrowDown": "nextTab()" } }, queries: [{ propertyName: "tabs", predicate: Tab, isSignal: true }], hostDirectives: [{ directive: i1.CdkListbox }], ngImport: i0, template: ` <ng-content /> `, isInline: true });
|
|
2556
|
-
}
|
|
2557
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Tabs, decorators: [{
|
|
2558
|
-
type: Component,
|
|
2559
|
-
args: [{
|
|
2560
|
-
selector: 'b-tabs',
|
|
2561
|
-
imports: [],
|
|
2562
|
-
template: ` <ng-content /> `,
|
|
2563
|
-
hostDirectives: [CdkListbox],
|
|
2564
|
-
host: {
|
|
2565
|
-
'(keydown.arrowLeft)': 'previousTab()',
|
|
2566
|
-
'(keydown.arrowUp)': 'previousTab()',
|
|
2567
|
-
'(keydown.arrowRight)': 'nextTab()',
|
|
2568
|
-
'(keydown.arrowDown)': 'nextTab()',
|
|
2569
|
-
},
|
|
2570
|
-
}]
|
|
2571
|
-
}], propDecorators: { tabs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => Tab), { isSignal: true }] }] } });
|
|
2572
|
-
|
|
2573
|
-
/**
|
|
2574
|
-
* Wrapper for grouping textarea-related elements vertically.
|
|
2575
|
-
*/
|
|
2576
|
-
class TextareaGroup {
|
|
2577
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TextareaGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2578
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: TextareaGroup, isStandalone: true, selector: "b-textarea-group", ngImport: i0, template: ` <ng-content /> `, isInline: true });
|
|
2579
|
-
}
|
|
2580
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TextareaGroup, decorators: [{
|
|
2581
|
-
type: Component,
|
|
2582
|
-
args: [{
|
|
2583
|
-
selector: 'b-textarea-group',
|
|
2584
|
-
template: ` <ng-content /> `,
|
|
2585
|
-
}]
|
|
2586
|
-
}] });
|
|
2587
|
-
|
|
2588
|
-
/**
|
|
2589
|
-
* A styled textarea component.
|
|
2590
|
-
*/
|
|
2591
|
-
class Textarea {
|
|
2592
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Textarea, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2593
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: Textarea, isStandalone: true, selector: "textarea[b-textarea]", ngImport: i0, template: ``, isInline: true });
|
|
2594
|
-
}
|
|
2595
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Textarea, decorators: [{
|
|
2596
|
-
type: Component,
|
|
2597
|
-
args: [{
|
|
2598
|
-
selector: 'textarea[b-textarea]',
|
|
2599
|
-
template: ``,
|
|
2600
|
-
}]
|
|
2601
|
-
}] });
|
|
2602
|
-
|
|
2603
|
-
/**
|
|
2604
|
-
* Directive that wires an Angular CDK connected overlay to a trigger and exposes
|
|
2605
|
-
* reactive signals for positions and scroll strategy.
|
|
2606
|
-
*/
|
|
2607
|
-
class Overlay {
|
|
2608
|
-
/**
|
|
2609
|
-
* Reference to the CDK connected overlay instance.
|
|
2610
|
-
*/
|
|
2611
|
-
cdkConnectedOverlay = inject(CdkConnectedOverlay);
|
|
2612
|
-
/**
|
|
2613
|
-
* Options for scroll handling provided by the CDK.
|
|
2614
|
-
*/
|
|
2615
|
-
scrollStrategyOptions = inject(ScrollStrategyOptions);
|
|
2616
|
-
/**
|
|
2617
|
-
* The overlay trigger object (signal) that controls the overlay origin and active state.
|
|
2618
|
-
*/
|
|
2619
|
-
trigger = input(...(ngDevMode ? [undefined, { debugName: "trigger" }] : []));
|
|
2620
|
-
/**
|
|
2621
|
-
* Whether the overlay is open.
|
|
2622
|
-
*/
|
|
2623
|
-
open = computed(() => this.trigger()?.active() || false, ...(ngDevMode ? [{ debugName: "open" }] : []));
|
|
2624
|
-
/** Preferred overlay positions in priority order.
|
|
2625
|
-
|
|
2626
|
-
* @defaultValue ['bottom-center', 'top-center']
|
|
2627
|
-
*/
|
|
2628
|
-
positions = input(['bottom-center', 'top-center'], ...(ngDevMode ? [{ debugName: "positions" }] : []));
|
|
2629
|
-
/** Whether clicking outside closes the overlay.
|
|
2630
|
-
|
|
2631
|
-
* @defaultValue true
|
|
2632
|
-
*/
|
|
2633
|
-
closeOnClickOutside = model(true, ...(ngDevMode ? [{ debugName: "closeOnClickOutside" }] : []));
|
|
2634
|
-
/** Whether pressing Escape closes the overlay.
|
|
2635
|
-
|
|
2636
|
-
* @defaultValue true
|
|
2637
|
-
*/
|
|
2638
|
-
closeOnTypeEscape = model(true, ...(ngDevMode ? [{ debugName: "closeOnTypeEscape" }] : []));
|
|
2639
|
-
/**
|
|
2640
|
-
* Whether to focus the trigger element when the overlay closes.
|
|
2641
|
-
*
|
|
2642
|
-
* @defaultValue true
|
|
2643
|
-
*/
|
|
2644
|
-
focusTriggerOnClose = model(true, ...(ngDevMode ? [{ debugName: "focusTriggerOnClose" }] : []));
|
|
2645
|
-
/** Scroll handling mode applied to the overlay.
|
|
2646
|
-
|
|
2647
|
-
* @defaultValue 'reposition'
|
|
2648
|
-
*/
|
|
2649
|
-
scroll = model('reposition', ...(ngDevMode ? [{ debugName: "scroll" }] : []));
|
|
2650
|
-
/**
|
|
2651
|
-
* Computed array of CDK ConnectedPosition values derived from `positions`.
|
|
2652
|
-
*/
|
|
2653
|
-
connectedPositions = computed(() => this.positions().map((position) => positionsMap[position]), ...(ngDevMode ? [{ debugName: "connectedPositions" }] : []));
|
|
2654
|
-
/**
|
|
2655
|
-
* Linked signal that holds the currently active ConnectionPositionPair.
|
|
2656
|
-
*/
|
|
2657
|
-
connectedPositionPair = linkedSignal(() => this.connectedPositions()[0], ...(ngDevMode ? [{ debugName: "connectedPositionPair" }] : []));
|
|
2658
|
-
/**
|
|
2659
|
-
* Computed overlay direction string derived from the active connection pair (e.g. 'top', 'bottom').
|
|
2660
|
-
*/
|
|
2661
|
-
direction = computed(() => {
|
|
2662
|
-
const pair = this.connectedPositionPair();
|
|
2663
|
-
return Object.entries(positionsMap)
|
|
2664
|
-
.find(([, position]) => position.originX === pair.originX &&
|
|
2665
|
-
position.originY === pair.originY &&
|
|
2666
|
-
position.overlayX === pair.overlayX &&
|
|
2667
|
-
position.overlayY === pair.overlayY)?.[0]
|
|
2668
|
-
.split('-')[0];
|
|
2669
|
-
}, ...(ngDevMode ? [{ debugName: "direction" }] : []));
|
|
2670
|
-
/**
|
|
2671
|
-
* Flag to indicate if el overlay ya fue abierto al menos una vez.
|
|
2672
|
-
*/
|
|
2673
|
-
hasBeenOpened = false;
|
|
2674
|
-
constructor() {
|
|
2675
|
-
effect(() => {
|
|
2676
|
-
this.handleAttach();
|
|
2677
|
-
this.setScrollStrategy();
|
|
2678
|
-
this.setPositions();
|
|
2679
|
-
});
|
|
2680
|
-
}
|
|
2681
|
-
/**
|
|
2682
|
-
* Attach or detach the overlay based on the `open` signal.
|
|
2683
|
-
* Also manages focus on the trigger element when closing.
|
|
2684
|
-
*/
|
|
2685
|
-
handleAttach() {
|
|
2686
|
-
if (this.open()) {
|
|
2687
|
-
this.cdkConnectedOverlay.attachOverlay();
|
|
2688
|
-
this.hasBeenOpened = true;
|
|
2689
|
-
}
|
|
2690
|
-
else {
|
|
2691
|
-
this.cdkConnectedOverlay.detachOverlay();
|
|
2692
|
-
// Only focus the trigger if the overlay has been opened at least once
|
|
2693
|
-
if (this.hasBeenOpened && this.focusTriggerOnClose()) {
|
|
2694
|
-
this.trigger()?.el.nativeElement.focus();
|
|
2695
|
-
}
|
|
2696
|
-
}
|
|
2697
|
-
}
|
|
2698
|
-
/**
|
|
2699
|
-
* Set the active connection pair when the CDK overlay reports a position change.
|
|
2700
|
-
*
|
|
2701
|
-
* @param event - The position change event containing the new connection pair.
|
|
2702
|
-
*/
|
|
2703
|
-
setPositionPair(event) {
|
|
2704
|
-
this.connectedPositionPair.set(event.connectionPair);
|
|
2705
|
-
}
|
|
2911
|
+
tabs = contentChildren(Tab, ...(ngDevMode ? [{ debugName: "tabs" }] : []));
|
|
2706
2912
|
/**
|
|
2707
|
-
*
|
|
2913
|
+
* Computed array of underlying CDK options for navigation.
|
|
2708
2914
|
*/
|
|
2709
|
-
|
|
2710
|
-
this.trigger()?.active?.set(false);
|
|
2711
|
-
}
|
|
2915
|
+
cdkOptions = computed(() => this.tabs().map((tab) => tab.cdkOption), ...(ngDevMode ? [{ debugName: "cdkOptions" }] : []));
|
|
2712
2916
|
/**
|
|
2713
|
-
*
|
|
2917
|
+
* Keyboard manager that handles arrow navigation between tabs.
|
|
2714
2918
|
*/
|
|
2715
|
-
|
|
2716
|
-
if (this.closeOnClickOutside()) {
|
|
2717
|
-
this.trigger()?.active?.set(false);
|
|
2718
|
-
}
|
|
2719
|
-
}
|
|
2919
|
+
listKeyManager = computed(() => new ActiveDescendantKeyManager(this.cdkOptions()).withWrap().withHorizontalOrientation('ltr'), ...(ngDevMode ? [{ debugName: "listKeyManager" }] : []));
|
|
2720
2920
|
/**
|
|
2721
|
-
*
|
|
2722
|
-
*
|
|
2723
|
-
* @param event - The keyboard event emitted by the overlay.
|
|
2921
|
+
* Move highlight to the previous tab.
|
|
2724
2922
|
*/
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
this.trigger()?.active?.set(false);
|
|
2728
|
-
}
|
|
2923
|
+
previousTab() {
|
|
2924
|
+
this.listKeyManager().setPreviousItemActive();
|
|
2729
2925
|
}
|
|
2730
2926
|
/**
|
|
2731
|
-
*
|
|
2927
|
+
* Move highlight to the next tab.
|
|
2732
2928
|
*/
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
case 'close':
|
|
2736
|
-
this.cdkConnectedOverlay.scrollStrategy = this.scrollStrategyOptions.close();
|
|
2737
|
-
break;
|
|
2738
|
-
case 'reposition':
|
|
2739
|
-
this.cdkConnectedOverlay.scrollStrategy = this.scrollStrategyOptions.reposition();
|
|
2740
|
-
break;
|
|
2741
|
-
case 'block':
|
|
2742
|
-
this.cdkConnectedOverlay.scrollStrategy = this.scrollStrategyOptions.block();
|
|
2743
|
-
break;
|
|
2744
|
-
}
|
|
2929
|
+
nextTab() {
|
|
2930
|
+
this.listKeyManager().setNextItemActive();
|
|
2745
2931
|
}
|
|
2746
2932
|
/**
|
|
2747
|
-
*
|
|
2933
|
+
* Initialize CDK listbox behaviors on component init.
|
|
2748
2934
|
*/
|
|
2749
|
-
|
|
2750
|
-
this.
|
|
2935
|
+
ngOnInit() {
|
|
2936
|
+
this.cdkListbox.useActiveDescendant = true;
|
|
2937
|
+
this.cdkListbox.orientation = 'horizontal';
|
|
2751
2938
|
}
|
|
2752
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type:
|
|
2753
|
-
static
|
|
2939
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Tabs, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2940
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.6", type: Tabs, isStandalone: true, selector: "b-tabs", host: { listeners: { "keydown.arrowLeft": "previousTab()", "keydown.arrowUp": "previousTab()", "keydown.arrowRight": "nextTab()", "keydown.arrowDown": "nextTab()" } }, queries: [{ propertyName: "tabs", predicate: Tab, isSignal: true }], hostDirectives: [{ directive: i1.CdkListbox }], ngImport: i0, template: ` <ng-content /> `, isInline: true });
|
|
2754
2941
|
}
|
|
2755
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type:
|
|
2756
|
-
type:
|
|
2942
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Tabs, decorators: [{
|
|
2943
|
+
type: Component,
|
|
2757
2944
|
args: [{
|
|
2758
|
-
selector: '
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
inputs: [
|
|
2763
|
-
'cdkConnectedOverlayBackdropClass: backdropClass',
|
|
2764
|
-
'cdkConnectedOverlayDisposeOnNavigation: disposeOnNavigation',
|
|
2765
|
-
'cdkConnectedOverlayFlexibleDimensions: flexibleDimensions',
|
|
2766
|
-
'cdkConnectedOverlayGrowAfterOpen: growAfterOpen',
|
|
2767
|
-
'cdkConnectedOverlayHasBackdrop: hasBackdrop',
|
|
2768
|
-
'cdkConnectedOverlayHeight: height',
|
|
2769
|
-
'cdkConnectedOverlayLockPosition: lockPosition',
|
|
2770
|
-
'cdkConnectedOverlayMinHeight: minHeight',
|
|
2771
|
-
'cdkConnectedOverlayMinWidth: minWidth',
|
|
2772
|
-
'cdkConnectedOverlayOffsetX: offsetX',
|
|
2773
|
-
'cdkConnectedOverlayOffsetY: offsetY',
|
|
2774
|
-
'cdkConnectedOverlayOrigin: trigger',
|
|
2775
|
-
'cdkConnectedOverlayPanelClass: panelClass',
|
|
2776
|
-
'cdkConnectedOverlayPositionStrategy: positionStrategy',
|
|
2777
|
-
'cdkConnectedOverlayPush: push',
|
|
2778
|
-
'cdkConnectedOverlayTransformOriginOn: transformOriginSelector',
|
|
2779
|
-
'cdkConnectedOverlayViewportMargin: viewportMargin',
|
|
2780
|
-
'cdkConnectedOverlayWidth: width',
|
|
2781
|
-
],
|
|
2782
|
-
outputs: [
|
|
2783
|
-
'attach: attach',
|
|
2784
|
-
'detach: detach',
|
|
2785
|
-
'overlayKeydown: overlayKeydown',
|
|
2786
|
-
'overlayOutsideClick: overlayOutsideClick',
|
|
2787
|
-
'positionChange: positionChange',
|
|
2788
|
-
],
|
|
2789
|
-
},
|
|
2790
|
-
],
|
|
2945
|
+
selector: 'b-tabs',
|
|
2946
|
+
imports: [],
|
|
2947
|
+
template: ` <ng-content /> `,
|
|
2948
|
+
hostDirectives: [CdkListbox],
|
|
2791
2949
|
host: {
|
|
2792
|
-
'(
|
|
2793
|
-
'(
|
|
2794
|
-
'(
|
|
2795
|
-
'(
|
|
2950
|
+
'(keydown.arrowLeft)': 'previousTab()',
|
|
2951
|
+
'(keydown.arrowUp)': 'previousTab()',
|
|
2952
|
+
'(keydown.arrowRight)': 'nextTab()',
|
|
2953
|
+
'(keydown.arrowDown)': 'nextTab()',
|
|
2796
2954
|
},
|
|
2797
2955
|
}]
|
|
2798
|
-
}],
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
overlayY: 'top',
|
|
2830
|
-
offsetX: 0,
|
|
2831
|
-
offsetY: 4,
|
|
2832
|
-
},
|
|
2833
|
-
'bottom-center': {
|
|
2834
|
-
originX: 'center',
|
|
2835
|
-
originY: 'bottom',
|
|
2836
|
-
overlayX: 'center',
|
|
2837
|
-
overlayY: 'top',
|
|
2838
|
-
offsetX: 0,
|
|
2839
|
-
offsetY: 4,
|
|
2840
|
-
},
|
|
2841
|
-
'bottom-right': {
|
|
2842
|
-
originX: 'end',
|
|
2843
|
-
originY: 'bottom',
|
|
2844
|
-
overlayX: 'end',
|
|
2845
|
-
overlayY: 'top',
|
|
2846
|
-
offsetX: 0,
|
|
2847
|
-
offsetY: 4,
|
|
2848
|
-
},
|
|
2849
|
-
'left-top': {
|
|
2850
|
-
originX: 'start',
|
|
2851
|
-
originY: 'top',
|
|
2852
|
-
overlayX: 'end',
|
|
2853
|
-
overlayY: 'top',
|
|
2854
|
-
offsetX: -4,
|
|
2855
|
-
offsetY: 0,
|
|
2856
|
-
},
|
|
2857
|
-
'left-center': {
|
|
2858
|
-
originX: 'start',
|
|
2859
|
-
originY: 'center',
|
|
2860
|
-
overlayX: 'end',
|
|
2861
|
-
overlayY: 'center',
|
|
2862
|
-
offsetX: -4,
|
|
2863
|
-
offsetY: 0,
|
|
2864
|
-
},
|
|
2865
|
-
'left-bottom': {
|
|
2866
|
-
originX: 'start',
|
|
2867
|
-
originY: 'bottom',
|
|
2868
|
-
overlayX: 'end',
|
|
2869
|
-
overlayY: 'bottom',
|
|
2870
|
-
offsetX: -4,
|
|
2871
|
-
offsetY: 0,
|
|
2872
|
-
},
|
|
2873
|
-
'right-top': {
|
|
2874
|
-
originX: 'end',
|
|
2875
|
-
originY: 'top',
|
|
2876
|
-
overlayX: 'start',
|
|
2877
|
-
overlayY: 'top',
|
|
2878
|
-
offsetX: 4,
|
|
2879
|
-
offsetY: 0,
|
|
2880
|
-
},
|
|
2881
|
-
'right-center': {
|
|
2882
|
-
originX: 'end',
|
|
2883
|
-
originY: 'center',
|
|
2884
|
-
overlayX: 'start',
|
|
2885
|
-
overlayY: 'center',
|
|
2886
|
-
offsetX: 4,
|
|
2887
|
-
offsetY: 0,
|
|
2888
|
-
},
|
|
2889
|
-
'right-bottom': {
|
|
2890
|
-
originX: 'end',
|
|
2891
|
-
originY: 'bottom',
|
|
2892
|
-
overlayX: 'start',
|
|
2893
|
-
overlayY: 'bottom',
|
|
2894
|
-
offsetX: 4,
|
|
2895
|
-
offsetY: 0,
|
|
2896
|
-
},
|
|
2897
|
-
};
|
|
2956
|
+
}], propDecorators: { tabs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => Tab), { isSignal: true }] }] } });
|
|
2957
|
+
|
|
2958
|
+
/**
|
|
2959
|
+
* Wrapper for grouping textarea-related elements vertically.
|
|
2960
|
+
*/
|
|
2961
|
+
class TextareaGroup {
|
|
2962
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TextareaGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2963
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: TextareaGroup, isStandalone: true, selector: "b-textarea-group", ngImport: i0, template: ` <ng-content /> `, isInline: true });
|
|
2964
|
+
}
|
|
2965
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TextareaGroup, decorators: [{
|
|
2966
|
+
type: Component,
|
|
2967
|
+
args: [{
|
|
2968
|
+
selector: 'b-textarea-group',
|
|
2969
|
+
template: ` <ng-content /> `,
|
|
2970
|
+
}]
|
|
2971
|
+
}] });
|
|
2972
|
+
|
|
2973
|
+
/**
|
|
2974
|
+
* A styled textarea component.
|
|
2975
|
+
*/
|
|
2976
|
+
class Textarea {
|
|
2977
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Textarea, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2978
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: Textarea, isStandalone: true, selector: "textarea[b-textarea]", ngImport: i0, template: ``, isInline: true });
|
|
2979
|
+
}
|
|
2980
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Textarea, decorators: [{
|
|
2981
|
+
type: Component,
|
|
2982
|
+
args: [{
|
|
2983
|
+
selector: 'textarea[b-textarea]',
|
|
2984
|
+
template: ``,
|
|
2985
|
+
}]
|
|
2986
|
+
}] });
|
|
2898
2987
|
|
|
2899
2988
|
/**
|
|
2900
2989
|
* Tooltip directive that configures an overlay for displaying tooltip content.
|
|
@@ -2934,33 +3023,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
2934
3023
|
}]
|
|
2935
3024
|
}] });
|
|
2936
3025
|
|
|
2937
|
-
/**
|
|
2938
|
-
* Directive that marks an element as an overlay trigger and toggles its active state on click.
|
|
2939
|
-
*/
|
|
2940
|
-
class OverlayTrigger extends CdkOverlayOrigin {
|
|
2941
|
-
/**
|
|
2942
|
-
* Signal that holds whether the overlay trigger is active.
|
|
2943
|
-
*
|
|
2944
|
-
* @defaultValue false
|
|
2945
|
-
*/
|
|
2946
|
-
active = signal(false, ...(ngDevMode ? [{ debugName: "active" }] : []));
|
|
2947
|
-
/**
|
|
2948
|
-
* Reference to the `ElementRef` of the host element.
|
|
2949
|
-
* This is used to access the native DOM element.
|
|
2950
|
-
*/
|
|
2951
|
-
el = inject(ElementRef);
|
|
2952
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OverlayTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
2953
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: OverlayTrigger, isStandalone: true, selector: "[bOverlayTrigger]", exportAs: ["bOverlayTrigger"], usesInheritance: true, hostDirectives: [{ directive: i1$2.CdkOverlayOrigin }], ngImport: i0 });
|
|
2954
|
-
}
|
|
2955
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OverlayTrigger, decorators: [{
|
|
2956
|
-
type: Directive,
|
|
2957
|
-
args: [{
|
|
2958
|
-
selector: '[bOverlayTrigger]',
|
|
2959
|
-
hostDirectives: [CdkOverlayOrigin],
|
|
2960
|
-
exportAs: 'bOverlayTrigger',
|
|
2961
|
-
}]
|
|
2962
|
-
}] });
|
|
2963
|
-
|
|
2964
3026
|
/**
|
|
2965
3027
|
* Trigger directive that emits activation events for tooltips.
|
|
2966
3028
|
*
|
|
@@ -3624,5 +3686,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
3624
3686
|
* Generated bundle index. Do not edit.
|
|
3625
3687
|
*/
|
|
3626
3688
|
|
|
3627
|
-
export { Alert, Badge, Button, ButtonGroup, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CommandComponent, CommandOptionsComponent, ConnectedOverlay, Dialog, DialogContent, DialogManager, Drawer, Input, InputGroup, Menu, MenuGroup, MenuItem, MenuItemCheckbox, MenuItemRadio, MenuLabel, MenuTriggerDirective, Option, Otp, OtpDigitDirective, Overlay, OverlayOrigin, OverlayTrigger, Range, ResponsiveManager, Select, SelectContent, SelectFilter, SelectTrigger, SelectValue, Sheet, Spinner, SwitchComponent, Tab, Tabs, Textarea, TextareaGroup, ThemeManager, Tooltip, TooltipContent, TooltipTrigger, TranslatePipe, TranslationManager, Tree, TreeNode, Utils };
|
|
3689
|
+
export { Alert, Badge, Button, ButtonGroup, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CommandComponent, CommandOptionsComponent, ConnectedOverlay, Dialog, DialogContent, DialogManager, Drawer, Input, InputGroup, Menu, MenuGroup, MenuItem, MenuItemCheckbox, MenuItemRadio, MenuLabel, MenuTriggerDirective, Option, Otp, OtpDigitDirective, Overlay, OverlayOrigin, OverlayTrigger, Popover, PopoverContent, PopoverTrigger, Range, ResponsiveManager, Select, SelectContent, SelectFilter, SelectTrigger, SelectValue, Sheet, Spinner, SwitchComponent, Tab, Tabs, Textarea, TextareaGroup, ThemeManager, Tooltip, TooltipContent, TooltipTrigger, TranslatePipe, TranslationManager, Tree, TreeNode, Utils };
|
|
3628
3690
|
//# sourceMappingURL=basis-ng-primitives.mjs.map
|