@arsedizioni/ars-utils 22.0.18 → 22.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +3 -1
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-core.mjs +35 -2
- package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.mjs +628 -370
- package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/arsedizioni-ars-utils-clipper.common.d.ts +1 -0
- package/types/arsedizioni-ars-utils-clipper.ui.d.ts +1 -1
- package/types/arsedizioni-ars-utils-core.d.ts +26 -1
- package/types/arsedizioni-ars-utils-ui.d.ts +87 -31
|
@@ -1373,21 +1373,20 @@ class IfBpDirective {
|
|
|
1373
1373
|
return this._aliases().some(alias => this.media.isActive(alias));
|
|
1374
1374
|
}, /* @ts-ignore */
|
|
1375
1375
|
...(ngDevMode ? [{ debugName: "_isActive" }] : /* istanbul ignore next */ []));
|
|
1376
|
-
/** Tracks whether the main view is currently embedded — plain field, not a signal. */
|
|
1377
|
-
this._hasView = false;
|
|
1378
1376
|
effect(() => {
|
|
1379
1377
|
const active = this._isActive();
|
|
1380
1378
|
const elseTpl = this.ifBpElse();
|
|
1381
|
-
|
|
1382
|
-
|
|
1379
|
+
const next = active ? 'main' : elseTpl ? 'else' : 'none';
|
|
1380
|
+
if (next === this._rendered)
|
|
1381
|
+
return; // dirty-check (initial undefined never matches)
|
|
1383
1382
|
this.vcr.clear();
|
|
1384
|
-
if (
|
|
1383
|
+
if (next === 'main') {
|
|
1385
1384
|
this.vcr.createEmbeddedView(this.tpl);
|
|
1386
1385
|
}
|
|
1387
|
-
else if (
|
|
1386
|
+
else if (next === 'else') {
|
|
1388
1387
|
this.vcr.createEmbeddedView(elseTpl);
|
|
1389
1388
|
}
|
|
1390
|
-
this.
|
|
1389
|
+
this._rendered = next;
|
|
1391
1390
|
});
|
|
1392
1391
|
}
|
|
1393
1392
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: IfBpDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -1530,6 +1529,223 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
|
|
|
1530
1529
|
type: Directive
|
|
1531
1530
|
}] });
|
|
1532
1531
|
|
|
1532
|
+
/**
|
|
1533
|
+
* @file fx-layout.directive.ts (Angular 22 — signals)
|
|
1534
|
+
*
|
|
1535
|
+
* [fxLayout] — sets display + flex-direction (+ optional flex-wrap) on the host.
|
|
1536
|
+
* [fxLayoutWrap] — dedicated alias for flex-wrap (original ngx-layout compat).
|
|
1537
|
+
*
|
|
1538
|
+
* ngx-layout parity (ported from @ngbracket layout-validator.ts):
|
|
1539
|
+
* • Value format: "<direction> [wrap] [inline]" in any ngx-accepted spelling
|
|
1540
|
+
* • Wrap aliases: reverse | wrap-reverse | reverse-wrap → wrap-reverse,
|
|
1541
|
+
* no | none | nowrap → nowrap, anything else truthy → wrap
|
|
1542
|
+
* • 'inline' modifier → display: inline-flex
|
|
1543
|
+
* • No wrap token → flex-wrap REMOVED (ngx emits null), not forced to nowrap
|
|
1544
|
+
* • box-sizing: border-box on the container
|
|
1545
|
+
* • display preserved when currently 'none' (so fxHide is never overridden)
|
|
1546
|
+
*
|
|
1547
|
+
* Breakpoint suffixes: canonical + lt-* + gt-* + *-up + *-down
|
|
1548
|
+
*/
|
|
1549
|
+
const LAYOUT_VALUES = ['row', 'column', 'row-reverse', 'column-reverse'];
|
|
1550
|
+
const INLINE = 'inline';
|
|
1551
|
+
/** Port of ngx-layout validateWrapValue(). */
|
|
1552
|
+
function validateWrapValue(value) {
|
|
1553
|
+
if (value) {
|
|
1554
|
+
switch (value.toLowerCase()) {
|
|
1555
|
+
case 'reverse':
|
|
1556
|
+
case 'wrap-reverse':
|
|
1557
|
+
case 'reverse-wrap':
|
|
1558
|
+
return 'wrap-reverse';
|
|
1559
|
+
case 'no':
|
|
1560
|
+
case 'none':
|
|
1561
|
+
case 'nowrap':
|
|
1562
|
+
return 'nowrap';
|
|
1563
|
+
default:
|
|
1564
|
+
return 'wrap';
|
|
1565
|
+
}
|
|
1566
|
+
}
|
|
1567
|
+
return value;
|
|
1568
|
+
}
|
|
1569
|
+
/** Port of ngx-layout validateValue(): [direction, wrap, inline]. */
|
|
1570
|
+
function validateLayoutValue(value) {
|
|
1571
|
+
value = value?.toLowerCase() ?? '';
|
|
1572
|
+
let [direction, wrap, inline] = value.split(' ');
|
|
1573
|
+
if (!LAYOUT_VALUES.find(x => x === direction))
|
|
1574
|
+
direction = LAYOUT_VALUES[0];
|
|
1575
|
+
if (wrap === INLINE) {
|
|
1576
|
+
wrap = inline !== INLINE ? inline : '';
|
|
1577
|
+
inline = INLINE;
|
|
1578
|
+
}
|
|
1579
|
+
return [direction, validateWrapValue(wrap), !!inline];
|
|
1580
|
+
}
|
|
1581
|
+
/** Port of ngx-layout buildLayoutCSS(): null values mean "remove the property". */
|
|
1582
|
+
function buildLayoutCSS(value) {
|
|
1583
|
+
const [direction, wrap, inline] = validateLayoutValue(value);
|
|
1584
|
+
return {
|
|
1585
|
+
'display': inline ? 'inline-flex' : 'flex',
|
|
1586
|
+
'box-sizing': 'border-box',
|
|
1587
|
+
'flex-direction': direction,
|
|
1588
|
+
'flex-wrap': wrap || null,
|
|
1589
|
+
};
|
|
1590
|
+
}
|
|
1591
|
+
/**
|
|
1592
|
+
* Resolves the flex flow of the parent container for a flex child.
|
|
1593
|
+
* Prefers the reactive FxLayoutDirective instance when it sits on the DIRECT
|
|
1594
|
+
* parent element (signal read → re-evaluates with the parent); falls back to
|
|
1595
|
+
* getComputedStyle for plain-CSS flex parents; SSR-safe defaults.
|
|
1596
|
+
*/
|
|
1597
|
+
function resolveParentFlow(host, parentLayout, isBrowser) {
|
|
1598
|
+
if (parentLayout && parentLayout.hostElement === host.parentElement) {
|
|
1599
|
+
return {
|
|
1600
|
+
direction: parentLayout.direction(), // signal: reactive
|
|
1601
|
+
hasWrap: parentLayout.wrap() !== '' && parentLayout.wrap() !== 'nowrap',
|
|
1602
|
+
};
|
|
1603
|
+
}
|
|
1604
|
+
if (isBrowser && host.parentElement) {
|
|
1605
|
+
const cs = getComputedStyle(host.parentElement);
|
|
1606
|
+
return {
|
|
1607
|
+
direction: cs.flexDirection || 'row',
|
|
1608
|
+
hasWrap: !!cs.flexWrap && cs.flexWrap !== 'nowrap',
|
|
1609
|
+
};
|
|
1610
|
+
}
|
|
1611
|
+
return { direction: 'row', hasWrap: false };
|
|
1612
|
+
}
|
|
1613
|
+
class FxLayoutDirective extends ResponsiveBaseDirective {
|
|
1614
|
+
/** Host element, exposed for direct-parent matching by child directives. */
|
|
1615
|
+
get hostElement() { return this.el.nativeElement; }
|
|
1616
|
+
constructor() {
|
|
1617
|
+
super();
|
|
1618
|
+
this.fxLayout = input('row', { ...(ngDevMode ? { debugName: "fxLayout" } : /* istanbul ignore next */ {}), alias: 'fxLayout' });
|
|
1619
|
+
this.xs = input(undefined, { ...(ngDevMode ? { debugName: "xs" } : /* istanbul ignore next */ {}), alias: 'fxLayout.xs' });
|
|
1620
|
+
this.sm = input(undefined, { ...(ngDevMode ? { debugName: "sm" } : /* istanbul ignore next */ {}), alias: 'fxLayout.sm' });
|
|
1621
|
+
this.md = input(undefined, { ...(ngDevMode ? { debugName: "md" } : /* istanbul ignore next */ {}), alias: 'fxLayout.md' });
|
|
1622
|
+
this.lg = input(undefined, { ...(ngDevMode ? { debugName: "lg" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lg' });
|
|
1623
|
+
this.xl = input(undefined, { ...(ngDevMode ? { debugName: "xl" } : /* istanbul ignore next */ {}), alias: 'fxLayout.xl' });
|
|
1624
|
+
this.xxl = input(undefined, { ...(ngDevMode ? { debugName: "xxl" } : /* istanbul ignore next */ {}), alias: 'fxLayout.xxl' });
|
|
1625
|
+
this.ltSm = input(undefined, { ...(ngDevMode ? { debugName: "ltSm" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lt-sm' });
|
|
1626
|
+
this.ltMd = input(undefined, { ...(ngDevMode ? { debugName: "ltMd" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lt-md' });
|
|
1627
|
+
this.ltLg = input(undefined, { ...(ngDevMode ? { debugName: "ltLg" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lt-lg' });
|
|
1628
|
+
this.ltXl = input(undefined, { ...(ngDevMode ? { debugName: "ltXl" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lt-xl' });
|
|
1629
|
+
this.ltXxl = input(undefined, { ...(ngDevMode ? { debugName: "ltXxl" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lt-xxl' });
|
|
1630
|
+
this.gtXs = input(undefined, { ...(ngDevMode ? { debugName: "gtXs" } : /* istanbul ignore next */ {}), alias: 'fxLayout.gt-xs' });
|
|
1631
|
+
this.gtSm = input(undefined, { ...(ngDevMode ? { debugName: "gtSm" } : /* istanbul ignore next */ {}), alias: 'fxLayout.gt-sm' });
|
|
1632
|
+
this.gtMd = input(undefined, { ...(ngDevMode ? { debugName: "gtMd" } : /* istanbul ignore next */ {}), alias: 'fxLayout.gt-md' });
|
|
1633
|
+
this.gtLg = input(undefined, { ...(ngDevMode ? { debugName: "gtLg" } : /* istanbul ignore next */ {}), alias: 'fxLayout.gt-lg' });
|
|
1634
|
+
this.gtXl = input(undefined, { ...(ngDevMode ? { debugName: "gtXl" } : /* istanbul ignore next */ {}), alias: 'fxLayout.gt-xl' });
|
|
1635
|
+
this.smUp = input(undefined, { ...(ngDevMode ? { debugName: "smUp" } : /* istanbul ignore next */ {}), alias: 'fxLayout.sm-up' });
|
|
1636
|
+
this.mdUp = input(undefined, { ...(ngDevMode ? { debugName: "mdUp" } : /* istanbul ignore next */ {}), alias: 'fxLayout.md-up' });
|
|
1637
|
+
this.lgUp = input(undefined, { ...(ngDevMode ? { debugName: "lgUp" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lg-up' });
|
|
1638
|
+
this.xlUp = input(undefined, { ...(ngDevMode ? { debugName: "xlUp" } : /* istanbul ignore next */ {}), alias: 'fxLayout.xl-up' });
|
|
1639
|
+
this.xxlUp = input(undefined, { ...(ngDevMode ? { debugName: "xxlUp" } : /* istanbul ignore next */ {}), alias: 'fxLayout.xxl-up' });
|
|
1640
|
+
this.smDown = input(undefined, { ...(ngDevMode ? { debugName: "smDown" } : /* istanbul ignore next */ {}), alias: 'fxLayout.sm-down' });
|
|
1641
|
+
this.mdDown = input(undefined, { ...(ngDevMode ? { debugName: "mdDown" } : /* istanbul ignore next */ {}), alias: 'fxLayout.md-down' });
|
|
1642
|
+
this.lgDown = input(undefined, { ...(ngDevMode ? { debugName: "lgDown" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lg-down' });
|
|
1643
|
+
this.xlDown = input(undefined, { ...(ngDevMode ? { debugName: "xlDown" } : /* istanbul ignore next */ {}), alias: 'fxLayout.xl-down' });
|
|
1644
|
+
this._parsed = computed(() => validateLayoutValue(resolveAll({ default: this.fxLayout(), xs: this.xs(), sm: this.sm(), md: this.md(),
|
|
1645
|
+
lg: this.lg(), xl: this.xl(), xxl: this.xxl() }, { 'lt-sm': this.ltSm(), 'lt-md': this.ltMd(), 'lt-lg': this.ltLg(),
|
|
1646
|
+
'lt-xl': this.ltXl(), 'lt-xxl': this.ltXxl(),
|
|
1647
|
+
'gt-xs': this.gtXs(), 'gt-sm': this.gtSm(), 'gt-md': this.gtMd(),
|
|
1648
|
+
'gt-lg': this.gtLg(), 'gt-xl': this.gtXl(),
|
|
1649
|
+
'sm-up': this.smUp(), 'md-up': this.mdUp(), 'lg-up': this.lgUp(),
|
|
1650
|
+
'xl-up': this.xlUp(), 'xxl-up': this.xxlUp(),
|
|
1651
|
+
'sm-down': this.smDown(), 'md-down': this.mdDown(),
|
|
1652
|
+
'lg-down': this.lgDown(), 'xl-down': this.xlDown() }, this.media.currentBp(), a => this.media.isActive(a)) ?? 'row'), /* @ts-ignore */
|
|
1653
|
+
...(ngDevMode ? [{ debugName: "_parsed" }] : /* istanbul ignore next */ []));
|
|
1654
|
+
/** Reactive layout parts — readable by FxFlex / FxLayoutAlign / FxFlexOffset. */
|
|
1655
|
+
this.direction = computed(() => this._parsed()[0], /* @ts-ignore */
|
|
1656
|
+
...(ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []));
|
|
1657
|
+
this.wrap = computed(() => this._parsed()[1], /* @ts-ignore */
|
|
1658
|
+
...(ngDevMode ? [{ debugName: "wrap" }] : /* istanbul ignore next */ []));
|
|
1659
|
+
this.inline = computed(() => this._parsed()[2], /* @ts-ignore */
|
|
1660
|
+
...(ngDevMode ? [{ debugName: "inline" }] : /* istanbul ignore next */ []));
|
|
1661
|
+
effect(() => {
|
|
1662
|
+
const [dir, wrap, inline] = this._parsed();
|
|
1663
|
+
// ngx-layout parity: never override display:none set by fxHide
|
|
1664
|
+
// (LayoutStyleBuilder: display === 'none' ? display : css.display)
|
|
1665
|
+
if (this.el.nativeElement.style.display !== 'none') {
|
|
1666
|
+
this.safeSetStyle('display', inline ? 'inline-flex' : 'flex');
|
|
1667
|
+
}
|
|
1668
|
+
this.safeSetStyle('box-sizing', 'border-box');
|
|
1669
|
+
this.safeSetStyle('flex-direction', dir);
|
|
1670
|
+
this.safeSetStyle('flex-wrap', wrap || null);
|
|
1671
|
+
});
|
|
1672
|
+
}
|
|
1673
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxLayoutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1674
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.1", type: FxLayoutDirective, isStandalone: true, selector: "\n [fxLayout],\n [fxLayout.xs],[fxLayout.sm],[fxLayout.md],[fxLayout.lg],[fxLayout.xl],[fxLayout.xxl],\n [fxLayout.lt-sm],[fxLayout.lt-md],[fxLayout.lt-lg],[fxLayout.lt-xl],[fxLayout.lt-xxl],\n [fxLayout.gt-xs],[fxLayout.gt-sm],[fxLayout.gt-md],[fxLayout.gt-lg],[fxLayout.gt-xl],\n [fxLayout.sm-up],[fxLayout.md-up],[fxLayout.lg-up],[fxLayout.xl-up],[fxLayout.xxl-up],\n [fxLayout.sm-down],[fxLayout.md-down],[fxLayout.lg-down],[fxLayout.xl-down]\n ", inputs: { fxLayout: { classPropertyName: "fxLayout", publicName: "fxLayout", isSignal: true, isRequired: false, transformFunction: null }, xs: { classPropertyName: "xs", publicName: "fxLayout.xs", isSignal: true, isRequired: false, transformFunction: null }, sm: { classPropertyName: "sm", publicName: "fxLayout.sm", isSignal: true, isRequired: false, transformFunction: null }, md: { classPropertyName: "md", publicName: "fxLayout.md", isSignal: true, isRequired: false, transformFunction: null }, lg: { classPropertyName: "lg", publicName: "fxLayout.lg", isSignal: true, isRequired: false, transformFunction: null }, xl: { classPropertyName: "xl", publicName: "fxLayout.xl", isSignal: true, isRequired: false, transformFunction: null }, xxl: { classPropertyName: "xxl", publicName: "fxLayout.xxl", isSignal: true, isRequired: false, transformFunction: null }, ltSm: { classPropertyName: "ltSm", publicName: "fxLayout.lt-sm", isSignal: true, isRequired: false, transformFunction: null }, ltMd: { classPropertyName: "ltMd", publicName: "fxLayout.lt-md", isSignal: true, isRequired: false, transformFunction: null }, ltLg: { classPropertyName: "ltLg", publicName: "fxLayout.lt-lg", isSignal: true, isRequired: false, transformFunction: null }, ltXl: { classPropertyName: "ltXl", publicName: "fxLayout.lt-xl", isSignal: true, isRequired: false, transformFunction: null }, ltXxl: { classPropertyName: "ltXxl", publicName: "fxLayout.lt-xxl", isSignal: true, isRequired: false, transformFunction: null }, gtXs: { classPropertyName: "gtXs", publicName: "fxLayout.gt-xs", isSignal: true, isRequired: false, transformFunction: null }, gtSm: { classPropertyName: "gtSm", publicName: "fxLayout.gt-sm", isSignal: true, isRequired: false, transformFunction: null }, gtMd: { classPropertyName: "gtMd", publicName: "fxLayout.gt-md", isSignal: true, isRequired: false, transformFunction: null }, gtLg: { classPropertyName: "gtLg", publicName: "fxLayout.gt-lg", isSignal: true, isRequired: false, transformFunction: null }, gtXl: { classPropertyName: "gtXl", publicName: "fxLayout.gt-xl", isSignal: true, isRequired: false, transformFunction: null }, smUp: { classPropertyName: "smUp", publicName: "fxLayout.sm-up", isSignal: true, isRequired: false, transformFunction: null }, mdUp: { classPropertyName: "mdUp", publicName: "fxLayout.md-up", isSignal: true, isRequired: false, transformFunction: null }, lgUp: { classPropertyName: "lgUp", publicName: "fxLayout.lg-up", isSignal: true, isRequired: false, transformFunction: null }, xlUp: { classPropertyName: "xlUp", publicName: "fxLayout.xl-up", isSignal: true, isRequired: false, transformFunction: null }, xxlUp: { classPropertyName: "xxlUp", publicName: "fxLayout.xxl-up", isSignal: true, isRequired: false, transformFunction: null }, smDown: { classPropertyName: "smDown", publicName: "fxLayout.sm-down", isSignal: true, isRequired: false, transformFunction: null }, mdDown: { classPropertyName: "mdDown", publicName: "fxLayout.md-down", isSignal: true, isRequired: false, transformFunction: null }, lgDown: { classPropertyName: "lgDown", publicName: "fxLayout.lg-down", isSignal: true, isRequired: false, transformFunction: null }, xlDown: { classPropertyName: "xlDown", publicName: "fxLayout.xl-down", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
|
|
1675
|
+
}
|
|
1676
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxLayoutDirective, decorators: [{
|
|
1677
|
+
type: Directive,
|
|
1678
|
+
args: [{
|
|
1679
|
+
selector: `
|
|
1680
|
+
[fxLayout],
|
|
1681
|
+
[fxLayout.xs],[fxLayout.sm],[fxLayout.md],[fxLayout.lg],[fxLayout.xl],[fxLayout.xxl],
|
|
1682
|
+
[fxLayout.lt-sm],[fxLayout.lt-md],[fxLayout.lt-lg],[fxLayout.lt-xl],[fxLayout.lt-xxl],
|
|
1683
|
+
[fxLayout.gt-xs],[fxLayout.gt-sm],[fxLayout.gt-md],[fxLayout.gt-lg],[fxLayout.gt-xl],
|
|
1684
|
+
[fxLayout.sm-up],[fxLayout.md-up],[fxLayout.lg-up],[fxLayout.xl-up],[fxLayout.xxl-up],
|
|
1685
|
+
[fxLayout.sm-down],[fxLayout.md-down],[fxLayout.lg-down],[fxLayout.xl-down]
|
|
1686
|
+
`,
|
|
1687
|
+
standalone: true,
|
|
1688
|
+
}]
|
|
1689
|
+
}], ctorParameters: () => [], propDecorators: { fxLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout", required: false }] }], xs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.xs", required: false }] }], sm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.sm", required: false }] }], md: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.md", required: false }] }], lg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.lg", required: false }] }], xl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.xl", required: false }] }], xxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.xxl", required: false }] }], ltSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.lt-sm", required: false }] }], ltMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.lt-md", required: false }] }], ltLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.lt-lg", required: false }] }], ltXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.lt-xl", required: false }] }], ltXxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.lt-xxl", required: false }] }], gtXs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.gt-xs", required: false }] }], gtSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.gt-sm", required: false }] }], gtMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.gt-md", required: false }] }], gtLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.gt-lg", required: false }] }], gtXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.gt-xl", required: false }] }], smUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.sm-up", required: false }] }], mdUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.md-up", required: false }] }], lgUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.lg-up", required: false }] }], xlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.xl-up", required: false }] }], xxlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.xxl-up", required: false }] }], smDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.sm-down", required: false }] }], mdDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.md-down", required: false }] }], lgDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.lg-down", required: false }] }], xlDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayout.xl-down", required: false }] }] } });
|
|
1690
|
+
class FxLayoutWrapDirective extends ResponsiveBaseDirective {
|
|
1691
|
+
constructor() {
|
|
1692
|
+
super();
|
|
1693
|
+
this.fxLayoutWrap = input('wrap', { ...(ngDevMode ? { debugName: "fxLayoutWrap" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap' });
|
|
1694
|
+
this.xs = input(undefined, { ...(ngDevMode ? { debugName: "xs" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.xs' });
|
|
1695
|
+
this.sm = input(undefined, { ...(ngDevMode ? { debugName: "sm" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.sm' });
|
|
1696
|
+
this.md = input(undefined, { ...(ngDevMode ? { debugName: "md" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.md' });
|
|
1697
|
+
this.lg = input(undefined, { ...(ngDevMode ? { debugName: "lg" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lg' });
|
|
1698
|
+
this.xl = input(undefined, { ...(ngDevMode ? { debugName: "xl" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.xl' });
|
|
1699
|
+
this.xxl = input(undefined, { ...(ngDevMode ? { debugName: "xxl" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.xxl' });
|
|
1700
|
+
this.ltSm = input(undefined, { ...(ngDevMode ? { debugName: "ltSm" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lt-sm' });
|
|
1701
|
+
this.ltMd = input(undefined, { ...(ngDevMode ? { debugName: "ltMd" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lt-md' });
|
|
1702
|
+
this.ltLg = input(undefined, { ...(ngDevMode ? { debugName: "ltLg" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lt-lg' });
|
|
1703
|
+
this.ltXl = input(undefined, { ...(ngDevMode ? { debugName: "ltXl" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lt-xl' });
|
|
1704
|
+
this.ltXxl = input(undefined, { ...(ngDevMode ? { debugName: "ltXxl" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lt-xxl' });
|
|
1705
|
+
this.gtXs = input(undefined, { ...(ngDevMode ? { debugName: "gtXs" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.gt-xs' });
|
|
1706
|
+
this.gtSm = input(undefined, { ...(ngDevMode ? { debugName: "gtSm" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.gt-sm' });
|
|
1707
|
+
this.gtMd = input(undefined, { ...(ngDevMode ? { debugName: "gtMd" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.gt-md' });
|
|
1708
|
+
this.gtLg = input(undefined, { ...(ngDevMode ? { debugName: "gtLg" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.gt-lg' });
|
|
1709
|
+
this.gtXl = input(undefined, { ...(ngDevMode ? { debugName: "gtXl" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.gt-xl' });
|
|
1710
|
+
this.smUp = input(undefined, { ...(ngDevMode ? { debugName: "smUp" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.sm-up' });
|
|
1711
|
+
this.mdUp = input(undefined, { ...(ngDevMode ? { debugName: "mdUp" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.md-up' });
|
|
1712
|
+
this.lgUp = input(undefined, { ...(ngDevMode ? { debugName: "lgUp" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lg-up' });
|
|
1713
|
+
this.xlUp = input(undefined, { ...(ngDevMode ? { debugName: "xlUp" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.xl-up' });
|
|
1714
|
+
this.xxlUp = input(undefined, { ...(ngDevMode ? { debugName: "xxlUp" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.xxl-up' });
|
|
1715
|
+
this.smDown = input(undefined, { ...(ngDevMode ? { debugName: "smDown" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.sm-down' });
|
|
1716
|
+
this.mdDown = input(undefined, { ...(ngDevMode ? { debugName: "mdDown" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.md-down' });
|
|
1717
|
+
this.lgDown = input(undefined, { ...(ngDevMode ? { debugName: "lgDown" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lg-down' });
|
|
1718
|
+
this.xlDown = input(undefined, { ...(ngDevMode ? { debugName: "xlDown" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.xl-down' });
|
|
1719
|
+
this._wrap = computed(() => validateWrapValue(resolveAll({ default: this.fxLayoutWrap(), xs: this.xs(), sm: this.sm(), md: this.md(),
|
|
1720
|
+
lg: this.lg(), xl: this.xl(), xxl: this.xxl() }, { 'lt-sm': this.ltSm(), 'lt-md': this.ltMd(), 'lt-lg': this.ltLg(),
|
|
1721
|
+
'lt-xl': this.ltXl(), 'lt-xxl': this.ltXxl(),
|
|
1722
|
+
'gt-xs': this.gtXs(), 'gt-sm': this.gtSm(), 'gt-md': this.gtMd(),
|
|
1723
|
+
'gt-lg': this.gtLg(), 'gt-xl': this.gtXl(),
|
|
1724
|
+
'sm-up': this.smUp(), 'md-up': this.mdUp(), 'lg-up': this.lgUp(),
|
|
1725
|
+
'xl-up': this.xlUp(), 'xxl-up': this.xxlUp(),
|
|
1726
|
+
'sm-down': this.smDown(), 'md-down': this.mdDown(),
|
|
1727
|
+
'lg-down': this.lgDown(), 'xl-down': this.xlDown() }, this.media.currentBp(), a => this.media.isActive(a)) || 'wrap'), /* @ts-ignore */
|
|
1728
|
+
...(ngDevMode ? [{ debugName: "_wrap" }] : /* istanbul ignore next */ []));
|
|
1729
|
+
effect(() => { this.safeSetStyle('flex-wrap', this._wrap()); });
|
|
1730
|
+
}
|
|
1731
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxLayoutWrapDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1732
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.1", type: FxLayoutWrapDirective, isStandalone: true, selector: "\n [fxLayoutWrap],\n [fxLayoutWrap.xs],[fxLayoutWrap.sm],[fxLayoutWrap.md],[fxLayoutWrap.lg],[fxLayoutWrap.xl],[fxLayoutWrap.xxl],\n [fxLayoutWrap.lt-sm],[fxLayoutWrap.lt-md],[fxLayoutWrap.lt-lg],[fxLayoutWrap.lt-xl],[fxLayoutWrap.lt-xxl],\n [fxLayoutWrap.gt-xs],[fxLayoutWrap.gt-sm],[fxLayoutWrap.gt-md],[fxLayoutWrap.gt-lg],[fxLayoutWrap.gt-xl],\n [fxLayoutWrap.sm-up],[fxLayoutWrap.md-up],[fxLayoutWrap.lg-up],[fxLayoutWrap.xl-up],[fxLayoutWrap.xxl-up],\n [fxLayoutWrap.sm-down],[fxLayoutWrap.md-down],[fxLayoutWrap.lg-down],[fxLayoutWrap.xl-down]\n ", inputs: { fxLayoutWrap: { classPropertyName: "fxLayoutWrap", publicName: "fxLayoutWrap", isSignal: true, isRequired: false, transformFunction: null }, xs: { classPropertyName: "xs", publicName: "fxLayoutWrap.xs", isSignal: true, isRequired: false, transformFunction: null }, sm: { classPropertyName: "sm", publicName: "fxLayoutWrap.sm", isSignal: true, isRequired: false, transformFunction: null }, md: { classPropertyName: "md", publicName: "fxLayoutWrap.md", isSignal: true, isRequired: false, transformFunction: null }, lg: { classPropertyName: "lg", publicName: "fxLayoutWrap.lg", isSignal: true, isRequired: false, transformFunction: null }, xl: { classPropertyName: "xl", publicName: "fxLayoutWrap.xl", isSignal: true, isRequired: false, transformFunction: null }, xxl: { classPropertyName: "xxl", publicName: "fxLayoutWrap.xxl", isSignal: true, isRequired: false, transformFunction: null }, ltSm: { classPropertyName: "ltSm", publicName: "fxLayoutWrap.lt-sm", isSignal: true, isRequired: false, transformFunction: null }, ltMd: { classPropertyName: "ltMd", publicName: "fxLayoutWrap.lt-md", isSignal: true, isRequired: false, transformFunction: null }, ltLg: { classPropertyName: "ltLg", publicName: "fxLayoutWrap.lt-lg", isSignal: true, isRequired: false, transformFunction: null }, ltXl: { classPropertyName: "ltXl", publicName: "fxLayoutWrap.lt-xl", isSignal: true, isRequired: false, transformFunction: null }, ltXxl: { classPropertyName: "ltXxl", publicName: "fxLayoutWrap.lt-xxl", isSignal: true, isRequired: false, transformFunction: null }, gtXs: { classPropertyName: "gtXs", publicName: "fxLayoutWrap.gt-xs", isSignal: true, isRequired: false, transformFunction: null }, gtSm: { classPropertyName: "gtSm", publicName: "fxLayoutWrap.gt-sm", isSignal: true, isRequired: false, transformFunction: null }, gtMd: { classPropertyName: "gtMd", publicName: "fxLayoutWrap.gt-md", isSignal: true, isRequired: false, transformFunction: null }, gtLg: { classPropertyName: "gtLg", publicName: "fxLayoutWrap.gt-lg", isSignal: true, isRequired: false, transformFunction: null }, gtXl: { classPropertyName: "gtXl", publicName: "fxLayoutWrap.gt-xl", isSignal: true, isRequired: false, transformFunction: null }, smUp: { classPropertyName: "smUp", publicName: "fxLayoutWrap.sm-up", isSignal: true, isRequired: false, transformFunction: null }, mdUp: { classPropertyName: "mdUp", publicName: "fxLayoutWrap.md-up", isSignal: true, isRequired: false, transformFunction: null }, lgUp: { classPropertyName: "lgUp", publicName: "fxLayoutWrap.lg-up", isSignal: true, isRequired: false, transformFunction: null }, xlUp: { classPropertyName: "xlUp", publicName: "fxLayoutWrap.xl-up", isSignal: true, isRequired: false, transformFunction: null }, xxlUp: { classPropertyName: "xxlUp", publicName: "fxLayoutWrap.xxl-up", isSignal: true, isRequired: false, transformFunction: null }, smDown: { classPropertyName: "smDown", publicName: "fxLayoutWrap.sm-down", isSignal: true, isRequired: false, transformFunction: null }, mdDown: { classPropertyName: "mdDown", publicName: "fxLayoutWrap.md-down", isSignal: true, isRequired: false, transformFunction: null }, lgDown: { classPropertyName: "lgDown", publicName: "fxLayoutWrap.lg-down", isSignal: true, isRequired: false, transformFunction: null }, xlDown: { classPropertyName: "xlDown", publicName: "fxLayoutWrap.xl-down", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
|
|
1733
|
+
}
|
|
1734
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxLayoutWrapDirective, decorators: [{
|
|
1735
|
+
type: Directive,
|
|
1736
|
+
args: [{
|
|
1737
|
+
selector: `
|
|
1738
|
+
[fxLayoutWrap],
|
|
1739
|
+
[fxLayoutWrap.xs],[fxLayoutWrap.sm],[fxLayoutWrap.md],[fxLayoutWrap.lg],[fxLayoutWrap.xl],[fxLayoutWrap.xxl],
|
|
1740
|
+
[fxLayoutWrap.lt-sm],[fxLayoutWrap.lt-md],[fxLayoutWrap.lt-lg],[fxLayoutWrap.lt-xl],[fxLayoutWrap.lt-xxl],
|
|
1741
|
+
[fxLayoutWrap.gt-xs],[fxLayoutWrap.gt-sm],[fxLayoutWrap.gt-md],[fxLayoutWrap.gt-lg],[fxLayoutWrap.gt-xl],
|
|
1742
|
+
[fxLayoutWrap.sm-up],[fxLayoutWrap.md-up],[fxLayoutWrap.lg-up],[fxLayoutWrap.xl-up],[fxLayoutWrap.xxl-up],
|
|
1743
|
+
[fxLayoutWrap.sm-down],[fxLayoutWrap.md-down],[fxLayoutWrap.lg-down],[fxLayoutWrap.xl-down]
|
|
1744
|
+
`,
|
|
1745
|
+
standalone: true,
|
|
1746
|
+
}]
|
|
1747
|
+
}], ctorParameters: () => [], propDecorators: { fxLayoutWrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap", required: false }] }], xs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.xs", required: false }] }], sm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.sm", required: false }] }], md: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.md", required: false }] }], lg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lg", required: false }] }], xl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.xl", required: false }] }], xxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.xxl", required: false }] }], ltSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lt-sm", required: false }] }], ltMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lt-md", required: false }] }], ltLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lt-lg", required: false }] }], ltXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lt-xl", required: false }] }], ltXxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lt-xxl", required: false }] }], gtXs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.gt-xs", required: false }] }], gtSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.gt-sm", required: false }] }], gtMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.gt-md", required: false }] }], gtLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.gt-lg", required: false }] }], gtXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.gt-xl", required: false }] }], smUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.sm-up", required: false }] }], mdUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.md-up", required: false }] }], lgUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lg-up", required: false }] }], xlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.xl-up", required: false }] }], xxlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.xxl-up", required: false }] }], smDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.sm-down", required: false }] }], mdDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.md-down", required: false }] }], lgDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lg-down", required: false }] }], xlDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.xl-down", required: false }] }] } });
|
|
1748
|
+
|
|
1533
1749
|
/**
|
|
1534
1750
|
* @file fx-flex-extras.directives.ts (Angular 21 — signals)
|
|
1535
1751
|
*
|
|
@@ -1598,13 +1814,13 @@ class FxFlexOrderDirective extends ResponsiveBaseDirective {
|
|
|
1598
1814
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxFlexOrderDirective, decorators: [{
|
|
1599
1815
|
type: Directive,
|
|
1600
1816
|
args: [{
|
|
1601
|
-
selector: `
|
|
1602
|
-
[fxFlexOrder],
|
|
1603
|
-
[fxFlexOrder.xs],[fxFlexOrder.sm],[fxFlexOrder.md],[fxFlexOrder.lg],[fxFlexOrder.xl],[fxFlexOrder.xxl],
|
|
1604
|
-
[fxFlexOrder.lt-sm],[fxFlexOrder.lt-md],[fxFlexOrder.lt-lg],[fxFlexOrder.lt-xl],[fxFlexOrder.lt-xxl],
|
|
1605
|
-
[fxFlexOrder.gt-xs],[fxFlexOrder.gt-sm],[fxFlexOrder.gt-md],[fxFlexOrder.gt-lg],[fxFlexOrder.gt-xl],
|
|
1606
|
-
[fxFlexOrder.sm-up],[fxFlexOrder.md-up],[fxFlexOrder.lg-up],[fxFlexOrder.xl-up],[fxFlexOrder.xxl-up],
|
|
1607
|
-
[fxFlexOrder.sm-down],[fxFlexOrder.md-down],[fxFlexOrder.lg-down],[fxFlexOrder.xl-down]
|
|
1817
|
+
selector: `
|
|
1818
|
+
[fxFlexOrder],
|
|
1819
|
+
[fxFlexOrder.xs],[fxFlexOrder.sm],[fxFlexOrder.md],[fxFlexOrder.lg],[fxFlexOrder.xl],[fxFlexOrder.xxl],
|
|
1820
|
+
[fxFlexOrder.lt-sm],[fxFlexOrder.lt-md],[fxFlexOrder.lt-lg],[fxFlexOrder.lt-xl],[fxFlexOrder.lt-xxl],
|
|
1821
|
+
[fxFlexOrder.gt-xs],[fxFlexOrder.gt-sm],[fxFlexOrder.gt-md],[fxFlexOrder.gt-lg],[fxFlexOrder.gt-xl],
|
|
1822
|
+
[fxFlexOrder.sm-up],[fxFlexOrder.md-up],[fxFlexOrder.lg-up],[fxFlexOrder.xl-up],[fxFlexOrder.xxl-up],
|
|
1823
|
+
[fxFlexOrder.sm-down],[fxFlexOrder.md-down],[fxFlexOrder.lg-down],[fxFlexOrder.xl-down]
|
|
1608
1824
|
`,
|
|
1609
1825
|
standalone: true,
|
|
1610
1826
|
}]
|
|
@@ -1613,6 +1829,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
|
|
|
1613
1829
|
class FxFlexOffsetDirective extends ResponsiveBaseDirective {
|
|
1614
1830
|
constructor() {
|
|
1615
1831
|
super();
|
|
1832
|
+
/** Ancestor FxLayout (matched to the direct parent inside resolveParentFlow). */
|
|
1833
|
+
this.parentLayout = inject(FxLayoutDirective, { skipSelf: true, optional: true });
|
|
1616
1834
|
this.fxFlexOffset = input(undefined, { ...(ngDevMode ? { debugName: "fxFlexOffset" } : /* istanbul ignore next */ {}), alias: 'fxFlexOffset' });
|
|
1617
1835
|
this.xs = input(undefined, { ...(ngDevMode ? { debugName: "xs" } : /* istanbul ignore next */ {}), alias: 'fxFlexOffset.xs' });
|
|
1618
1836
|
this.sm = input(undefined, { ...(ngDevMode ? { debugName: "sm" } : /* istanbul ignore next */ {}), alias: 'fxFlexOffset.sm' });
|
|
@@ -1652,17 +1870,11 @@ class FxFlexOffsetDirective extends ResponsiveBaseDirective {
|
|
|
1652
1870
|
effect(() => {
|
|
1653
1871
|
const v = this._offset();
|
|
1654
1872
|
// ngx-layout parity: when the parent flex container is a column, offset
|
|
1655
|
-
//
|
|
1656
|
-
//
|
|
1657
|
-
//
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
this.safeSetStyle('margin-inline-start', v);
|
|
1661
|
-
return;
|
|
1662
|
-
}
|
|
1663
|
-
const parent = this.el.nativeElement.parentElement;
|
|
1664
|
-
const isColumn = !!parent &&
|
|
1665
|
-
/^column/.test(getComputedStyle(parent).flexDirection || '');
|
|
1873
|
+
// pushes down (margin-top); otherwise it pushes on the inline axis
|
|
1874
|
+
// (margin-inline-start, RTL-safe). Direction comes reactively from the
|
|
1875
|
+
// parent FxLayoutDirective when present, else from getComputedStyle.
|
|
1876
|
+
const { direction } = resolveParentFlow(this.el.nativeElement, this.parentLayout, this.isBrowser);
|
|
1877
|
+
const isColumn = direction.indexOf('column') > -1;
|
|
1666
1878
|
if (isColumn) {
|
|
1667
1879
|
this.safeSetStyle('margin-inline-start', null);
|
|
1668
1880
|
this.safeSetStyle('margin-top', v);
|
|
@@ -1679,13 +1891,13 @@ class FxFlexOffsetDirective extends ResponsiveBaseDirective {
|
|
|
1679
1891
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxFlexOffsetDirective, decorators: [{
|
|
1680
1892
|
type: Directive,
|
|
1681
1893
|
args: [{
|
|
1682
|
-
selector: `
|
|
1683
|
-
[fxFlexOffset],
|
|
1684
|
-
[fxFlexOffset.xs],[fxFlexOffset.sm],[fxFlexOffset.md],[fxFlexOffset.lg],[fxFlexOffset.xl],[fxFlexOffset.xxl],
|
|
1685
|
-
[fxFlexOffset.lt-sm],[fxFlexOffset.lt-md],[fxFlexOffset.lt-lg],[fxFlexOffset.lt-xl],[fxFlexOffset.lt-xxl],
|
|
1686
|
-
[fxFlexOffset.gt-xs],[fxFlexOffset.gt-sm],[fxFlexOffset.gt-md],[fxFlexOffset.gt-lg],[fxFlexOffset.gt-xl],
|
|
1687
|
-
[fxFlexOffset.sm-up],[fxFlexOffset.md-up],[fxFlexOffset.lg-up],[fxFlexOffset.xl-up],[fxFlexOffset.xxl-up],
|
|
1688
|
-
[fxFlexOffset.sm-down],[fxFlexOffset.md-down],[fxFlexOffset.lg-down],[fxFlexOffset.xl-down]
|
|
1894
|
+
selector: `
|
|
1895
|
+
[fxFlexOffset],
|
|
1896
|
+
[fxFlexOffset.xs],[fxFlexOffset.sm],[fxFlexOffset.md],[fxFlexOffset.lg],[fxFlexOffset.xl],[fxFlexOffset.xxl],
|
|
1897
|
+
[fxFlexOffset.lt-sm],[fxFlexOffset.lt-md],[fxFlexOffset.lt-lg],[fxFlexOffset.lt-xl],[fxFlexOffset.lt-xxl],
|
|
1898
|
+
[fxFlexOffset.gt-xs],[fxFlexOffset.gt-sm],[fxFlexOffset.gt-md],[fxFlexOffset.gt-lg],[fxFlexOffset.gt-xl],
|
|
1899
|
+
[fxFlexOffset.sm-up],[fxFlexOffset.md-up],[fxFlexOffset.lg-up],[fxFlexOffset.xl-up],[fxFlexOffset.xxl-up],
|
|
1900
|
+
[fxFlexOffset.sm-down],[fxFlexOffset.md-down],[fxFlexOffset.lg-down],[fxFlexOffset.xl-down]
|
|
1689
1901
|
`,
|
|
1690
1902
|
standalone: true,
|
|
1691
1903
|
}]
|
|
@@ -1746,13 +1958,13 @@ class FxFlexAlignDirective extends ResponsiveBaseDirective {
|
|
|
1746
1958
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxFlexAlignDirective, decorators: [{
|
|
1747
1959
|
type: Directive,
|
|
1748
1960
|
args: [{
|
|
1749
|
-
selector: `
|
|
1750
|
-
[fxFlexAlign],
|
|
1751
|
-
[fxFlexAlign.xs],[fxFlexAlign.sm],[fxFlexAlign.md],[fxFlexAlign.lg],[fxFlexAlign.xl],[fxFlexAlign.xxl],
|
|
1752
|
-
[fxFlexAlign.lt-sm],[fxFlexAlign.lt-md],[fxFlexAlign.lt-lg],[fxFlexAlign.lt-xl],[fxFlexAlign.lt-xxl],
|
|
1753
|
-
[fxFlexAlign.gt-xs],[fxFlexAlign.gt-sm],[fxFlexAlign.gt-md],[fxFlexAlign.gt-lg],[fxFlexAlign.gt-xl],
|
|
1754
|
-
[fxFlexAlign.sm-up],[fxFlexAlign.md-up],[fxFlexAlign.lg-up],[fxFlexAlign.xl-up],[fxFlexAlign.xxl-up],
|
|
1755
|
-
[fxFlexAlign.sm-down],[fxFlexAlign.md-down],[fxFlexAlign.lg-down],[fxFlexAlign.xl-down]
|
|
1961
|
+
selector: `
|
|
1962
|
+
[fxFlexAlign],
|
|
1963
|
+
[fxFlexAlign.xs],[fxFlexAlign.sm],[fxFlexAlign.md],[fxFlexAlign.lg],[fxFlexAlign.xl],[fxFlexAlign.xxl],
|
|
1964
|
+
[fxFlexAlign.lt-sm],[fxFlexAlign.lt-md],[fxFlexAlign.lt-lg],[fxFlexAlign.lt-xl],[fxFlexAlign.lt-xxl],
|
|
1965
|
+
[fxFlexAlign.gt-xs],[fxFlexAlign.gt-sm],[fxFlexAlign.gt-md],[fxFlexAlign.gt-lg],[fxFlexAlign.gt-xl],
|
|
1966
|
+
[fxFlexAlign.sm-up],[fxFlexAlign.md-up],[fxFlexAlign.lg-up],[fxFlexAlign.xl-up],[fxFlexAlign.xxl-up],
|
|
1967
|
+
[fxFlexAlign.sm-down],[fxFlexAlign.md-down],[fxFlexAlign.lg-down],[fxFlexAlign.xl-down]
|
|
1756
1968
|
`,
|
|
1757
1969
|
standalone: true,
|
|
1758
1970
|
}]
|
|
@@ -1834,72 +2046,171 @@ class FxFlexFillDirective extends ResponsiveBaseDirective {
|
|
|
1834
2046
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxFlexFillDirective, decorators: [{
|
|
1835
2047
|
type: Directive,
|
|
1836
2048
|
args: [{
|
|
1837
|
-
selector: `
|
|
1838
|
-
[fxFlexFill],[fxFill],
|
|
1839
|
-
[fxFlexFill.xs],[fxFlexFill.sm],[fxFlexFill.md],[fxFlexFill.lg],[fxFlexFill.xl],[fxFlexFill.xxl],
|
|
1840
|
-
[fxFlexFill.lt-sm],[fxFlexFill.lt-md],[fxFlexFill.lt-lg],[fxFlexFill.lt-xl],[fxFlexFill.lt-xxl],
|
|
1841
|
-
[fxFlexFill.gt-xs],[fxFlexFill.gt-sm],[fxFlexFill.gt-md],[fxFlexFill.gt-lg],[fxFlexFill.gt-xl],
|
|
1842
|
-
[fxFlexFill.sm-up],[fxFlexFill.md-up],[fxFlexFill.lg-up],[fxFlexFill.xl-up],[fxFlexFill.xxl-up],
|
|
1843
|
-
[fxFlexFill.sm-down],[fxFlexFill.md-down],[fxFlexFill.lg-down],[fxFlexFill.xl-down]
|
|
2049
|
+
selector: `
|
|
2050
|
+
[fxFlexFill],[fxFill],
|
|
2051
|
+
[fxFlexFill.xs],[fxFlexFill.sm],[fxFlexFill.md],[fxFlexFill.lg],[fxFlexFill.xl],[fxFlexFill.xxl],
|
|
2052
|
+
[fxFlexFill.lt-sm],[fxFlexFill.lt-md],[fxFlexFill.lt-lg],[fxFlexFill.lt-xl],[fxFlexFill.lt-xxl],
|
|
2053
|
+
[fxFlexFill.gt-xs],[fxFlexFill.gt-sm],[fxFlexFill.gt-md],[fxFlexFill.gt-lg],[fxFlexFill.gt-xl],
|
|
2054
|
+
[fxFlexFill.sm-up],[fxFlexFill.md-up],[fxFlexFill.lg-up],[fxFlexFill.xl-up],[fxFlexFill.xxl-up],
|
|
2055
|
+
[fxFlexFill.sm-down],[fxFlexFill.md-down],[fxFlexFill.lg-down],[fxFlexFill.xl-down]
|
|
1844
2056
|
`,
|
|
1845
2057
|
standalone: true,
|
|
1846
2058
|
}]
|
|
1847
2059
|
}], ctorParameters: () => [], propDecorators: { fxFlexFill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill", required: false }] }], fxFill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFill", required: false }] }], xs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.xs", required: false }] }], sm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.sm", required: false }] }], md: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.md", required: false }] }], lg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.lg", required: false }] }], xl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.xl", required: false }] }], xxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.xxl", required: false }] }], ltSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.lt-sm", required: false }] }], ltMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.lt-md", required: false }] }], ltLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.lt-lg", required: false }] }], ltXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.lt-xl", required: false }] }], ltXxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.lt-xxl", required: false }] }], gtXs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.gt-xs", required: false }] }], gtSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.gt-sm", required: false }] }], gtMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.gt-md", required: false }] }], gtLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.gt-lg", required: false }] }], gtXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.gt-xl", required: false }] }], smUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.sm-up", required: false }] }], mdUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.md-up", required: false }] }], lgUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.lg-up", required: false }] }], xlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.xl-up", required: false }] }], xxlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.xxl-up", required: false }] }], smDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.sm-down", required: false }] }], mdDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.md-down", required: false }] }], lgDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.lg-down", required: false }] }], xlDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxFlexFill.xl-down", required: false }] }] } });
|
|
1848
2060
|
|
|
1849
2061
|
/**
|
|
1850
|
-
* @file fx-flex.directive.ts (Angular
|
|
2062
|
+
* @file fx-flex.directive.ts (Angular 22 — signals)
|
|
1851
2063
|
*
|
|
1852
|
-
* [fxFlex]
|
|
2064
|
+
* [fxFlex] — flex shorthand on a flex child element.
|
|
1853
2065
|
*
|
|
1854
|
-
*
|
|
1855
|
-
*
|
|
1856
|
-
* •
|
|
1857
|
-
* •
|
|
1858
|
-
* •
|
|
2066
|
+
* The CSS builder is a faithful port of @ngbracket/ngx-layout
|
|
2067
|
+
* FlexStyleBuilder.buildStyles + validateBasis, including:
|
|
2068
|
+
* • direction-aware min/max (max-width vs max-height by parent flow)
|
|
2069
|
+
* • percentage basis → flex: G S 100% + max-* capped to the percentage
|
|
2070
|
+
* • fixed units → flex: G S <px> + min/max-* locks
|
|
2071
|
+
* • empty basis → '0%' in row, '0.000000001px' in column (useColumnBasisZero)
|
|
2072
|
+
* • calc() support (flex-grow/shrink/basis split, operator padding)
|
|
2073
|
+
* • wrap-container basis rewrite (ngx issue 660)
|
|
1859
2074
|
*
|
|
1860
|
-
*
|
|
1861
|
-
*
|
|
1862
|
-
* "
|
|
1863
|
-
*
|
|
1864
|
-
* "grow" → flex: 1 1 100%
|
|
1865
|
-
* "nogrow" → flex: 0 1 auto
|
|
1866
|
-
* "noshrink" → flex: 1 0 auto
|
|
1867
|
-
* "50%" → flex: 1 1 50%
|
|
1868
|
-
* "50" → flex: 1 1 50% (unitless normalized to %)
|
|
1869
|
-
* "200px" → flex: 1 1 200px
|
|
1870
|
-
* "0 0 200px" → flex: 0 0 200px (full shorthand passthrough)
|
|
2075
|
+
* Extensions beyond ngx-layout (documented, opt-in by syntax):
|
|
2076
|
+
* • fxFlex="*" → behaves like fxFlex="auto" (1 1 auto)
|
|
2077
|
+
* • fxFlex="" + a SIBLING with fxFlex="*" → this element gets 0 0 auto
|
|
2078
|
+
* (static-attribute detection only; property bindings are not seen)
|
|
1871
2079
|
*
|
|
1872
|
-
* Breakpoint suffixes:
|
|
1873
|
-
* Canonical : .xs .sm .md .lg .xl .xxl
|
|
1874
|
-
* lt-* : .lt-sm .lt-md .lt-lg .lt-xl .lt-xxl
|
|
1875
|
-
* gt-* : .gt-xs .gt-sm .gt-md .gt-lg .gt-xl
|
|
1876
|
-
* *-up : .sm-up .md-up .lg-up .xl-up .xxl-up
|
|
1877
|
-
* *-down : .sm-down .md-down .lg-down .xl-down
|
|
2080
|
+
* Breakpoint suffixes: canonical + lt-* + gt-* + *-up + *-down
|
|
1878
2081
|
*/
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
if (
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
if (
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
2082
|
+
// ─── Ports of ngx-layout basis-validator.ts ──────────────────────────────────
|
|
2083
|
+
/** Pads calc() operators with whitespace (ngx _validateCalcValue). */
|
|
2084
|
+
function validateCalcValue(calc) {
|
|
2085
|
+
return calc.replace(/[\s]/g, '').replace(/[\/\*\+\-]/g, ' $& ');
|
|
2086
|
+
}
|
|
2087
|
+
/** Port of ngx validateBasis(): returns [grow, shrink, basis]. */
|
|
2088
|
+
function validateBasis(basis, grow = '1', shrink = '1') {
|
|
2089
|
+
let parts = [grow, shrink, basis];
|
|
2090
|
+
const j = basis.indexOf('calc');
|
|
2091
|
+
if (j > 0) {
|
|
2092
|
+
parts[2] = validateCalcValue(basis.substring(j).trim());
|
|
2093
|
+
const matches = basis.substring(0, j).trim().split(' ');
|
|
2094
|
+
if (matches.length === 2) {
|
|
2095
|
+
parts[0] = matches[0];
|
|
2096
|
+
parts[1] = matches[1];
|
|
2097
|
+
}
|
|
2098
|
+
}
|
|
2099
|
+
else if (j === 0) {
|
|
2100
|
+
parts[2] = validateCalcValue(basis.trim());
|
|
2101
|
+
}
|
|
2102
|
+
else {
|
|
2103
|
+
const matches = basis.split(' ');
|
|
2104
|
+
parts = matches.length === 3 ? matches : [grow, shrink, basis];
|
|
2105
|
+
}
|
|
2106
|
+
return parts;
|
|
2107
|
+
}
|
|
2108
|
+
// ─── Port of ngx-layout FlexStyleBuilder.buildStyles ─────────────────────────
|
|
2109
|
+
const CLEAR_STYLES = {
|
|
2110
|
+
'max-width': null, 'max-height': null, 'min-width': null, 'min-height': null,
|
|
2111
|
+
};
|
|
2112
|
+
/**
|
|
2113
|
+
* Builds the complete flex style map for a child, given the raw fxFlex value
|
|
2114
|
+
* and the parent flow. `null` values mean "remove this property".
|
|
2115
|
+
* Matches ngx-layout output exactly (useColumnBasisZero = true, the default).
|
|
2116
|
+
*/
|
|
2117
|
+
function buildFlexStyles(value, direction, hasWrap) {
|
|
2118
|
+
const isHorizontal = direction.indexOf('row') > -1 || direction.indexOf('column') === -1;
|
|
2119
|
+
const parts = validateBasis(String(value).replace(';', ''));
|
|
2120
|
+
let grow = parts[0];
|
|
2121
|
+
let shrink = parts[1];
|
|
2122
|
+
let basis = parts[2];
|
|
2123
|
+
const max = isHorizontal ? 'max-width' : 'max-height';
|
|
2124
|
+
const min = isHorizontal ? 'min-width' : 'min-height';
|
|
2125
|
+
const hasCalc = String(basis).indexOf('calc') > -1;
|
|
2126
|
+
const usingCalc = hasCalc || basis === 'auto';
|
|
2127
|
+
const isPercent = String(basis).indexOf('%') > -1 && !hasCalc;
|
|
2128
|
+
const hasUnits = String(basis).indexOf('px') > -1 || String(basis).indexOf('rem') > -1 ||
|
|
2129
|
+
String(basis).indexOf('em') > -1 || String(basis).indexOf('vw') > -1 ||
|
|
2130
|
+
String(basis).indexOf('vh') > -1;
|
|
2131
|
+
let isValue = hasCalc || hasUnits;
|
|
2132
|
+
// eslint-disable-next-line eqeqeq
|
|
2133
|
+
grow = grow == '0' ? 0 : grow;
|
|
2134
|
+
// eslint-disable-next-line eqeqeq
|
|
2135
|
+
shrink = shrink == '0' ? 0 : shrink;
|
|
2136
|
+
const isFixed = !grow && !shrink;
|
|
2137
|
+
let css = {};
|
|
2138
|
+
switch (basis || '') {
|
|
2139
|
+
case '':
|
|
2140
|
+
// useColumnBasisZero default = true (ngx LAYOUT_CONFIG default)
|
|
2141
|
+
basis = isHorizontal ? '0%' : '0.000000001px';
|
|
2142
|
+
break;
|
|
2143
|
+
case 'initial':
|
|
2144
|
+
case 'nogrow':
|
|
2145
|
+
grow = 0;
|
|
2146
|
+
basis = 'auto';
|
|
2147
|
+
break;
|
|
2148
|
+
case 'grow':
|
|
2149
|
+
basis = '100%';
|
|
2150
|
+
break;
|
|
2151
|
+
case 'noshrink':
|
|
2152
|
+
shrink = 0;
|
|
2153
|
+
basis = 'auto';
|
|
2154
|
+
break;
|
|
2155
|
+
case 'auto':
|
|
2156
|
+
break;
|
|
2157
|
+
case 'none':
|
|
2158
|
+
grow = 0;
|
|
2159
|
+
shrink = 0;
|
|
2160
|
+
basis = 'auto';
|
|
2161
|
+
break;
|
|
2162
|
+
default:
|
|
2163
|
+
if (!isValue && !isPercent && !isNaN(basis)) {
|
|
2164
|
+
basis = basis + '%';
|
|
2165
|
+
}
|
|
2166
|
+
if (basis === '0%')
|
|
2167
|
+
isValue = true; // ngx fix #280
|
|
2168
|
+
if (basis === '0px')
|
|
2169
|
+
basis = '0%';
|
|
2170
|
+
if (hasCalc) { // ngx fix #5345
|
|
2171
|
+
css = { ...CLEAR_STYLES, 'flex-grow': grow, 'flex-shrink': shrink,
|
|
2172
|
+
'flex-basis': isValue ? basis : '100%' };
|
|
2173
|
+
}
|
|
2174
|
+
else {
|
|
2175
|
+
css = { ...CLEAR_STYLES, flex: `${grow} ${shrink} ${isValue ? basis : '100%'}` };
|
|
2176
|
+
}
|
|
2177
|
+
break;
|
|
2178
|
+
}
|
|
2179
|
+
if (!(css['flex'] || css['flex-grow'])) {
|
|
2180
|
+
if (hasCalc) {
|
|
2181
|
+
css = { ...CLEAR_STYLES, 'flex-grow': grow, 'flex-shrink': shrink, 'flex-basis': basis };
|
|
2182
|
+
}
|
|
2183
|
+
else {
|
|
2184
|
+
css = { ...CLEAR_STYLES, flex: `${grow} ${shrink} ${basis}` };
|
|
2185
|
+
}
|
|
2186
|
+
}
|
|
2187
|
+
// ngx fixes #277 / #534 / #728
|
|
2188
|
+
if (basis !== '0%' && basis !== '0px' && basis !== '0.000000001px' && basis !== 'auto') {
|
|
2189
|
+
css[min] = isFixed || (isValue && grow) ? basis : null;
|
|
2190
|
+
css[max] = isFixed || (!usingCalc && shrink) ? basis : null;
|
|
2191
|
+
}
|
|
2192
|
+
if (!css[min] && !css[max]) {
|
|
2193
|
+
// ngx fix #528
|
|
2194
|
+
if (hasCalc) {
|
|
2195
|
+
css = { ...CLEAR_STYLES, 'flex-grow': grow, 'flex-shrink': shrink, 'flex-basis': basis };
|
|
2196
|
+
}
|
|
2197
|
+
else {
|
|
2198
|
+
css = { ...CLEAR_STYLES, flex: `${grow} ${shrink} ${basis}` };
|
|
2199
|
+
}
|
|
2200
|
+
}
|
|
2201
|
+
else if (hasWrap) {
|
|
2202
|
+
// ngx fix #660
|
|
2203
|
+
css[hasCalc ? 'flex-basis' : 'flex'] = css[max]
|
|
2204
|
+
? (hasCalc ? css[max] : `${grow} ${shrink} ${css[max]}`)
|
|
2205
|
+
: (hasCalc ? css[min] : `${grow} ${shrink} ${css[min]}`);
|
|
2206
|
+
}
|
|
2207
|
+
// Normalize numbers to strings for the renderer
|
|
2208
|
+
const out = {};
|
|
2209
|
+
for (const [k, v] of Object.entries(css))
|
|
2210
|
+
out[k] = v === null ? null : String(v);
|
|
2211
|
+
return out;
|
|
1901
2212
|
}
|
|
1902
|
-
/**
|
|
2213
|
+
/** Extension: true when a sibling element declares fxFlex="*" (static attribute). */
|
|
1903
2214
|
function parentHasStar(el) {
|
|
1904
2215
|
const parent = el.parentElement;
|
|
1905
2216
|
if (!parent)
|
|
@@ -1909,7 +2220,8 @@ function parentHasStar(el) {
|
|
|
1909
2220
|
class FxFlexDirective extends ResponsiveBaseDirective {
|
|
1910
2221
|
constructor() {
|
|
1911
2222
|
super();
|
|
1912
|
-
|
|
2223
|
+
/** Direct ancestor FxLayout (any level); matched to the direct parent in the effect. */
|
|
2224
|
+
this.parentLayout = inject(FxLayoutDirective, { skipSelf: true, optional: true });
|
|
1913
2225
|
this.fxFlex = input(undefined, { ...(ngDevMode ? { debugName: "fxFlex" } : /* istanbul ignore next */ {}), alias: 'fxFlex' });
|
|
1914
2226
|
this.xs = input(undefined, { ...(ngDevMode ? { debugName: "xs" } : /* istanbul ignore next */ {}), alias: 'fxFlex.xs' });
|
|
1915
2227
|
this.sm = input(undefined, { ...(ngDevMode ? { debugName: "sm" } : /* istanbul ignore next */ {}), alias: 'fxFlex.sm' });
|
|
@@ -1917,32 +2229,25 @@ class FxFlexDirective extends ResponsiveBaseDirective {
|
|
|
1917
2229
|
this.lg = input(undefined, { ...(ngDevMode ? { debugName: "lg" } : /* istanbul ignore next */ {}), alias: 'fxFlex.lg' });
|
|
1918
2230
|
this.xl = input(undefined, { ...(ngDevMode ? { debugName: "xl" } : /* istanbul ignore next */ {}), alias: 'fxFlex.xl' });
|
|
1919
2231
|
this.xxl = input(undefined, { ...(ngDevMode ? { debugName: "xxl" } : /* istanbul ignore next */ {}), alias: 'fxFlex.xxl' });
|
|
1920
|
-
// ── lt-* ─────────────────────────────────────────────────────────────────
|
|
1921
2232
|
this.ltSm = input(undefined, { ...(ngDevMode ? { debugName: "ltSm" } : /* istanbul ignore next */ {}), alias: 'fxFlex.lt-sm' });
|
|
1922
2233
|
this.ltMd = input(undefined, { ...(ngDevMode ? { debugName: "ltMd" } : /* istanbul ignore next */ {}), alias: 'fxFlex.lt-md' });
|
|
1923
2234
|
this.ltLg = input(undefined, { ...(ngDevMode ? { debugName: "ltLg" } : /* istanbul ignore next */ {}), alias: 'fxFlex.lt-lg' });
|
|
1924
2235
|
this.ltXl = input(undefined, { ...(ngDevMode ? { debugName: "ltXl" } : /* istanbul ignore next */ {}), alias: 'fxFlex.lt-xl' });
|
|
1925
2236
|
this.ltXxl = input(undefined, { ...(ngDevMode ? { debugName: "ltXxl" } : /* istanbul ignore next */ {}), alias: 'fxFlex.lt-xxl' });
|
|
1926
|
-
// ── gt-* ─────────────────────────────────────────────────────────────────
|
|
1927
2237
|
this.gtXs = input(undefined, { ...(ngDevMode ? { debugName: "gtXs" } : /* istanbul ignore next */ {}), alias: 'fxFlex.gt-xs' });
|
|
1928
2238
|
this.gtSm = input(undefined, { ...(ngDevMode ? { debugName: "gtSm" } : /* istanbul ignore next */ {}), alias: 'fxFlex.gt-sm' });
|
|
1929
2239
|
this.gtMd = input(undefined, { ...(ngDevMode ? { debugName: "gtMd" } : /* istanbul ignore next */ {}), alias: 'fxFlex.gt-md' });
|
|
1930
2240
|
this.gtLg = input(undefined, { ...(ngDevMode ? { debugName: "gtLg" } : /* istanbul ignore next */ {}), alias: 'fxFlex.gt-lg' });
|
|
1931
2241
|
this.gtXl = input(undefined, { ...(ngDevMode ? { debugName: "gtXl" } : /* istanbul ignore next */ {}), alias: 'fxFlex.gt-xl' });
|
|
1932
|
-
// ── *-up ─────────────────────────────────────────────────────────────────
|
|
1933
2242
|
this.smUp = input(undefined, { ...(ngDevMode ? { debugName: "smUp" } : /* istanbul ignore next */ {}), alias: 'fxFlex.sm-up' });
|
|
1934
2243
|
this.mdUp = input(undefined, { ...(ngDevMode ? { debugName: "mdUp" } : /* istanbul ignore next */ {}), alias: 'fxFlex.md-up' });
|
|
1935
2244
|
this.lgUp = input(undefined, { ...(ngDevMode ? { debugName: "lgUp" } : /* istanbul ignore next */ {}), alias: 'fxFlex.lg-up' });
|
|
1936
2245
|
this.xlUp = input(undefined, { ...(ngDevMode ? { debugName: "xlUp" } : /* istanbul ignore next */ {}), alias: 'fxFlex.xl-up' });
|
|
1937
2246
|
this.xxlUp = input(undefined, { ...(ngDevMode ? { debugName: "xxlUp" } : /* istanbul ignore next */ {}), alias: 'fxFlex.xxl-up' });
|
|
1938
|
-
// ── *-down ───────────────────────────────────────────────────────────────
|
|
1939
2247
|
this.smDown = input(undefined, { ...(ngDevMode ? { debugName: "smDown" } : /* istanbul ignore next */ {}), alias: 'fxFlex.sm-down' });
|
|
1940
2248
|
this.mdDown = input(undefined, { ...(ngDevMode ? { debugName: "mdDown" } : /* istanbul ignore next */ {}), alias: 'fxFlex.md-down' });
|
|
1941
2249
|
this.lgDown = input(undefined, { ...(ngDevMode ? { debugName: "lgDown" } : /* istanbul ignore next */ {}), alias: 'fxFlex.lg-down' });
|
|
1942
2250
|
this.xlDown = input(undefined, { ...(ngDevMode ? { debugName: "xlDown" } : /* istanbul ignore next */ {}), alias: 'fxFlex.xl-down' });
|
|
1943
|
-
// ── Derived CSS value ──────────────────────────────────────────────────────
|
|
1944
|
-
// Inlined single computed: Angular tracks each input() individually,
|
|
1945
|
-
// so _flexCss only recomputes when a signal it actually reads changes.
|
|
1946
2251
|
this._rawFlex = computed(() => resolveAll({ default: this.fxFlex(), xs: this.xs(), sm: this.sm(), md: this.md(),
|
|
1947
2252
|
lg: this.lg(), xl: this.xl(), xxl: this.xxl() }, { 'lt-sm': this.ltSm(), 'lt-md': this.ltMd(), 'lt-lg': this.ltLg(),
|
|
1948
2253
|
'lt-xl': this.ltXl(), 'lt-xxl': this.ltXxl(),
|
|
@@ -1953,22 +2258,42 @@ class FxFlexDirective extends ResponsiveBaseDirective {
|
|
|
1953
2258
|
'sm-down': this.smDown(), 'md-down': this.mdDown(),
|
|
1954
2259
|
'lg-down': this.lgDown(), 'xl-down': this.xlDown() }, this.media.currentBp(), a => this.media.isActive(a)), /* @ts-ignore */
|
|
1955
2260
|
...(ngDevMode ? [{ debugName: "_rawFlex" }] : /* istanbul ignore next */ []));
|
|
2261
|
+
/** CSS properties applied on the last effect run (for stale cleanup). */
|
|
2262
|
+
this._applied = new Set();
|
|
1956
2263
|
effect(() => {
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
//
|
|
1960
|
-
// (flex: 0 1 auto) applies and justify-content can distribute the remaining space.
|
|
2264
|
+
let raw = this._rawFlex();
|
|
2265
|
+
const el = this.el.nativeElement;
|
|
2266
|
+
// No rule matches the current breakpoint → remove everything we applied
|
|
1961
2267
|
if (raw === undefined) {
|
|
1962
|
-
this.
|
|
1963
|
-
|
|
2268
|
+
for (const prop of this._applied)
|
|
2269
|
+
this.r2.removeStyle(el, prop);
|
|
2270
|
+
this._applied.clear();
|
|
1964
2271
|
return;
|
|
1965
2272
|
}
|
|
1966
|
-
//
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
2273
|
+
// Extensions (non-ngx, documented in the header)
|
|
2274
|
+
if (raw === '*')
|
|
2275
|
+
raw = 'auto';
|
|
2276
|
+
else if (raw === '' && this.isBrowser && parentHasStar(el))
|
|
2277
|
+
raw = 'none'; // 0 0 auto
|
|
2278
|
+
// Parent flow: reactive via FxLayoutDirective signals when it is the
|
|
2279
|
+
// direct parent; getComputedStyle fallback for plain-CSS flex parents.
|
|
2280
|
+
const { direction, hasWrap } = resolveParentFlow(el, this.parentLayout, this.isBrowser);
|
|
2281
|
+
const styles = buildFlexStyles(raw, direction, hasWrap);
|
|
2282
|
+
const nextKeys = new Set();
|
|
2283
|
+
for (const [prop, value] of Object.entries(styles)) {
|
|
2284
|
+
if (value === null) {
|
|
2285
|
+
this.r2.removeStyle(el, prop);
|
|
2286
|
+
}
|
|
2287
|
+
else {
|
|
2288
|
+
this.r2.setStyle(el, prop, value);
|
|
2289
|
+
nextKeys.add(prop);
|
|
2290
|
+
}
|
|
2291
|
+
}
|
|
2292
|
+
for (const prop of this._applied) {
|
|
2293
|
+
if (!nextKeys.has(prop))
|
|
2294
|
+
this.r2.removeStyle(el, prop);
|
|
2295
|
+
}
|
|
2296
|
+
this._applied = nextKeys;
|
|
1972
2297
|
});
|
|
1973
2298
|
}
|
|
1974
2299
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxFlexDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -2150,13 +2475,13 @@ class FxGridDirective extends ResponsiveBaseDirective {
|
|
|
2150
2475
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxGridDirective, decorators: [{
|
|
2151
2476
|
type: Directive,
|
|
2152
2477
|
args: [{
|
|
2153
|
-
selector: `
|
|
2154
|
-
[fxGrid],
|
|
2155
|
-
[fxGrid.xs],[fxGrid.sm],[fxGrid.md],[fxGrid.lg],[fxGrid.xl],[fxGrid.xxl],
|
|
2156
|
-
[fxGrid.lt-sm],[fxGrid.lt-md],[fxGrid.lt-lg],[fxGrid.lt-xl],[fxGrid.lt-xxl],
|
|
2157
|
-
[fxGrid.gt-xs],[fxGrid.gt-sm],[fxGrid.gt-md],[fxGrid.gt-lg],[fxGrid.gt-xl],
|
|
2158
|
-
[fxGrid.sm-up],[fxGrid.md-up],[fxGrid.lg-up],[fxGrid.xl-up],[fxGrid.xxl-up],
|
|
2159
|
-
[fxGrid.sm-down],[fxGrid.md-down],[fxGrid.lg-down],[fxGrid.xl-down]
|
|
2478
|
+
selector: `
|
|
2479
|
+
[fxGrid],
|
|
2480
|
+
[fxGrid.xs],[fxGrid.sm],[fxGrid.md],[fxGrid.lg],[fxGrid.xl],[fxGrid.xxl],
|
|
2481
|
+
[fxGrid.lt-sm],[fxGrid.lt-md],[fxGrid.lt-lg],[fxGrid.lt-xl],[fxGrid.lt-xxl],
|
|
2482
|
+
[fxGrid.gt-xs],[fxGrid.gt-sm],[fxGrid.gt-md],[fxGrid.gt-lg],[fxGrid.gt-xl],
|
|
2483
|
+
[fxGrid.sm-up],[fxGrid.md-up],[fxGrid.lg-up],[fxGrid.xl-up],[fxGrid.xxl-up],
|
|
2484
|
+
[fxGrid.sm-down],[fxGrid.md-down],[fxGrid.lg-down],[fxGrid.xl-down]
|
|
2160
2485
|
`,
|
|
2161
2486
|
standalone: true,
|
|
2162
2487
|
host: { '[style.display]': '"grid"' },
|
|
@@ -2214,13 +2539,13 @@ class FxGridColumnDirective extends ResponsiveBaseDirective {
|
|
|
2214
2539
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxGridColumnDirective, decorators: [{
|
|
2215
2540
|
type: Directive,
|
|
2216
2541
|
args: [{
|
|
2217
|
-
selector: `
|
|
2218
|
-
[fxGridColumn],
|
|
2219
|
-
[fxGridColumn.xs],[fxGridColumn.sm],[fxGridColumn.md],[fxGridColumn.lg],[fxGridColumn.xl],[fxGridColumn.xxl],
|
|
2220
|
-
[fxGridColumn.lt-sm],[fxGridColumn.lt-md],[fxGridColumn.lt-lg],[fxGridColumn.lt-xl],[fxGridColumn.lt-xxl],
|
|
2221
|
-
[fxGridColumn.gt-xs],[fxGridColumn.gt-sm],[fxGridColumn.gt-md],[fxGridColumn.gt-lg],[fxGridColumn.gt-xl],
|
|
2222
|
-
[fxGridColumn.sm-up],[fxGridColumn.md-up],[fxGridColumn.lg-up],[fxGridColumn.xl-up],[fxGridColumn.xxl-up],
|
|
2223
|
-
[fxGridColumn.sm-down],[fxGridColumn.md-down],[fxGridColumn.lg-down],[fxGridColumn.xl-down]
|
|
2542
|
+
selector: `
|
|
2543
|
+
[fxGridColumn],
|
|
2544
|
+
[fxGridColumn.xs],[fxGridColumn.sm],[fxGridColumn.md],[fxGridColumn.lg],[fxGridColumn.xl],[fxGridColumn.xxl],
|
|
2545
|
+
[fxGridColumn.lt-sm],[fxGridColumn.lt-md],[fxGridColumn.lt-lg],[fxGridColumn.lt-xl],[fxGridColumn.lt-xxl],
|
|
2546
|
+
[fxGridColumn.gt-xs],[fxGridColumn.gt-sm],[fxGridColumn.gt-md],[fxGridColumn.gt-lg],[fxGridColumn.gt-xl],
|
|
2547
|
+
[fxGridColumn.sm-up],[fxGridColumn.md-up],[fxGridColumn.lg-up],[fxGridColumn.xl-up],[fxGridColumn.xxl-up],
|
|
2548
|
+
[fxGridColumn.sm-down],[fxGridColumn.md-down],[fxGridColumn.lg-down],[fxGridColumn.xl-down]
|
|
2224
2549
|
`,
|
|
2225
2550
|
standalone: true,
|
|
2226
2551
|
}]
|
|
@@ -2277,53 +2602,111 @@ class FxGridAreaDirective extends ResponsiveBaseDirective {
|
|
|
2277
2602
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxGridAreaDirective, decorators: [{
|
|
2278
2603
|
type: Directive,
|
|
2279
2604
|
args: [{
|
|
2280
|
-
selector: `
|
|
2281
|
-
[fxGridArea],
|
|
2282
|
-
[fxGridArea.xs],[fxGridArea.sm],[fxGridArea.md],[fxGridArea.lg],[fxGridArea.xl],[fxGridArea.xxl],
|
|
2283
|
-
[fxGridArea.lt-sm],[fxGridArea.lt-md],[fxGridArea.lt-lg],[fxGridArea.lt-xl],[fxGridArea.lt-xxl],
|
|
2284
|
-
[fxGridArea.gt-xs],[fxGridArea.gt-sm],[fxGridArea.gt-md],[fxGridArea.gt-lg],[fxGridArea.gt-xl],
|
|
2285
|
-
[fxGridArea.sm-up],[fxGridArea.md-up],[fxGridArea.lg-up],[fxGridArea.xl-up],[fxGridArea.xxl-up],
|
|
2286
|
-
[fxGridArea.sm-down],[fxGridArea.md-down],[fxGridArea.lg-down],[fxGridArea.xl-down]
|
|
2605
|
+
selector: `
|
|
2606
|
+
[fxGridArea],
|
|
2607
|
+
[fxGridArea.xs],[fxGridArea.sm],[fxGridArea.md],[fxGridArea.lg],[fxGridArea.xl],[fxGridArea.xxl],
|
|
2608
|
+
[fxGridArea.lt-sm],[fxGridArea.lt-md],[fxGridArea.lt-lg],[fxGridArea.lt-xl],[fxGridArea.lt-xxl],
|
|
2609
|
+
[fxGridArea.gt-xs],[fxGridArea.gt-sm],[fxGridArea.gt-md],[fxGridArea.gt-lg],[fxGridArea.gt-xl],
|
|
2610
|
+
[fxGridArea.sm-up],[fxGridArea.md-up],[fxGridArea.lg-up],[fxGridArea.xl-up],[fxGridArea.xxl-up],
|
|
2611
|
+
[fxGridArea.sm-down],[fxGridArea.md-down],[fxGridArea.lg-down],[fxGridArea.xl-down]
|
|
2287
2612
|
`,
|
|
2288
2613
|
standalone: true,
|
|
2289
2614
|
}]
|
|
2290
2615
|
}], ctorParameters: () => [], propDecorators: { fxGridArea: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea", required: false }] }], xs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.xs", required: false }] }], sm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.sm", required: false }] }], md: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.md", required: false }] }], lg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.lg", required: false }] }], xl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.xl", required: false }] }], xxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.xxl", required: false }] }], ltSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.lt-sm", required: false }] }], ltMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.lt-md", required: false }] }], ltLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.lt-lg", required: false }] }], ltXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.lt-xl", required: false }] }], ltXxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.lt-xxl", required: false }] }], gtXs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.gt-xs", required: false }] }], gtSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.gt-sm", required: false }] }], gtMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.gt-md", required: false }] }], gtLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.gt-lg", required: false }] }], gtXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.gt-xl", required: false }] }], smUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.sm-up", required: false }] }], mdUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.md-up", required: false }] }], lgUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.lg-up", required: false }] }], xlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.xl-up", required: false }] }], xxlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.xxl-up", required: false }] }], smDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.sm-down", required: false }] }], mdDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.md-down", required: false }] }], lgDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.lg-down", required: false }] }], xlDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxGridArea.xl-down", required: false }] }] } });
|
|
2291
2616
|
|
|
2292
2617
|
/**
|
|
2293
|
-
* @file fx-layout-align.directive.ts (Angular
|
|
2618
|
+
* @file fx-layout-align.directive.ts (Angular 22 — signals)
|
|
2294
2619
|
*
|
|
2295
|
-
* [fxLayoutAlign]
|
|
2620
|
+
* [fxLayoutAlign] — sets justify-content + align-items + align-content
|
|
2621
|
+
* on a flex container. Faithful port of @ngbracket LayoutAlignStyleBuilder:
|
|
2296
2622
|
*
|
|
2297
|
-
*
|
|
2298
|
-
*
|
|
2299
|
-
* crossAxis
|
|
2623
|
+
* • mainAxis : start|flex-start | center | end|flex-end |
|
|
2624
|
+
* space-between | space-around | space-evenly (default: flex-start)
|
|
2625
|
+
* • crossAxis: start|flex-start | center | end|flex-end | baseline |
|
|
2626
|
+
* space-between | space-around | stretch (default: stretch)
|
|
2627
|
+
* • align-content is set alongside align-items (multi-line wrap alignment)
|
|
2628
|
+
* • crossAxis 'stretch' → max-width:100% (column flow) / max-height:100% (row flow)
|
|
2629
|
+
* • display flex/inline-flex + box-sizing, preserving display:none (fxHide)
|
|
2300
2630
|
*
|
|
2301
|
-
*
|
|
2302
|
-
*
|
|
2303
|
-
* • computed() derives the resolved CSS pair
|
|
2304
|
-
* • effect() in constructor writes to DOM
|
|
2631
|
+
* Direction/inline are read reactively from the FxLayoutDirective on the SAME
|
|
2632
|
+
* host when present (signals), defaulting to row / non-inline otherwise.
|
|
2305
2633
|
*
|
|
2306
2634
|
* Breakpoint suffixes: canonical + lt-* + gt-* + *-up + *-down
|
|
2307
2635
|
*/
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2636
|
+
/**
|
|
2637
|
+
* Port of ngx LayoutAlignStyleBuilder.buildStyles.
|
|
2638
|
+
* `null` values mean "remove the property".
|
|
2639
|
+
*/
|
|
2640
|
+
function buildAlignStyles(align, layoutDirection, inline) {
|
|
2641
|
+
const css = {};
|
|
2642
|
+
const [mainAxis, crossAxis] = align.split(' ');
|
|
2643
|
+
switch (mainAxis) {
|
|
2644
|
+
case 'center':
|
|
2645
|
+
css['justify-content'] = 'center';
|
|
2646
|
+
break;
|
|
2647
|
+
case 'space-around':
|
|
2648
|
+
css['justify-content'] = 'space-around';
|
|
2649
|
+
break;
|
|
2650
|
+
case 'space-between':
|
|
2651
|
+
css['justify-content'] = 'space-between';
|
|
2652
|
+
break;
|
|
2653
|
+
case 'space-evenly':
|
|
2654
|
+
css['justify-content'] = 'space-evenly';
|
|
2655
|
+
break;
|
|
2656
|
+
case 'end':
|
|
2657
|
+
case 'flex-end':
|
|
2658
|
+
css['justify-content'] = 'flex-end';
|
|
2659
|
+
break;
|
|
2660
|
+
case 'start':
|
|
2661
|
+
case 'flex-start':
|
|
2662
|
+
default:
|
|
2663
|
+
css['justify-content'] = 'flex-start';
|
|
2664
|
+
break;
|
|
2665
|
+
}
|
|
2666
|
+
switch (crossAxis) {
|
|
2667
|
+
case 'start':
|
|
2668
|
+
case 'flex-start':
|
|
2669
|
+
css['align-items'] = css['align-content'] = 'flex-start';
|
|
2670
|
+
break;
|
|
2671
|
+
case 'center':
|
|
2672
|
+
css['align-items'] = css['align-content'] = 'center';
|
|
2673
|
+
break;
|
|
2674
|
+
case 'end':
|
|
2675
|
+
case 'flex-end':
|
|
2676
|
+
css['align-items'] = css['align-content'] = 'flex-end';
|
|
2677
|
+
break;
|
|
2678
|
+
case 'space-between':
|
|
2679
|
+
css['align-content'] = 'space-between';
|
|
2680
|
+
css['align-items'] = 'stretch';
|
|
2681
|
+
break;
|
|
2682
|
+
case 'space-around':
|
|
2683
|
+
css['align-content'] = 'space-around';
|
|
2684
|
+
css['align-items'] = 'stretch';
|
|
2685
|
+
break;
|
|
2686
|
+
case 'baseline':
|
|
2687
|
+
css['align-content'] = 'stretch';
|
|
2688
|
+
css['align-items'] = 'baseline';
|
|
2689
|
+
break;
|
|
2690
|
+
case 'stretch':
|
|
2691
|
+
default:
|
|
2692
|
+
css['align-items'] = css['align-content'] = 'stretch';
|
|
2693
|
+
break;
|
|
2694
|
+
}
|
|
2695
|
+
const isHorizontal = layoutDirection.indexOf('row') > -1 || layoutDirection.indexOf('column') === -1;
|
|
2696
|
+
return {
|
|
2697
|
+
...css,
|
|
2698
|
+
'display': inline ? 'inline-flex' : 'flex',
|
|
2699
|
+
'flex-direction': layoutDirection,
|
|
2700
|
+
'box-sizing': 'border-box',
|
|
2701
|
+
'max-width': crossAxis === 'stretch' ? (!isHorizontal ? '100%' : null) : null,
|
|
2702
|
+
'max-height': crossAxis === 'stretch' ? (isHorizontal ? '100%' : null) : null,
|
|
2703
|
+
};
|
|
2323
2704
|
}
|
|
2324
2705
|
class FxLayoutAlignDirective extends ResponsiveBaseDirective {
|
|
2325
2706
|
constructor() {
|
|
2326
2707
|
super();
|
|
2708
|
+
/** FxLayout on the same host (optional): direction/inline read reactively. */
|
|
2709
|
+
this.selfLayout = inject(FxLayoutDirective, { self: true, optional: true });
|
|
2327
2710
|
this.fxLayoutAlign = input(undefined, { ...(ngDevMode ? { debugName: "fxLayoutAlign" } : /* istanbul ignore next */ {}), alias: 'fxLayoutAlign' });
|
|
2328
2711
|
this.xs = input(undefined, { ...(ngDevMode ? { debugName: "xs" } : /* istanbul ignore next */ {}), alias: 'fxLayoutAlign.xs' });
|
|
2329
2712
|
this.sm = input(undefined, { ...(ngDevMode ? { debugName: "sm" } : /* istanbul ignore next */ {}), alias: 'fxLayoutAlign.sm' });
|
|
@@ -2350,7 +2733,7 @@ class FxLayoutAlignDirective extends ResponsiveBaseDirective {
|
|
|
2350
2733
|
this.mdDown = input(undefined, { ...(ngDevMode ? { debugName: "mdDown" } : /* istanbul ignore next */ {}), alias: 'fxLayoutAlign.md-down' });
|
|
2351
2734
|
this.lgDown = input(undefined, { ...(ngDevMode ? { debugName: "lgDown" } : /* istanbul ignore next */ {}), alias: 'fxLayoutAlign.lg-down' });
|
|
2352
2735
|
this.xlDown = input(undefined, { ...(ngDevMode ? { debugName: "xlDown" } : /* istanbul ignore next */ {}), alias: 'fxLayoutAlign.xl-down' });
|
|
2353
|
-
this.
|
|
2736
|
+
this._align = computed(() => resolveAll({ default: this.fxLayoutAlign(), xs: this.xs(), sm: this.sm(), md: this.md(),
|
|
2354
2737
|
lg: this.lg(), xl: this.xl(), xxl: this.xxl() }, { 'lt-sm': this.ltSm(), 'lt-md': this.ltMd(), 'lt-lg': this.ltLg(),
|
|
2355
2738
|
'lt-xl': this.ltXl(), 'lt-xxl': this.ltXxl(),
|
|
2356
2739
|
'gt-xs': this.gtXs(), 'gt-sm': this.gtSm(), 'gt-md': this.gtMd(),
|
|
@@ -2358,46 +2741,49 @@ class FxLayoutAlignDirective extends ResponsiveBaseDirective {
|
|
|
2358
2741
|
'sm-up': this.smUp(), 'md-up': this.mdUp(), 'lg-up': this.lgUp(),
|
|
2359
2742
|
'xl-up': this.xlUp(), 'xxl-up': this.xxlUp(),
|
|
2360
2743
|
'sm-down': this.smDown(), 'md-down': this.mdDown(),
|
|
2361
|
-
'lg-down': this.lgDown(), 'xl-down': this.xlDown() }, this.media.currentBp(), a => this.media.isActive(a)) ?? 'start stretch'
|
|
2362
|
-
...(ngDevMode ? [{ debugName: "
|
|
2744
|
+
'lg-down': this.lgDown(), 'xl-down': this.xlDown() }, this.media.currentBp(), a => this.media.isActive(a)) ?? 'start stretch', /* @ts-ignore */
|
|
2745
|
+
...(ngDevMode ? [{ debugName: "_align" }] : /* istanbul ignore next */ []));
|
|
2363
2746
|
effect(() => {
|
|
2364
|
-
const
|
|
2365
|
-
this.
|
|
2366
|
-
this.
|
|
2747
|
+
const direction = this.selfLayout?.direction() ?? 'row';
|
|
2748
|
+
const inline = this.selfLayout?.inline() ?? false;
|
|
2749
|
+
const styles = buildAlignStyles(this._align(), direction, inline);
|
|
2750
|
+
const el = this.el.nativeElement;
|
|
2751
|
+
for (const [prop, value] of Object.entries(styles)) {
|
|
2752
|
+
// ngx parity: never override display:none set by fxHide
|
|
2753
|
+
if (prop === 'display' && el.style.display === 'none')
|
|
2754
|
+
continue;
|
|
2755
|
+
this.safeSetStyle(prop, value);
|
|
2756
|
+
}
|
|
2367
2757
|
});
|
|
2368
2758
|
}
|
|
2369
2759
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxLayoutAlignDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2370
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.1", type: FxLayoutAlignDirective, isStandalone: true, selector: "\n [fxLayoutAlign],\n [fxLayoutAlign.xs],[fxLayoutAlign.sm],[fxLayoutAlign.md],[fxLayoutAlign.lg],[fxLayoutAlign.xl],[fxLayoutAlign.xxl],\n [fxLayoutAlign.lt-sm],[fxLayoutAlign.lt-md],[fxLayoutAlign.lt-lg],[fxLayoutAlign.lt-xl],[fxLayoutAlign.lt-xxl],\n [fxLayoutAlign.gt-xs],[fxLayoutAlign.gt-sm],[fxLayoutAlign.gt-md],[fxLayoutAlign.gt-lg],[fxLayoutAlign.gt-xl],\n [fxLayoutAlign.sm-up],[fxLayoutAlign.md-up],[fxLayoutAlign.lg-up],[fxLayoutAlign.xl-up],[fxLayoutAlign.xxl-up],\n [fxLayoutAlign.sm-down],[fxLayoutAlign.md-down],[fxLayoutAlign.lg-down],[fxLayoutAlign.xl-down]\n ", inputs: { fxLayoutAlign: { classPropertyName: "fxLayoutAlign", publicName: "fxLayoutAlign", isSignal: true, isRequired: false, transformFunction: null }, xs: { classPropertyName: "xs", publicName: "fxLayoutAlign.xs", isSignal: true, isRequired: false, transformFunction: null }, sm: { classPropertyName: "sm", publicName: "fxLayoutAlign.sm", isSignal: true, isRequired: false, transformFunction: null }, md: { classPropertyName: "md", publicName: "fxLayoutAlign.md", isSignal: true, isRequired: false, transformFunction: null }, lg: { classPropertyName: "lg", publicName: "fxLayoutAlign.lg", isSignal: true, isRequired: false, transformFunction: null }, xl: { classPropertyName: "xl", publicName: "fxLayoutAlign.xl", isSignal: true, isRequired: false, transformFunction: null }, xxl: { classPropertyName: "xxl", publicName: "fxLayoutAlign.xxl", isSignal: true, isRequired: false, transformFunction: null }, ltSm: { classPropertyName: "ltSm", publicName: "fxLayoutAlign.lt-sm", isSignal: true, isRequired: false, transformFunction: null }, ltMd: { classPropertyName: "ltMd", publicName: "fxLayoutAlign.lt-md", isSignal: true, isRequired: false, transformFunction: null }, ltLg: { classPropertyName: "ltLg", publicName: "fxLayoutAlign.lt-lg", isSignal: true, isRequired: false, transformFunction: null }, ltXl: { classPropertyName: "ltXl", publicName: "fxLayoutAlign.lt-xl", isSignal: true, isRequired: false, transformFunction: null }, ltXxl: { classPropertyName: "ltXxl", publicName: "fxLayoutAlign.lt-xxl", isSignal: true, isRequired: false, transformFunction: null }, gtXs: { classPropertyName: "gtXs", publicName: "fxLayoutAlign.gt-xs", isSignal: true, isRequired: false, transformFunction: null }, gtSm: { classPropertyName: "gtSm", publicName: "fxLayoutAlign.gt-sm", isSignal: true, isRequired: false, transformFunction: null }, gtMd: { classPropertyName: "gtMd", publicName: "fxLayoutAlign.gt-md", isSignal: true, isRequired: false, transformFunction: null }, gtLg: { classPropertyName: "gtLg", publicName: "fxLayoutAlign.gt-lg", isSignal: true, isRequired: false, transformFunction: null }, gtXl: { classPropertyName: "gtXl", publicName: "fxLayoutAlign.gt-xl", isSignal: true, isRequired: false, transformFunction: null }, smUp: { classPropertyName: "smUp", publicName: "fxLayoutAlign.sm-up", isSignal: true, isRequired: false, transformFunction: null }, mdUp: { classPropertyName: "mdUp", publicName: "fxLayoutAlign.md-up", isSignal: true, isRequired: false, transformFunction: null }, lgUp: { classPropertyName: "lgUp", publicName: "fxLayoutAlign.lg-up", isSignal: true, isRequired: false, transformFunction: null }, xlUp: { classPropertyName: "xlUp", publicName: "fxLayoutAlign.xl-up", isSignal: true, isRequired: false, transformFunction: null }, xxlUp: { classPropertyName: "xxlUp", publicName: "fxLayoutAlign.xxl-up", isSignal: true, isRequired: false, transformFunction: null }, smDown: { classPropertyName: "smDown", publicName: "fxLayoutAlign.sm-down", isSignal: true, isRequired: false, transformFunction: null }, mdDown: { classPropertyName: "mdDown", publicName: "fxLayoutAlign.md-down", isSignal: true, isRequired: false, transformFunction: null }, lgDown: { classPropertyName: "lgDown", publicName: "fxLayoutAlign.lg-down", isSignal: true, isRequired: false, transformFunction: null }, xlDown: { classPropertyName: "xlDown", publicName: "fxLayoutAlign.xl-down", isSignal: true, isRequired: false, transformFunction: null } },
|
|
2760
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.1", type: FxLayoutAlignDirective, isStandalone: true, selector: "\n [fxLayoutAlign],\n [fxLayoutAlign.xs],[fxLayoutAlign.sm],[fxLayoutAlign.md],[fxLayoutAlign.lg],[fxLayoutAlign.xl],[fxLayoutAlign.xxl],\n [fxLayoutAlign.lt-sm],[fxLayoutAlign.lt-md],[fxLayoutAlign.lt-lg],[fxLayoutAlign.lt-xl],[fxLayoutAlign.lt-xxl],\n [fxLayoutAlign.gt-xs],[fxLayoutAlign.gt-sm],[fxLayoutAlign.gt-md],[fxLayoutAlign.gt-lg],[fxLayoutAlign.gt-xl],\n [fxLayoutAlign.sm-up],[fxLayoutAlign.md-up],[fxLayoutAlign.lg-up],[fxLayoutAlign.xl-up],[fxLayoutAlign.xxl-up],\n [fxLayoutAlign.sm-down],[fxLayoutAlign.md-down],[fxLayoutAlign.lg-down],[fxLayoutAlign.xl-down]\n ", inputs: { fxLayoutAlign: { classPropertyName: "fxLayoutAlign", publicName: "fxLayoutAlign", isSignal: true, isRequired: false, transformFunction: null }, xs: { classPropertyName: "xs", publicName: "fxLayoutAlign.xs", isSignal: true, isRequired: false, transformFunction: null }, sm: { classPropertyName: "sm", publicName: "fxLayoutAlign.sm", isSignal: true, isRequired: false, transformFunction: null }, md: { classPropertyName: "md", publicName: "fxLayoutAlign.md", isSignal: true, isRequired: false, transformFunction: null }, lg: { classPropertyName: "lg", publicName: "fxLayoutAlign.lg", isSignal: true, isRequired: false, transformFunction: null }, xl: { classPropertyName: "xl", publicName: "fxLayoutAlign.xl", isSignal: true, isRequired: false, transformFunction: null }, xxl: { classPropertyName: "xxl", publicName: "fxLayoutAlign.xxl", isSignal: true, isRequired: false, transformFunction: null }, ltSm: { classPropertyName: "ltSm", publicName: "fxLayoutAlign.lt-sm", isSignal: true, isRequired: false, transformFunction: null }, ltMd: { classPropertyName: "ltMd", publicName: "fxLayoutAlign.lt-md", isSignal: true, isRequired: false, transformFunction: null }, ltLg: { classPropertyName: "ltLg", publicName: "fxLayoutAlign.lt-lg", isSignal: true, isRequired: false, transformFunction: null }, ltXl: { classPropertyName: "ltXl", publicName: "fxLayoutAlign.lt-xl", isSignal: true, isRequired: false, transformFunction: null }, ltXxl: { classPropertyName: "ltXxl", publicName: "fxLayoutAlign.lt-xxl", isSignal: true, isRequired: false, transformFunction: null }, gtXs: { classPropertyName: "gtXs", publicName: "fxLayoutAlign.gt-xs", isSignal: true, isRequired: false, transformFunction: null }, gtSm: { classPropertyName: "gtSm", publicName: "fxLayoutAlign.gt-sm", isSignal: true, isRequired: false, transformFunction: null }, gtMd: { classPropertyName: "gtMd", publicName: "fxLayoutAlign.gt-md", isSignal: true, isRequired: false, transformFunction: null }, gtLg: { classPropertyName: "gtLg", publicName: "fxLayoutAlign.gt-lg", isSignal: true, isRequired: false, transformFunction: null }, gtXl: { classPropertyName: "gtXl", publicName: "fxLayoutAlign.gt-xl", isSignal: true, isRequired: false, transformFunction: null }, smUp: { classPropertyName: "smUp", publicName: "fxLayoutAlign.sm-up", isSignal: true, isRequired: false, transformFunction: null }, mdUp: { classPropertyName: "mdUp", publicName: "fxLayoutAlign.md-up", isSignal: true, isRequired: false, transformFunction: null }, lgUp: { classPropertyName: "lgUp", publicName: "fxLayoutAlign.lg-up", isSignal: true, isRequired: false, transformFunction: null }, xlUp: { classPropertyName: "xlUp", publicName: "fxLayoutAlign.xl-up", isSignal: true, isRequired: false, transformFunction: null }, xxlUp: { classPropertyName: "xxlUp", publicName: "fxLayoutAlign.xxl-up", isSignal: true, isRequired: false, transformFunction: null }, smDown: { classPropertyName: "smDown", publicName: "fxLayoutAlign.sm-down", isSignal: true, isRequired: false, transformFunction: null }, mdDown: { classPropertyName: "mdDown", publicName: "fxLayoutAlign.md-down", isSignal: true, isRequired: false, transformFunction: null }, lgDown: { classPropertyName: "lgDown", publicName: "fxLayoutAlign.lg-down", isSignal: true, isRequired: false, transformFunction: null }, xlDown: { classPropertyName: "xlDown", publicName: "fxLayoutAlign.xl-down", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
|
|
2371
2761
|
}
|
|
2372
2762
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxLayoutAlignDirective, decorators: [{
|
|
2373
2763
|
type: Directive,
|
|
2374
2764
|
args: [{
|
|
2375
|
-
selector: `
|
|
2376
|
-
[fxLayoutAlign],
|
|
2377
|
-
[fxLayoutAlign.xs],[fxLayoutAlign.sm],[fxLayoutAlign.md],[fxLayoutAlign.lg],[fxLayoutAlign.xl],[fxLayoutAlign.xxl],
|
|
2378
|
-
[fxLayoutAlign.lt-sm],[fxLayoutAlign.lt-md],[fxLayoutAlign.lt-lg],[fxLayoutAlign.lt-xl],[fxLayoutAlign.lt-xxl],
|
|
2379
|
-
[fxLayoutAlign.gt-xs],[fxLayoutAlign.gt-sm],[fxLayoutAlign.gt-md],[fxLayoutAlign.gt-lg],[fxLayoutAlign.gt-xl],
|
|
2380
|
-
[fxLayoutAlign.sm-up],[fxLayoutAlign.md-up],[fxLayoutAlign.lg-up],[fxLayoutAlign.xl-up],[fxLayoutAlign.xxl-up],
|
|
2381
|
-
[fxLayoutAlign.sm-down],[fxLayoutAlign.md-down],[fxLayoutAlign.lg-down],[fxLayoutAlign.xl-down]
|
|
2765
|
+
selector: `
|
|
2766
|
+
[fxLayoutAlign],
|
|
2767
|
+
[fxLayoutAlign.xs],[fxLayoutAlign.sm],[fxLayoutAlign.md],[fxLayoutAlign.lg],[fxLayoutAlign.xl],[fxLayoutAlign.xxl],
|
|
2768
|
+
[fxLayoutAlign.lt-sm],[fxLayoutAlign.lt-md],[fxLayoutAlign.lt-lg],[fxLayoutAlign.lt-xl],[fxLayoutAlign.lt-xxl],
|
|
2769
|
+
[fxLayoutAlign.gt-xs],[fxLayoutAlign.gt-sm],[fxLayoutAlign.gt-md],[fxLayoutAlign.gt-lg],[fxLayoutAlign.gt-xl],
|
|
2770
|
+
[fxLayoutAlign.sm-up],[fxLayoutAlign.md-up],[fxLayoutAlign.lg-up],[fxLayoutAlign.xl-up],[fxLayoutAlign.xxl-up],
|
|
2771
|
+
[fxLayoutAlign.sm-down],[fxLayoutAlign.md-down],[fxLayoutAlign.lg-down],[fxLayoutAlign.xl-down]
|
|
2382
2772
|
`,
|
|
2383
2773
|
standalone: true,
|
|
2384
|
-
// fxLayoutAlign implies a flex container. The host binding makes this SSR-safe
|
|
2385
|
-
// and avoids racing with fxLayout (which also sets display:flex via host binding):
|
|
2386
|
-
// when both directives are on the same element Angular sets the property once.
|
|
2387
|
-
host: { '[style.display]': '"flex"' },
|
|
2388
2774
|
}]
|
|
2389
2775
|
}], ctorParameters: () => [], propDecorators: { fxLayoutAlign: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign", required: false }] }], xs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.xs", required: false }] }], sm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.sm", required: false }] }], md: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.md", required: false }] }], lg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.lg", required: false }] }], xl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.xl", required: false }] }], xxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.xxl", required: false }] }], ltSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.lt-sm", required: false }] }], ltMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.lt-md", required: false }] }], ltLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.lt-lg", required: false }] }], ltXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.lt-xl", required: false }] }], ltXxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.lt-xxl", required: false }] }], gtXs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.gt-xs", required: false }] }], gtSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.gt-sm", required: false }] }], gtMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.gt-md", required: false }] }], gtLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.gt-lg", required: false }] }], gtXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.gt-xl", required: false }] }], smUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.sm-up", required: false }] }], mdUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.md-up", required: false }] }], lgUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.lg-up", required: false }] }], xlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.xl-up", required: false }] }], xxlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.xxl-up", required: false }] }], smDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.sm-down", required: false }] }], mdDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.md-down", required: false }] }], lgDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.lg-down", required: false }] }], xlDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutAlign.xl-down", required: false }] }] } });
|
|
2390
2776
|
|
|
2391
2777
|
/**
|
|
2392
|
-
* @file fx-layout-gap.directive.ts (Angular 21
|
|
2778
|
+
* @file fx-layout-gap.directive.ts (Angular 21 — signals)
|
|
2393
2779
|
*
|
|
2394
|
-
* [fxLayoutGap]
|
|
2395
|
-
* Unitless numbers are normalized to px (e.g. "16"
|
|
2780
|
+
* [fxLayoutGap] — sets gap on a flex or grid container.
|
|
2781
|
+
* Unitless numbers are normalized to px (e.g. "16" → "16px").
|
|
2396
2782
|
*
|
|
2397
2783
|
* Angular 21 changes:
|
|
2398
|
-
*
|
|
2399
|
-
*
|
|
2400
|
-
*
|
|
2784
|
+
* • All @Input setters replaced by input() signals
|
|
2785
|
+
* • computed() derives the normalized gap value
|
|
2786
|
+
* • effect() in constructor writes to DOM
|
|
2401
2787
|
*
|
|
2402
2788
|
* Breakpoint suffixes: canonical + lt-* + gt-* + *-up + *-down
|
|
2403
2789
|
*/
|
|
@@ -2451,170 +2837,19 @@ class FxLayoutGapDirective extends ResponsiveBaseDirective {
|
|
|
2451
2837
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.1", type: FxLayoutGapDirective, isStandalone: true, selector: "\n [fxLayoutGap],\n [fxLayoutGap.xs],[fxLayoutGap.sm],[fxLayoutGap.md],[fxLayoutGap.lg],[fxLayoutGap.xl],[fxLayoutGap.xxl],\n [fxLayoutGap.lt-sm],[fxLayoutGap.lt-md],[fxLayoutGap.lt-lg],[fxLayoutGap.lt-xl],[fxLayoutGap.lt-xxl],\n [fxLayoutGap.gt-xs],[fxLayoutGap.gt-sm],[fxLayoutGap.gt-md],[fxLayoutGap.gt-lg],[fxLayoutGap.gt-xl],\n [fxLayoutGap.sm-up],[fxLayoutGap.md-up],[fxLayoutGap.lg-up],[fxLayoutGap.xl-up],[fxLayoutGap.xxl-up],\n [fxLayoutGap.sm-down],[fxLayoutGap.md-down],[fxLayoutGap.lg-down],[fxLayoutGap.xl-down]\n ", inputs: { fxLayoutGap: { classPropertyName: "fxLayoutGap", publicName: "fxLayoutGap", isSignal: true, isRequired: false, transformFunction: null }, xs: { classPropertyName: "xs", publicName: "fxLayoutGap.xs", isSignal: true, isRequired: false, transformFunction: null }, sm: { classPropertyName: "sm", publicName: "fxLayoutGap.sm", isSignal: true, isRequired: false, transformFunction: null }, md: { classPropertyName: "md", publicName: "fxLayoutGap.md", isSignal: true, isRequired: false, transformFunction: null }, lg: { classPropertyName: "lg", publicName: "fxLayoutGap.lg", isSignal: true, isRequired: false, transformFunction: null }, xl: { classPropertyName: "xl", publicName: "fxLayoutGap.xl", isSignal: true, isRequired: false, transformFunction: null }, xxl: { classPropertyName: "xxl", publicName: "fxLayoutGap.xxl", isSignal: true, isRequired: false, transformFunction: null }, ltSm: { classPropertyName: "ltSm", publicName: "fxLayoutGap.lt-sm", isSignal: true, isRequired: false, transformFunction: null }, ltMd: { classPropertyName: "ltMd", publicName: "fxLayoutGap.lt-md", isSignal: true, isRequired: false, transformFunction: null }, ltLg: { classPropertyName: "ltLg", publicName: "fxLayoutGap.lt-lg", isSignal: true, isRequired: false, transformFunction: null }, ltXl: { classPropertyName: "ltXl", publicName: "fxLayoutGap.lt-xl", isSignal: true, isRequired: false, transformFunction: null }, ltXxl: { classPropertyName: "ltXxl", publicName: "fxLayoutGap.lt-xxl", isSignal: true, isRequired: false, transformFunction: null }, gtXs: { classPropertyName: "gtXs", publicName: "fxLayoutGap.gt-xs", isSignal: true, isRequired: false, transformFunction: null }, gtSm: { classPropertyName: "gtSm", publicName: "fxLayoutGap.gt-sm", isSignal: true, isRequired: false, transformFunction: null }, gtMd: { classPropertyName: "gtMd", publicName: "fxLayoutGap.gt-md", isSignal: true, isRequired: false, transformFunction: null }, gtLg: { classPropertyName: "gtLg", publicName: "fxLayoutGap.gt-lg", isSignal: true, isRequired: false, transformFunction: null }, gtXl: { classPropertyName: "gtXl", publicName: "fxLayoutGap.gt-xl", isSignal: true, isRequired: false, transformFunction: null }, smUp: { classPropertyName: "smUp", publicName: "fxLayoutGap.sm-up", isSignal: true, isRequired: false, transformFunction: null }, mdUp: { classPropertyName: "mdUp", publicName: "fxLayoutGap.md-up", isSignal: true, isRequired: false, transformFunction: null }, lgUp: { classPropertyName: "lgUp", publicName: "fxLayoutGap.lg-up", isSignal: true, isRequired: false, transformFunction: null }, xlUp: { classPropertyName: "xlUp", publicName: "fxLayoutGap.xl-up", isSignal: true, isRequired: false, transformFunction: null }, xxlUp: { classPropertyName: "xxlUp", publicName: "fxLayoutGap.xxl-up", isSignal: true, isRequired: false, transformFunction: null }, smDown: { classPropertyName: "smDown", publicName: "fxLayoutGap.sm-down", isSignal: true, isRequired: false, transformFunction: null }, mdDown: { classPropertyName: "mdDown", publicName: "fxLayoutGap.md-down", isSignal: true, isRequired: false, transformFunction: null }, lgDown: { classPropertyName: "lgDown", publicName: "fxLayoutGap.lg-down", isSignal: true, isRequired: false, transformFunction: null }, xlDown: { classPropertyName: "xlDown", publicName: "fxLayoutGap.xl-down", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
|
|
2452
2838
|
}
|
|
2453
2839
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxLayoutGapDirective, decorators: [{
|
|
2454
|
-
type: Directive,
|
|
2455
|
-
args: [{
|
|
2456
|
-
selector: `
|
|
2457
|
-
[fxLayoutGap],
|
|
2458
|
-
[fxLayoutGap.xs],[fxLayoutGap.sm],[fxLayoutGap.md],[fxLayoutGap.lg],[fxLayoutGap.xl],[fxLayoutGap.xxl],
|
|
2459
|
-
[fxLayoutGap.lt-sm],[fxLayoutGap.lt-md],[fxLayoutGap.lt-lg],[fxLayoutGap.lt-xl],[fxLayoutGap.lt-xxl],
|
|
2460
|
-
[fxLayoutGap.gt-xs],[fxLayoutGap.gt-sm],[fxLayoutGap.gt-md],[fxLayoutGap.gt-lg],[fxLayoutGap.gt-xl],
|
|
2461
|
-
[fxLayoutGap.sm-up],[fxLayoutGap.md-up],[fxLayoutGap.lg-up],[fxLayoutGap.xl-up],[fxLayoutGap.xxl-up],
|
|
2462
|
-
[fxLayoutGap.sm-down],[fxLayoutGap.md-down],[fxLayoutGap.lg-down],[fxLayoutGap.xl-down]
|
|
2463
|
-
`,
|
|
2464
|
-
standalone: true,
|
|
2465
|
-
}]
|
|
2466
|
-
}], ctorParameters: () => [], propDecorators: { fxLayoutGap: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap", required: false }] }], xs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.xs", required: false }] }], sm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.sm", required: false }] }], md: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.md", required: false }] }], lg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lg", required: false }] }], xl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.xl", required: false }] }], xxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.xxl", required: false }] }], ltSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lt-sm", required: false }] }], ltMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lt-md", required: false }] }], ltLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lt-lg", required: false }] }], ltXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lt-xl", required: false }] }], ltXxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lt-xxl", required: false }] }], gtXs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.gt-xs", required: false }] }], gtSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.gt-sm", required: false }] }], gtMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.gt-md", required: false }] }], gtLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.gt-lg", required: false }] }], gtXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.gt-xl", required: false }] }], smUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.sm-up", required: false }] }], mdUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.md-up", required: false }] }], lgUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lg-up", required: false }] }], xlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.xl-up", required: false }] }], xxlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.xxl-up", required: false }] }], smDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.sm-down", required: false }] }], mdDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.md-down", required: false }] }], lgDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lg-down", required: false }] }], xlDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.xl-down", required: false }] }] } });
|
|
2467
|
-
|
|
2468
|
-
/**
|
|
2469
|
-
* @file fx-layout.directive.ts (Angular 21 - signals)
|
|
2470
|
-
*
|
|
2471
|
-
* [fxLayout] -- sets flex-direction (and optionally flex-wrap) on the host.
|
|
2472
|
-
* [fxLayoutWrap] -- dedicated alias for flex-wrap (original ngx-layout compat).
|
|
2473
|
-
*
|
|
2474
|
-
* Angular 21 changes:
|
|
2475
|
-
* - All @Input setters replaced by input() signals
|
|
2476
|
-
* - computed() builds reactive BP maps and derives CSS values
|
|
2477
|
-
* - effect() in constructor writes to DOM -- no lifecycle hooks
|
|
2478
|
-
*
|
|
2479
|
-
* Breakpoint suffixes:
|
|
2480
|
-
* Canonical : .xs .sm .md .lg .xl .xxl
|
|
2481
|
-
* lt-* : .lt-sm .lt-md .lt-lg .lt-xl .lt-xxl
|
|
2482
|
-
* gt-* : .gt-xs .gt-sm .gt-md .gt-lg .gt-xl
|
|
2483
|
-
* *-up : .sm-up .md-up .lg-up .xl-up .xxl-up
|
|
2484
|
-
* *-down : .sm-down .md-down .lg-down .xl-down
|
|
2485
|
-
*/
|
|
2486
|
-
const VALID_DIRECTIONS = new Set(['row', 'column', 'row-reverse', 'column-reverse']);
|
|
2487
|
-
const VALID_WRAPS = new Set(['wrap', 'wrap-reverse', 'nowrap']);
|
|
2488
|
-
function parseLayout(raw) {
|
|
2489
|
-
const parts = raw.trim().split(/\s+/);
|
|
2490
|
-
const dir = VALID_DIRECTIONS.has(parts[0]) ? parts[0] : 'row';
|
|
2491
|
-
const wrap = VALID_WRAPS.has(parts[1]) ? parts[1] : 'nowrap';
|
|
2492
|
-
return [dir, wrap];
|
|
2493
|
-
}
|
|
2494
|
-
class FxLayoutDirective extends ResponsiveBaseDirective {
|
|
2495
|
-
constructor() {
|
|
2496
|
-
super();
|
|
2497
|
-
this.fxLayout = input('row', { ...(ngDevMode ? { debugName: "fxLayout" } : /* istanbul ignore next */ {}), alias: 'fxLayout' });
|
|
2498
|
-
this.xs = input(undefined, { ...(ngDevMode ? { debugName: "xs" } : /* istanbul ignore next */ {}), alias: 'fxLayout.xs' });
|
|
2499
|
-
this.sm = input(undefined, { ...(ngDevMode ? { debugName: "sm" } : /* istanbul ignore next */ {}), alias: 'fxLayout.sm' });
|
|
2500
|
-
this.md = input(undefined, { ...(ngDevMode ? { debugName: "md" } : /* istanbul ignore next */ {}), alias: 'fxLayout.md' });
|
|
2501
|
-
this.lg = input(undefined, { ...(ngDevMode ? { debugName: "lg" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lg' });
|
|
2502
|
-
this.xl = input(undefined, { ...(ngDevMode ? { debugName: "xl" } : /* istanbul ignore next */ {}), alias: 'fxLayout.xl' });
|
|
2503
|
-
this.xxl = input(undefined, { ...(ngDevMode ? { debugName: "xxl" } : /* istanbul ignore next */ {}), alias: 'fxLayout.xxl' });
|
|
2504
|
-
this.ltSm = input(undefined, { ...(ngDevMode ? { debugName: "ltSm" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lt-sm' });
|
|
2505
|
-
this.ltMd = input(undefined, { ...(ngDevMode ? { debugName: "ltMd" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lt-md' });
|
|
2506
|
-
this.ltLg = input(undefined, { ...(ngDevMode ? { debugName: "ltLg" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lt-lg' });
|
|
2507
|
-
this.ltXl = input(undefined, { ...(ngDevMode ? { debugName: "ltXl" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lt-xl' });
|
|
2508
|
-
this.ltXxl = input(undefined, { ...(ngDevMode ? { debugName: "ltXxl" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lt-xxl' });
|
|
2509
|
-
this.gtXs = input(undefined, { ...(ngDevMode ? { debugName: "gtXs" } : /* istanbul ignore next */ {}), alias: 'fxLayout.gt-xs' });
|
|
2510
|
-
this.gtSm = input(undefined, { ...(ngDevMode ? { debugName: "gtSm" } : /* istanbul ignore next */ {}), alias: 'fxLayout.gt-sm' });
|
|
2511
|
-
this.gtMd = input(undefined, { ...(ngDevMode ? { debugName: "gtMd" } : /* istanbul ignore next */ {}), alias: 'fxLayout.gt-md' });
|
|
2512
|
-
this.gtLg = input(undefined, { ...(ngDevMode ? { debugName: "gtLg" } : /* istanbul ignore next */ {}), alias: 'fxLayout.gt-lg' });
|
|
2513
|
-
this.gtXl = input(undefined, { ...(ngDevMode ? { debugName: "gtXl" } : /* istanbul ignore next */ {}), alias: 'fxLayout.gt-xl' });
|
|
2514
|
-
this.smUp = input(undefined, { ...(ngDevMode ? { debugName: "smUp" } : /* istanbul ignore next */ {}), alias: 'fxLayout.sm-up' });
|
|
2515
|
-
this.mdUp = input(undefined, { ...(ngDevMode ? { debugName: "mdUp" } : /* istanbul ignore next */ {}), alias: 'fxLayout.md-up' });
|
|
2516
|
-
this.lgUp = input(undefined, { ...(ngDevMode ? { debugName: "lgUp" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lg-up' });
|
|
2517
|
-
this.xlUp = input(undefined, { ...(ngDevMode ? { debugName: "xlUp" } : /* istanbul ignore next */ {}), alias: 'fxLayout.xl-up' });
|
|
2518
|
-
this.xxlUp = input(undefined, { ...(ngDevMode ? { debugName: "xxlUp" } : /* istanbul ignore next */ {}), alias: 'fxLayout.xxl-up' });
|
|
2519
|
-
this.smDown = input(undefined, { ...(ngDevMode ? { debugName: "smDown" } : /* istanbul ignore next */ {}), alias: 'fxLayout.sm-down' });
|
|
2520
|
-
this.mdDown = input(undefined, { ...(ngDevMode ? { debugName: "mdDown" } : /* istanbul ignore next */ {}), alias: 'fxLayout.md-down' });
|
|
2521
|
-
this.lgDown = input(undefined, { ...(ngDevMode ? { debugName: "lgDown" } : /* istanbul ignore next */ {}), alias: 'fxLayout.lg-down' });
|
|
2522
|
-
this.xlDown = input(undefined, { ...(ngDevMode ? { debugName: "xlDown" } : /* istanbul ignore next */ {}), alias: 'fxLayout.xl-down' });
|
|
2523
|
-
this._parsed = computed(() => parseLayout(resolveAll({ default: this.fxLayout(), xs: this.xs(), sm: this.sm(), md: this.md(),
|
|
2524
|
-
lg: this.lg(), xl: this.xl(), xxl: this.xxl() }, { 'lt-sm': this.ltSm(), 'lt-md': this.ltMd(), 'lt-lg': this.ltLg(),
|
|
2525
|
-
'lt-xl': this.ltXl(), 'lt-xxl': this.ltXxl(),
|
|
2526
|
-
'gt-xs': this.gtXs(), 'gt-sm': this.gtSm(), 'gt-md': this.gtMd(),
|
|
2527
|
-
'gt-lg': this.gtLg(), 'gt-xl': this.gtXl(),
|
|
2528
|
-
'sm-up': this.smUp(), 'md-up': this.mdUp(), 'lg-up': this.lgUp(),
|
|
2529
|
-
'xl-up': this.xlUp(), 'xxl-up': this.xxlUp(),
|
|
2530
|
-
'sm-down': this.smDown(), 'md-down': this.mdDown(),
|
|
2531
|
-
'lg-down': this.lgDown(), 'xl-down': this.xlDown() }, this.media.currentBp(), a => this.media.isActive(a)) ?? 'row'), /* @ts-ignore */
|
|
2532
|
-
...(ngDevMode ? [{ debugName: "_parsed" }] : /* istanbul ignore next */ []));
|
|
2533
|
-
effect(() => {
|
|
2534
|
-
const [dir, wrap] = this._parsed();
|
|
2535
|
-
this.safeSetStyle('flex-direction', dir);
|
|
2536
|
-
this.safeSetStyle('flex-wrap', wrap);
|
|
2537
|
-
});
|
|
2538
|
-
}
|
|
2539
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxLayoutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2540
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.1", type: FxLayoutDirective, isStandalone: true, selector: "\n [fxLayout],\n [fxLayout.xs],[fxLayout.sm],[fxLayout.md],[fxLayout.lg],[fxLayout.xl],[fxLayout.xxl],\n [fxLayout.lt-sm],[fxLayout.lt-md],[fxLayout.lt-lg],[fxLayout.lt-xl],[fxLayout.lt-xxl],\n [fxLayout.gt-xs],[fxLayout.gt-sm],[fxLayout.gt-md],[fxLayout.gt-lg],[fxLayout.gt-xl],\n [fxLayout.sm-up],[fxLayout.md-up],[fxLayout.lg-up],[fxLayout.xl-up],[fxLayout.xxl-up],\n [fxLayout.sm-down],[fxLayout.md-down],[fxLayout.lg-down],[fxLayout.xl-down]\n ", inputs: { fxLayout: { classPropertyName: "fxLayout", publicName: "fxLayout", isSignal: true, isRequired: false, transformFunction: null }, xs: { classPropertyName: "xs", publicName: "fxLayout.xs", isSignal: true, isRequired: false, transformFunction: null }, sm: { classPropertyName: "sm", publicName: "fxLayout.sm", isSignal: true, isRequired: false, transformFunction: null }, md: { classPropertyName: "md", publicName: "fxLayout.md", isSignal: true, isRequired: false, transformFunction: null }, lg: { classPropertyName: "lg", publicName: "fxLayout.lg", isSignal: true, isRequired: false, transformFunction: null }, xl: { classPropertyName: "xl", publicName: "fxLayout.xl", isSignal: true, isRequired: false, transformFunction: null }, xxl: { classPropertyName: "xxl", publicName: "fxLayout.xxl", isSignal: true, isRequired: false, transformFunction: null }, ltSm: { classPropertyName: "ltSm", publicName: "fxLayout.lt-sm", isSignal: true, isRequired: false, transformFunction: null }, ltMd: { classPropertyName: "ltMd", publicName: "fxLayout.lt-md", isSignal: true, isRequired: false, transformFunction: null }, ltLg: { classPropertyName: "ltLg", publicName: "fxLayout.lt-lg", isSignal: true, isRequired: false, transformFunction: null }, ltXl: { classPropertyName: "ltXl", publicName: "fxLayout.lt-xl", isSignal: true, isRequired: false, transformFunction: null }, ltXxl: { classPropertyName: "ltXxl", publicName: "fxLayout.lt-xxl", isSignal: true, isRequired: false, transformFunction: null }, gtXs: { classPropertyName: "gtXs", publicName: "fxLayout.gt-xs", isSignal: true, isRequired: false, transformFunction: null }, gtSm: { classPropertyName: "gtSm", publicName: "fxLayout.gt-sm", isSignal: true, isRequired: false, transformFunction: null }, gtMd: { classPropertyName: "gtMd", publicName: "fxLayout.gt-md", isSignal: true, isRequired: false, transformFunction: null }, gtLg: { classPropertyName: "gtLg", publicName: "fxLayout.gt-lg", isSignal: true, isRequired: false, transformFunction: null }, gtXl: { classPropertyName: "gtXl", publicName: "fxLayout.gt-xl", isSignal: true, isRequired: false, transformFunction: null }, smUp: { classPropertyName: "smUp", publicName: "fxLayout.sm-up", isSignal: true, isRequired: false, transformFunction: null }, mdUp: { classPropertyName: "mdUp", publicName: "fxLayout.md-up", isSignal: true, isRequired: false, transformFunction: null }, lgUp: { classPropertyName: "lgUp", publicName: "fxLayout.lg-up", isSignal: true, isRequired: false, transformFunction: null }, xlUp: { classPropertyName: "xlUp", publicName: "fxLayout.xl-up", isSignal: true, isRequired: false, transformFunction: null }, xxlUp: { classPropertyName: "xxlUp", publicName: "fxLayout.xxl-up", isSignal: true, isRequired: false, transformFunction: null }, smDown: { classPropertyName: "smDown", publicName: "fxLayout.sm-down", isSignal: true, isRequired: false, transformFunction: null }, mdDown: { classPropertyName: "mdDown", publicName: "fxLayout.md-down", isSignal: true, isRequired: false, transformFunction: null }, lgDown: { classPropertyName: "lgDown", publicName: "fxLayout.lg-down", isSignal: true, isRequired: false, transformFunction: null }, xlDown: { classPropertyName: "xlDown", publicName: "fxLayout.xl-down", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "\"flex\"" } }, usesInheritance: true, ngImport: i0 }); }
|
|
2541
|
-
}
|
|
2542
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxLayoutDirective, decorators: [{
|
|
2543
2840
|
type: Directive,
|
|
2544
2841
|
args: [{
|
|
2545
2842
|
selector: `
|
|
2546
|
-
[
|
|
2547
|
-
[
|
|
2548
|
-
[
|
|
2549
|
-
[
|
|
2550
|
-
[
|
|
2551
|
-
[
|
|
2843
|
+
[fxLayoutGap],
|
|
2844
|
+
[fxLayoutGap.xs],[fxLayoutGap.sm],[fxLayoutGap.md],[fxLayoutGap.lg],[fxLayoutGap.xl],[fxLayoutGap.xxl],
|
|
2845
|
+
[fxLayoutGap.lt-sm],[fxLayoutGap.lt-md],[fxLayoutGap.lt-lg],[fxLayoutGap.lt-xl],[fxLayoutGap.lt-xxl],
|
|
2846
|
+
[fxLayoutGap.gt-xs],[fxLayoutGap.gt-sm],[fxLayoutGap.gt-md],[fxLayoutGap.gt-lg],[fxLayoutGap.gt-xl],
|
|
2847
|
+
[fxLayoutGap.sm-up],[fxLayoutGap.md-up],[fxLayoutGap.lg-up],[fxLayoutGap.xl-up],[fxLayoutGap.xxl-up],
|
|
2848
|
+
[fxLayoutGap.sm-down],[fxLayoutGap.md-down],[fxLayoutGap.lg-down],[fxLayoutGap.xl-down]
|
|
2552
2849
|
`,
|
|
2553
2850
|
standalone: true,
|
|
2554
|
-
host: { '[style.display]': '"flex"' },
|
|
2555
2851
|
}]
|
|
2556
|
-
}], ctorParameters: () => [], propDecorators: {
|
|
2557
|
-
class FxLayoutWrapDirective extends ResponsiveBaseDirective {
|
|
2558
|
-
constructor() {
|
|
2559
|
-
super();
|
|
2560
|
-
this.fxLayoutWrap = input('wrap', { ...(ngDevMode ? { debugName: "fxLayoutWrap" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap' });
|
|
2561
|
-
this.xs = input(undefined, { ...(ngDevMode ? { debugName: "xs" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.xs' });
|
|
2562
|
-
this.sm = input(undefined, { ...(ngDevMode ? { debugName: "sm" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.sm' });
|
|
2563
|
-
this.md = input(undefined, { ...(ngDevMode ? { debugName: "md" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.md' });
|
|
2564
|
-
this.lg = input(undefined, { ...(ngDevMode ? { debugName: "lg" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lg' });
|
|
2565
|
-
this.xl = input(undefined, { ...(ngDevMode ? { debugName: "xl" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.xl' });
|
|
2566
|
-
this.xxl = input(undefined, { ...(ngDevMode ? { debugName: "xxl" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.xxl' });
|
|
2567
|
-
this.ltSm = input(undefined, { ...(ngDevMode ? { debugName: "ltSm" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lt-sm' });
|
|
2568
|
-
this.ltMd = input(undefined, { ...(ngDevMode ? { debugName: "ltMd" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lt-md' });
|
|
2569
|
-
this.ltLg = input(undefined, { ...(ngDevMode ? { debugName: "ltLg" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lt-lg' });
|
|
2570
|
-
this.ltXl = input(undefined, { ...(ngDevMode ? { debugName: "ltXl" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lt-xl' });
|
|
2571
|
-
this.ltXxl = input(undefined, { ...(ngDevMode ? { debugName: "ltXxl" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lt-xxl' });
|
|
2572
|
-
this.gtXs = input(undefined, { ...(ngDevMode ? { debugName: "gtXs" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.gt-xs' });
|
|
2573
|
-
this.gtSm = input(undefined, { ...(ngDevMode ? { debugName: "gtSm" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.gt-sm' });
|
|
2574
|
-
this.gtMd = input(undefined, { ...(ngDevMode ? { debugName: "gtMd" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.gt-md' });
|
|
2575
|
-
this.gtLg = input(undefined, { ...(ngDevMode ? { debugName: "gtLg" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.gt-lg' });
|
|
2576
|
-
this.gtXl = input(undefined, { ...(ngDevMode ? { debugName: "gtXl" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.gt-xl' });
|
|
2577
|
-
this.smUp = input(undefined, { ...(ngDevMode ? { debugName: "smUp" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.sm-up' });
|
|
2578
|
-
this.mdUp = input(undefined, { ...(ngDevMode ? { debugName: "mdUp" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.md-up' });
|
|
2579
|
-
this.lgUp = input(undefined, { ...(ngDevMode ? { debugName: "lgUp" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lg-up' });
|
|
2580
|
-
this.xlUp = input(undefined, { ...(ngDevMode ? { debugName: "xlUp" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.xl-up' });
|
|
2581
|
-
this.xxlUp = input(undefined, { ...(ngDevMode ? { debugName: "xxlUp" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.xxl-up' });
|
|
2582
|
-
this.smDown = input(undefined, { ...(ngDevMode ? { debugName: "smDown" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.sm-down' });
|
|
2583
|
-
this.mdDown = input(undefined, { ...(ngDevMode ? { debugName: "mdDown" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.md-down' });
|
|
2584
|
-
this.lgDown = input(undefined, { ...(ngDevMode ? { debugName: "lgDown" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.lg-down' });
|
|
2585
|
-
this.xlDown = input(undefined, { ...(ngDevMode ? { debugName: "xlDown" } : /* istanbul ignore next */ {}), alias: 'fxLayoutWrap.xl-down' });
|
|
2586
|
-
this._wrap = computed(() => {
|
|
2587
|
-
const w = resolveAll({ default: this.fxLayoutWrap(), xs: this.xs(), sm: this.sm(), md: this.md(),
|
|
2588
|
-
lg: this.lg(), xl: this.xl(), xxl: this.xxl() }, { 'lt-sm': this.ltSm(), 'lt-md': this.ltMd(), 'lt-lg': this.ltLg(),
|
|
2589
|
-
'lt-xl': this.ltXl(), 'lt-xxl': this.ltXxl(),
|
|
2590
|
-
'gt-xs': this.gtXs(), 'gt-sm': this.gtSm(), 'gt-md': this.gtMd(),
|
|
2591
|
-
'gt-lg': this.gtLg(), 'gt-xl': this.gtXl(),
|
|
2592
|
-
'sm-up': this.smUp(), 'md-up': this.mdUp(), 'lg-up': this.lgUp(),
|
|
2593
|
-
'xl-up': this.xlUp(), 'xxl-up': this.xxlUp(),
|
|
2594
|
-
'sm-down': this.smDown(), 'md-down': this.mdDown(),
|
|
2595
|
-
'lg-down': this.lgDown(), 'xl-down': this.xlDown() }, this.media.currentBp(), a => this.media.isActive(a)) ?? 'wrap';
|
|
2596
|
-
return VALID_WRAPS.has(w) ? w : 'wrap';
|
|
2597
|
-
}, /* @ts-ignore */
|
|
2598
|
-
...(ngDevMode ? [{ debugName: "_wrap" }] : /* istanbul ignore next */ []));
|
|
2599
|
-
effect(() => { this.safeSetStyle('flex-wrap', this._wrap()); });
|
|
2600
|
-
}
|
|
2601
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxLayoutWrapDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2602
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.1", type: FxLayoutWrapDirective, isStandalone: true, selector: "\n [fxLayoutWrap],\n [fxLayoutWrap.xs],[fxLayoutWrap.sm],[fxLayoutWrap.md],[fxLayoutWrap.lg],[fxLayoutWrap.xl],[fxLayoutWrap.xxl],\n [fxLayoutWrap.lt-sm],[fxLayoutWrap.lt-md],[fxLayoutWrap.lt-lg],[fxLayoutWrap.lt-xl],[fxLayoutWrap.lt-xxl],\n [fxLayoutWrap.gt-xs],[fxLayoutWrap.gt-sm],[fxLayoutWrap.gt-md],[fxLayoutWrap.gt-lg],[fxLayoutWrap.gt-xl],\n [fxLayoutWrap.sm-up],[fxLayoutWrap.md-up],[fxLayoutWrap.lg-up],[fxLayoutWrap.xl-up],[fxLayoutWrap.xxl-up],\n [fxLayoutWrap.sm-down],[fxLayoutWrap.md-down],[fxLayoutWrap.lg-down],[fxLayoutWrap.xl-down]\n ", inputs: { fxLayoutWrap: { classPropertyName: "fxLayoutWrap", publicName: "fxLayoutWrap", isSignal: true, isRequired: false, transformFunction: null }, xs: { classPropertyName: "xs", publicName: "fxLayoutWrap.xs", isSignal: true, isRequired: false, transformFunction: null }, sm: { classPropertyName: "sm", publicName: "fxLayoutWrap.sm", isSignal: true, isRequired: false, transformFunction: null }, md: { classPropertyName: "md", publicName: "fxLayoutWrap.md", isSignal: true, isRequired: false, transformFunction: null }, lg: { classPropertyName: "lg", publicName: "fxLayoutWrap.lg", isSignal: true, isRequired: false, transformFunction: null }, xl: { classPropertyName: "xl", publicName: "fxLayoutWrap.xl", isSignal: true, isRequired: false, transformFunction: null }, xxl: { classPropertyName: "xxl", publicName: "fxLayoutWrap.xxl", isSignal: true, isRequired: false, transformFunction: null }, ltSm: { classPropertyName: "ltSm", publicName: "fxLayoutWrap.lt-sm", isSignal: true, isRequired: false, transformFunction: null }, ltMd: { classPropertyName: "ltMd", publicName: "fxLayoutWrap.lt-md", isSignal: true, isRequired: false, transformFunction: null }, ltLg: { classPropertyName: "ltLg", publicName: "fxLayoutWrap.lt-lg", isSignal: true, isRequired: false, transformFunction: null }, ltXl: { classPropertyName: "ltXl", publicName: "fxLayoutWrap.lt-xl", isSignal: true, isRequired: false, transformFunction: null }, ltXxl: { classPropertyName: "ltXxl", publicName: "fxLayoutWrap.lt-xxl", isSignal: true, isRequired: false, transformFunction: null }, gtXs: { classPropertyName: "gtXs", publicName: "fxLayoutWrap.gt-xs", isSignal: true, isRequired: false, transformFunction: null }, gtSm: { classPropertyName: "gtSm", publicName: "fxLayoutWrap.gt-sm", isSignal: true, isRequired: false, transformFunction: null }, gtMd: { classPropertyName: "gtMd", publicName: "fxLayoutWrap.gt-md", isSignal: true, isRequired: false, transformFunction: null }, gtLg: { classPropertyName: "gtLg", publicName: "fxLayoutWrap.gt-lg", isSignal: true, isRequired: false, transformFunction: null }, gtXl: { classPropertyName: "gtXl", publicName: "fxLayoutWrap.gt-xl", isSignal: true, isRequired: false, transformFunction: null }, smUp: { classPropertyName: "smUp", publicName: "fxLayoutWrap.sm-up", isSignal: true, isRequired: false, transformFunction: null }, mdUp: { classPropertyName: "mdUp", publicName: "fxLayoutWrap.md-up", isSignal: true, isRequired: false, transformFunction: null }, lgUp: { classPropertyName: "lgUp", publicName: "fxLayoutWrap.lg-up", isSignal: true, isRequired: false, transformFunction: null }, xlUp: { classPropertyName: "xlUp", publicName: "fxLayoutWrap.xl-up", isSignal: true, isRequired: false, transformFunction: null }, xxlUp: { classPropertyName: "xxlUp", publicName: "fxLayoutWrap.xxl-up", isSignal: true, isRequired: false, transformFunction: null }, smDown: { classPropertyName: "smDown", publicName: "fxLayoutWrap.sm-down", isSignal: true, isRequired: false, transformFunction: null }, mdDown: { classPropertyName: "mdDown", publicName: "fxLayoutWrap.md-down", isSignal: true, isRequired: false, transformFunction: null }, lgDown: { classPropertyName: "lgDown", publicName: "fxLayoutWrap.lg-down", isSignal: true, isRequired: false, transformFunction: null }, xlDown: { classPropertyName: "xlDown", publicName: "fxLayoutWrap.xl-down", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
|
|
2603
|
-
}
|
|
2604
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxLayoutWrapDirective, decorators: [{
|
|
2605
|
-
type: Directive,
|
|
2606
|
-
args: [{
|
|
2607
|
-
selector: `
|
|
2608
|
-
[fxLayoutWrap],
|
|
2609
|
-
[fxLayoutWrap.xs],[fxLayoutWrap.sm],[fxLayoutWrap.md],[fxLayoutWrap.lg],[fxLayoutWrap.xl],[fxLayoutWrap.xxl],
|
|
2610
|
-
[fxLayoutWrap.lt-sm],[fxLayoutWrap.lt-md],[fxLayoutWrap.lt-lg],[fxLayoutWrap.lt-xl],[fxLayoutWrap.lt-xxl],
|
|
2611
|
-
[fxLayoutWrap.gt-xs],[fxLayoutWrap.gt-sm],[fxLayoutWrap.gt-md],[fxLayoutWrap.gt-lg],[fxLayoutWrap.gt-xl],
|
|
2612
|
-
[fxLayoutWrap.sm-up],[fxLayoutWrap.md-up],[fxLayoutWrap.lg-up],[fxLayoutWrap.xl-up],[fxLayoutWrap.xxl-up],
|
|
2613
|
-
[fxLayoutWrap.sm-down],[fxLayoutWrap.md-down],[fxLayoutWrap.lg-down],[fxLayoutWrap.xl-down]
|
|
2614
|
-
`,
|
|
2615
|
-
standalone: true,
|
|
2616
|
-
}]
|
|
2617
|
-
}], ctorParameters: () => [], propDecorators: { fxLayoutWrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap", required: false }] }], xs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.xs", required: false }] }], sm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.sm", required: false }] }], md: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.md", required: false }] }], lg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lg", required: false }] }], xl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.xl", required: false }] }], xxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.xxl", required: false }] }], ltSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lt-sm", required: false }] }], ltMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lt-md", required: false }] }], ltLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lt-lg", required: false }] }], ltXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lt-xl", required: false }] }], ltXxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lt-xxl", required: false }] }], gtXs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.gt-xs", required: false }] }], gtSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.gt-sm", required: false }] }], gtMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.gt-md", required: false }] }], gtLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.gt-lg", required: false }] }], gtXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.gt-xl", required: false }] }], smUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.sm-up", required: false }] }], mdUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.md-up", required: false }] }], lgUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lg-up", required: false }] }], xlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.xl-up", required: false }] }], xxlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.xxl-up", required: false }] }], smDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.sm-down", required: false }] }], mdDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.md-down", required: false }] }], lgDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.lg-down", required: false }] }], xlDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutWrap.xl-down", required: false }] }] } });
|
|
2852
|
+
}], ctorParameters: () => [], propDecorators: { fxLayoutGap: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap", required: false }] }], xs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.xs", required: false }] }], sm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.sm", required: false }] }], md: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.md", required: false }] }], lg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lg", required: false }] }], xl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.xl", required: false }] }], xxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.xxl", required: false }] }], ltSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lt-sm", required: false }] }], ltMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lt-md", required: false }] }], ltLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lt-lg", required: false }] }], ltXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lt-xl", required: false }] }], ltXxl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lt-xxl", required: false }] }], gtXs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.gt-xs", required: false }] }], gtSm: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.gt-sm", required: false }] }], gtMd: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.gt-md", required: false }] }], gtLg: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.gt-lg", required: false }] }], gtXl: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.gt-xl", required: false }] }], smUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.sm-up", required: false }] }], mdUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.md-up", required: false }] }], lgUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lg-up", required: false }] }], xlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.xl-up", required: false }] }], xxlUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.xxl-up", required: false }] }], smDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.sm-down", required: false }] }], mdDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.md-down", required: false }] }], lgDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.lg-down", required: false }] }], xlDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "fxLayoutGap.xl-down", required: false }] }] } });
|
|
2618
2853
|
|
|
2619
2854
|
/**
|
|
2620
2855
|
* @file fx-show-hide.directives.ts (Angular 21 — signals)
|
|
@@ -2639,6 +2874,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
|
|
|
2639
2874
|
*
|
|
2640
2875
|
* Breakpoint suffixes: canonical + lt-* + gt-* + *-up + *-down
|
|
2641
2876
|
*/
|
|
2877
|
+
/**
|
|
2878
|
+
* Pure visibility transition (exported for tests).
|
|
2879
|
+
* Captures the inline display before hiding and restores it when shown again,
|
|
2880
|
+
* so display:flex|grid written by FxLayout/FxGrid effects is never lost.
|
|
2881
|
+
* @returns the new "previous display" state to carry to the next transition
|
|
2882
|
+
*/
|
|
2883
|
+
function applyVisibility(el, setStyle, removeStyle, visible, prevDisplay) {
|
|
2884
|
+
if (!visible) {
|
|
2885
|
+
const current = el.style.display;
|
|
2886
|
+
if (current !== 'none')
|
|
2887
|
+
prevDisplay = current || null;
|
|
2888
|
+
setStyle('display', 'none');
|
|
2889
|
+
return prevDisplay;
|
|
2890
|
+
}
|
|
2891
|
+
// Visible: touch the DOM only if we are the ones who hid it
|
|
2892
|
+
if (el.style.display === 'none') {
|
|
2893
|
+
if (prevDisplay)
|
|
2894
|
+
setStyle('display', prevDisplay);
|
|
2895
|
+
else
|
|
2896
|
+
removeStyle('display');
|
|
2897
|
+
}
|
|
2898
|
+
return prevDisplay;
|
|
2899
|
+
}
|
|
2642
2900
|
function toBool(v) {
|
|
2643
2901
|
if (v === undefined || v === null)
|
|
2644
2902
|
return undefined;
|
|
@@ -2769,10 +3027,10 @@ class FxShowHideDirective extends ResponsiveBaseDirective {
|
|
|
2769
3027
|
return true;
|
|
2770
3028
|
}, /* @ts-ignore */
|
|
2771
3029
|
...(ngDevMode ? [{ debugName: "_visible" }] : /* istanbul ignore next */ []));
|
|
3030
|
+
/** Inline display captured before the last hide — restored on show. */
|
|
3031
|
+
this._prevDisplay = null;
|
|
2772
3032
|
effect(() => {
|
|
2773
|
-
this._visible()
|
|
2774
|
-
? this.r2.removeStyle(this.el.nativeElement, 'display')
|
|
2775
|
-
: this.r2.setStyle(this.el.nativeElement, 'display', 'none');
|
|
3033
|
+
this._prevDisplay = applyVisibility(this.el.nativeElement, (p, v) => this.r2.setStyle(this.el.nativeElement, p, v), p => this.r2.removeStyle(this.el.nativeElement, p), this._visible(), this._prevDisplay);
|
|
2776
3034
|
});
|
|
2777
3035
|
}
|
|
2778
3036
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxShowHideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -2781,18 +3039,18 @@ class FxShowHideDirective extends ResponsiveBaseDirective {
|
|
|
2781
3039
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxShowHideDirective, decorators: [{
|
|
2782
3040
|
type: Directive,
|
|
2783
3041
|
args: [{
|
|
2784
|
-
selector: `
|
|
2785
|
-
[fxShow],[fxHide],
|
|
2786
|
-
[fxShow.xs],[fxShow.sm],[fxShow.md],[fxShow.lg],[fxShow.xl],[fxShow.xxl],
|
|
2787
|
-
[fxShow.lt-sm],[fxShow.lt-md],[fxShow.lt-lg],[fxShow.lt-xl],[fxShow.lt-xxl],
|
|
2788
|
-
[fxShow.gt-xs],[fxShow.gt-sm],[fxShow.gt-md],[fxShow.gt-lg],[fxShow.gt-xl],
|
|
2789
|
-
[fxShow.sm-up],[fxShow.md-up],[fxShow.lg-up],[fxShow.xl-up],[fxShow.xxl-up],
|
|
2790
|
-
[fxShow.sm-down],[fxShow.md-down],[fxShow.lg-down],[fxShow.xl-down],
|
|
2791
|
-
[fxHide.xs],[fxHide.sm],[fxHide.md],[fxHide.lg],[fxHide.xl],[fxHide.xxl],
|
|
2792
|
-
[fxHide.lt-sm],[fxHide.lt-md],[fxHide.lt-lg],[fxHide.lt-xl],[fxHide.lt-xxl],
|
|
2793
|
-
[fxHide.gt-xs],[fxHide.gt-sm],[fxHide.gt-md],[fxHide.gt-lg],[fxHide.gt-xl],
|
|
2794
|
-
[fxHide.sm-up],[fxHide.md-up],[fxHide.lg-up],[fxHide.xl-up],[fxHide.xxl-up],
|
|
2795
|
-
[fxHide.sm-down],[fxHide.md-down],[fxHide.lg-down],[fxHide.xl-down]
|
|
3042
|
+
selector: `
|
|
3043
|
+
[fxShow],[fxHide],
|
|
3044
|
+
[fxShow.xs],[fxShow.sm],[fxShow.md],[fxShow.lg],[fxShow.xl],[fxShow.xxl],
|
|
3045
|
+
[fxShow.lt-sm],[fxShow.lt-md],[fxShow.lt-lg],[fxShow.lt-xl],[fxShow.lt-xxl],
|
|
3046
|
+
[fxShow.gt-xs],[fxShow.gt-sm],[fxShow.gt-md],[fxShow.gt-lg],[fxShow.gt-xl],
|
|
3047
|
+
[fxShow.sm-up],[fxShow.md-up],[fxShow.lg-up],[fxShow.xl-up],[fxShow.xxl-up],
|
|
3048
|
+
[fxShow.sm-down],[fxShow.md-down],[fxShow.lg-down],[fxShow.xl-down],
|
|
3049
|
+
[fxHide.xs],[fxHide.sm],[fxHide.md],[fxHide.lg],[fxHide.xl],[fxHide.xxl],
|
|
3050
|
+
[fxHide.lt-sm],[fxHide.lt-md],[fxHide.lt-lg],[fxHide.lt-xl],[fxHide.lt-xxl],
|
|
3051
|
+
[fxHide.gt-xs],[fxHide.gt-sm],[fxHide.gt-md],[fxHide.gt-lg],[fxHide.gt-xl],
|
|
3052
|
+
[fxHide.sm-up],[fxHide.md-up],[fxHide.lg-up],[fxHide.xl-up],[fxHide.xxl-up],
|
|
3053
|
+
[fxHide.sm-down],[fxHide.md-down],[fxHide.lg-down],[fxHide.xl-down]
|
|
2796
3054
|
`,
|
|
2797
3055
|
standalone: true,
|
|
2798
3056
|
}]
|
|
@@ -2878,13 +3136,13 @@ class FxStyleDirective extends ResponsiveBaseDirective {
|
|
|
2878
3136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxStyleDirective, decorators: [{
|
|
2879
3137
|
type: Directive,
|
|
2880
3138
|
args: [{
|
|
2881
|
-
selector: `
|
|
2882
|
-
[fxStyle],
|
|
2883
|
-
[fxStyle.xs],[fxStyle.sm],[fxStyle.md],[fxStyle.lg],[fxStyle.xl],[fxStyle.xxl],
|
|
2884
|
-
[fxStyle.lt-sm],[fxStyle.lt-md],[fxStyle.lt-lg],[fxStyle.lt-xl],[fxStyle.lt-xxl],
|
|
2885
|
-
[fxStyle.gt-xs],[fxStyle.gt-sm],[fxStyle.gt-md],[fxStyle.gt-lg],[fxStyle.gt-xl],
|
|
2886
|
-
[fxStyle.sm-up],[fxStyle.md-up],[fxStyle.lg-up],[fxStyle.xl-up],[fxStyle.xxl-up],
|
|
2887
|
-
[fxStyle.sm-down],[fxStyle.md-down],[fxStyle.lg-down],[fxStyle.xl-down]
|
|
3139
|
+
selector: `
|
|
3140
|
+
[fxStyle],
|
|
3141
|
+
[fxStyle.xs],[fxStyle.sm],[fxStyle.md],[fxStyle.lg],[fxStyle.xl],[fxStyle.xxl],
|
|
3142
|
+
[fxStyle.lt-sm],[fxStyle.lt-md],[fxStyle.lt-lg],[fxStyle.lt-xl],[fxStyle.lt-xxl],
|
|
3143
|
+
[fxStyle.gt-xs],[fxStyle.gt-sm],[fxStyle.gt-md],[fxStyle.gt-lg],[fxStyle.gt-xl],
|
|
3144
|
+
[fxStyle.sm-up],[fxStyle.md-up],[fxStyle.lg-up],[fxStyle.xl-up],[fxStyle.xxl-up],
|
|
3145
|
+
[fxStyle.sm-down],[fxStyle.md-down],[fxStyle.lg-down],[fxStyle.xl-down]
|
|
2888
3146
|
`,
|
|
2889
3147
|
standalone: true,
|
|
2890
3148
|
}]
|
|
@@ -2959,13 +3217,13 @@ class FxClassDirective extends ResponsiveBaseDirective {
|
|
|
2959
3217
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: FxClassDirective, decorators: [{
|
|
2960
3218
|
type: Directive,
|
|
2961
3219
|
args: [{
|
|
2962
|
-
selector: `
|
|
2963
|
-
[fxClass],
|
|
2964
|
-
[fxClass.xs],[fxClass.sm],[fxClass.md],[fxClass.lg],[fxClass.xl],[fxClass.xxl],
|
|
2965
|
-
[fxClass.lt-sm],[fxClass.lt-md],[fxClass.lt-lg],[fxClass.lt-xl],[fxClass.lt-xxl],
|
|
2966
|
-
[fxClass.gt-xs],[fxClass.gt-sm],[fxClass.gt-md],[fxClass.gt-lg],[fxClass.gt-xl],
|
|
2967
|
-
[fxClass.sm-up],[fxClass.md-up],[fxClass.lg-up],[fxClass.xl-up],[fxClass.xxl-up],
|
|
2968
|
-
[fxClass.sm-down],[fxClass.md-down],[fxClass.lg-down],[fxClass.xl-down]
|
|
3220
|
+
selector: `
|
|
3221
|
+
[fxClass],
|
|
3222
|
+
[fxClass.xs],[fxClass.sm],[fxClass.md],[fxClass.lg],[fxClass.xl],[fxClass.xxl],
|
|
3223
|
+
[fxClass.lt-sm],[fxClass.lt-md],[fxClass.lt-lg],[fxClass.lt-xl],[fxClass.lt-xxl],
|
|
3224
|
+
[fxClass.gt-xs],[fxClass.gt-sm],[fxClass.gt-md],[fxClass.gt-lg],[fxClass.gt-xl],
|
|
3225
|
+
[fxClass.sm-up],[fxClass.md-up],[fxClass.lg-up],[fxClass.xl-up],[fxClass.xxl-up],
|
|
3226
|
+
[fxClass.sm-down],[fxClass.md-down],[fxClass.lg-down],[fxClass.xl-down]
|
|
2969
3227
|
`,
|
|
2970
3228
|
standalone: true,
|
|
2971
3229
|
}]
|
|
@@ -3056,5 +3314,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
|
|
|
3056
3314
|
* Generated bundle index. Do not edit.
|
|
3057
3315
|
*/
|
|
3058
3316
|
|
|
3059
|
-
export { ALIAS_FAMILIES, ALIAS_INDEX, ArsUIFlexModule, BS5_BREAKPOINTS, BusyDialogComponent, BusyTimer, CANONICAL_ALIASES, ConfirmDialogComponent, CredentialsDialogComponent, DeleteDialogComponent, DeleteDialogConfirmMode, DialogService, FxClassDirective, FxFlexAlignDirective, FxFlexDirective, FxFlexFillDirective, FxFlexOffsetDirective, FxFlexOrderDirective, FxGridAreaDirective, FxGridColumnDirective, FxGridDirective, FxLayoutAlignDirective, FxLayoutDirective, FxLayoutGapDirective, FxLayoutWrapDirective, FxShowHideDirective, FxStyleDirective, IfBpDirective, InfoDialogComponent, LAYOUT_BREAKPOINTS, MediaObserver, NON_CANONICAL_PRIORITY, OtpInputComponent, PaginatorIntl, PasswordStrengthComponent, RecoverPasswordDialogComponent, ResetPasswordDialogComponent, ResponsiveBaseDirective, ToastComponent, UIService, resolve, resolveAll, resolveNonCanonical };
|
|
3317
|
+
export { ALIAS_FAMILIES, ALIAS_INDEX, ArsUIFlexModule, BS5_BREAKPOINTS, BusyDialogComponent, BusyTimer, CANONICAL_ALIASES, ConfirmDialogComponent, CredentialsDialogComponent, DeleteDialogComponent, DeleteDialogConfirmMode, DialogService, FxClassDirective, FxFlexAlignDirective, FxFlexDirective, FxFlexFillDirective, FxFlexOffsetDirective, FxFlexOrderDirective, FxGridAreaDirective, FxGridColumnDirective, FxGridDirective, FxLayoutAlignDirective, FxLayoutDirective, FxLayoutGapDirective, FxLayoutWrapDirective, FxShowHideDirective, FxStyleDirective, IfBpDirective, InfoDialogComponent, LAYOUT_BREAKPOINTS, LAYOUT_VALUES, MediaObserver, NON_CANONICAL_PRIORITY, OtpInputComponent, PaginatorIntl, PasswordStrengthComponent, RecoverPasswordDialogComponent, ResetPasswordDialogComponent, ResponsiveBaseDirective, ToastComponent, UIService, applyVisibility, buildAlignStyles, buildFlexStyles, buildLayoutCSS, resolve, resolveAll, resolveNonCanonical, resolveParentFlow, validateBasis, validateLayoutValue, validateWrapValue };
|
|
3060
3318
|
//# sourceMappingURL=arsedizioni-ars-utils-ui.mjs.map
|