@flusys/ng-ui 6.0.0-beta.1 → 6.0.0-beta.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/flusys-ng-ui.mjs +523 -145
- package/fesm2022/flusys-ng-ui.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -538,10 +538,17 @@ class AvatarComponent {
|
|
|
538
538
|
}, /* @ts-ignore */
|
|
539
539
|
...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
540
540
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
541
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: AvatarComponent, isStandalone: true, selector: "f-avatar", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
542
|
-
<div
|
|
541
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: AvatarComponent, isStandalone: true, selector: "f-avatar", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "block" }, ngImport: i0, template: `
|
|
542
|
+
<div
|
|
543
|
+
[class]="classes()"
|
|
544
|
+
[style.background-color]="!image() && color() ? color() : null"
|
|
545
|
+
>
|
|
543
546
|
@if (image()) {
|
|
544
|
-
<img
|
|
547
|
+
<img
|
|
548
|
+
[src]="image()"
|
|
549
|
+
[alt]="label()"
|
|
550
|
+
class="w-full h-full object-cover"
|
|
551
|
+
/>
|
|
545
552
|
} @else if (icon()) {
|
|
546
553
|
<ui-icon [name]="icon()"></ui-icon>
|
|
547
554
|
} @else {
|
|
@@ -554,11 +561,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
554
561
|
type: Component,
|
|
555
562
|
args: [{
|
|
556
563
|
selector: 'f-avatar',
|
|
564
|
+
host: {
|
|
565
|
+
class: 'block',
|
|
566
|
+
},
|
|
557
567
|
imports: [UiIconComponent],
|
|
558
568
|
template: `
|
|
559
|
-
<div
|
|
569
|
+
<div
|
|
570
|
+
[class]="classes()"
|
|
571
|
+
[style.background-color]="!image() && color() ? color() : null"
|
|
572
|
+
>
|
|
560
573
|
@if (image()) {
|
|
561
|
-
<img
|
|
574
|
+
<img
|
|
575
|
+
[src]="image()"
|
|
576
|
+
[alt]="label()"
|
|
577
|
+
class="w-full h-full object-cover"
|
|
578
|
+
/>
|
|
562
579
|
} @else if (icon()) {
|
|
563
580
|
<ui-icon [name]="icon()"></ui-icon>
|
|
564
581
|
} @else {
|
|
@@ -571,12 +588,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
571
588
|
|
|
572
589
|
class AvatarGroupComponent {
|
|
573
590
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: AvatarGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
574
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: AvatarGroupComponent, isStandalone: true, selector: "f-avatar-group", ngImport: i0, template: `<div class="flex -space-x-2"><ng-content /></div>`, isInline: true });
|
|
591
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: AvatarGroupComponent, isStandalone: true, selector: "f-avatar-group", host: { classAttribute: "block" }, ngImport: i0, template: `<div class="flex -space-x-2"><ng-content /></div>`, isInline: true });
|
|
575
592
|
}
|
|
576
593
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: AvatarGroupComponent, decorators: [{
|
|
577
594
|
type: Component,
|
|
578
595
|
args: [{
|
|
579
596
|
selector: 'f-avatar-group',
|
|
597
|
+
host: {
|
|
598
|
+
class: 'block',
|
|
599
|
+
},
|
|
580
600
|
template: `<div class="flex -space-x-2"><ng-content /></div>`,
|
|
581
601
|
}]
|
|
582
602
|
}] });
|
|
@@ -616,7 +636,7 @@ class ButtonComponent {
|
|
|
616
636
|
}), /* @ts-ignore */
|
|
617
637
|
...(ngDevMode ? [{ debugName: "hostClass" }] : /* istanbul ignore next */ []));
|
|
618
638
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
619
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: ButtonComponent, isStandalone: true, selector: "f-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconPos: { classPropertyName: "iconPos", publicName: "iconPos", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, outlined: { classPropertyName: "outlined", publicName: "outlined", isSignal: true, isRequired: false, transformFunction: null }, raised: { classPropertyName: "raised", publicName: "raised", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, fluid: { classPropertyName: "fluid", publicName: "fluid", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
639
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: ButtonComponent, isStandalone: true, selector: "f-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconPos: { classPropertyName: "iconPos", publicName: "iconPos", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, outlined: { classPropertyName: "outlined", publicName: "outlined", isSignal: true, isRequired: false, transformFunction: null }, raised: { classPropertyName: "raised", publicName: "raised", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, fluid: { classPropertyName: "fluid", publicName: "fluid", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick" }, host: { classAttribute: "block" }, ngImport: i0, template: `
|
|
620
640
|
<button
|
|
621
641
|
[type]="type()"
|
|
622
642
|
[disabled]="disabled() || loading()"
|
|
@@ -666,10 +686,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
666
686
|
}
|
|
667
687
|
</button>
|
|
668
688
|
`,
|
|
689
|
+
host: {
|
|
690
|
+
class: 'block',
|
|
691
|
+
},
|
|
669
692
|
}]
|
|
670
693
|
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconPos: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconPos", required: false }] }], severity: [{ type: i0.Input, args: [{ isSignal: true, alias: "severity", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], link: [{ type: i0.Input, args: [{ isSignal: true, alias: "link", required: false }] }], outlined: [{ type: i0.Input, args: [{ isSignal: true, alias: "outlined", required: false }] }], raised: [{ type: i0.Input, args: [{ isSignal: true, alias: "raised", required: false }] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], fluid: [{ type: i0.Input, args: [{ isSignal: true, alias: "fluid", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], onClick: [{ type: i0.Output, args: ["onClick"] }] } });
|
|
671
694
|
function computeButtonClasses(opts) {
|
|
672
|
-
const { severity: sev, text: isText, link: isLink, outlined: isOutlined, rounded: isRounded, raised, fluid: isFluid, size: sz, iconOnly } = opts;
|
|
695
|
+
const { severity: sev, text: isText, link: isLink, outlined: isOutlined, rounded: isRounded, raised, fluid: isFluid, size: sz, iconOnly, } = opts;
|
|
673
696
|
const parts = [
|
|
674
697
|
'inline-flex items-center justify-center gap-2 cursor-pointer select-none transition-all duration-[var(--f-transition-duration)]',
|
|
675
698
|
'focus:outline-none focus-visible:ring-focus',
|
|
@@ -680,10 +703,16 @@ function computeButtonClasses(opts) {
|
|
|
680
703
|
raised ? 'shadow-md hover:shadow-lg active:shadow-sm' : '',
|
|
681
704
|
];
|
|
682
705
|
const sizing = sz === 'small'
|
|
683
|
-
?
|
|
706
|
+
? iconOnly
|
|
707
|
+
? 'p-1.5 text-xs'
|
|
708
|
+
: 'px-3 py-1.5 text-xs'
|
|
684
709
|
: sz === 'large'
|
|
685
|
-
?
|
|
686
|
-
|
|
710
|
+
? iconOnly
|
|
711
|
+
? 'p-3 text-base'
|
|
712
|
+
: 'px-5 py-3 text-base'
|
|
713
|
+
: iconOnly
|
|
714
|
+
? 'p-2 text-sm'
|
|
715
|
+
: 'px-4 py-2 text-sm';
|
|
687
716
|
let variant = '';
|
|
688
717
|
if (isLink) {
|
|
689
718
|
variant = 'text-primary hover:underline bg-transparent border-none p-0';
|
|
@@ -723,7 +752,9 @@ function solidVariant(sev) {
|
|
|
723
752
|
contrast: 'active:bg-surface-700',
|
|
724
753
|
help: 'active:bg-purple-700',
|
|
725
754
|
};
|
|
726
|
-
const border = sev === 'secondary'
|
|
755
|
+
const border = sev === 'secondary'
|
|
756
|
+
? 'border border-(--f-content-border-color) shadow-sm'
|
|
757
|
+
: 'border border-transparent';
|
|
727
758
|
return `${severitySolidBackground(sev)} ${activeMap[sev]} ${border}`;
|
|
728
759
|
}
|
|
729
760
|
function outlinedVariant(sev) {
|
|
@@ -1109,17 +1140,26 @@ class ProgressbarComponent {
|
|
|
1109
1140
|
...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
|
|
1110
1141
|
showValue = input(true, { ...(ngDevMode ? { debugName: "showValue" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
1111
1142
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ProgressbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1112
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: ProgressbarComponent, isStandalone: true, selector: "f-progressbar", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, showValue: { classPropertyName: "showValue", publicName: "showValue", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1113
|
-
<div
|
|
1143
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: ProgressbarComponent, isStandalone: true, selector: "f-progressbar", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, showValue: { classPropertyName: "showValue", publicName: "showValue", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "relative z-999999" }, ngImport: i0, template: `
|
|
1144
|
+
<div
|
|
1145
|
+
class="relative w-full h-2 bg-(--f-content-border-color) rounded-lg overflow-hidden"
|
|
1146
|
+
role="progressbar"
|
|
1147
|
+
[attr.aria-valuenow]="value()"
|
|
1148
|
+
>
|
|
1114
1149
|
@if (mode() === 'indeterminate') {
|
|
1115
|
-
<div
|
|
1150
|
+
<div
|
|
1151
|
+
class="absolute inset-y-0 bg-primary rounded-lg w-1/3 indeterminate-bar"
|
|
1152
|
+
></div>
|
|
1116
1153
|
} @else {
|
|
1117
1154
|
<div
|
|
1118
1155
|
class="h-full bg-primary rounded-lg transition-all duration-500 ease-out flex items-center justify-center overflow-hidden"
|
|
1119
1156
|
[style.width]="value() + '%'"
|
|
1120
1157
|
>
|
|
1121
1158
|
@if (showValue()) {
|
|
1122
|
-
<span
|
|
1159
|
+
<span
|
|
1160
|
+
class="text-xs font-semibold text-primary-contrast whitespace-nowrap px-1"
|
|
1161
|
+
>{{ value() }}%</span
|
|
1162
|
+
>
|
|
1123
1163
|
}
|
|
1124
1164
|
</div>
|
|
1125
1165
|
}
|
|
@@ -1128,17 +1168,26 @@ class ProgressbarComponent {
|
|
|
1128
1168
|
}
|
|
1129
1169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ProgressbarComponent, decorators: [{
|
|
1130
1170
|
type: Component,
|
|
1131
|
-
args: [{ selector: 'f-progressbar', template: `
|
|
1132
|
-
<div
|
|
1171
|
+
args: [{ selector: 'f-progressbar', host: { class: 'relative z-999999' }, template: `
|
|
1172
|
+
<div
|
|
1173
|
+
class="relative w-full h-2 bg-(--f-content-border-color) rounded-lg overflow-hidden"
|
|
1174
|
+
role="progressbar"
|
|
1175
|
+
[attr.aria-valuenow]="value()"
|
|
1176
|
+
>
|
|
1133
1177
|
@if (mode() === 'indeterminate') {
|
|
1134
|
-
<div
|
|
1178
|
+
<div
|
|
1179
|
+
class="absolute inset-y-0 bg-primary rounded-lg w-1/3 indeterminate-bar"
|
|
1180
|
+
></div>
|
|
1135
1181
|
} @else {
|
|
1136
1182
|
<div
|
|
1137
1183
|
class="h-full bg-primary rounded-lg transition-all duration-500 ease-out flex items-center justify-center overflow-hidden"
|
|
1138
1184
|
[style.width]="value() + '%'"
|
|
1139
1185
|
>
|
|
1140
1186
|
@if (showValue()) {
|
|
1141
|
-
<span
|
|
1187
|
+
<span
|
|
1188
|
+
class="text-xs font-semibold text-primary-contrast whitespace-nowrap px-1"
|
|
1189
|
+
>{{ value() }}%</span
|
|
1190
|
+
>
|
|
1142
1191
|
}
|
|
1143
1192
|
</div>
|
|
1144
1193
|
}
|
|
@@ -1236,10 +1285,14 @@ class TagComponent {
|
|
|
1236
1285
|
}, /* @ts-ignore */
|
|
1237
1286
|
...(ngDevMode ? [{ debugName: "inlineStyle" }] : /* istanbul ignore next */ []));
|
|
1238
1287
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1239
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: TagComponent, isStandalone: true, selector: "f-tag", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1288
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: TagComponent, isStandalone: true, selector: "f-tag", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "block" }, ngImport: i0, template: `
|
|
1240
1289
|
<span [class]="classes()" [style]="inlineStyle()" role="status">
|
|
1241
|
-
@if (icon()) {
|
|
1242
|
-
|
|
1290
|
+
@if (icon()) {
|
|
1291
|
+
<ui-icon [name]="icon()" class="text-xs"></ui-icon>
|
|
1292
|
+
}
|
|
1293
|
+
@if (value()) {
|
|
1294
|
+
<span>{{ value() }}</span>
|
|
1295
|
+
}
|
|
1243
1296
|
<ng-content></ng-content>
|
|
1244
1297
|
</span>
|
|
1245
1298
|
`, isInline: true, dependencies: [{ kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill"] }] });
|
|
@@ -1251,11 +1304,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
1251
1304
|
imports: [UiIconComponent],
|
|
1252
1305
|
template: `
|
|
1253
1306
|
<span [class]="classes()" [style]="inlineStyle()" role="status">
|
|
1254
|
-
@if (icon()) {
|
|
1255
|
-
|
|
1307
|
+
@if (icon()) {
|
|
1308
|
+
<ui-icon [name]="icon()" class="text-xs"></ui-icon>
|
|
1309
|
+
}
|
|
1310
|
+
@if (value()) {
|
|
1311
|
+
<span>{{ value() }}</span>
|
|
1312
|
+
}
|
|
1256
1313
|
<ng-content></ng-content>
|
|
1257
1314
|
</span>
|
|
1258
1315
|
`,
|
|
1316
|
+
host: {
|
|
1317
|
+
class: 'block',
|
|
1318
|
+
},
|
|
1259
1319
|
}]
|
|
1260
1320
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], severity: [{ type: i0.Input, args: [{ isSignal: true, alias: "severity", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }] } });
|
|
1261
1321
|
|
|
@@ -3971,19 +4031,31 @@ class PanelComponent {
|
|
|
3971
4031
|
toggleable = input(false, { ...(ngDevMode ? { debugName: "toggleable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
3972
4032
|
collapsed = model(false, /* @ts-ignore */
|
|
3973
4033
|
...(ngDevMode ? [{ debugName: "collapsed" }] : /* istanbul ignore next */ []));
|
|
3974
|
-
toggleCollapsed() {
|
|
4034
|
+
toggleCollapsed() {
|
|
4035
|
+
this.collapsed.update((v) => !v);
|
|
4036
|
+
}
|
|
3975
4037
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: PanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3976
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: PanelComponent, isStandalone: true, selector: "f-panel", inputs: { header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, toggleable: { classPropertyName: "toggleable", publicName: "toggleable", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange" }, ngImport: i0, template: `
|
|
3977
|
-
<div
|
|
3978
|
-
|
|
3979
|
-
|
|
4038
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: PanelComponent, isStandalone: true, selector: "f-panel", inputs: { header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, toggleable: { classPropertyName: "toggleable", publicName: "toggleable", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange" }, host: { classAttribute: "block" }, ngImport: i0, template: `
|
|
4039
|
+
<div
|
|
4040
|
+
class="border border-(--f-content-border-color) rounded-lg overflow-hidden shadow-sm"
|
|
4041
|
+
>
|
|
4042
|
+
<div
|
|
4043
|
+
class="flex items-center justify-between px-5 py-3.5 bg-(--f-content-hover-background)/80 border-b border-(--f-content-border-color)"
|
|
4044
|
+
>
|
|
4045
|
+
<span
|
|
4046
|
+
class="font-semibold text-(--f-text-color) text-sm tracking-tight"
|
|
4047
|
+
>{{ header() }}</span
|
|
4048
|
+
>
|
|
3980
4049
|
@if (toggleable()) {
|
|
3981
4050
|
<button
|
|
3982
4051
|
type="button"
|
|
3983
4052
|
class="w-6 h-6 flex items-center justify-center rounded-md text-(--f-text-muted-color) hover:text-(--f-text-hover-color) hover:bg-(--f-content-border-color)/70 transition-all duration-[var(--f-transition-duration)] focus:outline-none focus-visible:ring-focus cursor-pointer"
|
|
3984
4053
|
(click)="toggleCollapsed()"
|
|
3985
4054
|
>
|
|
3986
|
-
<ui-icon
|
|
4055
|
+
<ui-icon
|
|
4056
|
+
[name]="collapsed() ? 'chevron-down' : 'chevron-up'"
|
|
4057
|
+
class="text-xs transition-transform duration-[var(--f-transition-duration)]"
|
|
4058
|
+
></ui-icon>
|
|
3987
4059
|
</button>
|
|
3988
4060
|
}
|
|
3989
4061
|
</div>
|
|
@@ -4000,17 +4072,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
4000
4072
|
args: [{
|
|
4001
4073
|
selector: 'f-panel',
|
|
4002
4074
|
imports: [UiIconComponent],
|
|
4075
|
+
host: {
|
|
4076
|
+
class: 'block',
|
|
4077
|
+
},
|
|
4003
4078
|
template: `
|
|
4004
|
-
<div
|
|
4005
|
-
|
|
4006
|
-
|
|
4079
|
+
<div
|
|
4080
|
+
class="border border-(--f-content-border-color) rounded-lg overflow-hidden shadow-sm"
|
|
4081
|
+
>
|
|
4082
|
+
<div
|
|
4083
|
+
class="flex items-center justify-between px-5 py-3.5 bg-(--f-content-hover-background)/80 border-b border-(--f-content-border-color)"
|
|
4084
|
+
>
|
|
4085
|
+
<span
|
|
4086
|
+
class="font-semibold text-(--f-text-color) text-sm tracking-tight"
|
|
4087
|
+
>{{ header() }}</span
|
|
4088
|
+
>
|
|
4007
4089
|
@if (toggleable()) {
|
|
4008
4090
|
<button
|
|
4009
4091
|
type="button"
|
|
4010
4092
|
class="w-6 h-6 flex items-center justify-center rounded-md text-(--f-text-muted-color) hover:text-(--f-text-hover-color) hover:bg-(--f-content-border-color)/70 transition-all duration-[var(--f-transition-duration)] focus:outline-none focus-visible:ring-focus cursor-pointer"
|
|
4011
4093
|
(click)="toggleCollapsed()"
|
|
4012
4094
|
>
|
|
4013
|
-
<ui-icon
|
|
4095
|
+
<ui-icon
|
|
4096
|
+
[name]="collapsed() ? 'chevron-down' : 'chevron-up'"
|
|
4097
|
+
class="text-xs transition-transform duration-[var(--f-transition-duration)]"
|
|
4098
|
+
></ui-icon>
|
|
4014
4099
|
</button>
|
|
4015
4100
|
}
|
|
4016
4101
|
</div>
|
|
@@ -4266,7 +4351,7 @@ class ToolbarComponent {
|
|
|
4266
4351
|
styleClass = input('', /* @ts-ignore */
|
|
4267
4352
|
...(ngDevMode ? [{ debugName: "styleClass" }] : /* istanbul ignore next */ []));
|
|
4268
4353
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4269
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: ToolbarComponent, isStandalone: true, selector: "f-toolbar", inputs: { styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
4354
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: ToolbarComponent, isStandalone: true, selector: "f-toolbar", inputs: { styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "block" }, ngImport: i0, template: `
|
|
4270
4355
|
<div
|
|
4271
4356
|
class="flex items-center justify-between gap-3 py-2.5 px-4 bg-(--f-content-background) border border-(--f-content-border-color) rounded-lg shadow-sm"
|
|
4272
4357
|
[class]="styleClass()"
|
|
@@ -4305,6 +4390,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
4305
4390
|
<ng-content />
|
|
4306
4391
|
</div>
|
|
4307
4392
|
`,
|
|
4393
|
+
host: {
|
|
4394
|
+
class: 'block',
|
|
4395
|
+
},
|
|
4308
4396
|
}]
|
|
4309
4397
|
}], propDecorators: { styleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleClass", required: false }] }] } });
|
|
4310
4398
|
|
|
@@ -4595,7 +4683,7 @@ class AccordionComponent {
|
|
|
4595
4683
|
});
|
|
4596
4684
|
}
|
|
4597
4685
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4598
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: AccordionComponent, isStandalone: true, selector: "f-accordion", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", onOpen: "onOpen", onClose: "onClose" }, providers: [AccordionContext], ngImport: i0, template: `<div
|
|
4686
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: AccordionComponent, isStandalone: true, selector: "f-accordion", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", onOpen: "onOpen", onClose: "onClose" }, host: { classAttribute: "block" }, providers: [AccordionContext], ngImport: i0, template: `<div
|
|
4599
4687
|
class="border border-(--f-content-border-color) rounded-lg overflow-hidden shadow-sm bg-(--f-content-background)"
|
|
4600
4688
|
>
|
|
4601
4689
|
<ng-content />
|
|
@@ -4606,6 +4694,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
4606
4694
|
args: [{
|
|
4607
4695
|
selector: 'f-accordion',
|
|
4608
4696
|
providers: [AccordionContext],
|
|
4697
|
+
host: {
|
|
4698
|
+
class: 'block',
|
|
4699
|
+
},
|
|
4609
4700
|
template: `<div
|
|
4610
4701
|
class="border border-(--f-content-border-color) rounded-lg overflow-hidden shadow-sm bg-(--f-content-background)"
|
|
4611
4702
|
>
|
|
@@ -4801,12 +4892,15 @@ class ChartComponent {
|
|
|
4801
4892
|
this.chart?.destroy();
|
|
4802
4893
|
}
|
|
4803
4894
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4804
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.6", type: ChartComponent, isStandalone: true, selector: "f-chart", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true, isSignal: true }], ngImport: i0, template: `<canvas #canvas></canvas>`, isInline: true });
|
|
4895
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.6", type: ChartComponent, isStandalone: true, selector: "f-chart", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "block" }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true, isSignal: true }], ngImport: i0, template: `<canvas #canvas></canvas>`, isInline: true });
|
|
4805
4896
|
}
|
|
4806
4897
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ChartComponent, decorators: [{
|
|
4807
4898
|
type: Component,
|
|
4808
4899
|
args: [{
|
|
4809
4900
|
selector: 'f-chart',
|
|
4901
|
+
host: {
|
|
4902
|
+
class: 'block',
|
|
4903
|
+
},
|
|
4810
4904
|
template: `<canvas #canvas></canvas>`,
|
|
4811
4905
|
}]
|
|
4812
4906
|
}], ctorParameters: () => [], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], canvasRef: [{ type: i0.ViewChild, args: ['canvas', { isSignal: true }] }] } });
|
|
@@ -5050,7 +5144,9 @@ class TableComponent {
|
|
|
5050
5144
|
this.onLazyLoad.emit(this.buildLazyEvent(this.first(), this.rows()));
|
|
5051
5145
|
}
|
|
5052
5146
|
}
|
|
5053
|
-
onFilterInput(v) {
|
|
5147
|
+
onFilterInput(v) {
|
|
5148
|
+
this._filterText.set(v);
|
|
5149
|
+
}
|
|
5054
5150
|
trackByRow(index, row) {
|
|
5055
5151
|
const key = this.dataKey();
|
|
5056
5152
|
const value = row?.[key];
|
|
@@ -5077,7 +5173,10 @@ class TableComponent {
|
|
|
5077
5173
|
this.sortField.set(null);
|
|
5078
5174
|
this.sortOrder.set(1);
|
|
5079
5175
|
}
|
|
5080
|
-
this.onSort.emit({
|
|
5176
|
+
this.onSort.emit({
|
|
5177
|
+
sortField: this.sortField(),
|
|
5178
|
+
sortOrder: this.sortOrder(),
|
|
5179
|
+
});
|
|
5081
5180
|
if (this.lazy()) {
|
|
5082
5181
|
this.onLazyLoad.emit(this.buildLazyEvent(this.currentFirst(), this.currentRows()));
|
|
5083
5182
|
}
|
|
@@ -5101,37 +5200,83 @@ class TableComponent {
|
|
|
5101
5200
|
return a.getTime() - b.getTime();
|
|
5102
5201
|
if (typeof a === 'number' && typeof b === 'number')
|
|
5103
5202
|
return a - b;
|
|
5104
|
-
return String(a).localeCompare(String(b), undefined, {
|
|
5203
|
+
return String(a).localeCompare(String(b), undefined, {
|
|
5204
|
+
numeric: true,
|
|
5205
|
+
sensitivity: 'base',
|
|
5206
|
+
});
|
|
5105
5207
|
}
|
|
5106
5208
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5107
5209
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: TableComponent, isStandalone: true, selector: "f-table", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, rowHover: { classPropertyName: "rowHover", publicName: "rowHover", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null }, showCurrentPageReport: { classPropertyName: "showCurrentPageReport", publicName: "showCurrentPageReport", isSignal: true, isRequired: false, transformFunction: null }, currentPageReportTemplate: { classPropertyName: "currentPageReportTemplate", publicName: "currentPageReportTemplate", isSignal: true, isRequired: false, transformFunction: null }, tableStyle: { classPropertyName: "tableStyle", publicName: "tableStyle", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, globalFilterFields: { classPropertyName: "globalFilterFields", publicName: "globalFilterFields", isSignal: true, isRequired: false, transformFunction: null }, sortField: { classPropertyName: "sortField", publicName: "sortField", isSignal: true, isRequired: false, transformFunction: null }, sortOrder: { classPropertyName: "sortOrder", publicName: "sortOrder", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortField: "sortFieldChange", sortOrder: "sortOrderChange", onLazyLoad: "onLazyLoad", onSort: "onSort" }, host: { properties: { "class.row-hover": "rowHover()", "class": "styleClass()" } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ["header"], descendants: true, isSignal: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true, isSignal: true }, { propertyName: "emptyTemplate", first: true, predicate: ["emptymessage"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
5108
|
-
<div
|
|
5210
|
+
<div
|
|
5211
|
+
class="w-full rounded-lg border border-(--f-content-border-color) bg-(--f-content-background) shadow-sm"
|
|
5212
|
+
[class]="scrollable() ? 'overflow-auto max-h-[28rem]' : 'overflow-x-auto'"
|
|
5213
|
+
>
|
|
5109
5214
|
@if (globalFilterFields().length > 0) {
|
|
5110
|
-
<div
|
|
5111
|
-
|
|
5112
|
-
|
|
5113
|
-
|
|
5114
|
-
|
|
5215
|
+
<div
|
|
5216
|
+
[class]="
|
|
5217
|
+
'p-2 border-b border-(--f-content-border-color) ' +
|
|
5218
|
+
(scrollable()
|
|
5219
|
+
? 'sticky top-0 z-10 bg-(--f-content-background)'
|
|
5220
|
+
: '')
|
|
5221
|
+
"
|
|
5222
|
+
>
|
|
5223
|
+
<div
|
|
5224
|
+
class="flex items-center gap-2 px-2 py-1.5 max-w-xs bg-(--f-content-hover-background) rounded-lg border border-(--f-content-border-color)"
|
|
5225
|
+
>
|
|
5226
|
+
<ui-icon
|
|
5227
|
+
name="search"
|
|
5228
|
+
class="text-xs text-(--f-text-muted-color) shrink-0"
|
|
5229
|
+
></ui-icon>
|
|
5230
|
+
<input
|
|
5231
|
+
type="text"
|
|
5232
|
+
class="flex-1 text-sm bg-transparent focus:outline-none text-(--f-text-color) placeholder:text-(--f-form-field-placeholder-color)"
|
|
5233
|
+
placeholder="Search..."
|
|
5234
|
+
[value]="filterText()"
|
|
5235
|
+
(input)="onFilterInput($any($event.target).value)"
|
|
5236
|
+
/>
|
|
5115
5237
|
</div>
|
|
5116
5238
|
</div>
|
|
5117
5239
|
}
|
|
5118
5240
|
@if (loading()) {
|
|
5119
|
-
<div
|
|
5120
|
-
|
|
5121
|
-
|
|
5241
|
+
<div
|
|
5242
|
+
class="flex flex-col items-center justify-center py-20 text-(--f-text-muted-color) gap-3"
|
|
5243
|
+
>
|
|
5244
|
+
<ui-icon
|
|
5245
|
+
name="loader-circle"
|
|
5246
|
+
[spin]="true"
|
|
5247
|
+
class="text-2xl text-primary/60"
|
|
5248
|
+
></ui-icon>
|
|
5249
|
+
<span class="text-sm text-(--f-text-muted-color)"
|
|
5250
|
+
>Loading data...</span
|
|
5251
|
+
>
|
|
5122
5252
|
</div>
|
|
5123
5253
|
} @else {
|
|
5124
|
-
<table
|
|
5125
|
-
|
|
5254
|
+
<table
|
|
5255
|
+
class="w-full text-sm text-left border-collapse"
|
|
5256
|
+
[style]="tableStyle()"
|
|
5257
|
+
>
|
|
5258
|
+
<thead
|
|
5259
|
+
class="bg-(--f-content-hover-background) border-b border-(--f-content-border-color)"
|
|
5260
|
+
[class.sticky]="scrollable()"
|
|
5261
|
+
[class.top-0]="scrollable()"
|
|
5262
|
+
[class.z-10]="scrollable()"
|
|
5263
|
+
>
|
|
5126
5264
|
@if (headerTemplate()) {
|
|
5127
5265
|
<ng-container [ngTemplateOutlet]="headerTemplate()" />
|
|
5128
5266
|
}
|
|
5129
5267
|
</thead>
|
|
5130
5268
|
<tbody class="divide-y divide-(--f-content-border-color)">
|
|
5131
5269
|
@if (pageRows().length > 0) {
|
|
5132
|
-
@for (
|
|
5270
|
+
@for (
|
|
5271
|
+
row of pageRows();
|
|
5272
|
+
track trackByRow($index, row);
|
|
5273
|
+
let i = $index
|
|
5274
|
+
) {
|
|
5133
5275
|
@if (bodyTemplate()) {
|
|
5134
|
-
<ng-container
|
|
5276
|
+
<ng-container
|
|
5277
|
+
[ngTemplateOutlet]="bodyTemplate()"
|
|
5278
|
+
[ngTemplateOutletContext]="{ $implicit: row, rowIndex: i }"
|
|
5279
|
+
/>
|
|
5135
5280
|
}
|
|
5136
5281
|
}
|
|
5137
5282
|
} @else {
|
|
@@ -5139,14 +5284,28 @@ class TableComponent {
|
|
|
5139
5284
|
<ng-container [ngTemplateOutlet]="emptyTemplate()" />
|
|
5140
5285
|
} @else {
|
|
5141
5286
|
<tr>
|
|
5142
|
-
<td
|
|
5287
|
+
<td
|
|
5288
|
+
[attr.colspan]="100"
|
|
5289
|
+
class="text-center py-16 text-(--f-text-muted-color)"
|
|
5290
|
+
>
|
|
5143
5291
|
<div class="flex flex-col items-center gap-3">
|
|
5144
|
-
<div
|
|
5145
|
-
|
|
5292
|
+
<div
|
|
5293
|
+
class="w-12 h-12 rounded-full bg-(--f-content-hover-background) flex items-center justify-center"
|
|
5294
|
+
>
|
|
5295
|
+
<ui-icon
|
|
5296
|
+
name="inbox"
|
|
5297
|
+
class="text-xl text-(--f-text-muted-color)"
|
|
5298
|
+
></ui-icon>
|
|
5146
5299
|
</div>
|
|
5147
5300
|
<div>
|
|
5148
|
-
<p
|
|
5149
|
-
|
|
5301
|
+
<p
|
|
5302
|
+
class="text-sm font-medium text-(--f-text-muted-color)"
|
|
5303
|
+
>
|
|
5304
|
+
No records found
|
|
5305
|
+
</p>
|
|
5306
|
+
<p class="text-xs text-(--f-text-muted-color) mt-0.5">
|
|
5307
|
+
Try adjusting your filters
|
|
5308
|
+
</p>
|
|
5150
5309
|
</div>
|
|
5151
5310
|
</div>
|
|
5152
5311
|
</td>
|
|
@@ -5170,7 +5329,7 @@ class TableComponent {
|
|
|
5170
5329
|
</div>
|
|
5171
5330
|
}
|
|
5172
5331
|
</div>
|
|
5173
|
-
`, isInline: true, styles: [":host ::ng-deep thead tr th{padding:.
|
|
5332
|
+
`, isInline: true, styles: [":host ::ng-deep thead tr th{padding:.8125rem 1rem;font-size:.875rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--f-text-muted-color);white-space:nowrap;background:transparent}:host ::ng-deep tbody tr{transition:background-color var(--f-transition-duration) ease}:host.row-hover ::ng-deep tbody tr:hover{background-color:var(--f-content-hover-background)}:host ::ng-deep tbody tr td{padding:.8125rem 1rem;color:var(--f-text-color);font-size:.875rem;vertical-align:middle}\n"], dependencies: [{ kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PaginatorComponent, selector: "f-paginator", inputs: ["first", "rows", "totalRecords", "rowsPerPageOptions", "showCurrentPageReport", "currentPageReportTemplate"], outputs: ["onPageChange"] }] });
|
|
5174
5333
|
}
|
|
5175
5334
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TableComponent, decorators: [{
|
|
5176
5335
|
type: Component,
|
|
@@ -5178,33 +5337,76 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
5178
5337
|
'[class.row-hover]': 'rowHover()',
|
|
5179
5338
|
'[class]': 'styleClass()',
|
|
5180
5339
|
}, template: `
|
|
5181
|
-
<div
|
|
5340
|
+
<div
|
|
5341
|
+
class="w-full rounded-lg border border-(--f-content-border-color) bg-(--f-content-background) shadow-sm"
|
|
5342
|
+
[class]="scrollable() ? 'overflow-auto max-h-[28rem]' : 'overflow-x-auto'"
|
|
5343
|
+
>
|
|
5182
5344
|
@if (globalFilterFields().length > 0) {
|
|
5183
|
-
<div
|
|
5184
|
-
|
|
5185
|
-
|
|
5186
|
-
|
|
5187
|
-
|
|
5345
|
+
<div
|
|
5346
|
+
[class]="
|
|
5347
|
+
'p-2 border-b border-(--f-content-border-color) ' +
|
|
5348
|
+
(scrollable()
|
|
5349
|
+
? 'sticky top-0 z-10 bg-(--f-content-background)'
|
|
5350
|
+
: '')
|
|
5351
|
+
"
|
|
5352
|
+
>
|
|
5353
|
+
<div
|
|
5354
|
+
class="flex items-center gap-2 px-2 py-1.5 max-w-xs bg-(--f-content-hover-background) rounded-lg border border-(--f-content-border-color)"
|
|
5355
|
+
>
|
|
5356
|
+
<ui-icon
|
|
5357
|
+
name="search"
|
|
5358
|
+
class="text-xs text-(--f-text-muted-color) shrink-0"
|
|
5359
|
+
></ui-icon>
|
|
5360
|
+
<input
|
|
5361
|
+
type="text"
|
|
5362
|
+
class="flex-1 text-sm bg-transparent focus:outline-none text-(--f-text-color) placeholder:text-(--f-form-field-placeholder-color)"
|
|
5363
|
+
placeholder="Search..."
|
|
5364
|
+
[value]="filterText()"
|
|
5365
|
+
(input)="onFilterInput($any($event.target).value)"
|
|
5366
|
+
/>
|
|
5188
5367
|
</div>
|
|
5189
5368
|
</div>
|
|
5190
5369
|
}
|
|
5191
5370
|
@if (loading()) {
|
|
5192
|
-
<div
|
|
5193
|
-
|
|
5194
|
-
|
|
5371
|
+
<div
|
|
5372
|
+
class="flex flex-col items-center justify-center py-20 text-(--f-text-muted-color) gap-3"
|
|
5373
|
+
>
|
|
5374
|
+
<ui-icon
|
|
5375
|
+
name="loader-circle"
|
|
5376
|
+
[spin]="true"
|
|
5377
|
+
class="text-2xl text-primary/60"
|
|
5378
|
+
></ui-icon>
|
|
5379
|
+
<span class="text-sm text-(--f-text-muted-color)"
|
|
5380
|
+
>Loading data...</span
|
|
5381
|
+
>
|
|
5195
5382
|
</div>
|
|
5196
5383
|
} @else {
|
|
5197
|
-
<table
|
|
5198
|
-
|
|
5384
|
+
<table
|
|
5385
|
+
class="w-full text-sm text-left border-collapse"
|
|
5386
|
+
[style]="tableStyle()"
|
|
5387
|
+
>
|
|
5388
|
+
<thead
|
|
5389
|
+
class="bg-(--f-content-hover-background) border-b border-(--f-content-border-color)"
|
|
5390
|
+
[class.sticky]="scrollable()"
|
|
5391
|
+
[class.top-0]="scrollable()"
|
|
5392
|
+
[class.z-10]="scrollable()"
|
|
5393
|
+
>
|
|
5199
5394
|
@if (headerTemplate()) {
|
|
5200
5395
|
<ng-container [ngTemplateOutlet]="headerTemplate()" />
|
|
5201
5396
|
}
|
|
5202
5397
|
</thead>
|
|
5203
5398
|
<tbody class="divide-y divide-(--f-content-border-color)">
|
|
5204
5399
|
@if (pageRows().length > 0) {
|
|
5205
|
-
@for (
|
|
5400
|
+
@for (
|
|
5401
|
+
row of pageRows();
|
|
5402
|
+
track trackByRow($index, row);
|
|
5403
|
+
let i = $index
|
|
5404
|
+
) {
|
|
5206
5405
|
@if (bodyTemplate()) {
|
|
5207
|
-
<ng-container
|
|
5406
|
+
<ng-container
|
|
5407
|
+
[ngTemplateOutlet]="bodyTemplate()"
|
|
5408
|
+
[ngTemplateOutletContext]="{ $implicit: row, rowIndex: i }"
|
|
5409
|
+
/>
|
|
5208
5410
|
}
|
|
5209
5411
|
}
|
|
5210
5412
|
} @else {
|
|
@@ -5212,14 +5414,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
5212
5414
|
<ng-container [ngTemplateOutlet]="emptyTemplate()" />
|
|
5213
5415
|
} @else {
|
|
5214
5416
|
<tr>
|
|
5215
|
-
<td
|
|
5417
|
+
<td
|
|
5418
|
+
[attr.colspan]="100"
|
|
5419
|
+
class="text-center py-16 text-(--f-text-muted-color)"
|
|
5420
|
+
>
|
|
5216
5421
|
<div class="flex flex-col items-center gap-3">
|
|
5217
|
-
<div
|
|
5218
|
-
|
|
5422
|
+
<div
|
|
5423
|
+
class="w-12 h-12 rounded-full bg-(--f-content-hover-background) flex items-center justify-center"
|
|
5424
|
+
>
|
|
5425
|
+
<ui-icon
|
|
5426
|
+
name="inbox"
|
|
5427
|
+
class="text-xl text-(--f-text-muted-color)"
|
|
5428
|
+
></ui-icon>
|
|
5219
5429
|
</div>
|
|
5220
5430
|
<div>
|
|
5221
|
-
<p
|
|
5222
|
-
|
|
5431
|
+
<p
|
|
5432
|
+
class="text-sm font-medium text-(--f-text-muted-color)"
|
|
5433
|
+
>
|
|
5434
|
+
No records found
|
|
5435
|
+
</p>
|
|
5436
|
+
<p class="text-xs text-(--f-text-muted-color) mt-0.5">
|
|
5437
|
+
Try adjusting your filters
|
|
5438
|
+
</p>
|
|
5223
5439
|
</div>
|
|
5224
5440
|
</div>
|
|
5225
5441
|
</td>
|
|
@@ -5243,7 +5459,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
5243
5459
|
</div>
|
|
5244
5460
|
}
|
|
5245
5461
|
</div>
|
|
5246
|
-
`, styles: [":host ::ng-deep thead tr th{padding:.
|
|
5462
|
+
`, styles: [":host ::ng-deep thead tr th{padding:.8125rem 1rem;font-size:.875rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--f-text-muted-color);white-space:nowrap;background:transparent}:host ::ng-deep tbody tr{transition:background-color var(--f-transition-duration) ease}:host.row-hover ::ng-deep tbody tr:hover{background-color:var(--f-content-hover-background)}:host ::ng-deep tbody tr td{padding:.8125rem 1rem;color:var(--f-text-color);font-size:.875rem;vertical-align:middle}\n"] }]
|
|
5247
5463
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], lazy: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazy", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], totalRecords: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalRecords", required: false }] }], rowHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHover", required: false }] }], dataKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataKey", required: false }] }], scrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollable", required: false }] }], paginator: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginator", required: false }] }], first: [{ type: i0.Input, args: [{ isSignal: true, alias: "first", required: false }] }], rowsPerPageOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowsPerPageOptions", required: false }] }], showCurrentPageReport: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCurrentPageReport", required: false }] }], currentPageReportTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPageReportTemplate", required: false }] }], tableStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableStyle", required: false }] }], styleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleClass", required: false }] }], globalFilterFields: [{ type: i0.Input, args: [{ isSignal: true, alias: "globalFilterFields", required: false }] }], sortField: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortField", required: false }] }, { type: i0.Output, args: ["sortFieldChange"] }], sortOrder: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortOrder", required: false }] }, { type: i0.Output, args: ["sortOrderChange"] }], onLazyLoad: [{ type: i0.Output, args: ["onLazyLoad"] }], onSort: [{ type: i0.Output, args: ["onSort"] }], headerTemplate: [{ type: i0.ContentChild, args: ['header', { isSignal: true }] }], bodyTemplate: [{ type: i0.ContentChild, args: ['body', { isSignal: true }] }], emptyTemplate: [{ type: i0.ContentChild, args: ['emptymessage', { isSignal: true }] }] } });
|
|
5248
5464
|
|
|
5249
5465
|
class SortableColumnDirective {
|
|
@@ -6563,7 +6779,7 @@ class TreeTableService {
|
|
|
6563
6779
|
...(ngDevMode ? [{ debugName: "_expanded" }] : /* istanbul ignore next */ []));
|
|
6564
6780
|
expanded = this._expanded.asReadonly();
|
|
6565
6781
|
toggle(key, node) {
|
|
6566
|
-
this._expanded.update(s => {
|
|
6782
|
+
this._expanded.update((s) => {
|
|
6567
6783
|
const next = new Set(s);
|
|
6568
6784
|
if (next.has(key)) {
|
|
6569
6785
|
next.delete(key);
|
|
@@ -6604,7 +6820,10 @@ class TreeTableTogglerComponent {
|
|
|
6604
6820
|
(click)="onToggle($event)"
|
|
6605
6821
|
[attr.aria-expanded]="rowNode().expanded"
|
|
6606
6822
|
>
|
|
6607
|
-
<ui-icon
|
|
6823
|
+
<ui-icon
|
|
6824
|
+
[name]="rowNode().expanded ? 'chevron-down' : 'chevron-right'"
|
|
6825
|
+
class="text-xs"
|
|
6826
|
+
></ui-icon>
|
|
6608
6827
|
</button>
|
|
6609
6828
|
} @else {
|
|
6610
6829
|
<span class="inline-block w-6 h-6 shrink-0"></span>
|
|
@@ -6624,7 +6843,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
6624
6843
|
(click)="onToggle($event)"
|
|
6625
6844
|
[attr.aria-expanded]="rowNode().expanded"
|
|
6626
6845
|
>
|
|
6627
|
-
<ui-icon
|
|
6846
|
+
<ui-icon
|
|
6847
|
+
[name]="rowNode().expanded ? 'chevron-down' : 'chevron-right'"
|
|
6848
|
+
class="text-xs"
|
|
6849
|
+
></ui-icon>
|
|
6628
6850
|
</button>
|
|
6629
6851
|
} @else {
|
|
6630
6852
|
<span class="inline-block w-6 h-6 shrink-0"></span>
|
|
@@ -6689,12 +6911,18 @@ class TreeTableComponent {
|
|
|
6689
6911
|
>
|
|
6690
6912
|
@if (loading()) {
|
|
6691
6913
|
<div class="flex flex-col items-center justify-center py-20 gap-3">
|
|
6692
|
-
<ui-icon
|
|
6914
|
+
<ui-icon
|
|
6915
|
+
name="loader-circle"
|
|
6916
|
+
[spin]="true"
|
|
6917
|
+
class="text-2xl text-primary/60"
|
|
6918
|
+
></ui-icon>
|
|
6693
6919
|
<span class="text-sm text-(--f-text-muted-color)">Loading...</span>
|
|
6694
6920
|
</div>
|
|
6695
6921
|
} @else {
|
|
6696
6922
|
<table class="w-full text-sm text-left border-collapse">
|
|
6697
|
-
<thead
|
|
6923
|
+
<thead
|
|
6924
|
+
class="bg-(--f-content-hover-background) border-b border-(--f-content-border-color)"
|
|
6925
|
+
>
|
|
6698
6926
|
@if (headerTemplate()) {
|
|
6699
6927
|
<ng-container [ngTemplateOutlet]="headerTemplate()" />
|
|
6700
6928
|
}
|
|
@@ -6706,7 +6934,11 @@ class TreeTableComponent {
|
|
|
6706
6934
|
@if (bodyTemplate()) {
|
|
6707
6935
|
<ng-container
|
|
6708
6936
|
[ngTemplateOutlet]="bodyTemplate()"
|
|
6709
|
-
[ngTemplateOutletContext]="{
|
|
6937
|
+
[ngTemplateOutletContext]="{
|
|
6938
|
+
$implicit: row,
|
|
6939
|
+
rowData: row.node.data,
|
|
6940
|
+
rowNode: row,
|
|
6941
|
+
}"
|
|
6710
6942
|
/>
|
|
6711
6943
|
}
|
|
6712
6944
|
}
|
|
@@ -6716,12 +6948,24 @@ class TreeTableComponent {
|
|
|
6716
6948
|
<ng-container [ngTemplateOutlet]="emptyTemplate()" />
|
|
6717
6949
|
} @else {
|
|
6718
6950
|
<tr>
|
|
6719
|
-
<td
|
|
6951
|
+
<td
|
|
6952
|
+
[attr.colspan]="100"
|
|
6953
|
+
class="text-center py-16 text-(--f-text-muted-color)"
|
|
6954
|
+
>
|
|
6720
6955
|
<div class="flex flex-col items-center gap-3">
|
|
6721
|
-
<div
|
|
6722
|
-
|
|
6956
|
+
<div
|
|
6957
|
+
class="w-12 h-12 rounded-full bg-(--f-content-hover-background) flex items-center justify-center"
|
|
6958
|
+
>
|
|
6959
|
+
<ui-icon
|
|
6960
|
+
name="inbox"
|
|
6961
|
+
class="text-xl text-(--f-text-muted-color)"
|
|
6962
|
+
></ui-icon>
|
|
6723
6963
|
</div>
|
|
6724
|
-
<p
|
|
6964
|
+
<p
|
|
6965
|
+
class="text-sm font-medium text-(--f-text-muted-color)"
|
|
6966
|
+
>
|
|
6967
|
+
No records found
|
|
6968
|
+
</p>
|
|
6725
6969
|
</div>
|
|
6726
6970
|
</td>
|
|
6727
6971
|
</tr>
|
|
@@ -6731,7 +6975,7 @@ class TreeTableComponent {
|
|
|
6731
6975
|
</table>
|
|
6732
6976
|
}
|
|
6733
6977
|
</div>
|
|
6734
|
-
`, isInline: true, styles: [":host ::ng-deep table thead tr th{padding:.
|
|
6978
|
+
`, isInline: true, styles: [":host ::ng-deep table thead tr th{padding:.8125rem 1rem;font-size:.875rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--f-text-muted-color);white-space:nowrap;background:transparent}:host ::ng-deep table tbody tr td{padding:.8125rem 1rem;color:var(--f-text-color);font-size:.875rem;vertical-align:middle}:host ::ng-deep table tbody tr:hover td{background-color:var(--f-content-hover-background)}\n"], dependencies: [{ kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
6735
6979
|
}
|
|
6736
6980
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TreeTableComponent, decorators: [{
|
|
6737
6981
|
type: Component,
|
|
@@ -6742,12 +6986,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
6742
6986
|
>
|
|
6743
6987
|
@if (loading()) {
|
|
6744
6988
|
<div class="flex flex-col items-center justify-center py-20 gap-3">
|
|
6745
|
-
<ui-icon
|
|
6989
|
+
<ui-icon
|
|
6990
|
+
name="loader-circle"
|
|
6991
|
+
[spin]="true"
|
|
6992
|
+
class="text-2xl text-primary/60"
|
|
6993
|
+
></ui-icon>
|
|
6746
6994
|
<span class="text-sm text-(--f-text-muted-color)">Loading...</span>
|
|
6747
6995
|
</div>
|
|
6748
6996
|
} @else {
|
|
6749
6997
|
<table class="w-full text-sm text-left border-collapse">
|
|
6750
|
-
<thead
|
|
6998
|
+
<thead
|
|
6999
|
+
class="bg-(--f-content-hover-background) border-b border-(--f-content-border-color)"
|
|
7000
|
+
>
|
|
6751
7001
|
@if (headerTemplate()) {
|
|
6752
7002
|
<ng-container [ngTemplateOutlet]="headerTemplate()" />
|
|
6753
7003
|
}
|
|
@@ -6759,7 +7009,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
6759
7009
|
@if (bodyTemplate()) {
|
|
6760
7010
|
<ng-container
|
|
6761
7011
|
[ngTemplateOutlet]="bodyTemplate()"
|
|
6762
|
-
[ngTemplateOutletContext]="{
|
|
7012
|
+
[ngTemplateOutletContext]="{
|
|
7013
|
+
$implicit: row,
|
|
7014
|
+
rowData: row.node.data,
|
|
7015
|
+
rowNode: row,
|
|
7016
|
+
}"
|
|
6763
7017
|
/>
|
|
6764
7018
|
}
|
|
6765
7019
|
}
|
|
@@ -6769,12 +7023,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
6769
7023
|
<ng-container [ngTemplateOutlet]="emptyTemplate()" />
|
|
6770
7024
|
} @else {
|
|
6771
7025
|
<tr>
|
|
6772
|
-
<td
|
|
7026
|
+
<td
|
|
7027
|
+
[attr.colspan]="100"
|
|
7028
|
+
class="text-center py-16 text-(--f-text-muted-color)"
|
|
7029
|
+
>
|
|
6773
7030
|
<div class="flex flex-col items-center gap-3">
|
|
6774
|
-
<div
|
|
6775
|
-
|
|
7031
|
+
<div
|
|
7032
|
+
class="w-12 h-12 rounded-full bg-(--f-content-hover-background) flex items-center justify-center"
|
|
7033
|
+
>
|
|
7034
|
+
<ui-icon
|
|
7035
|
+
name="inbox"
|
|
7036
|
+
class="text-xl text-(--f-text-muted-color)"
|
|
7037
|
+
></ui-icon>
|
|
6776
7038
|
</div>
|
|
6777
|
-
<p
|
|
7039
|
+
<p
|
|
7040
|
+
class="text-sm font-medium text-(--f-text-muted-color)"
|
|
7041
|
+
>
|
|
7042
|
+
No records found
|
|
7043
|
+
</p>
|
|
6778
7044
|
</div>
|
|
6779
7045
|
</td>
|
|
6780
7046
|
</tr>
|
|
@@ -6784,7 +7050,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
6784
7050
|
</table>
|
|
6785
7051
|
}
|
|
6786
7052
|
</div>
|
|
6787
|
-
`, host: { '[class]': 'styleClass()' }, styles: [":host ::ng-deep table thead tr th{padding:.
|
|
7053
|
+
`, host: { '[class]': 'styleClass()' }, styles: [":host ::ng-deep table thead tr th{padding:.8125rem 1rem;font-size:.875rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--f-text-muted-color);white-space:nowrap;background:transparent}:host ::ng-deep table tbody tr td{padding:.8125rem 1rem;color:var(--f-text-color);font-size:.875rem;vertical-align:middle}:host ::ng-deep table tbody tr:hover td{background-color:var(--f-content-hover-background)}\n"] }]
|
|
6788
7054
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], dataKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataKey", required: false }] }], styleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleClass", required: false }] }], tableStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableStyle", required: false }] }], scrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollable", required: false }] }], headerTemplate: [{ type: i0.ContentChild, args: ['header', { isSignal: true }] }], bodyTemplate: [{ type: i0.ContentChild, args: ['body', { isSignal: true }] }], emptyTemplate: [{ type: i0.ContentChild, args: ['emptymessage', { isSignal: true }] }] } });
|
|
6789
7055
|
|
|
6790
7056
|
let _uidCounter$1 = 0;
|
|
@@ -7207,22 +7473,25 @@ class BadgeComponent {
|
|
|
7207
7473
|
}, /* @ts-ignore */
|
|
7208
7474
|
...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
7209
7475
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7210
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: BadgeComponent, isStandalone: true, selector: "f-badge", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
7211
|
-
<
|
|
7476
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: BadgeComponent, isStandalone: true, selector: "f-badge", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "block" }, ngImport: i0, template: `
|
|
7477
|
+
<p [class]="classes()">
|
|
7212
7478
|
{{ value() }}
|
|
7213
7479
|
<ng-content></ng-content>
|
|
7214
|
-
</
|
|
7480
|
+
</p>
|
|
7215
7481
|
`, isInline: true });
|
|
7216
7482
|
}
|
|
7217
7483
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: BadgeComponent, decorators: [{
|
|
7218
7484
|
type: Component,
|
|
7219
7485
|
args: [{
|
|
7220
7486
|
selector: 'f-badge',
|
|
7487
|
+
host: {
|
|
7488
|
+
class: 'block',
|
|
7489
|
+
},
|
|
7221
7490
|
template: `
|
|
7222
|
-
<
|
|
7491
|
+
<p [class]="classes()">
|
|
7223
7492
|
{{ value() }}
|
|
7224
7493
|
<ng-content></ng-content>
|
|
7225
|
-
</
|
|
7494
|
+
</p>
|
|
7226
7495
|
`,
|
|
7227
7496
|
}]
|
|
7228
7497
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], severity: [{ type: i0.Input, args: [{ isSignal: true, alias: "severity", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
|
|
@@ -7236,9 +7505,14 @@ class OverlayBadgeComponent {
|
|
|
7236
7505
|
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
7237
7506
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: OverlayBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7238
7507
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: OverlayBadgeComponent, isStandalone: true, selector: "f-overlaybadge", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
7239
|
-
<div class="relative
|
|
7508
|
+
<div class="relative flex items-center justify-center">
|
|
7240
7509
|
<ng-content></ng-content>
|
|
7241
|
-
<f-badge
|
|
7510
|
+
<f-badge
|
|
7511
|
+
[value]="value()"
|
|
7512
|
+
[severity]="severity()"
|
|
7513
|
+
[size]="size()"
|
|
7514
|
+
class="absolute -top-2 -right-2"
|
|
7515
|
+
></f-badge>
|
|
7242
7516
|
</div>
|
|
7243
7517
|
`, isInline: true, dependencies: [{ kind: "component", type: BadgeComponent, selector: "f-badge", inputs: ["value", "severity", "size"] }] });
|
|
7244
7518
|
}
|
|
@@ -7248,9 +7522,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
7248
7522
|
selector: 'f-overlaybadge',
|
|
7249
7523
|
imports: [BadgeComponent],
|
|
7250
7524
|
template: `
|
|
7251
|
-
<div class="relative
|
|
7525
|
+
<div class="relative flex items-center justify-center">
|
|
7252
7526
|
<ng-content></ng-content>
|
|
7253
|
-
<f-badge
|
|
7527
|
+
<f-badge
|
|
7528
|
+
[value]="value()"
|
|
7529
|
+
[severity]="severity()"
|
|
7530
|
+
[size]="size()"
|
|
7531
|
+
class="absolute -top-2 -right-2"
|
|
7532
|
+
></f-badge>
|
|
7254
7533
|
</div>
|
|
7255
7534
|
`,
|
|
7256
7535
|
}]
|
|
@@ -7262,7 +7541,9 @@ class FieldsetComponent {
|
|
|
7262
7541
|
toggleable = input(false, { ...(ngDevMode ? { debugName: "toggleable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
7263
7542
|
collapsed = model(false, /* @ts-ignore */
|
|
7264
7543
|
...(ngDevMode ? [{ debugName: "collapsed" }] : /* istanbul ignore next */ []));
|
|
7265
|
-
toggleCollapsed() {
|
|
7544
|
+
toggleCollapsed() {
|
|
7545
|
+
this.collapsed.update((v) => !v);
|
|
7546
|
+
}
|
|
7266
7547
|
onSpace(event) {
|
|
7267
7548
|
if (!this.toggleable())
|
|
7268
7549
|
return;
|
|
@@ -7270,8 +7551,10 @@ class FieldsetComponent {
|
|
|
7270
7551
|
this.toggleCollapsed();
|
|
7271
7552
|
}
|
|
7272
7553
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: FieldsetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7273
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: FieldsetComponent, isStandalone: true, selector: "f-fieldset", inputs: { legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, toggleable: { classPropertyName: "toggleable", publicName: "toggleable", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange" }, ngImport: i0, template: `
|
|
7274
|
-
<fieldset
|
|
7554
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: FieldsetComponent, isStandalone: true, selector: "f-fieldset", inputs: { legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, toggleable: { classPropertyName: "toggleable", publicName: "toggleable", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange" }, host: { classAttribute: "block" }, ngImport: i0, template: `
|
|
7555
|
+
<fieldset
|
|
7556
|
+
class="border border-(--f-content-border-color) rounded-lg p-4 pt-0"
|
|
7557
|
+
>
|
|
7275
7558
|
<legend
|
|
7276
7559
|
class="px-2 text-sm font-semibold text-(--f-text-color) flex items-center gap-2 rounded focus-visible:outline-none focus-visible:ring-focus"
|
|
7277
7560
|
[class.cursor-pointer]="toggleable()"
|
|
@@ -7283,7 +7566,10 @@ class FieldsetComponent {
|
|
|
7283
7566
|
(keydown.space)="onSpace($event)"
|
|
7284
7567
|
>
|
|
7285
7568
|
@if (toggleable()) {
|
|
7286
|
-
<ui-icon
|
|
7569
|
+
<ui-icon
|
|
7570
|
+
[name]="collapsed() ? 'chevron-right' : 'chevron-down'"
|
|
7571
|
+
class="text-xs"
|
|
7572
|
+
></ui-icon>
|
|
7287
7573
|
}
|
|
7288
7574
|
{{ legend() }}
|
|
7289
7575
|
</legend>
|
|
@@ -7301,7 +7587,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
7301
7587
|
selector: 'f-fieldset',
|
|
7302
7588
|
imports: [UiIconComponent],
|
|
7303
7589
|
template: `
|
|
7304
|
-
<fieldset
|
|
7590
|
+
<fieldset
|
|
7591
|
+
class="border border-(--f-content-border-color) rounded-lg p-4 pt-0"
|
|
7592
|
+
>
|
|
7305
7593
|
<legend
|
|
7306
7594
|
class="px-2 text-sm font-semibold text-(--f-text-color) flex items-center gap-2 rounded focus-visible:outline-none focus-visible:ring-focus"
|
|
7307
7595
|
[class.cursor-pointer]="toggleable()"
|
|
@@ -7313,7 +7601,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
7313
7601
|
(keydown.space)="onSpace($event)"
|
|
7314
7602
|
>
|
|
7315
7603
|
@if (toggleable()) {
|
|
7316
|
-
<ui-icon
|
|
7604
|
+
<ui-icon
|
|
7605
|
+
[name]="collapsed() ? 'chevron-right' : 'chevron-down'"
|
|
7606
|
+
class="text-xs"
|
|
7607
|
+
></ui-icon>
|
|
7317
7608
|
}
|
|
7318
7609
|
{{ legend() }}
|
|
7319
7610
|
</legend>
|
|
@@ -7324,6 +7615,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
7324
7615
|
}
|
|
7325
7616
|
</fieldset>
|
|
7326
7617
|
`,
|
|
7618
|
+
host: {
|
|
7619
|
+
class: 'block',
|
|
7620
|
+
},
|
|
7327
7621
|
}]
|
|
7328
7622
|
}], propDecorators: { legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], toggleable: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleable", required: false }] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }, { type: i0.Output, args: ["collapsedChange"] }] } });
|
|
7329
7623
|
|
|
@@ -7612,12 +7906,10 @@ class MenuComponent {
|
|
|
7612
7906
|
visible = this._visible.asReadonly();
|
|
7613
7907
|
_openedAt = 0;
|
|
7614
7908
|
toggle(event) {
|
|
7615
|
-
event?.stopPropagation();
|
|
7616
7909
|
this._openedAt = Date.now();
|
|
7617
7910
|
this._visible.update(v => !v);
|
|
7618
7911
|
}
|
|
7619
7912
|
show(event) {
|
|
7620
|
-
event?.stopPropagation();
|
|
7621
7913
|
this._openedAt = Date.now();
|
|
7622
7914
|
this._visible.set(true);
|
|
7623
7915
|
}
|
|
@@ -9908,9 +10200,15 @@ class CascadeSelectComponent {
|
|
|
9908
10200
|
const base = 'w-full min-h-[38px] flex items-center gap-2 px-3 py-1.5 text-sm rounded-lg border bg-(--f-form-field-background) focus:outline-none focus-visible:ring-focus transition-all duration-[var(--f-transition-duration)]';
|
|
9909
10201
|
const showInvalid = this.invalid() && this.touched();
|
|
9910
10202
|
const stateClass = this.open()
|
|
9911
|
-
?
|
|
9912
|
-
|
|
9913
|
-
|
|
10203
|
+
? showInvalid
|
|
10204
|
+
? 'border-red-400'
|
|
10205
|
+
: 'border-primary'
|
|
10206
|
+
: showInvalid
|
|
10207
|
+
? 'border-red-400'
|
|
10208
|
+
: 'border-(--f-form-field-border-color) hover:border-(--f-form-field-hover-border-color)';
|
|
10209
|
+
const disabledClass = this.disabled()
|
|
10210
|
+
? 'opacity-60 cursor-not-allowed'
|
|
10211
|
+
: 'cursor-pointer';
|
|
9914
10212
|
return `${base} ${stateClass} ${disabledClass}`;
|
|
9915
10213
|
}, /* @ts-ignore */
|
|
9916
10214
|
...(ngDevMode ? [{ debugName: "triggerClass" }] : /* istanbul ignore next */ []));
|
|
@@ -9924,16 +10222,22 @@ class CascadeSelectComponent {
|
|
|
9924
10222
|
return cols;
|
|
9925
10223
|
}, /* @ts-ignore */
|
|
9926
10224
|
...(ngDevMode ? [{ debugName: "levels" }] : /* istanbul ignore next */ []));
|
|
9927
|
-
getLabel(opt) {
|
|
9928
|
-
|
|
9929
|
-
|
|
10225
|
+
getLabel(opt) {
|
|
10226
|
+
return String(opt[this.optionLabel()] ?? '');
|
|
10227
|
+
}
|
|
10228
|
+
getValue(opt) {
|
|
10229
|
+
return opt[this.optionValue()];
|
|
10230
|
+
}
|
|
10231
|
+
getChildren(opt) {
|
|
10232
|
+
return opt[this.optionChildren()] ?? [];
|
|
10233
|
+
}
|
|
9930
10234
|
isActive(opt, level) {
|
|
9931
10235
|
return this.activePath()[level] === opt;
|
|
9932
10236
|
}
|
|
9933
10237
|
toggleOpen() {
|
|
9934
10238
|
if (this.disabled())
|
|
9935
10239
|
return;
|
|
9936
|
-
this._open.update(v => !v);
|
|
10240
|
+
this._open.update((v) => !v);
|
|
9937
10241
|
if (!this.open())
|
|
9938
10242
|
this._onTouched();
|
|
9939
10243
|
}
|
|
@@ -9944,7 +10248,7 @@ class CascadeSelectComponent {
|
|
|
9944
10248
|
const children = this.getChildren(opt);
|
|
9945
10249
|
if (!children.length) {
|
|
9946
10250
|
this._selectedValue = this.getValue(opt);
|
|
9947
|
-
this._selectedPath.set(path.map(p => this.getLabel(p)));
|
|
10251
|
+
this._selectedPath.set(path.map((p) => this.getLabel(p)));
|
|
9948
10252
|
this._onChange(this._selectedValue);
|
|
9949
10253
|
this._open.set(false);
|
|
9950
10254
|
this._onTouched();
|
|
@@ -9963,7 +10267,7 @@ class CascadeSelectComponent {
|
|
|
9963
10267
|
return;
|
|
9964
10268
|
}
|
|
9965
10269
|
const path = this.findPath(this.options(), v);
|
|
9966
|
-
this._selectedPath.set(path.map(p => this.getLabel(p)));
|
|
10270
|
+
this._selectedPath.set(path.map((p) => this.getLabel(p)));
|
|
9967
10271
|
}
|
|
9968
10272
|
findPath(options, value, trail = []) {
|
|
9969
10273
|
for (const opt of options) {
|
|
@@ -9976,33 +10280,72 @@ class CascadeSelectComponent {
|
|
|
9976
10280
|
}
|
|
9977
10281
|
return [];
|
|
9978
10282
|
}
|
|
9979
|
-
registerOnChange(fn) {
|
|
9980
|
-
|
|
10283
|
+
registerOnChange(fn) {
|
|
10284
|
+
this._onChange = fn;
|
|
10285
|
+
}
|
|
10286
|
+
registerOnTouched(fn) {
|
|
10287
|
+
this._onTouched = fn;
|
|
10288
|
+
}
|
|
9981
10289
|
setDisabledState() { }
|
|
9982
10290
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CascadeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9983
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CascadeSelectComponent, isStandalone: true, selector: "f-cascadeselect", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, optionChildren: { classPropertyName: "optionChildren", publicName: "optionChildren", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "onDocumentClick($event)" }
|
|
10291
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CascadeSelectComponent, isStandalone: true, selector: "f-cascadeselect", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, optionChildren: { classPropertyName: "optionChildren", publicName: "optionChildren", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "onDocumentClick($event)" }, classAttribute: "block" }, providers: [
|
|
10292
|
+
{
|
|
10293
|
+
provide: NG_VALUE_ACCESSOR,
|
|
10294
|
+
useExisting: forwardRef(() => CascadeSelectComponent),
|
|
10295
|
+
multi: true,
|
|
10296
|
+
},
|
|
10297
|
+
], ngImport: i0, template: `
|
|
9984
10298
|
<div class="relative w-full">
|
|
9985
|
-
<button
|
|
9986
|
-
|
|
9987
|
-
|
|
10299
|
+
<button
|
|
10300
|
+
type="button"
|
|
10301
|
+
[class]="triggerClass()"
|
|
10302
|
+
[disabled]="disabled()"
|
|
10303
|
+
(click)="toggleOpen()"
|
|
10304
|
+
>
|
|
10305
|
+
<span
|
|
10306
|
+
class="truncate text-sm"
|
|
10307
|
+
[class.text-(--f-form-field-placeholder-color)]="
|
|
10308
|
+
!selectedPath().length
|
|
10309
|
+
"
|
|
10310
|
+
>
|
|
10311
|
+
{{
|
|
10312
|
+
selectedPath().length ? selectedPath().join(' / ') : placeholder()
|
|
10313
|
+
}}
|
|
9988
10314
|
</span>
|
|
9989
|
-
<ui-icon
|
|
10315
|
+
<ui-icon
|
|
10316
|
+
name="chevron-down"
|
|
10317
|
+
class="ml-auto text-xs text-(--f-form-field-placeholder-color) shrink-0 transition-transform duration-[var(--f-transition-duration)]"
|
|
10318
|
+
[class.rotate-180]="open()"
|
|
10319
|
+
></ui-icon>
|
|
9990
10320
|
</button>
|
|
9991
10321
|
|
|
9992
10322
|
@if (open()) {
|
|
9993
|
-
<div
|
|
10323
|
+
<div
|
|
10324
|
+
class="absolute z-50 mt-1 flex bg-(--f-overlay-popover-background) border border-(--f-content-border-color) rounded-lg shadow-lg overflow-hidden"
|
|
10325
|
+
>
|
|
9994
10326
|
@for (level of levels(); track $index) {
|
|
9995
|
-
<ul
|
|
10327
|
+
<ul
|
|
10328
|
+
class="max-h-64 overflow-auto py-1 min-w-[10rem] border-r border-(--f-content-border-color) last:border-r-0"
|
|
10329
|
+
>
|
|
9996
10330
|
@for (opt of level; track getLabel(opt)) {
|
|
9997
10331
|
<li>
|
|
9998
10332
|
<button
|
|
9999
10333
|
type="button"
|
|
10000
10334
|
class="w-full flex items-center justify-between gap-2 px-3 py-2 text-sm text-left transition-colors cursor-pointer"
|
|
10001
|
-
[class]="
|
|
10335
|
+
[class]="
|
|
10336
|
+
isActive(opt, $index)
|
|
10337
|
+
? 'bg-(--f-highlight-background) text-(--f-highlight-color)'
|
|
10338
|
+
: 'text-(--f-text-color) hover:bg-(--f-content-hover-background)'
|
|
10339
|
+
"
|
|
10002
10340
|
(click)="onOptionClick(opt, $index)"
|
|
10003
10341
|
>
|
|
10004
10342
|
<span class="truncate">{{ getLabel(opt) }}</span>
|
|
10005
|
-
@if (getChildren(opt).length) {
|
|
10343
|
+
@if (getChildren(opt).length) {
|
|
10344
|
+
<ui-icon
|
|
10345
|
+
name="chevron-right"
|
|
10346
|
+
class="text-[10px] text-(--f-text-muted-color) shrink-0"
|
|
10347
|
+
></ui-icon>
|
|
10348
|
+
}
|
|
10006
10349
|
</button>
|
|
10007
10350
|
</li>
|
|
10008
10351
|
}
|
|
@@ -10018,31 +10361,66 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
10018
10361
|
args: [{
|
|
10019
10362
|
selector: 'f-cascadeselect',
|
|
10020
10363
|
imports: [UiIconComponent],
|
|
10021
|
-
providers: [
|
|
10022
|
-
|
|
10364
|
+
providers: [
|
|
10365
|
+
{
|
|
10366
|
+
provide: NG_VALUE_ACCESSOR,
|
|
10367
|
+
useExisting: forwardRef(() => CascadeSelectComponent),
|
|
10368
|
+
multi: true,
|
|
10369
|
+
},
|
|
10370
|
+
],
|
|
10371
|
+
host: { class: 'block', '(document:click)': 'onDocumentClick($event)' },
|
|
10023
10372
|
template: `
|
|
10024
10373
|
<div class="relative w-full">
|
|
10025
|
-
<button
|
|
10026
|
-
|
|
10027
|
-
|
|
10374
|
+
<button
|
|
10375
|
+
type="button"
|
|
10376
|
+
[class]="triggerClass()"
|
|
10377
|
+
[disabled]="disabled()"
|
|
10378
|
+
(click)="toggleOpen()"
|
|
10379
|
+
>
|
|
10380
|
+
<span
|
|
10381
|
+
class="truncate text-sm"
|
|
10382
|
+
[class.text-(--f-form-field-placeholder-color)]="
|
|
10383
|
+
!selectedPath().length
|
|
10384
|
+
"
|
|
10385
|
+
>
|
|
10386
|
+
{{
|
|
10387
|
+
selectedPath().length ? selectedPath().join(' / ') : placeholder()
|
|
10388
|
+
}}
|
|
10028
10389
|
</span>
|
|
10029
|
-
<ui-icon
|
|
10390
|
+
<ui-icon
|
|
10391
|
+
name="chevron-down"
|
|
10392
|
+
class="ml-auto text-xs text-(--f-form-field-placeholder-color) shrink-0 transition-transform duration-[var(--f-transition-duration)]"
|
|
10393
|
+
[class.rotate-180]="open()"
|
|
10394
|
+
></ui-icon>
|
|
10030
10395
|
</button>
|
|
10031
10396
|
|
|
10032
10397
|
@if (open()) {
|
|
10033
|
-
<div
|
|
10398
|
+
<div
|
|
10399
|
+
class="absolute z-50 mt-1 flex bg-(--f-overlay-popover-background) border border-(--f-content-border-color) rounded-lg shadow-lg overflow-hidden"
|
|
10400
|
+
>
|
|
10034
10401
|
@for (level of levels(); track $index) {
|
|
10035
|
-
<ul
|
|
10402
|
+
<ul
|
|
10403
|
+
class="max-h-64 overflow-auto py-1 min-w-[10rem] border-r border-(--f-content-border-color) last:border-r-0"
|
|
10404
|
+
>
|
|
10036
10405
|
@for (opt of level; track getLabel(opt)) {
|
|
10037
10406
|
<li>
|
|
10038
10407
|
<button
|
|
10039
10408
|
type="button"
|
|
10040
10409
|
class="w-full flex items-center justify-between gap-2 px-3 py-2 text-sm text-left transition-colors cursor-pointer"
|
|
10041
|
-
[class]="
|
|
10410
|
+
[class]="
|
|
10411
|
+
isActive(opt, $index)
|
|
10412
|
+
? 'bg-(--f-highlight-background) text-(--f-highlight-color)'
|
|
10413
|
+
: 'text-(--f-text-color) hover:bg-(--f-content-hover-background)'
|
|
10414
|
+
"
|
|
10042
10415
|
(click)="onOptionClick(opt, $index)"
|
|
10043
10416
|
>
|
|
10044
10417
|
<span class="truncate">{{ getLabel(opt) }}</span>
|
|
10045
|
-
@if (getChildren(opt).length) {
|
|
10418
|
+
@if (getChildren(opt).length) {
|
|
10419
|
+
<ui-icon
|
|
10420
|
+
name="chevron-right"
|
|
10421
|
+
class="text-[10px] text-(--f-text-muted-color) shrink-0"
|
|
10422
|
+
></ui-icon>
|
|
10423
|
+
}
|
|
10046
10424
|
</button>
|
|
10047
10425
|
</li>
|
|
10048
10426
|
}
|