@design-factory/angular 21.1.0-next.0 → 21.1.0
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/design-factory-angular-drawer.mjs +22 -29
- package/fesm2022/design-factory-angular-drawer.mjs.map +1 -1
- package/fesm2022/design-factory-angular-internals.mjs +5 -5
- package/fesm2022/design-factory-angular-internals.mjs.map +1 -1
- package/fesm2022/design-factory-angular-sidenav.mjs +139 -62
- package/fesm2022/design-factory-angular-sidenav.mjs.map +1 -1
- package/fesm2022/design-factory-angular-theme.mjs +1 -1
- package/fesm2022/design-factory-angular-theme.mjs.map +1 -1
- package/fesm2022/design-factory-angular-topnav.mjs +152 -75
- package/fesm2022/design-factory-angular-topnav.mjs.map +1 -1
- package/package.json +3 -6
- package/types/design-factory-angular-drawer.d.ts +13 -14
- package/types/design-factory-angular-internals.d.ts +3 -3
- package/types/design-factory-angular-sidenav.d.ts +19 -6
- package/types/design-factory-angular-topnav.d.ts +13 -6
- package/node_modules/@agnos-ui/core/README.md +0 -5
- package/node_modules/@agnos-ui/core/accordion-BC_9xn23.cjs +0 -314
- package/node_modules/@agnos-ui/core/accordion-Ca_0T8Bc.js +0 -315
- package/node_modules/@agnos-ui/core/alert-AhaliJ17.cjs +0 -9
- package/node_modules/@agnos-ui/core/alert-Cb9FhbFQ.js +0 -10
- package/node_modules/@agnos-ui/core/collapse-COriZO7o.cjs +0 -94
- package/node_modules/@agnos-ui/core/collapse-CP79atna.js +0 -95
- package/node_modules/@agnos-ui/core/common-B5jS-Ih_.cjs +0 -73
- package/node_modules/@agnos-ui/core/common-DFyZvkII.js +0 -74
- package/node_modules/@agnos-ui/core/components/accordion/accordion.d.ts +0 -333
- package/node_modules/@agnos-ui/core/components/accordion/index.cjs +0 -7
- package/node_modules/@agnos-ui/core/components/accordion/index.d.ts +0 -1
- package/node_modules/@agnos-ui/core/components/accordion/index.js +0 -7
- package/node_modules/@agnos-ui/core/components/alert/alert.d.ts +0 -37
- package/node_modules/@agnos-ui/core/components/alert/common.d.ts +0 -138
- package/node_modules/@agnos-ui/core/components/alert/index.cjs +0 -5
- package/node_modules/@agnos-ui/core/components/alert/index.d.ts +0 -1
- package/node_modules/@agnos-ui/core/components/alert/index.js +0 -5
- package/node_modules/@agnos-ui/core/components/carousel/carousel.d.ts +0 -247
- package/node_modules/@agnos-ui/core/components/carousel/index.cjs +0 -292
- package/node_modules/@agnos-ui/core/components/carousel/index.d.ts +0 -1
- package/node_modules/@agnos-ui/core/components/carousel/index.js +0 -292
- package/node_modules/@agnos-ui/core/components/collapse/collapse.d.ts +0 -135
- package/node_modules/@agnos-ui/core/components/collapse/index.cjs +0 -5
- package/node_modules/@agnos-ui/core/components/collapse/index.d.ts +0 -1
- package/node_modules/@agnos-ui/core/components/collapse/index.js +0 -5
- package/node_modules/@agnos-ui/core/components/commonProps.d.ts +0 -11
- package/node_modules/@agnos-ui/core/components/drawer/drawer.d.ts +0 -279
- package/node_modules/@agnos-ui/core/components/drawer/index.cjs +0 -5
- package/node_modules/@agnos-ui/core/components/drawer/index.d.ts +0 -1
- package/node_modules/@agnos-ui/core/components/drawer/index.js +0 -5
- package/node_modules/@agnos-ui/core/components/modal/index.cjs +0 -8
- package/node_modules/@agnos-ui/core/components/modal/index.d.ts +0 -1
- package/node_modules/@agnos-ui/core/components/modal/index.js +0 -8
- package/node_modules/@agnos-ui/core/components/modal/modal.d.ts +0 -245
- package/node_modules/@agnos-ui/core/components/pagination/index.cjs +0 -5
- package/node_modules/@agnos-ui/core/components/pagination/index.d.ts +0 -1
- package/node_modules/@agnos-ui/core/components/pagination/index.js +0 -5
- package/node_modules/@agnos-ui/core/components/pagination/pagination.d.ts +0 -313
- package/node_modules/@agnos-ui/core/components/progressbar/index.cjs +0 -5
- package/node_modules/@agnos-ui/core/components/progressbar/index.d.ts +0 -1
- package/node_modules/@agnos-ui/core/components/progressbar/index.js +0 -5
- package/node_modules/@agnos-ui/core/components/progressbar/progressbar.d.ts +0 -91
- package/node_modules/@agnos-ui/core/components/rating/index.cjs +0 -5
- package/node_modules/@agnos-ui/core/components/rating/index.d.ts +0 -1
- package/node_modules/@agnos-ui/core/components/rating/index.js +0 -5
- package/node_modules/@agnos-ui/core/components/rating/rating.d.ts +0 -191
- package/node_modules/@agnos-ui/core/components/slider/index.cjs +0 -5
- package/node_modules/@agnos-ui/core/components/slider/index.d.ts +0 -1
- package/node_modules/@agnos-ui/core/components/slider/index.js +0 -5
- package/node_modules/@agnos-ui/core/components/slider/slider-utils.d.ts +0 -25
- package/node_modules/@agnos-ui/core/components/slider/slider.d.ts +0 -383
- package/node_modules/@agnos-ui/core/components/toast/index.cjs +0 -7
- package/node_modules/@agnos-ui/core/components/toast/index.d.ts +0 -2
- package/node_modules/@agnos-ui/core/components/toast/index.js +0 -7
- package/node_modules/@agnos-ui/core/components/toast/toast.d.ts +0 -66
- package/node_modules/@agnos-ui/core/components/toast/toaster.d.ts +0 -128
- package/node_modules/@agnos-ui/core/components/tree/index.cjs +0 -5
- package/node_modules/@agnos-ui/core/components/tree/index.d.ts +0 -1
- package/node_modules/@agnos-ui/core/components/tree/index.js +0 -5
- package/node_modules/@agnos-ui/core/components/tree/tree.d.ts +0 -143
- package/node_modules/@agnos-ui/core/config.cjs +0 -36
- package/node_modules/@agnos-ui/core/config.d.ts +0 -117
- package/node_modules/@agnos-ui/core/config.js +0 -36
- package/node_modules/@agnos-ui/core/directive-Bsreu2z1.js +0 -523
- package/node_modules/@agnos-ui/core/directive-DCaXmRe_.cjs +0 -522
- package/node_modules/@agnos-ui/core/drawer-BbFAHV07.cjs +0 -328
- package/node_modules/@agnos-ui/core/drawer-C6Qa0xEu.js +0 -329
- package/node_modules/@agnos-ui/core/index.cjs +0 -134
- package/node_modules/@agnos-ui/core/index.d.ts +0 -29
- package/node_modules/@agnos-ui/core/index.js +0 -134
- package/node_modules/@agnos-ui/core/isFocusable-Ckwus82R.js +0 -32
- package/node_modules/@agnos-ui/core/isFocusable-DfzDLeAN.cjs +0 -31
- package/node_modules/@agnos-ui/core/modal-BsNuHhT7.cjs +0 -252
- package/node_modules/@agnos-ui/core/modal-CgzY8ezz.js +0 -253
- package/node_modules/@agnos-ui/core/package.json +0 -57
- package/node_modules/@agnos-ui/core/pagination-ZxGaNWZz.js +0 -255
- package/node_modules/@agnos-ui/core/pagination-xbcOHnhd.cjs +0 -254
- package/node_modules/@agnos-ui/core/progressbar-CRbMKp4b.cjs +0 -86
- package/node_modules/@agnos-ui/core/progressbar-CSEIFnlD.js +0 -87
- package/node_modules/@agnos-ui/core/promise-CxCD3NYv.cjs +0 -118
- package/node_modules/@agnos-ui/core/promise-D-RZVPuv.js +0 -119
- package/node_modules/@agnos-ui/core/rating-BIdiiPUo.js +0 -184
- package/node_modules/@agnos-ui/core/rating-qx1xaBmz.cjs +0 -183
- package/node_modules/@agnos-ui/core/scrollbars-CT87iv_6.cjs +0 -30
- package/node_modules/@agnos-ui/core/scrollbars-CcxSrnCx.js +0 -31
- package/node_modules/@agnos-ui/core/services/extendWidget.cjs +0 -41
- package/node_modules/@agnos-ui/core/services/extendWidget.d.ts +0 -31
- package/node_modules/@agnos-ui/core/services/extendWidget.js +0 -41
- package/node_modules/@agnos-ui/core/services/floatingUI.cjs +0 -111
- package/node_modules/@agnos-ui/core/services/floatingUI.d.ts +0 -76
- package/node_modules/@agnos-ui/core/services/floatingUI.js +0 -111
- package/node_modules/@agnos-ui/core/services/focusElement.cjs +0 -46
- package/node_modules/@agnos-ui/core/services/focusElement.d.ts +0 -9
- package/node_modules/@agnos-ui/core/services/focusElement.js +0 -46
- package/node_modules/@agnos-ui/core/services/focustrack.cjs +0 -47
- package/node_modules/@agnos-ui/core/services/focustrack.d.ts +0 -40
- package/node_modules/@agnos-ui/core/services/focustrack.js +0 -47
- package/node_modules/@agnos-ui/core/services/hash.cjs +0 -15
- package/node_modules/@agnos-ui/core/services/hash.d.ts +0 -3
- package/node_modules/@agnos-ui/core/services/hash.js +0 -15
- package/node_modules/@agnos-ui/core/services/intersection.cjs +0 -53
- package/node_modules/@agnos-ui/core/services/intersection.d.ts +0 -30
- package/node_modules/@agnos-ui/core/services/intersection.js +0 -53
- package/node_modules/@agnos-ui/core/services/matchMedia.cjs +0 -14
- package/node_modules/@agnos-ui/core/services/matchMedia.d.ts +0 -8
- package/node_modules/@agnos-ui/core/services/matchMedia.js +0 -14
- package/node_modules/@agnos-ui/core/services/navManager.cjs +0 -166
- package/node_modules/@agnos-ui/core/services/navManager.d.ts +0 -144
- package/node_modules/@agnos-ui/core/services/navManager.js +0 -166
- package/node_modules/@agnos-ui/core/services/pointerdownPosition.cjs +0 -60
- package/node_modules/@agnos-ui/core/services/pointerdownPosition.d.ts +0 -42
- package/node_modules/@agnos-ui/core/services/pointerdownPosition.js +0 -60
- package/node_modules/@agnos-ui/core/services/portal.cjs +0 -42
- package/node_modules/@agnos-ui/core/services/portal.d.ts +0 -16
- package/node_modules/@agnos-ui/core/services/portal.js +0 -42
- package/node_modules/@agnos-ui/core/services/resizeObserver.cjs +0 -54
- package/node_modules/@agnos-ui/core/services/resizeObserver.d.ts +0 -18
- package/node_modules/@agnos-ui/core/services/resizeObserver.js +0 -54
- package/node_modules/@agnos-ui/core/services/siblingsInert.cjs +0 -44
- package/node_modules/@agnos-ui/core/services/siblingsInert.d.ts +0 -16
- package/node_modules/@agnos-ui/core/services/siblingsInert.js +0 -44
- package/node_modules/@agnos-ui/core/services/transitions/baseTransitions.cjs +0 -186
- package/node_modules/@agnos-ui/core/services/transitions/baseTransitions.d.ts +0 -166
- package/node_modules/@agnos-ui/core/services/transitions/baseTransitions.js +0 -186
- package/node_modules/@agnos-ui/core/services/transitions/collapse.cjs +0 -40
- package/node_modules/@agnos-ui/core/services/transitions/collapse.d.ts +0 -49
- package/node_modules/@agnos-ui/core/services/transitions/collapse.js +0 -40
- package/node_modules/@agnos-ui/core/services/transitions/cssTransitions.cjs +0 -32
- package/node_modules/@agnos-ui/core/services/transitions/cssTransitions.d.ts +0 -25
- package/node_modules/@agnos-ui/core/services/transitions/cssTransitions.js +0 -32
- package/node_modules/@agnos-ui/core/services/transitions/simpleClassTransition.cjs +0 -37
- package/node_modules/@agnos-ui/core/services/transitions/simpleClassTransition.d.ts +0 -47
- package/node_modules/@agnos-ui/core/services/transitions/simpleClassTransition.js +0 -37
- package/node_modules/@agnos-ui/core/slider-B93hE0ag.cjs +0 -807
- package/node_modules/@agnos-ui/core/slider-Cjiq9FgI.js +0 -808
- package/node_modules/@agnos-ui/core/textDirection-cNgt24LJ.js +0 -4
- package/node_modules/@agnos-ui/core/textDirection-zqcZ5-eK.cjs +0 -3
- package/node_modules/@agnos-ui/core/toaster-BQWqxYv-.cjs +0 -190
- package/node_modules/@agnos-ui/core/toaster-BzEkshT2.js +0 -191
- package/node_modules/@agnos-ui/core/tree-DY04XPPg.cjs +0 -228
- package/node_modules/@agnos-ui/core/tree-HwcvZ0_p.js +0 -229
- package/node_modules/@agnos-ui/core/types.cjs +0 -6
- package/node_modules/@agnos-ui/core/types.d.ts +0 -246
- package/node_modules/@agnos-ui/core/types.js +0 -6
- package/node_modules/@agnos-ui/core/utils/directive.cjs +0 -28
- package/node_modules/@agnos-ui/core/utils/directive.d.ts +0 -352
- package/node_modules/@agnos-ui/core/utils/directive.js +0 -28
- package/node_modules/@agnos-ui/core/utils/func.cjs +0 -7
- package/node_modules/@agnos-ui/core/utils/func.d.ts +0 -11
- package/node_modules/@agnos-ui/core/utils/func.js +0 -7
- package/node_modules/@agnos-ui/core/utils/id.cjs +0 -5
- package/node_modules/@agnos-ui/core/utils/id.d.ts +0 -6
- package/node_modules/@agnos-ui/core/utils/id.js +0 -5
- package/node_modules/@agnos-ui/core/utils/internal/assign.d.ts +0 -10
- package/node_modules/@agnos-ui/core/utils/internal/checks.d.ts +0 -57
- package/node_modules/@agnos-ui/core/utils/internal/dom.d.ts +0 -75
- package/node_modules/@agnos-ui/core/utils/internal/isFocusable.d.ts +0 -9
- package/node_modules/@agnos-ui/core/utils/internal/math.d.ts +0 -5
- package/node_modules/@agnos-ui/core/utils/internal/promise.d.ts +0 -98
- package/node_modules/@agnos-ui/core/utils/internal/scrollbars.d.ts +0 -8
- package/node_modules/@agnos-ui/core/utils/internal/sort.d.ts +0 -16
- package/node_modules/@agnos-ui/core/utils/internal/ssrHTMLElement.d.ts +0 -17
- package/node_modules/@agnos-ui/core/utils/internal/textDirection.d.ts +0 -7
- package/node_modules/@agnos-ui/core/utils/internal/traversal.d.ts +0 -54
- package/node_modules/@agnos-ui/core/utils/stores.cjs +0 -172
- package/node_modules/@agnos-ui/core/utils/stores.d.ts +0 -224
- package/node_modules/@agnos-ui/core/utils/stores.js +0 -172
- package/node_modules/@agnos-ui/core/utils/widget.cjs +0 -8
- package/node_modules/@agnos-ui/core/utils/widget.d.ts +0 -11
- package/node_modules/@agnos-ui/core/utils/widget.js +0 -8
- package/node_modules/@agnos-ui/core/utils/writables.cjs +0 -16
- package/node_modules/@agnos-ui/core/utils/writables.d.ts +0 -95
- package/node_modules/@agnos-ui/core/utils/writables.js +0 -16
- package/node_modules/@agnos-ui/core/writables-DYGjj5T3.js +0 -103
- package/node_modules/@agnos-ui/core/writables-Dt68gADJ.cjs +0 -102
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { createNavManager } from '@
|
|
1
|
+
import { createNavManager } from '@design-factory/core/services/navManager';
|
|
2
2
|
import { toAngularSignal, md$, lg$, useDirectiveForHost } from '@design-factory/angular/internals';
|
|
3
3
|
import { NgTemplateOutlet, isPlatformBrowser } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { input, model, inject, contentChild, computed, Directive, effect, ChangeDetectionStrategy, Component,
|
|
5
|
+
import { input, model, inject, contentChild, computed, Directive, effect, ChangeDetectionStrategy, Component, linkedSignal, viewChild, contentChildren, booleanAttribute, ElementRef, PLATFORM_ID, signal, Injector, afterRenderEffect, untracked, afterNextRender, ViewEncapsulation } from '@angular/core';
|
|
6
6
|
import * as i1 from '@angular/forms';
|
|
7
7
|
import { FormsModule } from '@angular/forms';
|
|
8
8
|
import { DfDrawer } from '@design-factory/angular/drawer';
|
|
@@ -431,9 +431,16 @@ class DfSidenavLinkBaseComponent {
|
|
|
431
431
|
*/
|
|
432
432
|
this.wrapperHasIconContent = input(false, ...(ngDevMode ? [{ debugName: "wrapperHasIconContent" }] : []));
|
|
433
433
|
/**
|
|
434
|
-
*
|
|
434
|
+
* Explicitly sets the active state of the link. When provided, the link behaves
|
|
435
|
+
* as an external link (plain `<a href>`) and the Angular Router is not used.
|
|
436
|
+
* When `undefined` (default), the active state is determined by the Angular Router.
|
|
435
437
|
*/
|
|
436
|
-
this.
|
|
438
|
+
this.active = input(...(ngDevMode ? [undefined, { debugName: "active" }] : []));
|
|
439
|
+
/**
|
|
440
|
+
* Reflects the current active state of the link.
|
|
441
|
+
* Driven by the `active` input when provided, otherwise updated by the router via `(isActiveChange)`.
|
|
442
|
+
*/
|
|
443
|
+
this.isActiveLink = linkedSignal(() => this.active() ?? false, ...(ngDevMode ? [{ debugName: "isActiveLink" }] : []));
|
|
437
444
|
/**
|
|
438
445
|
* Options to determine when the router link is considered active
|
|
439
446
|
*/
|
|
@@ -463,11 +470,11 @@ class DfSidenavLinkBaseComponent {
|
|
|
463
470
|
return true;
|
|
464
471
|
}
|
|
465
472
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
466
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.0", type: DfSidenavLinkBaseComponent, isStandalone: true, inputs: { linkPath: { classPropertyName: "linkPath", publicName: "linkPath", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, wrapperHasIconContent: { classPropertyName: "wrapperHasIconContent", publicName: "wrapperHasIconContent", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "iconContent", first: true, predicate: ["dfSidenavIcon"], descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
473
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.0", type: DfSidenavLinkBaseComponent, isStandalone: true, inputs: { linkPath: { classPropertyName: "linkPath", publicName: "linkPath", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, wrapperHasIconContent: { classPropertyName: "wrapperHasIconContent", publicName: "wrapperHasIconContent", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "iconContent", first: true, predicate: ["dfSidenavIcon"], descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
467
474
|
}
|
|
468
475
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkBaseComponent, decorators: [{
|
|
469
476
|
type: Directive
|
|
470
|
-
}], propDecorators: { linkPath: [{ type: i0.Input, args: [{ isSignal: true, alias: "linkPath", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], wrapperHasIconContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrapperHasIconContent", required: false }] }], routerLinkActiveOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLinkActiveOptions", required: false }] }], iconContent: [{ type: i0.ContentChild, args: ['dfSidenavIcon', { isSignal: true }] }] } });
|
|
477
|
+
}], propDecorators: { linkPath: [{ type: i0.Input, args: [{ isSignal: true, alias: "linkPath", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], wrapperHasIconContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrapperHasIconContent", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], routerLinkActiveOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLinkActiveOptions", required: false }] }], iconContent: [{ type: i0.ContentChild, args: ['dfSidenavIcon', { isSignal: true }] }] } });
|
|
471
478
|
|
|
472
479
|
/**
|
|
473
480
|
* Component representing a leaf in the sidenav for desktop devices
|
|
@@ -480,21 +487,38 @@ class DfSidenavLinkDesktopComponent extends DfSidenavLinkBaseComponent {
|
|
|
480
487
|
}
|
|
481
488
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkDesktopComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
482
489
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfSidenavLinkDesktopComponent, isStandalone: true, selector: "df-sidenav-link-desktop", host: { properties: { "class.d-none": "!isVisible() || (sidenav.isMinimized() && (!isFirstLevel || !wrapperHasIconContent()))" }, classAttribute: "d-flex" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
490
|
+
@if (active() !== undefined) {
|
|
491
|
+
<a
|
|
492
|
+
class="btn df-sidenav-button d-flex gap-3"
|
|
493
|
+
[class.w-100]="!sidenav.isMinimized()"
|
|
494
|
+
[class.df-sidenav-active-level]="active()"
|
|
495
|
+
[class.justify-content-start]="!sidenav.isMinimized()"
|
|
496
|
+
[href]="linkPath()"
|
|
497
|
+
target="_blank"
|
|
498
|
+
[attr.aria-label]="label()"
|
|
499
|
+
[attr.aria-current]="active() ? 'page' : null"
|
|
500
|
+
(click)="toggleSidenavOnSmallScreen()"
|
|
501
|
+
#anchor
|
|
502
|
+
>
|
|
503
|
+
<ng-container [ngTemplateOutlet]="content" />
|
|
504
|
+
</a>
|
|
505
|
+
} @else {
|
|
506
|
+
<a
|
|
507
|
+
class="btn df-sidenav-button d-flex gap-3"
|
|
508
|
+
[class.w-100]="!sidenav.isMinimized()"
|
|
509
|
+
routerLinkActive="df-sidenav-active-level"
|
|
510
|
+
ariaCurrentWhenActive="page"
|
|
511
|
+
(isActiveChange)="isActiveLink.set($event)"
|
|
512
|
+
[routerLink]="linkPath()"
|
|
513
|
+
[class.justify-content-start]="!sidenav.isMinimized()"
|
|
514
|
+
[routerLinkActiveOptions]="routerLinkActiveOptions()"
|
|
515
|
+
[attr.aria-label]="label()"
|
|
516
|
+
(click)="toggleSidenavOnSmallScreen()"
|
|
517
|
+
#anchor
|
|
518
|
+
>
|
|
519
|
+
<ng-container [ngTemplateOutlet]="content" />
|
|
520
|
+
</a>
|
|
521
|
+
}
|
|
498
522
|
<ng-template #content>
|
|
499
523
|
<ng-content select="[dfSidenavIcon]" />
|
|
500
524
|
@if (icon()) {
|
|
@@ -512,21 +536,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
512
536
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
513
537
|
selector: 'df-sidenav-link-desktop',
|
|
514
538
|
template: `
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
539
|
+
@if (active() !== undefined) {
|
|
540
|
+
<a
|
|
541
|
+
class="btn df-sidenav-button d-flex gap-3"
|
|
542
|
+
[class.w-100]="!sidenav.isMinimized()"
|
|
543
|
+
[class.df-sidenav-active-level]="active()"
|
|
544
|
+
[class.justify-content-start]="!sidenav.isMinimized()"
|
|
545
|
+
[href]="linkPath()"
|
|
546
|
+
target="_blank"
|
|
547
|
+
[attr.aria-label]="label()"
|
|
548
|
+
[attr.aria-current]="active() ? 'page' : null"
|
|
549
|
+
(click)="toggleSidenavOnSmallScreen()"
|
|
550
|
+
#anchor
|
|
551
|
+
>
|
|
552
|
+
<ng-container [ngTemplateOutlet]="content" />
|
|
553
|
+
</a>
|
|
554
|
+
} @else {
|
|
555
|
+
<a
|
|
556
|
+
class="btn df-sidenav-button d-flex gap-3"
|
|
557
|
+
[class.w-100]="!sidenav.isMinimized()"
|
|
558
|
+
routerLinkActive="df-sidenav-active-level"
|
|
559
|
+
ariaCurrentWhenActive="page"
|
|
560
|
+
(isActiveChange)="isActiveLink.set($event)"
|
|
561
|
+
[routerLink]="linkPath()"
|
|
562
|
+
[class.justify-content-start]="!sidenav.isMinimized()"
|
|
563
|
+
[routerLinkActiveOptions]="routerLinkActiveOptions()"
|
|
564
|
+
[attr.aria-label]="label()"
|
|
565
|
+
(click)="toggleSidenavOnSmallScreen()"
|
|
566
|
+
#anchor
|
|
567
|
+
>
|
|
568
|
+
<ng-container [ngTemplateOutlet]="content" />
|
|
569
|
+
</a>
|
|
570
|
+
}
|
|
530
571
|
<ng-template #content>
|
|
531
572
|
<ng-content select="[dfSidenavIcon]" />
|
|
532
573
|
@if (icon()) {
|
|
@@ -588,17 +629,30 @@ class DfSidenavLinkMobileComponent extends DfSidenavLinkBaseComponent {
|
|
|
588
629
|
}
|
|
589
630
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkMobileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
590
631
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfSidenavLinkMobileComponent, isStandalone: true, selector: "df-sidenav-link-mobile", host: { properties: { "class.d-none": "!isVisibleInList() || (sidenav.isMinimized() && (!isFirstLevel || !wrapperHasIconContent()))" }, classAttribute: "d-flex" }, usesInheritance: true, ngImport: i0, template: `
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
632
|
+
@if (active() !== undefined) {
|
|
633
|
+
<a
|
|
634
|
+
class="btn df-sidenav-button d-flex gap-3 justify-content-start w-100 df-sidenav-breadcrumb-button"
|
|
635
|
+
[class.df-sidenav-active-level]="active()"
|
|
636
|
+
[href]="linkPath()"
|
|
637
|
+
target="_blank"
|
|
638
|
+
[attr.aria-current]="active() ? 'page' : null"
|
|
639
|
+
(click)="toggleSidenavOnSmallScreen()"
|
|
640
|
+
>
|
|
641
|
+
<ng-container [ngTemplateOutlet]="content" />
|
|
642
|
+
</a>
|
|
643
|
+
} @else {
|
|
644
|
+
<a
|
|
645
|
+
class="btn df-sidenav-button d-flex gap-3 justify-content-start w-100 df-sidenav-breadcrumb-button"
|
|
646
|
+
routerLinkActive="df-sidenav-active-level"
|
|
647
|
+
ariaCurrentWhenActive="page"
|
|
648
|
+
(isActiveChange)="isActiveLink.set($event)"
|
|
649
|
+
[routerLink]="linkPath()"
|
|
650
|
+
[routerLinkActiveOptions]="routerLinkActiveOptions()"
|
|
651
|
+
(click)="toggleSidenavOnSmallScreen()"
|
|
652
|
+
>
|
|
653
|
+
<ng-container [ngTemplateOutlet]="content" />
|
|
654
|
+
</a>
|
|
655
|
+
}
|
|
602
656
|
<ng-template #content>
|
|
603
657
|
<div class="d-flex gap-3 w-100">
|
|
604
658
|
<ng-content select="[dfSidenavIcon]" />
|
|
@@ -608,7 +662,7 @@ class DfSidenavLinkMobileComponent extends DfSidenavLinkBaseComponent {
|
|
|
608
662
|
<div class="d-flex flex-column align-items-start">
|
|
609
663
|
<span class="sidenav-label" [title]="label()">{{ label() }}</span>
|
|
610
664
|
@if (isSearching() && breadcrumbPath().length > 0) {
|
|
611
|
-
<small class="d-flex align-items-center gap-1" [class.text-muted]="!
|
|
665
|
+
<small class="d-flex align-items-center gap-1" [class.text-muted]="!active()">
|
|
612
666
|
@for (item of breadcrumbPath(); track $index) {
|
|
613
667
|
<span>{{ item }}</span>
|
|
614
668
|
@if (!$last) {
|
|
@@ -628,17 +682,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
628
682
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
629
683
|
selector: 'df-sidenav-link-mobile',
|
|
630
684
|
template: `
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
685
|
+
@if (active() !== undefined) {
|
|
686
|
+
<a
|
|
687
|
+
class="btn df-sidenav-button d-flex gap-3 justify-content-start w-100 df-sidenav-breadcrumb-button"
|
|
688
|
+
[class.df-sidenav-active-level]="active()"
|
|
689
|
+
[href]="linkPath()"
|
|
690
|
+
target="_blank"
|
|
691
|
+
[attr.aria-current]="active() ? 'page' : null"
|
|
692
|
+
(click)="toggleSidenavOnSmallScreen()"
|
|
693
|
+
>
|
|
694
|
+
<ng-container [ngTemplateOutlet]="content" />
|
|
695
|
+
</a>
|
|
696
|
+
} @else {
|
|
697
|
+
<a
|
|
698
|
+
class="btn df-sidenav-button d-flex gap-3 justify-content-start w-100 df-sidenav-breadcrumb-button"
|
|
699
|
+
routerLinkActive="df-sidenav-active-level"
|
|
700
|
+
ariaCurrentWhenActive="page"
|
|
701
|
+
(isActiveChange)="isActiveLink.set($event)"
|
|
702
|
+
[routerLink]="linkPath()"
|
|
703
|
+
[routerLinkActiveOptions]="routerLinkActiveOptions()"
|
|
704
|
+
(click)="toggleSidenavOnSmallScreen()"
|
|
705
|
+
>
|
|
706
|
+
<ng-container [ngTemplateOutlet]="content" />
|
|
707
|
+
</a>
|
|
708
|
+
}
|
|
642
709
|
<ng-template #content>
|
|
643
710
|
<div class="d-flex gap-3 w-100">
|
|
644
711
|
<ng-content select="[dfSidenavIcon]" />
|
|
@@ -648,7 +715,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
648
715
|
<div class="d-flex flex-column align-items-start">
|
|
649
716
|
<span class="sidenav-label" [title]="label()">{{ label() }}</span>
|
|
650
717
|
@if (isSearching() && breadcrumbPath().length > 0) {
|
|
651
|
-
<small class="d-flex align-items-center gap-1" [class.text-muted]="!
|
|
718
|
+
<small class="d-flex align-items-center gap-1" [class.text-muted]="!active()">
|
|
652
719
|
@for (item of breadcrumbPath(); track $index) {
|
|
653
720
|
<span>{{ item }}</span>
|
|
654
721
|
@if (!$last) {
|
|
@@ -708,6 +775,12 @@ class DfSidenavLinkComponent {
|
|
|
708
775
|
* Options to determine when the router link is considered active
|
|
709
776
|
*/
|
|
710
777
|
this.routerLinkActiveOptions = input({ exact: false }, ...(ngDevMode ? [{ debugName: "routerLinkActiveOptions" }] : []));
|
|
778
|
+
/**
|
|
779
|
+
* Explicitly sets the active state of the link. When provided, the link renders as
|
|
780
|
+
* a plain `<a href>` (no Angular Router). When `undefined` (default), the Angular Router determines
|
|
781
|
+
* the active state.
|
|
782
|
+
*/
|
|
783
|
+
this.active = input(...(ngDevMode ? [undefined, { debugName: "active" }] : []));
|
|
711
784
|
/**
|
|
712
785
|
* The parent wrapper item component (if any)
|
|
713
786
|
*/
|
|
@@ -728,7 +801,7 @@ class DfSidenavLinkComponent {
|
|
|
728
801
|
this.sidenav = inject(DfSidenavComponent);
|
|
729
802
|
}
|
|
730
803
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DfSidenavLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
731
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfSidenavLinkComponent, isStandalone: true, selector: "df-sidenav-link", inputs: { linkPath: { classPropertyName: "linkPath", publicName: "linkPath", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listitem" }, properties: { "class.mobile": "sidenav['isMobileDevice']()" }, classAttribute: "d-block" }, queries: [{ propertyName: "iconContentQuery", first: true, predicate: DfSidenavIconDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "desktopInstance", first: true, predicate: DfSidenavLinkDesktopComponent, descendants: true, isSignal: true }, { propertyName: "mobileInstance", first: true, predicate: DfSidenavLinkMobileComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
804
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DfSidenavLinkComponent, isStandalone: true, selector: "df-sidenav-link", inputs: { linkPath: { classPropertyName: "linkPath", publicName: "linkPath", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listitem" }, properties: { "class.mobile": "sidenav['isMobileDevice']()" }, classAttribute: "d-block" }, queries: [{ propertyName: "iconContentQuery", first: true, predicate: DfSidenavIconDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "desktopInstance", first: true, predicate: DfSidenavLinkDesktopComponent, descendants: true, isSignal: true }, { propertyName: "mobileInstance", first: true, predicate: DfSidenavLinkMobileComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
732
805
|
<ng-template #iconSlot>
|
|
733
806
|
<ng-content select="[dfSidenavIcon]" />
|
|
734
807
|
</ng-template>
|
|
@@ -741,6 +814,7 @@ class DfSidenavLinkComponent {
|
|
|
741
814
|
[linkPath]="linkPath()"
|
|
742
815
|
[label]="label()"
|
|
743
816
|
[icon]="icon()"
|
|
817
|
+
[active]="active()"
|
|
744
818
|
[wrapperHasIconContent]="wrapperHasIconContent()"
|
|
745
819
|
[routerLinkActiveOptions]="routerLinkActiveOptions()"
|
|
746
820
|
>
|
|
@@ -752,6 +826,7 @@ class DfSidenavLinkComponent {
|
|
|
752
826
|
[linkPath]="linkPath()"
|
|
753
827
|
[label]="label()"
|
|
754
828
|
[icon]="icon()"
|
|
829
|
+
[active]="active()"
|
|
755
830
|
[wrapperHasIconContent]="wrapperHasIconContent()"
|
|
756
831
|
[routerLinkActiveOptions]="routerLinkActiveOptions()"
|
|
757
832
|
>
|
|
@@ -779,6 +854,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
779
854
|
[linkPath]="linkPath()"
|
|
780
855
|
[label]="label()"
|
|
781
856
|
[icon]="icon()"
|
|
857
|
+
[active]="active()"
|
|
782
858
|
[wrapperHasIconContent]="wrapperHasIconContent()"
|
|
783
859
|
[routerLinkActiveOptions]="routerLinkActiveOptions()"
|
|
784
860
|
>
|
|
@@ -790,6 +866,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
790
866
|
[linkPath]="linkPath()"
|
|
791
867
|
[label]="label()"
|
|
792
868
|
[icon]="icon()"
|
|
869
|
+
[active]="active()"
|
|
793
870
|
[wrapperHasIconContent]="wrapperHasIconContent()"
|
|
794
871
|
[routerLinkActiveOptions]="routerLinkActiveOptions()"
|
|
795
872
|
>
|
|
@@ -805,7 +882,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
805
882
|
'[class.mobile]': "sidenav['isMobileDevice']()"
|
|
806
883
|
}
|
|
807
884
|
}]
|
|
808
|
-
}], propDecorators: { linkPath: [{ type: i0.Input, args: [{ isSignal: true, alias: "linkPath", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], routerLinkActiveOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLinkActiveOptions", required: false }] }], desktopInstance: [{ type: i0.ViewChild, args: [i0.forwardRef(() => DfSidenavLinkDesktopComponent), { isSignal: true }] }], mobileInstance: [{ type: i0.ViewChild, args: [i0.forwardRef(() => DfSidenavLinkMobileComponent), { isSignal: true }] }], iconContentQuery: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DfSidenavIconDirective), { isSignal: true }] }] } });
|
|
885
|
+
}], propDecorators: { linkPath: [{ type: i0.Input, args: [{ isSignal: true, alias: "linkPath", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], routerLinkActiveOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLinkActiveOptions", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], desktopInstance: [{ type: i0.ViewChild, args: [i0.forwardRef(() => DfSidenavLinkDesktopComponent), { isSignal: true }] }], mobileInstance: [{ type: i0.ViewChild, args: [i0.forwardRef(() => DfSidenavLinkMobileComponent), { isSignal: true }] }], iconContentQuery: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DfSidenavIconDirective), { isSignal: true }] }] } });
|
|
809
886
|
|
|
810
887
|
/**
|
|
811
888
|
* Sidenav element that should be nested inside <df-sidenav> or <df-sidenav-item>
|