c3-components 0.15.0 → 0.15.2
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/c3-components.mjs +73 -22
- package/fesm2022/c3-components.mjs.map +1 -1
- package/index.d.ts +43 -7
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, signal, viewChild, TemplateRef, inject, ChangeDetectorRef, effect, Component, forwardRef, model, HostListener, Directive, NgModule, Inject, Injector, Injectable, Pipe, output, ViewEncapsulation, Optional, computed, InjectionToken, contentChild, contentChildren,
|
|
2
|
+
import { input, signal, viewChild, TemplateRef, inject, ChangeDetectorRef, effect, Component, forwardRef, model, HostListener, Directive, NgModule, Inject, ViewContainerRef, Injector, Injectable, Pipe, output, ViewEncapsulation, Optional, computed, InjectionToken, contentChild, contentChildren, HostBinding, ElementRef, DestroyRef } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i2 from '@angular/forms';
|
|
@@ -380,14 +380,21 @@ class C3DialogEmbedChildComponent {
|
|
|
380
380
|
this.dialogRef = dialogRef;
|
|
381
381
|
this.data = data;
|
|
382
382
|
this._cdr = _cdr;
|
|
383
|
-
this.target = viewChild
|
|
383
|
+
this.target = viewChild('target', ...(ngDevMode ? [{ debugName: "target", read: ViewContainerRef }] : [{
|
|
384
|
+
read: ViewContainerRef,
|
|
385
|
+
}]));
|
|
384
386
|
// On utilise un signal pour stocker la référence du composant créé
|
|
385
387
|
this.createdComponent = signal(null, ...(ngDevMode ? [{ debugName: "createdComponent" }] : []));
|
|
386
388
|
}
|
|
387
389
|
ngAfterViewInit() {
|
|
388
390
|
// Si on a un composant, on le crée dynamiquement
|
|
389
391
|
if (this.data.component && !this.data.templateRef) {
|
|
390
|
-
const
|
|
392
|
+
const targetRef = this.target();
|
|
393
|
+
if (!targetRef) {
|
|
394
|
+
console.error('ViewContainerRef not found');
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
const compRef = targetRef.createComponent(this.data.component);
|
|
391
398
|
this.createdComponent.set(compRef);
|
|
392
399
|
// Injecter les inputs dans le composant
|
|
393
400
|
if (this.data.inputs) {
|
|
@@ -432,7 +439,7 @@ class C3DialogEmbedChildComponent {
|
|
|
432
439
|
}
|
|
433
440
|
}
|
|
434
441
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DialogEmbedChildComponent, deps: [{ token: i1$2.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
435
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3DialogEmbedChildComponent, isStandalone: false, selector: "C3DialogEmbedChildComponent", viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
442
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: C3DialogEmbedChildComponent, isStandalone: false, selector: "C3DialogEmbedChildComponent", viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
|
|
436
443
|
<div [class]="'dialog-content-container ' + (data.classContainer || '')">
|
|
437
444
|
@if (data.toolbar) {
|
|
438
445
|
<mat-toolbar [color]="data.toolbar.color || 'default'" class="py-1">
|
|
@@ -445,17 +452,17 @@ class C3DialogEmbedChildComponent {
|
|
|
445
452
|
}
|
|
446
453
|
</mat-toolbar>
|
|
447
454
|
}
|
|
448
|
-
|
|
455
|
+
|
|
449
456
|
<div [class]="'dialog-content ' + (data.classContent || '')">
|
|
450
457
|
<!-- Si templateRef est présent, on l'affiche directement,
|
|
451
458
|
sinon on laisse la place au composant dynamique -->
|
|
452
459
|
@if (data.templateRef) {
|
|
453
460
|
<ng-container *ngTemplateOutlet="data.templateRef"></ng-container>
|
|
454
461
|
} @else {
|
|
455
|
-
<ng-
|
|
462
|
+
<ng-container #target></ng-container>
|
|
456
463
|
}
|
|
457
464
|
</div>
|
|
458
|
-
|
|
465
|
+
|
|
459
466
|
@if (data.actions && data.actions.length > 0) {
|
|
460
467
|
<div [class]="'dialog-actions ' + (data.classActions || '')">
|
|
461
468
|
@for (action of data.actions; track action.label) {
|
|
@@ -490,7 +497,7 @@ class C3DialogEmbedChildComponent {
|
|
|
490
497
|
</div>
|
|
491
498
|
}
|
|
492
499
|
</div>
|
|
493
|
-
|
|
500
|
+
`, isInline: true, styles: [".dialog-content-container{display:flex;flex-direction:column;height:100%;padding:1rem;overflow:auto}.dialog-content-container .dialog-content{display:flex;flex-direction:column;height:100%;overflow:auto;flex-grow:1}.dialog-content-container .mat-toolbar{display:flex;justify-content:space-between;align-items:center;border-radius:.25rem}.dialog-content-container .mat-toolbar span{color:inherit}.dialog-content-container .spacer{flex:1 1 auto;min-width:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }] }); }
|
|
494
501
|
}
|
|
495
502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3DialogEmbedChildComponent, decorators: [{
|
|
496
503
|
type: Component,
|
|
@@ -507,17 +514,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
507
514
|
}
|
|
508
515
|
</mat-toolbar>
|
|
509
516
|
}
|
|
510
|
-
|
|
517
|
+
|
|
511
518
|
<div [class]="'dialog-content ' + (data.classContent || '')">
|
|
512
519
|
<!-- Si templateRef est présent, on l'affiche directement,
|
|
513
520
|
sinon on laisse la place au composant dynamique -->
|
|
514
521
|
@if (data.templateRef) {
|
|
515
522
|
<ng-container *ngTemplateOutlet="data.templateRef"></ng-container>
|
|
516
523
|
} @else {
|
|
517
|
-
<ng-
|
|
524
|
+
<ng-container #target></ng-container>
|
|
518
525
|
}
|
|
519
526
|
</div>
|
|
520
|
-
|
|
527
|
+
|
|
521
528
|
@if (data.actions && data.actions.length > 0) {
|
|
522
529
|
<div [class]="'dialog-actions ' + (data.classActions || '')">
|
|
523
530
|
@for (action of data.actions; track action.label) {
|
|
@@ -552,11 +559,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
552
559
|
</div>
|
|
553
560
|
}
|
|
554
561
|
</div>
|
|
555
|
-
|
|
562
|
+
`, standalone: false, styles: [".dialog-content-container{display:flex;flex-direction:column;height:100%;padding:1rem;overflow:auto}.dialog-content-container .dialog-content{display:flex;flex-direction:column;height:100%;overflow:auto;flex-grow:1}.dialog-content-container .mat-toolbar{display:flex;justify-content:space-between;align-items:center;border-radius:.25rem}.dialog-content-container .mat-toolbar span{color:inherit}.dialog-content-container .spacer{flex:1 1 auto;min-width:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}\n"] }]
|
|
556
563
|
}], ctorParameters: () => [{ type: i1$2.MatDialogRef }, { type: undefined, decorators: [{
|
|
557
564
|
type: Inject,
|
|
558
565
|
args: [MAT_DIALOG_DATA]
|
|
559
|
-
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { target: [{ type: i0.ViewChild, args: ['target', {
|
|
566
|
+
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { target: [{ type: i0.ViewChild, args: ['target', { ...{
|
|
567
|
+
read: ViewContainerRef,
|
|
568
|
+
}, isSignal: true }] }] } });
|
|
560
569
|
|
|
561
570
|
class C3DialogTemplateComponent {
|
|
562
571
|
constructor() {
|
|
@@ -990,10 +999,15 @@ class C3FileViewerComponent {
|
|
|
990
999
|
constructor(moduleConfig, _http) {
|
|
991
1000
|
this.moduleConfig = moduleConfig;
|
|
992
1001
|
this._http = _http;
|
|
1002
|
+
/** Height in pixels occupied by other elements (e.g. header), used to calculate viewer height. Defaults to 0. */
|
|
993
1003
|
this.screenHeightOccupied = input(0, ...(ngDevMode ? [{ debugName: "screenHeightOccupied" }] : [])); // In Px
|
|
1004
|
+
/** The C3FileViewer instance to control the viewer. */
|
|
994
1005
|
this.fileViewer = input.required(...(ngDevMode ? [{ debugName: "fileViewer" }] : []));
|
|
1006
|
+
/** Emits when the current file index changes. */
|
|
995
1007
|
this.indexChange = output();
|
|
1008
|
+
/** Emits configuration changes. */
|
|
996
1009
|
this.configChange = output();
|
|
1010
|
+
/** Emits custom events from the file viewer. */
|
|
997
1011
|
this.customFileEvent = output();
|
|
998
1012
|
// Setup subscriptions in constructor using effect
|
|
999
1013
|
effect(() => {
|
|
@@ -1567,11 +1581,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
1567
1581
|
|
|
1568
1582
|
class C3FileDisplayCardComponent {
|
|
1569
1583
|
constructor() {
|
|
1584
|
+
/**
|
|
1585
|
+
* The file object/metadata to display. Can include an observable for the object URL.
|
|
1586
|
+
*/
|
|
1570
1587
|
this.fileObjectUrl = input.required(...(ngDevMode ? [{ debugName: "fileObjectUrl" }] : []));
|
|
1588
|
+
/**
|
|
1589
|
+
* Function to extract the display name from the file metadata.
|
|
1590
|
+
* Defaults to returning `file.name`.
|
|
1591
|
+
*/
|
|
1571
1592
|
this.displayFn = input((file) => file.name, ...(ngDevMode ? [{ debugName: "displayFn" }] : []));
|
|
1593
|
+
/** Whether the file can be deleted. Defaults to false. */
|
|
1572
1594
|
this.deletable = input(false, ...(ngDevMode ? [{ debugName: "deletable" }] : []));
|
|
1595
|
+
/** Size of the card. Options: '16', '32', '64', '128', '256'. Defaults to '32'. */
|
|
1573
1596
|
this.size = input('32', ...(ngDevMode ? [{ debugName: "size" }] : []));
|
|
1597
|
+
/** Emits when the delete button is clicked. */
|
|
1574
1598
|
this.onDelete = output();
|
|
1599
|
+
/** Emits when the download button/action is triggered. */
|
|
1575
1600
|
this.onDownload = output();
|
|
1576
1601
|
this.getFileType = computed(() => {
|
|
1577
1602
|
const file = this.fileObjectUrl();
|
|
@@ -1686,7 +1711,7 @@ class C3FileDisplayIconComponent {
|
|
|
1686
1711
|
}
|
|
1687
1712
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayIconComponent, decorators: [{
|
|
1688
1713
|
type: Component,
|
|
1689
|
-
args: [{ selector: 'c3-file-display-icon', imports: [CommonModule, MatIconModule], template: "<mat-icon [ngClass]=\"color()\">{{ displayedIcon() }}</mat-icon>\n", styles: [":host{display:block}:host .text-primary{color:var(--primary-color)}:host .text-secondary{color:var(--secondary-color)}:host .text-success{color:var(--success-color)}:host .text-gray{color:var(--gray-color)}\n"] }]
|
|
1714
|
+
args: [{ selector: 'c3-file-display-icon', standalone: true, imports: [CommonModule, MatIconModule], template: "<mat-icon [ngClass]=\"color()\">{{ displayedIcon() }}</mat-icon>\n", styles: [":host{display:block}:host .text-primary{color:var(--primary-color)}:host .text-secondary{color:var(--secondary-color)}:host .text-success{color:var(--success-color)}:host .text-gray{color:var(--gray-color)}\n"] }]
|
|
1690
1715
|
}], propDecorators: { fileType: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileType", required: true }] }] } });
|
|
1691
1716
|
|
|
1692
1717
|
/**
|
|
@@ -1779,8 +1804,11 @@ class C3FileDisplayListColumnDefDirective {
|
|
|
1779
1804
|
}]));
|
|
1780
1805
|
this.classList = input([], ...(ngDevMode ? [{ debugName: "classList" }] : []));
|
|
1781
1806
|
this._table = inject(C3_FILE_DISPLAY_LIST, { optional: true });
|
|
1782
|
-
|
|
1783
|
-
|
|
1807
|
+
// contentChild searches in projected content (via ng-content)
|
|
1808
|
+
// Note: contentChild may not find directives on ng-template in tests, but works in real usage
|
|
1809
|
+
// when directives are projected via ng-content in the parent component
|
|
1810
|
+
this.headerCellDef = contentChild(C3FileDisplayListHeaderCellDefDirective, ...(ngDevMode ? [{ debugName: "headerCellDef", descendants: true }] : [{ descendants: true }]));
|
|
1811
|
+
this.cellDef = contentChild(C3FileDisplayListCellDefDirective, ...(ngDevMode ? [{ debugName: "cellDef", descendants: true }] : [{ descendants: true }]));
|
|
1784
1812
|
}
|
|
1785
1813
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListColumnDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1786
1814
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.14", type: C3FileDisplayListColumnDefDirective, isStandalone: true, selector: "[c3FileDisplayListColumnDef]", inputs: { title: { classPropertyName: "title", publicName: "c3FileDisplayListColumnDef", isSignal: true, isRequired: true, transformFunction: null }, classList: { classPropertyName: "classList", publicName: "classList", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "headerCellDef", first: true, predicate: C3FileDisplayListHeaderCellDefDirective, descendants: true, isSignal: true }, { propertyName: "cellDef", first: true, predicate: C3FileDisplayListCellDefDirective, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
@@ -1789,8 +1817,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
1789
1817
|
type: Directive,
|
|
1790
1818
|
args: [{
|
|
1791
1819
|
selector: '[c3FileDisplayListColumnDef]',
|
|
1820
|
+
standalone: true,
|
|
1792
1821
|
}]
|
|
1793
|
-
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "c3FileDisplayListColumnDef", required: true }] }], classList: [{ type: i0.Input, args: [{ isSignal: true, alias: "classList", required: false }] }], headerCellDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => C3FileDisplayListHeaderCellDefDirective), { isSignal: true }] }], cellDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => C3FileDisplayListCellDefDirective), { isSignal: true }] }] } });
|
|
1822
|
+
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "c3FileDisplayListColumnDef", required: true }] }], classList: [{ type: i0.Input, args: [{ isSignal: true, alias: "classList", required: false }] }], headerCellDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => C3FileDisplayListHeaderCellDefDirective), { ...{ descendants: true }, isSignal: true }] }], cellDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => C3FileDisplayListCellDefDirective), { ...{ descendants: true }, isSignal: true }] }] } });
|
|
1794
1823
|
class C3FileDisplayListHeaderCellDefDirective {
|
|
1795
1824
|
constructor() {
|
|
1796
1825
|
this.template = inject(TemplateRef);
|
|
@@ -1802,6 +1831,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
1802
1831
|
type: Directive,
|
|
1803
1832
|
args: [{
|
|
1804
1833
|
selector: '[c3FileDisplayListHeaderCellDef]',
|
|
1834
|
+
standalone: true,
|
|
1805
1835
|
}]
|
|
1806
1836
|
}] });
|
|
1807
1837
|
class C3FileDisplayListCellDefDirective {
|
|
@@ -1815,6 +1845,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
1815
1845
|
type: Directive,
|
|
1816
1846
|
args: [{
|
|
1817
1847
|
selector: '[c3FileDisplayListCellDef]',
|
|
1848
|
+
standalone: true,
|
|
1818
1849
|
}]
|
|
1819
1850
|
}] });
|
|
1820
1851
|
|
|
@@ -1858,7 +1889,7 @@ class C3FileDisplayListComponent {
|
|
|
1858
1889
|
}
|
|
1859
1890
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3FileDisplayListComponent, decorators: [{
|
|
1860
1891
|
type: Component,
|
|
1861
|
-
args: [{ selector: 'c3-file-display-list', imports: [
|
|
1892
|
+
args: [{ selector: 'c3-file-display-list', standalone: true, imports: [
|
|
1862
1893
|
C3StopPropagationDirective,
|
|
1863
1894
|
C3FileViewerModule,
|
|
1864
1895
|
C3FileDisplayIconComponent,
|
|
@@ -1962,12 +1993,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
1962
1993
|
}]
|
|
1963
1994
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }] } });
|
|
1964
1995
|
|
|
1996
|
+
/**
|
|
1997
|
+
* C3ExpansionComponent
|
|
1998
|
+
* A style-agnostic expansion panel. Provides the expansion logic and animation
|
|
1999
|
+
* (via c3-auto-animate) but leaves styling to the consumer.
|
|
2000
|
+
*/
|
|
1965
2001
|
class C3ExpansionComponent {
|
|
1966
2002
|
get hostClass() {
|
|
1967
2003
|
return 'c3-expansion';
|
|
1968
2004
|
}
|
|
1969
2005
|
constructor() {
|
|
2006
|
+
/** Class to apply to the header element. Defaults to 'c3-expansion-header'. */
|
|
1970
2007
|
this.headerClass = input('c3-expansion-header', ...(ngDevMode ? [{ debugName: "headerClass" }] : []));
|
|
2008
|
+
/** Whether the panel is expanded. Two-way binding supported. */
|
|
1971
2009
|
this.isExpanded = model(false, ...(ngDevMode ? [{ debugName: "isExpanded" }] : []));
|
|
1972
2010
|
this._elementRef = inject(ElementRef);
|
|
1973
2011
|
this.header = contentChild(C3ExpansionHeaderComponent, ...(ngDevMode ? [{ debugName: "header" }] : []));
|
|
@@ -2207,20 +2245,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
2207
2245
|
|
|
2208
2246
|
class C3TraceCardTitleComponent {
|
|
2209
2247
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2210
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: C3TraceCardTitleComponent, isStandalone: false, selector: "c3-trace-card-title", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] }); }
|
|
2248
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: C3TraceCardTitleComponent, isStandalone: false, selector: "c3-trace-card-title", host: { classAttribute: "c3-trace-card-title" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] }); }
|
|
2211
2249
|
}
|
|
2212
2250
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardTitleComponent, decorators: [{
|
|
2213
2251
|
type: Component,
|
|
2214
|
-
args: [{ selector: 'c3-trace-card-title', standalone: false,
|
|
2252
|
+
args: [{ selector: 'c3-trace-card-title', standalone: false, host: {
|
|
2253
|
+
class: 'c3-trace-card-title',
|
|
2254
|
+
}, template: "<ng-content></ng-content>\n" }]
|
|
2215
2255
|
}] });
|
|
2216
2256
|
|
|
2217
2257
|
class C3TraceCardContentComponent {
|
|
2218
2258
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2219
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: C3TraceCardContentComponent, isStandalone: false, selector: "c3-trace-card-content", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] }); }
|
|
2259
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: C3TraceCardContentComponent, isStandalone: false, selector: "c3-trace-card-content", host: { classAttribute: "c3-trace-card-content" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] }); }
|
|
2220
2260
|
}
|
|
2221
2261
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: C3TraceCardContentComponent, decorators: [{
|
|
2222
2262
|
type: Component,
|
|
2223
|
-
args: [{ selector: 'c3-trace-card-content',
|
|
2263
|
+
args: [{ selector: 'c3-trace-card-content', host: {
|
|
2264
|
+
class: 'c3-trace-card-content',
|
|
2265
|
+
}, standalone: false, template: "<ng-content></ng-content>\n" }]
|
|
2224
2266
|
}] });
|
|
2225
2267
|
|
|
2226
2268
|
class C3TraceCardAlignLeftDirective {
|
|
@@ -2325,6 +2367,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
2325
2367
|
}]
|
|
2326
2368
|
}], ctorParameters: () => [] });
|
|
2327
2369
|
|
|
2370
|
+
/**
|
|
2371
|
+
* C3MenuComponent
|
|
2372
|
+
* Wrapper for the side menu. It projects `c3-nav-item` components.
|
|
2373
|
+
* Automatically handles `headless` mode via query params (managed by C3MenuService).
|
|
2374
|
+
*/
|
|
2328
2375
|
class C3MenuComponent {
|
|
2329
2376
|
constructor() {
|
|
2330
2377
|
this._c3Menu = inject(C3MenuService);
|
|
@@ -2339,9 +2386,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
2339
2386
|
|
|
2340
2387
|
class C3NavItemComponent {
|
|
2341
2388
|
constructor() {
|
|
2389
|
+
/** The router link path for this navigation item. */
|
|
2342
2390
|
this.route = input.required(...(ngDevMode ? [{ debugName: "route" }] : []));
|
|
2391
|
+
/** The title/label of the navigation item. */
|
|
2343
2392
|
this.itemTitle = input.required(...(ngDevMode ? [{ debugName: "itemTitle" }] : []));
|
|
2393
|
+
/** Optional regex string to check if the item is active based on URL. If null, defaults to `route`. */
|
|
2344
2394
|
this.check = input(null, ...(ngDevMode ? [{ debugName: "check" }] : []));
|
|
2395
|
+
/** Whether the link is external (opens in new tab/window). Defaults to false. */
|
|
2345
2396
|
this.isExternal = input(false, ...(ngDevMode ? [{ debugName: "isExternal" }] : []));
|
|
2346
2397
|
this.element = viewChild('button', ...(ngDevMode ? [{ debugName: "element", read: (ElementRef) }] : [{
|
|
2347
2398
|
read: (ElementRef),
|