@flywheel-io/vision 2.7.0-beta.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/fonts/Flywheel-Vision-Icons.svg +8 -2
- package/assets/fonts/Flywheel-Vision-Icons.ttf +0 -0
- package/assets/fonts/Flywheel-Vision-Icons.woff +0 -0
- package/assets/svg/documents-file-move-arrow-right.svg +4 -0
- package/assets/svg/folder-move.svg +4 -0
- package/assets/svg/mouse-scroll.svg +4 -0
- package/assets/svg/thumbs-down-dislike.svg +4 -0
- package/components/avatar-list/avatar-list.component.d.ts +5 -3
- package/components/dialog/dialog-confirm.component.d.ts +2 -1
- package/components/form-heading/form-heading.component.d.ts +3 -1
- package/components/form-heading/form-heading.module.d.ts +2 -1
- package/components/icon/icon.types.d.ts +1 -1
- package/components/menu/menu-close-triggers.directive.d.ts +1 -1
- package/components/tag/tag.component.d.ts +10 -0
- package/components/tag/tag.module.d.ts +9 -0
- package/components/tooltip/tooltip-panel/tooltip-panel.component.d.ts +6 -6
- package/components/tooltip/tooltip.component.d.ts +2 -1
- package/components/tooltip/tooltip.directive.d.ts +39 -6
- package/components/wrapped-input/wrapped-input.component.d.ts +4 -1
- package/esm2022/components/avatar/avatar.component.mjs +7 -3
- package/esm2022/components/avatar-list/avatar-list.component.mjs +24 -24
- package/esm2022/components/chip-list/chip-list.component.mjs +3 -2
- package/esm2022/components/dialog/dialog-confirm.component.mjs +6 -3
- package/esm2022/components/form-heading/form-heading.component.mjs +9 -3
- package/esm2022/components/form-heading/form-heading.module.mjs +7 -3
- package/esm2022/components/icon/icon.types.mjs +44 -41
- package/esm2022/components/menu/menu-close-triggers.directive.mjs +15 -9
- package/esm2022/components/paginator/paginator-advanced/paginator-advanced.component.mjs +2 -2
- package/esm2022/components/select-menu/multi-select-menu/multi-select-menu.component.mjs +6 -1
- package/esm2022/components/tag/tag.component.mjs +25 -0
- package/esm2022/components/tag/tag.module.mjs +28 -0
- package/esm2022/components/tooltip/tooltip-panel/tooltip-panel.component.mjs +12 -21
- package/esm2022/components/tooltip/tooltip.component.mjs +4 -3
- package/esm2022/components/tooltip/tooltip.directive.mjs +94 -31
- package/esm2022/components/typeahead/typeahead.component.mjs +8 -4
- package/esm2022/components/wrapped-input/wrapped-input.component.mjs +10 -3
- package/fesm2022/flywheel-io-vision.mjs +274 -134
- package/fesm2022/flywheel-io-vision.mjs.map +1 -1
- package/package.json +1 -1
- package/scss/icons/_icon-glyphs.scss +12 -4
- package/styles.css +16 -4
- package/flywheel-io-vision-2.7.0-beta.0.tgz +0 -0
|
@@ -3,7 +3,7 @@ import { HostBinding, Input, ChangeDetectionStrategy, Component, EventEmitter, O
|
|
|
3
3
|
import * as i1$1 from '@angular/common';
|
|
4
4
|
import { CommonModule, NgClass } from '@angular/common';
|
|
5
5
|
import * as i1 from '@angular/platform-browser';
|
|
6
|
-
import { BehaviorSubject,
|
|
6
|
+
import { BehaviorSubject, debounce, timer, distinctUntilChanged, of, Subscription, min, startWith, tap, switchMap, map } from 'rxjs';
|
|
7
7
|
import * as i1$2 from '@angular/cdk/overlay';
|
|
8
8
|
import { OverlayModule, Overlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
|
|
9
9
|
import * as i1$5 from '@angular/cdk/table';
|
|
@@ -356,8 +356,12 @@ class FwAvatarComponent {
|
|
|
356
356
|
return [this.size, this.variant, this.content, 'selected'].filter(Boolean).join(' ');
|
|
357
357
|
}
|
|
358
358
|
;
|
|
359
|
-
get borderClass() {
|
|
360
|
-
|
|
359
|
+
get borderClass() {
|
|
360
|
+
return this.bordered;
|
|
361
|
+
}
|
|
362
|
+
get selectedClassApplied() {
|
|
363
|
+
return this.selected();
|
|
364
|
+
}
|
|
361
365
|
loadImage() {
|
|
362
366
|
this.isImageBroken = false;
|
|
363
367
|
}
|
|
@@ -928,24 +932,10 @@ class FwTooltipPanelComponent {
|
|
|
928
932
|
this.connectedPosition = computed(() => [positionMap$1[this.position()]]);
|
|
929
933
|
this.color = 'dark';
|
|
930
934
|
this.maxWidth = 200;
|
|
935
|
+
this.displayCaret = true;
|
|
931
936
|
this.mouseLeave = new EventEmitter();
|
|
932
937
|
this.delay = input('short');
|
|
933
938
|
this.delayMs = computed(() => delayMap$1[this.delay()]);
|
|
934
|
-
/*
|
|
935
|
-
<ng-template
|
|
936
|
-
cdkConnectedOverlay
|
|
937
|
-
[cdkConnectedOverlayOrigin]="trigger"
|
|
938
|
-
[cdkConnectedOverlayOpen]="isOpen"
|
|
939
|
-
[cdkConnectedOverlayPositions]="connectedPosition()"
|
|
940
|
-
[cdkConnectedOverlayScrollStrategy]="this.overlayService.scrollStrategies.close()">
|
|
941
|
-
*/
|
|
942
|
-
this.overlayService = inject(Overlay);
|
|
943
|
-
this.updateOverlayOnChange = effect(() => {
|
|
944
|
-
// this.overlayRef.origin = this.trigger();
|
|
945
|
-
// this.overlayRef.positions = this.connectedPosition();
|
|
946
|
-
// this.overlayRef.open = this.isOpen();
|
|
947
|
-
// this.overlayRef.scrollStrategy = this.overlayService.scrollStrategies.close();
|
|
948
|
-
});
|
|
949
939
|
}
|
|
950
940
|
get classes() {
|
|
951
941
|
return ['fw-tooltip-panel', 'fw-tooltip-' + this.position].join(' ');
|
|
@@ -954,7 +944,7 @@ class FwTooltipPanelComponent {
|
|
|
954
944
|
this.mouseLeave.emit(e);
|
|
955
945
|
}
|
|
956
946
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwTooltipPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
957
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
947
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FwTooltipPanelComponent, selector: "fw-tooltip-panel", inputs: { trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: false, isRequired: false, transformFunction: null }, displayCaret: { classPropertyName: "displayCaret", publicName: "displayCaret", isSignal: false, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mouseLeave: "mouseLeave" }, host: { listeners: { "mouseleave": "hidePopover($event)" }, properties: { "@fadeInFadeOut": "this.animation", "attr.class": "this.classes" } }, ngImport: i0, template: "<div\n class=\"fw-tooltip-content-wrapper vision-dark-theme\"\n [ngClass]=\"'fw-tooltip-' + position()\"\n [ngStyle]=\"{'maxWidth': maxWidth+'px'}\">\n <ng-content></ng-content>\n <h5 class=\"vision-h5\">{{ title }}</h5>\n @if (displayCaret) {\n <div class=\"fw-tooltip-caret\"></div>\n }\n</div>\n", styles: [":host{position:absolute;height:0;width:0}.fw-tooltip-content-wrapper{position:relative;border-radius:8px;border:1px solid var(--separations-border);min-width:60px;box-sizing:border-box;padding:4px 8px;background-color:var(--card-header);text-align:center;overflow-wrap:break-word;white-space:pre-wrap}.fw-tooltip-content-wrapper h5{margin:0!important;color:var(--typography-muted)}.fw-tooltip-content-wrapper .fw-tooltip-caret{position:absolute;overflow:hidden;width:16px;height:16px}.fw-tooltip-content-wrapper .fw-tooltip-caret:after{display:block;content:\"\";width:10px;height:10px;background:var(--separations-border);border:1px solid var(--separations-border);transform:rotate(45deg);position:relative}.fw-tooltip-content-wrapper.fw-tooltip-none{margin-bottom:10px}.fw-tooltip-content-wrapper.fw-tooltip-none .fw-tooltip-caret{display:none}.fw-tooltip-content-wrapper.fw-tooltip-above{margin-bottom:10px}.fw-tooltip-content-wrapper.fw-tooltip-above .fw-tooltip-caret{left:calc(50% - 8px);bottom:-10px;height:10px!important}.fw-tooltip-content-wrapper.fw-tooltip-above .fw-tooltip-caret:after{margin:-8px auto;width:10px}.fw-tooltip-content-wrapper.fw-tooltip-below{margin-top:10px}.fw-tooltip-content-wrapper.fw-tooltip-below .fw-tooltip-caret{left:calc(50% - 8px);top:-10px;height:10px!important}.fw-tooltip-content-wrapper.fw-tooltip-below .fw-tooltip-caret:after{top:10px;margin:-4px auto;width:10px}.fw-tooltip-content-wrapper.fw-tooltip-left{margin-right:10px}.fw-tooltip-content-wrapper.fw-tooltip-left .fw-tooltip-caret{right:-10px;top:max(50% - 10px,3px);width:10px!important}.fw-tooltip-content-wrapper.fw-tooltip-left .fw-tooltip-caret:after{top:calc(50% - 5px);left:-8px;width:10px}.fw-tooltip-content-wrapper.fw-tooltip-right{margin-left:10px}.fw-tooltip-content-wrapper.fw-tooltip-right .fw-tooltip-caret{left:-10px;top:max(50% - 10px,3px);width:10px!important}.fw-tooltip-content-wrapper.fw-tooltip-right .fw-tooltip-caret:after{top:calc(50% - 5px);right:-6px;width:10px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], animations: [
|
|
958
948
|
trigger('fadeInFadeOut', [
|
|
959
949
|
transition(':enter', [
|
|
960
950
|
style({ opacity: 0 }),
|
|
@@ -978,13 +968,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
978
968
|
animate('200ms', style({ opacity: 0 })),
|
|
979
969
|
]),
|
|
980
970
|
]),
|
|
981
|
-
], template: "<div\n
|
|
982
|
-
}], propDecorators: {
|
|
971
|
+
], template: "<div\n class=\"fw-tooltip-content-wrapper vision-dark-theme\"\n [ngClass]=\"'fw-tooltip-' + position()\"\n [ngStyle]=\"{'maxWidth': maxWidth+'px'}\">\n <ng-content></ng-content>\n <h5 class=\"vision-h5\">{{ title }}</h5>\n @if (displayCaret) {\n <div class=\"fw-tooltip-caret\"></div>\n }\n</div>\n", styles: [":host{position:absolute;height:0;width:0}.fw-tooltip-content-wrapper{position:relative;border-radius:8px;border:1px solid var(--separations-border);min-width:60px;box-sizing:border-box;padding:4px 8px;background-color:var(--card-header);text-align:center;overflow-wrap:break-word;white-space:pre-wrap}.fw-tooltip-content-wrapper h5{margin:0!important;color:var(--typography-muted)}.fw-tooltip-content-wrapper .fw-tooltip-caret{position:absolute;overflow:hidden;width:16px;height:16px}.fw-tooltip-content-wrapper .fw-tooltip-caret:after{display:block;content:\"\";width:10px;height:10px;background:var(--separations-border);border:1px solid var(--separations-border);transform:rotate(45deg);position:relative}.fw-tooltip-content-wrapper.fw-tooltip-none{margin-bottom:10px}.fw-tooltip-content-wrapper.fw-tooltip-none .fw-tooltip-caret{display:none}.fw-tooltip-content-wrapper.fw-tooltip-above{margin-bottom:10px}.fw-tooltip-content-wrapper.fw-tooltip-above .fw-tooltip-caret{left:calc(50% - 8px);bottom:-10px;height:10px!important}.fw-tooltip-content-wrapper.fw-tooltip-above .fw-tooltip-caret:after{margin:-8px auto;width:10px}.fw-tooltip-content-wrapper.fw-tooltip-below{margin-top:10px}.fw-tooltip-content-wrapper.fw-tooltip-below .fw-tooltip-caret{left:calc(50% - 8px);top:-10px;height:10px!important}.fw-tooltip-content-wrapper.fw-tooltip-below .fw-tooltip-caret:after{top:10px;margin:-4px auto;width:10px}.fw-tooltip-content-wrapper.fw-tooltip-left{margin-right:10px}.fw-tooltip-content-wrapper.fw-tooltip-left .fw-tooltip-caret{right:-10px;top:max(50% - 10px,3px);width:10px!important}.fw-tooltip-content-wrapper.fw-tooltip-left .fw-tooltip-caret:after{top:calc(50% - 5px);left:-8px;width:10px}.fw-tooltip-content-wrapper.fw-tooltip-right{margin-left:10px}.fw-tooltip-content-wrapper.fw-tooltip-right .fw-tooltip-caret{left:-10px;top:max(50% - 10px,3px);width:10px!important}.fw-tooltip-content-wrapper.fw-tooltip-right .fw-tooltip-caret:after{top:calc(50% - 5px);right:-6px;width:10px}\n"] }]
|
|
972
|
+
}], propDecorators: { animation: [{
|
|
973
|
+
type: HostBinding,
|
|
974
|
+
args: ['@fadeInFadeOut']
|
|
975
|
+
}], title: [{
|
|
983
976
|
type: Input
|
|
984
977
|
}], color: [{
|
|
985
978
|
type: Input
|
|
986
979
|
}], maxWidth: [{
|
|
987
980
|
type: Input
|
|
981
|
+
}], displayCaret: [{
|
|
982
|
+
type: Input
|
|
988
983
|
}], mouseLeave: [{
|
|
989
984
|
type: Output
|
|
990
985
|
}], classes: [{
|
|
@@ -995,13 +990,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
995
990
|
args: ['mouseleave', ['$event']]
|
|
996
991
|
}] } });
|
|
997
992
|
|
|
998
|
-
const positionMap = {
|
|
999
|
-
'none': { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: 3 },
|
|
1000
|
-
'above': { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: 3 },
|
|
1001
|
-
'below': { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: -3 },
|
|
1002
|
-
'left': { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' },
|
|
1003
|
-
'right': { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },
|
|
1004
|
-
};
|
|
1005
993
|
const delayMap = {
|
|
1006
994
|
'none': 0,
|
|
1007
995
|
'short': 400,
|
|
@@ -1010,49 +998,97 @@ const delayMap = {
|
|
|
1010
998
|
const delayNameToMs = (name) => {
|
|
1011
999
|
return delayMap[name];
|
|
1012
1000
|
};
|
|
1001
|
+
const positionMap = {
|
|
1002
|
+
'above': { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: 3 },
|
|
1003
|
+
'below': { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: -3 },
|
|
1004
|
+
'left': { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' },
|
|
1005
|
+
'right': { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },
|
|
1006
|
+
'none': { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: 3 },
|
|
1007
|
+
};
|
|
1008
|
+
/**
|
|
1009
|
+
* Directive for displaying extra context on hover
|
|
1010
|
+
* @see [Vision Docs](https://cdn.flywheel.io/docs/vision/master/?path=/docs/components-tooltip--docs)
|
|
1011
|
+
*/
|
|
1013
1012
|
class FwTooltipDirective {
|
|
1014
1013
|
constructor() {
|
|
1015
|
-
|
|
1014
|
+
/***** External Context *****/
|
|
1016
1015
|
this.elementRef = inject(ElementRef);
|
|
1017
1016
|
this.viewContainerRef = inject(ViewContainerRef);
|
|
1018
1017
|
this.overlayService = inject(Overlay);
|
|
1019
|
-
|
|
1018
|
+
/***** Internal Refs *****/
|
|
1020
1019
|
this.overlayRef = signal(undefined);
|
|
1021
1020
|
this.tooltipRef = signal(undefined);
|
|
1022
|
-
|
|
1023
|
-
this.delayMs = input(400, {
|
|
1024
|
-
transform: delayNameToMs,
|
|
1025
|
-
alias: 'fwTooltipDelay',
|
|
1026
|
-
});
|
|
1021
|
+
/***** Inputs *****/
|
|
1027
1022
|
// a lot of these ideally wouldn't be models,
|
|
1028
1023
|
// but it makes it easier to interact with this from derivative directives
|
|
1029
|
-
|
|
1024
|
+
// VS Code pulls the input that shares a name with the directive for giving context
|
|
1025
|
+
// so putting the top level comment on this input
|
|
1026
|
+
/**
|
|
1027
|
+
* Directive for displaying extra context on hover
|
|
1028
|
+
* @see [Vision Docs](https://cdn.flywheel.io/docs/vision/master/?path=/docs/components-tooltip--docs)
|
|
1029
|
+
*/
|
|
1030
|
+
this.title = model('Placeholder', {
|
|
1030
1031
|
alias: 'fwTooltip',
|
|
1031
1032
|
});
|
|
1033
|
+
/**
|
|
1034
|
+
* direction relative to the parent component that the tooltip will attempt to position itself to
|
|
1035
|
+
*/
|
|
1032
1036
|
this.position = model('above', {
|
|
1033
1037
|
alias: 'fwTooltipPosition',
|
|
1034
1038
|
});
|
|
1039
|
+
/**
|
|
1040
|
+
* maximum width of the tooltip in pixels
|
|
1041
|
+
*/
|
|
1035
1042
|
this.maxWidth = model(200, {
|
|
1036
1043
|
alias: 'fwTooltipMaxWidthPx',
|
|
1037
1044
|
});
|
|
1045
|
+
/**
|
|
1046
|
+
* amount of delay before the tooltip displays
|
|
1047
|
+
*
|
|
1048
|
+
* none (0ms),
|
|
1049
|
+
* short (400ms),
|
|
1050
|
+
* long (700ms)
|
|
1051
|
+
*/
|
|
1052
|
+
this.delayMs = input(400, {
|
|
1053
|
+
transform: delayNameToMs,
|
|
1054
|
+
alias: 'fwTooltipDelay',
|
|
1055
|
+
});
|
|
1056
|
+
/**
|
|
1057
|
+
* whether or not the tooltip should have a caret
|
|
1058
|
+
*/
|
|
1059
|
+
this.displayCaret = input(true, {
|
|
1060
|
+
alias: 'fwTooltipCaret',
|
|
1061
|
+
});
|
|
1038
1062
|
this.enabled = model(true, {
|
|
1039
|
-
alias: 'fwTooltipEnabled'
|
|
1063
|
+
alias: 'fwTooltipEnabled',
|
|
1064
|
+
});
|
|
1065
|
+
/***** Derived State *****/
|
|
1066
|
+
this.connectedPositions = computed(() => {
|
|
1067
|
+
// falback positions for if it doesn't fit in the specified position
|
|
1068
|
+
// tend towards closer first i.e. 'above' will try 'left' and 'right' before resorting to 'below
|
|
1069
|
+
const positionPreferenceOrderMap = {
|
|
1070
|
+
'above': ['above', 'right', 'left', 'below'],
|
|
1071
|
+
'right': ['right', 'below', 'above', 'left'],
|
|
1072
|
+
'below': ['below', 'left', 'right', 'above'],
|
|
1073
|
+
'left': ['left', 'above', 'below', 'right'],
|
|
1074
|
+
};
|
|
1075
|
+
const fallbackNamedPositions = positionPreferenceOrderMap[this.position()];
|
|
1076
|
+
const connectedPositions = fallbackNamedPositions.map(name => positionMap[name]);
|
|
1077
|
+
return connectedPositions;
|
|
1040
1078
|
});
|
|
1041
|
-
// derived state
|
|
1042
|
-
this.connectedPosition = computed(() => [positionMap[this.position()]]);
|
|
1043
1079
|
this.positionStrategy = computed(() => {
|
|
1044
1080
|
const positionBuilder = this.overlayService.position();
|
|
1045
1081
|
const withOrigin = positionBuilder.flexibleConnectedTo(this.elementRef);
|
|
1046
|
-
const completedStrategy = withOrigin.withPositions(this.
|
|
1082
|
+
const completedStrategy = withOrigin.withPositions(this.connectedPositions());
|
|
1047
1083
|
return completedStrategy;
|
|
1048
1084
|
});
|
|
1049
1085
|
this.overlayConfig = computed(() => ({
|
|
1050
1086
|
positionStrategy: this.positionStrategy(),
|
|
1051
|
-
maxWidth: this.maxWidth(),
|
|
1087
|
+
maxWidth: Number(this.maxWidth()),
|
|
1052
1088
|
ScrollStrategyOptions: this.overlayService.scrollStrategies.close(),
|
|
1053
1089
|
disposeOnNavigation: true,
|
|
1054
1090
|
}));
|
|
1055
|
-
|
|
1091
|
+
/***** Effects and Methods *****/
|
|
1056
1092
|
this.addMouseEventListeners = effect(() => {
|
|
1057
1093
|
const nativeElement = this.elementRef.nativeElement;
|
|
1058
1094
|
nativeElement.addEventListener('mouseenter', () => {
|
|
@@ -1062,13 +1098,32 @@ class FwTooltipDirective {
|
|
|
1062
1098
|
this.hideTooltip();
|
|
1063
1099
|
});
|
|
1064
1100
|
});
|
|
1101
|
+
// updates the tooltip panel's caret position if a fallback position is used
|
|
1102
|
+
this.handlePositionChange = effect(() => {
|
|
1103
|
+
this.positionChangeSub?.unsubscribe();
|
|
1104
|
+
this.positionChangeSub = this.positionStrategy().positionChanges.subscribe(positionChange => {
|
|
1105
|
+
const newPosition = positionChange.connectionPair;
|
|
1106
|
+
const positionNames = Object.keys(positionMap);
|
|
1107
|
+
const newPositionName = positionNames.find(name => {
|
|
1108
|
+
const pos = positionMap[name];
|
|
1109
|
+
return pos.originX === newPosition.originX &&
|
|
1110
|
+
pos.originY === newPosition.originY &&
|
|
1111
|
+
pos.overlayX === newPosition.overlayX &&
|
|
1112
|
+
pos.overlayY === newPosition.overlayY;
|
|
1113
|
+
});
|
|
1114
|
+
if (newPositionName) {
|
|
1115
|
+
this.tooltipRef().setInput('position', newPositionName);
|
|
1116
|
+
this.tooltipRef().changeDetectorRef.detectChanges();
|
|
1117
|
+
}
|
|
1118
|
+
});
|
|
1119
|
+
});
|
|
1065
1120
|
}
|
|
1066
1121
|
ngOnInit() {
|
|
1067
1122
|
this.tooltipPortal = new ComponentPortal(FwTooltipPanelComponent, this.viewContainerRef);
|
|
1068
1123
|
this.overlayRef.set(this.overlayService.create());
|
|
1069
1124
|
}
|
|
1070
1125
|
showTooltip() {
|
|
1071
|
-
if (!this.enabled()) {
|
|
1126
|
+
if (!this.enabled() || !this.title()) {
|
|
1072
1127
|
return;
|
|
1073
1128
|
}
|
|
1074
1129
|
const overlayRef = this.overlayRef();
|
|
@@ -1081,20 +1136,23 @@ class FwTooltipDirective {
|
|
|
1081
1136
|
this.tooltipRef.set(tooltipRef);
|
|
1082
1137
|
tooltipRef.setInput('title', this.title());
|
|
1083
1138
|
tooltipRef.setInput('position', this.position());
|
|
1139
|
+
tooltipRef.setInput('maxWidth', this.maxWidth());
|
|
1140
|
+
tooltipRef.setInput('displayCaret', this.displayCaret());
|
|
1084
1141
|
tooltipRef.changeDetectorRef.detectChanges();
|
|
1085
1142
|
}, this.delayMs());
|
|
1086
1143
|
}
|
|
1087
1144
|
hideTooltip() {
|
|
1088
|
-
|
|
1089
|
-
this.
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1145
|
+
window.clearTimeout(this.openDelayTimer);
|
|
1146
|
+
this.openDelayTimer = undefined;
|
|
1147
|
+
this.overlayRef().detach();
|
|
1148
|
+
this.tooltipRef.set(undefined);
|
|
1149
|
+
}
|
|
1150
|
+
ngOnDestroy() {
|
|
1151
|
+
this.positionChangeSub.unsubscribe();
|
|
1152
|
+
this.hideTooltip();
|
|
1095
1153
|
}
|
|
1096
1154
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwTooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1097
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.12", type: FwTooltipDirective, isStandalone: true, selector: "[fwTooltip]", inputs: {
|
|
1155
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.12", type: FwTooltipDirective, isStandalone: true, selector: "[fwTooltip]", inputs: { title: { classPropertyName: "title", publicName: "fwTooltip", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "fwTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "fwTooltipMaxWidthPx", isSignal: true, isRequired: false, transformFunction: null }, delayMs: { classPropertyName: "delayMs", publicName: "fwTooltipDelay", isSignal: true, isRequired: false, transformFunction: null }, displayCaret: { classPropertyName: "displayCaret", publicName: "fwTooltipCaret", isSignal: true, isRequired: false, transformFunction: null }, enabled: { classPropertyName: "enabled", publicName: "fwTooltipEnabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { title: "fwTooltipChange", position: "fwTooltipPositionChange", maxWidth: "fwTooltipMaxWidthPxChange", enabled: "fwTooltipEnabledChange" }, ngImport: i0 }); }
|
|
1098
1156
|
}
|
|
1099
1157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwTooltipDirective, decorators: [{
|
|
1100
1158
|
type: Directive,
|
|
@@ -1106,7 +1164,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1106
1164
|
|
|
1107
1165
|
/**
|
|
1108
1166
|
* component for giving extra context when a user hovers something
|
|
1109
|
-
* @
|
|
1167
|
+
* @deprecated use the [tooltip directive](https://cdn.flywheel.io/docs/vision/master/?path=/docs/components-tooltip--docs) instead, intend to remove in v3
|
|
1168
|
+
* @see [Vision Docs](https://cdn.flywheel.io/docs/vision/master/?path=/docs/components-wrapped-tooltip--docs)
|
|
1110
1169
|
*/
|
|
1111
1170
|
class FwTooltipComponent {
|
|
1112
1171
|
constructor() {
|
|
@@ -1131,7 +1190,7 @@ class FwTooltipComponent {
|
|
|
1131
1190
|
}
|
|
1132
1191
|
;
|
|
1133
1192
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1134
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: FwTooltipComponent, selector: "fw-tooltip", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: false, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: false, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: false, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: false, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: false, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.class": "this.classes", "attr.title": "this.attrTitle" } }, ngImport: i0, template: "<div\n [ngClass]=\"['tooltip-trigger',fullWidth?'full-width':'']\"\n [fwTooltip]=\"title\"\n [fwTooltipDelay]=\"delay()\"\n [fwTooltipPosition]=\"position\">\n <ng-content></ng-content>\n</div>\n", styles: [":host.full-width{flex:1;display:flex;width:stretch}:host.full-width button{flex:1}:host .tooltip-trigger{width:fit-content;display:inline-block}:host .tooltip-trigger.full-width{flex:1;display:flex;width:stretch}:host .tooltip-trigger.full-width button{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FwTooltipDirective, selector: "[fwTooltip]", inputs: ["
|
|
1193
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: FwTooltipComponent, selector: "fw-tooltip", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: false, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: false, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: false, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: false, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: false, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.class": "this.classes", "attr.title": "this.attrTitle" } }, ngImport: i0, template: "<div\n [ngClass]=\"['tooltip-trigger',fullWidth?'full-width':'']\"\n [fwTooltip]=\"title\"\n [fwTooltipDelay]=\"delay()\"\n [fwTooltipPosition]=\"position\">\n <ng-content></ng-content>\n</div>\n", styles: [":host.full-width{flex:1;display:flex;width:stretch}:host.full-width button{flex:1}:host .tooltip-trigger{width:fit-content;display:inline-block}:host .tooltip-trigger.full-width{flex:1;display:flex;width:stretch}:host .tooltip-trigger.full-width button{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FwTooltipDirective, selector: "[fwTooltip]", inputs: ["fwTooltip", "fwTooltipPosition", "fwTooltipMaxWidthPx", "fwTooltipDelay", "fwTooltipCaret", "fwTooltipEnabled"], outputs: ["fwTooltipChange", "fwTooltipPositionChange", "fwTooltipMaxWidthPxChange", "fwTooltipEnabledChange"] }] }); }
|
|
1135
1194
|
}
|
|
1136
1195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwTooltipComponent, decorators: [{
|
|
1137
1196
|
type: Component,
|
|
@@ -1207,6 +1266,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1207
1266
|
*/
|
|
1208
1267
|
class FwAvatarListComponent {
|
|
1209
1268
|
constructor() {
|
|
1269
|
+
this.subscriptions = [];
|
|
1210
1270
|
this.hostElement = inject(ElementRef);
|
|
1211
1271
|
this.avatars = contentChildren(FwAvatarComponent);
|
|
1212
1272
|
this.avatarElementRefs = contentChildren(FwAvatarComponent, { read: ElementRef });
|
|
@@ -1220,63 +1280,62 @@ class FwAvatarListComponent {
|
|
|
1220
1280
|
});
|
|
1221
1281
|
this.childrenChanged = effect(() => {
|
|
1222
1282
|
this.avatarElementRefs();
|
|
1223
|
-
this.
|
|
1283
|
+
this.calcOverflow();
|
|
1224
1284
|
}, { allowSignalWrites: true });
|
|
1225
1285
|
this.hiddenAvatars = signal([]);
|
|
1226
1286
|
}
|
|
1227
1287
|
ngOnInit() {
|
|
1228
1288
|
// wire up resize observer to rxjs and debouce
|
|
1229
|
-
const resize$ = new BehaviorSubject(
|
|
1230
|
-
const recalcOnResize$ = resize$.pipe(
|
|
1289
|
+
const resize$ = new BehaviorSubject([]);
|
|
1290
|
+
const recalcOnResize$ = resize$.pipe(debounce(() => timer(this.resizeDebounceMs())), // debounce otherwise it can run EVERY frame
|
|
1291
|
+
distinctUntilChanged());
|
|
1231
1292
|
const resizeObserver = new ResizeObserver((resizeEntries) => {
|
|
1232
1293
|
resize$.next(resizeEntries);
|
|
1233
1294
|
});
|
|
1234
1295
|
resizeObserver.observe(this.hostElement.nativeElement, {});
|
|
1235
|
-
recalcOnResize$.subscribe(() => this.
|
|
1296
|
+
const sub = recalcOnResize$.subscribe(() => this.calcOverflow());
|
|
1297
|
+
this.subscriptions.push(sub);
|
|
1236
1298
|
}
|
|
1237
|
-
|
|
1299
|
+
calcOverflow() {
|
|
1238
1300
|
const hostRect = this.hostElement.nativeElement.getBoundingClientRect();
|
|
1239
1301
|
const avatarElements = this.avatarElementRefs().map(ref => ref.nativeElement);
|
|
1240
1302
|
const moreTextElement = this.moreText().nativeElement;
|
|
1241
|
-
avatarElements.forEach(
|
|
1303
|
+
avatarElements.forEach(avatar => avatar.classList.remove('hidden'));
|
|
1242
1304
|
moreTextElement.classList.remove('hidden');
|
|
1243
|
-
const
|
|
1244
|
-
const
|
|
1245
|
-
return !(
|
|
1305
|
+
const visibleAvatars = avatarElements.filter(avatar => {
|
|
1306
|
+
const avatarRect = avatar.getBoundingClientRect();
|
|
1307
|
+
return !(avatarRect.right > hostRect.right || avatarRect.bottom > hostRect.bottom);
|
|
1246
1308
|
});
|
|
1247
|
-
const overflowingAvatars = avatarElements.toSpliced(0,
|
|
1309
|
+
const overflowingAvatars = avatarElements.toSpliced(0, visibleAvatars.length);
|
|
1248
1310
|
if (overflowingAvatars.length > 0) {
|
|
1249
|
-
const lastVisibleAvatar =
|
|
1311
|
+
const lastVisibleAvatar = visibleAvatars[visibleAvatars.length - 1];
|
|
1250
1312
|
const enoughRoomForMoreText = (hostRect.right - lastVisibleAvatar.getBoundingClientRect().right) > (moreTextElement.offsetWidth);
|
|
1251
1313
|
if (!enoughRoomForMoreText) {
|
|
1252
1314
|
overflowingAvatars.push(lastVisibleAvatar);
|
|
1253
1315
|
}
|
|
1254
|
-
// avatars are less wide than the text so we might need to hide 2 to make room for the text
|
|
1255
|
-
// there's probably a fancy recursive solution here but ehhh
|
|
1256
|
-
const secondLastVisibleAvatar = visibleChips[visibleChips.length - 2];
|
|
1257
|
-
const needEvenMoreSpace = (hostRect.right - secondLastVisibleAvatar.getBoundingClientRect().right) > (moreTextElement.offsetWidth);
|
|
1258
|
-
if (!needEvenMoreSpace) {
|
|
1259
|
-
overflowingAvatars.push(secondLastVisibleAvatar);
|
|
1260
|
-
}
|
|
1261
1316
|
this.hiddenAvatars.set(overflowingAvatars);
|
|
1262
|
-
overflowingAvatars.forEach(
|
|
1263
|
-
|
|
1317
|
+
overflowingAvatars.forEach(overflowAvatar => {
|
|
1318
|
+
overflowAvatar.classList.add('hidden');
|
|
1264
1319
|
});
|
|
1265
1320
|
}
|
|
1266
1321
|
else {
|
|
1267
1322
|
this.moreText().nativeElement.classList.add('hidden');
|
|
1268
1323
|
}
|
|
1324
|
+
// eslint-disable-next-line @rx-angular/no-explicit-change-detection-apis
|
|
1269
1325
|
this.changeDetector.detectChanges();
|
|
1270
1326
|
}
|
|
1327
|
+
ngOnDestroy() {
|
|
1328
|
+
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
1329
|
+
}
|
|
1271
1330
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwAvatarListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1272
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "17.3.12", type: FwAvatarListComponent, isStandalone: true, selector: "fw-avatar-list", inputs: { resizeDebounceMs: { classPropertyName: "resizeDebounceMs", publicName: "resizeDebounceMs", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "avatars", predicate: FwAvatarComponent, isSignal: true }, { propertyName: "avatarElementRefs", predicate: FwAvatarComponent, read: ElementRef, isSignal: true }], viewQueries: [{ propertyName: "moreText", first: true, predicate: ["moreText"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content select=\"fw-avatar\"></ng-content>\n<fw-tooltip> <!--TODO: figure out how to get a tooltip-->\n <p #moreText> +{{hiddenAvatars().length}} </p>\n</fw-tooltip>\n", styles: [":host{display:flex;align-items:center;flex-basis:max-content;flex-flow:row nowrap;justify-content:flex-start;max-height:36px;overflow:hidden}:host ::ng-deep fw-avatar:not(:first-child){margin-left:-4px}:host p{line-height:100%;cursor:default;margin:0;padding-left:8px;text-wrap:nowrap;color:var(--typography-muted)}:host::ng-deep .hidden{display:none}\n"], dependencies: [{ kind: "ngmodule", type: FwAvatarModule }, { kind: "ngmodule", type: FwTooltipModule }, { kind: "component", type: FwTooltipComponent, selector: "fw-tooltip", inputs: ["title", "color", "position", "maxWidth", "fullWidth", "isOpen", "trigger", "delay"] }] }); }
|
|
1331
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "17.3.12", type: FwAvatarListComponent, isStandalone: true, selector: "fw-avatar-list", inputs: { resizeDebounceMs: { classPropertyName: "resizeDebounceMs", publicName: "resizeDebounceMs", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "avatars", predicate: FwAvatarComponent, isSignal: true }, { propertyName: "avatarElementRefs", predicate: FwAvatarComponent, read: ElementRef, isSignal: true }], viewQueries: [{ propertyName: "moreText", first: true, predicate: ["moreText"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content select=\"fw-avatar\"></ng-content>\n<fw-tooltip> <!--TODO: figure out how to get a tooltip-->\n <p #moreText> +{{hiddenAvatars().length}} </p>\n</fw-tooltip>\n", styles: [":host{display:flex;align-items:center;flex-basis:max-content;flex-flow:row nowrap;justify-content:flex-start;min-height:36px;max-height:36px;overflow:hidden}:host ::ng-deep fw-avatar:not(:first-child){margin-left:-4px}:host p{line-height:100%;cursor:default;margin:0;text-align:center;padding-left:8px;text-wrap:nowrap;color:var(--typography-muted)}:host::ng-deep .hidden{display:none}\n"], dependencies: [{ kind: "ngmodule", type: FwAvatarModule }, { kind: "ngmodule", type: FwTooltipModule }, { kind: "component", type: FwTooltipComponent, selector: "fw-tooltip", inputs: ["title", "color", "position", "maxWidth", "fullWidth", "isOpen", "trigger", "delay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1273
1332
|
}
|
|
1274
1333
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwAvatarListComponent, decorators: [{
|
|
1275
1334
|
type: Component,
|
|
1276
1335
|
args: [{ selector: 'fw-avatar-list', standalone: true, imports: [
|
|
1277
1336
|
FwAvatarModule,
|
|
1278
1337
|
FwTooltipModule,
|
|
1279
|
-
], template: "<ng-content select=\"fw-avatar\"></ng-content>\n<fw-tooltip> <!--TODO: figure out how to get a tooltip-->\n <p #moreText> +{{hiddenAvatars().length}} </p>\n</fw-tooltip>\n", styles: [":host{display:flex;align-items:center;flex-basis:max-content;flex-flow:row nowrap;justify-content:flex-start;max-height:36px;overflow:hidden}:host ::ng-deep fw-avatar:not(:first-child){margin-left:-4px}:host p{line-height:100%;cursor:default;margin:0;padding-left:8px;text-wrap:nowrap;color:var(--typography-muted)}:host::ng-deep .hidden{display:none}\n"] }]
|
|
1338
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"fw-avatar\"></ng-content>\n<fw-tooltip> <!--TODO: figure out how to get a tooltip-->\n <p #moreText> +{{hiddenAvatars().length}} </p>\n</fw-tooltip>\n", styles: [":host{display:flex;align-items:center;flex-basis:max-content;flex-flow:row nowrap;justify-content:flex-start;min-height:36px;max-height:36px;overflow:hidden}:host ::ng-deep fw-avatar:not(:first-child){margin-left:-4px}:host p{line-height:100%;cursor:default;margin:0;text-align:center;padding-left:8px;text-wrap:nowrap;color:var(--typography-muted)}:host::ng-deep .hidden{display:none}\n"] }]
|
|
1280
1339
|
}] });
|
|
1281
1340
|
|
|
1282
1341
|
class FwBadgeComponent {
|
|
@@ -3157,6 +3216,7 @@ class FwDialogConfirmComponent {
|
|
|
3157
3216
|
this.confirmButtonIcon = 'done-check';
|
|
3158
3217
|
this.cancelButtonText = 'Cancel';
|
|
3159
3218
|
this.contentTitle = 'Are you sure?';
|
|
3219
|
+
this.showConfirmButtonIcon = true;
|
|
3160
3220
|
this.showClose = false;
|
|
3161
3221
|
this.width = 'extra-small';
|
|
3162
3222
|
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
@@ -3205,11 +3265,11 @@ class FwDialogConfirmComponent {
|
|
|
3205
3265
|
}, 300);
|
|
3206
3266
|
}
|
|
3207
3267
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwDialogConfirmComponent, deps: [{ token: i1$3.DialogRef, optional: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3208
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwDialogConfirmComponent, selector: "fw-dialog-confirm", inputs: { title: "title", icon: "icon", iconColor: "iconColor", confirmColor: "confirmColor", confirmButtonText: "confirmButtonText", confirmButtonIcon: "confirmButtonIcon", cancelButtonText: "cancelButtonText", contentIcon: "contentIcon", contentTitle: "contentTitle", contentText: "contentText", showClose: "showClose", width: "width", externalClasses: ["class", "externalClasses"] }, outputs: { close: "close", confirm: "confirm" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "<fw-dialog\n [width]=\"width\"\n [title]=\"title\"\n [icon]=\"icon\"\n [iconColor]=\"iconColor\"\n [showClose]=\"showClose\"\n [ngClass]=\"dialogClasses\">\n <fw-dialog-content>\n <div class=\"dialog-content-confirm\">\n <fw-icon class=\"content-icon\" [ngClass]=\"confirmColor\" *ngIf=\"contentIcon\">\n {{ contentIcon }}\n </fw-icon>\n <p class=\"vision-p2 content-title\" *ngIf=\"contentTitle\">\n {{ contentTitle }}\n </p>\n <p class=\"vision-p2 content-text\" *ngIf=\"contentText\">\n {{ contentText }}\n </p>\n </div>\n </fw-dialog-content>\n <fw-dialog-actions>\n <fw-button\n variant=\"outline\"\n *ngIf=\"cancelButtonText\"\n color=\"slate\"\n (click)=\"handleCloseButton()\">\n {{ cancelButtonText }}\n </fw-button>\n <fw-button\n variant=\"solid\"\n *ngIf=\"confirmButtonText\"\n [color]=\"confirmColor\"\n [leftIcon]=\"confirmButtonIcon\"\n (click)=\"confirm.emit()\">\n {{ confirmButtonText }}\n </fw-button>\n </fw-dialog-actions>\n</fw-dialog>\n", styles: ["@keyframes slide-in-from-bottom{0%{opacity:0;transform:translateY(100vh)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out-to-bottom{0%{opacity:1;transform:translateY(0)}99%{opacity:0;transform:translateY(100vh)}to{opacity:0;transform:translateY(100vh)}}:host{box-sizing:border-box;animation:slide-in-from-bottom .3s ease-out}:host.dialog-closing{animation:slide-out-to-bottom .3s ease-in forwards}:host .fw-dialog-confirm{position:relative}.dialog-content-confirm{display:flex;flex-direction:column;padding:50px;align-items:center;justify-content:center}.dialog-content-confirm .content-title{margin-bottom:5px;font-weight:500}.dialog-content-confirm .content-text{margin:0;color:var(--typography-muted)}.dialog-content-confirm .content-icon{font-size:50px}.dialog-content-confirm .content-icon.primary{color:var(--primary-base)}.dialog-content-confirm .content-icon.secondary{color:var(--secondary-base)}.dialog-content-confirm .content-icon.slate{color:var(--slate-base)}.dialog-content-confirm .content-icon.success{color:var(--green-base)}.dialog-content-confirm .content-icon.warning{color:var(--orange-base)}.dialog-content-confirm .content-icon.danger{color:var(--red-base)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwButtonComponent, selector: "fw-button", inputs: ["color", "size", "variant", "type", "disabled", "fullWidth", "leftIcon", "rightIcon"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "component", type: FwDialogActionsComponent, selector: "fw-dialog-actions" }, { kind: "component", type: FwDialogComponent, selector: "fw-dialog", inputs: ["width", "title", "icon", "iconColor", "showClose", "class"], outputs: ["close"] }, { kind: "component", type: FwDialogContentComponent, selector: "fw-dialog-content", inputs: ["padded"] }] }); }
|
|
3268
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwDialogConfirmComponent, selector: "fw-dialog-confirm", inputs: { title: "title", icon: "icon", iconColor: "iconColor", confirmColor: "confirmColor", confirmButtonText: "confirmButtonText", confirmButtonIcon: "confirmButtonIcon", cancelButtonText: "cancelButtonText", contentIcon: "contentIcon", contentTitle: "contentTitle", contentText: "contentText", showConfirmButtonIcon: "showConfirmButtonIcon", showClose: "showClose", width: "width", externalClasses: ["class", "externalClasses"] }, outputs: { close: "close", confirm: "confirm" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "<fw-dialog\n [width]=\"width\"\n [title]=\"title\"\n [icon]=\"icon\"\n [iconColor]=\"iconColor\"\n [showClose]=\"showClose\"\n [ngClass]=\"dialogClasses\">\n <fw-dialog-content>\n <div class=\"dialog-content-confirm\">\n <fw-icon class=\"content-icon\" [ngClass]=\"confirmColor\" *ngIf=\"contentIcon\">\n {{ contentIcon }}\n </fw-icon>\n <p class=\"vision-p2 content-title\" *ngIf=\"contentTitle\">\n {{ contentTitle }}\n </p>\n <p class=\"vision-p2 content-text\" *ngIf=\"contentText\">\n {{ contentText }}\n </p>\n </div>\n </fw-dialog-content>\n <fw-dialog-actions>\n <fw-button\n variant=\"outline\"\n *ngIf=\"cancelButtonText\"\n color=\"slate\"\n (click)=\"handleCloseButton()\">\n {{ cancelButtonText }}\n </fw-button>\n <fw-button\n variant=\"solid\"\n *ngIf=\"confirmButtonText\"\n [color]=\"confirmColor\"\n [leftIcon]=\"showConfirmButtonIcon ? confirmButtonIcon : null\"\n (click)=\"confirm.emit()\">\n {{ confirmButtonText }}\n </fw-button>\n </fw-dialog-actions>\n</fw-dialog>\n", styles: ["@keyframes slide-in-from-bottom{0%{opacity:0;transform:translateY(100vh)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out-to-bottom{0%{opacity:1;transform:translateY(0)}99%{opacity:0;transform:translateY(100vh)}to{opacity:0;transform:translateY(100vh)}}:host{box-sizing:border-box;animation:slide-in-from-bottom .3s ease-out}:host.dialog-closing{animation:slide-out-to-bottom .3s ease-in forwards}:host .fw-dialog-confirm{position:relative}.dialog-content-confirm{display:flex;flex-direction:column;padding:50px;align-items:center;justify-content:center}.dialog-content-confirm .content-title{margin-bottom:5px;font-weight:500}.dialog-content-confirm .content-text{margin:0;color:var(--typography-muted)}.dialog-content-confirm .content-icon{font-size:50px}.dialog-content-confirm .content-icon.primary{color:var(--primary-base)}.dialog-content-confirm .content-icon.secondary{color:var(--secondary-base)}.dialog-content-confirm .content-icon.slate{color:var(--slate-base)}.dialog-content-confirm .content-icon.success{color:var(--green-base)}.dialog-content-confirm .content-icon.warning{color:var(--orange-base)}.dialog-content-confirm .content-icon.danger{color:var(--red-base)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwButtonComponent, selector: "fw-button", inputs: ["color", "size", "variant", "type", "disabled", "fullWidth", "leftIcon", "rightIcon"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "component", type: FwDialogActionsComponent, selector: "fw-dialog-actions" }, { kind: "component", type: FwDialogComponent, selector: "fw-dialog", inputs: ["width", "title", "icon", "iconColor", "showClose", "class"], outputs: ["close"] }, { kind: "component", type: FwDialogContentComponent, selector: "fw-dialog-content", inputs: ["padded"] }] }); }
|
|
3209
3269
|
}
|
|
3210
3270
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwDialogConfirmComponent, decorators: [{
|
|
3211
3271
|
type: Component,
|
|
3212
|
-
args: [{ selector: 'fw-dialog-confirm', template: "<fw-dialog\n [width]=\"width\"\n [title]=\"title\"\n [icon]=\"icon\"\n [iconColor]=\"iconColor\"\n [showClose]=\"showClose\"\n [ngClass]=\"dialogClasses\">\n <fw-dialog-content>\n <div class=\"dialog-content-confirm\">\n <fw-icon class=\"content-icon\" [ngClass]=\"confirmColor\" *ngIf=\"contentIcon\">\n {{ contentIcon }}\n </fw-icon>\n <p class=\"vision-p2 content-title\" *ngIf=\"contentTitle\">\n {{ contentTitle }}\n </p>\n <p class=\"vision-p2 content-text\" *ngIf=\"contentText\">\n {{ contentText }}\n </p>\n </div>\n </fw-dialog-content>\n <fw-dialog-actions>\n <fw-button\n variant=\"outline\"\n *ngIf=\"cancelButtonText\"\n color=\"slate\"\n (click)=\"handleCloseButton()\">\n {{ cancelButtonText }}\n </fw-button>\n <fw-button\n variant=\"solid\"\n *ngIf=\"confirmButtonText\"\n [color]=\"confirmColor\"\n [leftIcon]=\"confirmButtonIcon\"\n (click)=\"confirm.emit()\">\n {{ confirmButtonText }}\n </fw-button>\n </fw-dialog-actions>\n</fw-dialog>\n", styles: ["@keyframes slide-in-from-bottom{0%{opacity:0;transform:translateY(100vh)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out-to-bottom{0%{opacity:1;transform:translateY(0)}99%{opacity:0;transform:translateY(100vh)}to{opacity:0;transform:translateY(100vh)}}:host{box-sizing:border-box;animation:slide-in-from-bottom .3s ease-out}:host.dialog-closing{animation:slide-out-to-bottom .3s ease-in forwards}:host .fw-dialog-confirm{position:relative}.dialog-content-confirm{display:flex;flex-direction:column;padding:50px;align-items:center;justify-content:center}.dialog-content-confirm .content-title{margin-bottom:5px;font-weight:500}.dialog-content-confirm .content-text{margin:0;color:var(--typography-muted)}.dialog-content-confirm .content-icon{font-size:50px}.dialog-content-confirm .content-icon.primary{color:var(--primary-base)}.dialog-content-confirm .content-icon.secondary{color:var(--secondary-base)}.dialog-content-confirm .content-icon.slate{color:var(--slate-base)}.dialog-content-confirm .content-icon.success{color:var(--green-base)}.dialog-content-confirm .content-icon.warning{color:var(--orange-base)}.dialog-content-confirm .content-icon.danger{color:var(--red-base)}\n"] }]
|
|
3272
|
+
args: [{ selector: 'fw-dialog-confirm', template: "<fw-dialog\n [width]=\"width\"\n [title]=\"title\"\n [icon]=\"icon\"\n [iconColor]=\"iconColor\"\n [showClose]=\"showClose\"\n [ngClass]=\"dialogClasses\">\n <fw-dialog-content>\n <div class=\"dialog-content-confirm\">\n <fw-icon class=\"content-icon\" [ngClass]=\"confirmColor\" *ngIf=\"contentIcon\">\n {{ contentIcon }}\n </fw-icon>\n <p class=\"vision-p2 content-title\" *ngIf=\"contentTitle\">\n {{ contentTitle }}\n </p>\n <p class=\"vision-p2 content-text\" *ngIf=\"contentText\">\n {{ contentText }}\n </p>\n </div>\n </fw-dialog-content>\n <fw-dialog-actions>\n <fw-button\n variant=\"outline\"\n *ngIf=\"cancelButtonText\"\n color=\"slate\"\n (click)=\"handleCloseButton()\">\n {{ cancelButtonText }}\n </fw-button>\n <fw-button\n variant=\"solid\"\n *ngIf=\"confirmButtonText\"\n [color]=\"confirmColor\"\n [leftIcon]=\"showConfirmButtonIcon ? confirmButtonIcon : null\"\n (click)=\"confirm.emit()\">\n {{ confirmButtonText }}\n </fw-button>\n </fw-dialog-actions>\n</fw-dialog>\n", styles: ["@keyframes slide-in-from-bottom{0%{opacity:0;transform:translateY(100vh)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out-to-bottom{0%{opacity:1;transform:translateY(0)}99%{opacity:0;transform:translateY(100vh)}to{opacity:0;transform:translateY(100vh)}}:host{box-sizing:border-box;animation:slide-in-from-bottom .3s ease-out}:host.dialog-closing{animation:slide-out-to-bottom .3s ease-in forwards}:host .fw-dialog-confirm{position:relative}.dialog-content-confirm{display:flex;flex-direction:column;padding:50px;align-items:center;justify-content:center}.dialog-content-confirm .content-title{margin-bottom:5px;font-weight:500}.dialog-content-confirm .content-text{margin:0;color:var(--typography-muted)}.dialog-content-confirm .content-icon{font-size:50px}.dialog-content-confirm .content-icon.primary{color:var(--primary-base)}.dialog-content-confirm .content-icon.secondary{color:var(--secondary-base)}.dialog-content-confirm .content-icon.slate{color:var(--slate-base)}.dialog-content-confirm .content-icon.success{color:var(--green-base)}.dialog-content-confirm .content-icon.warning{color:var(--orange-base)}.dialog-content-confirm .content-icon.danger{color:var(--red-base)}\n"] }]
|
|
3213
3273
|
}], ctorParameters: () => [{ type: i1$3.DialogRef, decorators: [{
|
|
3214
3274
|
type: Optional
|
|
3215
3275
|
}] }, { type: i0.ElementRef }], propDecorators: { title: [{
|
|
@@ -3232,6 +3292,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
3232
3292
|
type: Input
|
|
3233
3293
|
}], contentText: [{
|
|
3234
3294
|
type: Input
|
|
3295
|
+
}], showConfirmButtonIcon: [{
|
|
3296
|
+
type: Input
|
|
3235
3297
|
}], showClose: [{
|
|
3236
3298
|
type: Input
|
|
3237
3299
|
}], width: [{
|
|
@@ -3544,16 +3606,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
3544
3606
|
}]
|
|
3545
3607
|
}] });
|
|
3546
3608
|
|
|
3609
|
+
class FwTagComponent {
|
|
3610
|
+
constructor() {
|
|
3611
|
+
this.size = 'small';
|
|
3612
|
+
this.color = 'slate';
|
|
3613
|
+
}
|
|
3614
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwTagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3615
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwTagComponent, selector: "fw-tag", inputs: { size: "size", color: "color", icon: "icon", title: "title" }, ngImport: i0, template: "<div [ngClass]=\"['tag', 'tag-'+size, 'tag-'+color]\">\n <fw-icon *ngIf=\"icon\" class=\"tag-icon\">{{ icon }}</fw-icon>\n <div class=\"tag-text\" *ngIf=\"title\">\n <span>{{ title }}</span>\n </div>\n</div>\n", styles: [".tag{box-sizing:border-box;border-radius:4px;padding:0 6px 0 4px;display:inline-flex;gap:4px;align-items:center}.tag .tag-text{font-family:Inter,sans-serif;font-size:10px;font-style:normal;font-weight:500;line-height:120%;white-space:wrap}.tag.tag-small{height:16px}.tag.tag-small .tag-icon{align-items:flex-start;font-size:12px;min-width:12px;width:12px}.tag.tag-large{height:24px}.tag.tag-large .tag-icon{align-items:flex-start;font-size:16px;min-width:16px;width:16px}.tag.tag-slate{color:var(--slate-base);background-color:var(--slate-hover)}.tag.tag-slate:hover{background-color:var(--slate-focus)}.tag.tag-primary{color:var(--primary-base);background-color:var(--primary-hover)}.tag.tag-primary:hover{background-color:var(--primary-focus)}.tag.tag-secondary{color:var(--secondary-base);background-color:var(--secondary-hover)}.tag.tag-secondary:hover{background-color:var(--secondary-focus)}.tag.tag-orange{color:var(--orange-base);background-color:var(--orange-hover)}.tag.tag-orange:hover{background-color:var(--orange-focus)}.tag.tag-green{color:var(--green-base);background-color:var(--green-hover)}.tag.tag-green:hover{background-color:var(--green-focus)}.tag.tag-red{color:var(--red-base);background-color:var(--red-hover)}.tag.tag-red:hover{background-color:var(--red-focus)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
|
|
3616
|
+
}
|
|
3617
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwTagComponent, decorators: [{
|
|
3618
|
+
type: Component,
|
|
3619
|
+
args: [{ selector: 'fw-tag', template: "<div [ngClass]=\"['tag', 'tag-'+size, 'tag-'+color]\">\n <fw-icon *ngIf=\"icon\" class=\"tag-icon\">{{ icon }}</fw-icon>\n <div class=\"tag-text\" *ngIf=\"title\">\n <span>{{ title }}</span>\n </div>\n</div>\n", styles: [".tag{box-sizing:border-box;border-radius:4px;padding:0 6px 0 4px;display:inline-flex;gap:4px;align-items:center}.tag .tag-text{font-family:Inter,sans-serif;font-size:10px;font-style:normal;font-weight:500;line-height:120%;white-space:wrap}.tag.tag-small{height:16px}.tag.tag-small .tag-icon{align-items:flex-start;font-size:12px;min-width:12px;width:12px}.tag.tag-large{height:24px}.tag.tag-large .tag-icon{align-items:flex-start;font-size:16px;min-width:16px;width:16px}.tag.tag-slate{color:var(--slate-base);background-color:var(--slate-hover)}.tag.tag-slate:hover{background-color:var(--slate-focus)}.tag.tag-primary{color:var(--primary-base);background-color:var(--primary-hover)}.tag.tag-primary:hover{background-color:var(--primary-focus)}.tag.tag-secondary{color:var(--secondary-base);background-color:var(--secondary-hover)}.tag.tag-secondary:hover{background-color:var(--secondary-focus)}.tag.tag-orange{color:var(--orange-base);background-color:var(--orange-hover)}.tag.tag-orange:hover{background-color:var(--orange-focus)}.tag.tag-green{color:var(--green-base);background-color:var(--green-hover)}.tag.tag-green:hover{background-color:var(--green-focus)}.tag.tag-red{color:var(--red-base);background-color:var(--red-hover)}.tag.tag-red:hover{background-color:var(--red-focus)}\n"] }]
|
|
3620
|
+
}], propDecorators: { size: [{
|
|
3621
|
+
type: Input
|
|
3622
|
+
}], color: [{
|
|
3623
|
+
type: Input
|
|
3624
|
+
}], icon: [{
|
|
3625
|
+
type: Input
|
|
3626
|
+
}], title: [{
|
|
3627
|
+
type: Input
|
|
3628
|
+
}] } });
|
|
3629
|
+
|
|
3547
3630
|
class FwFormHeadingComponent {
|
|
3548
3631
|
constructor() {
|
|
3549
3632
|
this.class = 'fw-form-heading';
|
|
3633
|
+
this.statusColor = 'slate';
|
|
3550
3634
|
}
|
|
3551
3635
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwFormHeadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3552
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwFormHeadingComponent, selector: "fw-form-heading", inputs: { title: "title", description: "description", status: "status" }, host: { properties: { "attr.class": "this.class" } }, ngImport: i0, template: "<div class=\"heading-area\">\n <div>\n <h4 class=\"vision-h4
|
|
3636
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwFormHeadingComponent, selector: "fw-form-heading", inputs: { title: "title", description: "description", required: "required", status: "status", statusColor: "statusColor" }, host: { properties: { "attr.class": "this.class" } }, ngImport: i0, template: "<div class=\"heading-area\">\n <div>\n <div class=\"section-heading\">\n <h4 class=\"vision-h4\">\n <span>{{ title }}</span>\n <span *ngIf=\"required\" class=\"required\">*</span>\n </h4>\n <fw-tag *ngIf=\"status\" [color]=\"statusColor\" [title]=\"status\"></fw-tag>\n <ng-content select=\"fw-tooltip\"></ng-content>\n <ng-content select=\"fw-icon\"></ng-content>\n <ng-content select=\"fw-chip\"></ng-content>\n </div>\n <p class=\"vision-p3\" *ngIf=\"description\">{{ description }}</p>\n <ng-content select=\"p\"></ng-content>\n </div>\n</div>\n<div class=\"right-content\">\n <ng-content></ng-content>\n</div>\n", styles: [".fw-form-heading{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px}.fw-form-heading .heading-area{display:flex;align-items:center;padding-left:4px;margin-bottom:8px}.fw-form-heading .heading-area .section-heading{display:flex;align-items:center;gap:5px}.fw-form-heading .heading-area h4{color:var(--typography-base);margin:0}.fw-form-heading .heading-area h4 .required{margin-left:4px;color:var(--red-base)}.fw-form-heading .heading-area p{color:var(--typography-muted);margin:0;line-height:140%;display:flex;align-items:center;gap:3px}.fw-form-heading .heading-area p a{color:var(--typography-muted)}.fw-form-heading .heading-area fw-icon.heading-icon{box-sizing:border-box;color:var(--primary-base);width:44px;height:44px;font-size:32px;text-align:center;justify-content:center;padding:6px}.fw-form-heading .right-content{display:flex;gap:8px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwTagComponent, selector: "fw-tag", inputs: ["size", "color", "icon", "title"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
3553
3637
|
}
|
|
3554
3638
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwFormHeadingComponent, decorators: [{
|
|
3555
3639
|
type: Component,
|
|
3556
|
-
args: [{ selector: 'fw-form-heading', encapsulation: ViewEncapsulation.None, template: "<div class=\"heading-area\">\n <div>\n <h4 class=\"vision-h4
|
|
3640
|
+
args: [{ selector: 'fw-form-heading', encapsulation: ViewEncapsulation.None, template: "<div class=\"heading-area\">\n <div>\n <div class=\"section-heading\">\n <h4 class=\"vision-h4\">\n <span>{{ title }}</span>\n <span *ngIf=\"required\" class=\"required\">*</span>\n </h4>\n <fw-tag *ngIf=\"status\" [color]=\"statusColor\" [title]=\"status\"></fw-tag>\n <ng-content select=\"fw-tooltip\"></ng-content>\n <ng-content select=\"fw-icon\"></ng-content>\n <ng-content select=\"fw-chip\"></ng-content>\n </div>\n <p class=\"vision-p3\" *ngIf=\"description\">{{ description }}</p>\n <ng-content select=\"p\"></ng-content>\n </div>\n</div>\n<div class=\"right-content\">\n <ng-content></ng-content>\n</div>\n", styles: [".fw-form-heading{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px}.fw-form-heading .heading-area{display:flex;align-items:center;padding-left:4px;margin-bottom:8px}.fw-form-heading .heading-area .section-heading{display:flex;align-items:center;gap:5px}.fw-form-heading .heading-area h4{color:var(--typography-base);margin:0}.fw-form-heading .heading-area h4 .required{margin-left:4px;color:var(--red-base)}.fw-form-heading .heading-area p{color:var(--typography-muted);margin:0;line-height:140%;display:flex;align-items:center;gap:3px}.fw-form-heading .heading-area p a{color:var(--typography-muted)}.fw-form-heading .heading-area fw-icon.heading-icon{box-sizing:border-box;color:var(--primary-base);width:44px;height:44px;font-size:32px;text-align:center;justify-content:center;padding:6px}.fw-form-heading .right-content{display:flex;gap:8px}\n"] }]
|
|
3557
3641
|
}], ctorParameters: () => [], propDecorators: { class: [{
|
|
3558
3642
|
type: HostBinding,
|
|
3559
3643
|
args: ['attr.class']
|
|
@@ -3561,18 +3645,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
3561
3645
|
type: Input
|
|
3562
3646
|
}], description: [{
|
|
3563
3647
|
type: Input
|
|
3648
|
+
}], required: [{
|
|
3649
|
+
type: Input
|
|
3564
3650
|
}], status: [{
|
|
3565
3651
|
type: Input
|
|
3652
|
+
}], statusColor: [{
|
|
3653
|
+
type: Input
|
|
3566
3654
|
}] } });
|
|
3567
3655
|
|
|
3656
|
+
class FwTagModule {
|
|
3657
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwTagModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3658
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FwTagModule, declarations: [FwTagComponent], imports: [CommonModule,
|
|
3659
|
+
FwIconModule], exports: [FwTagComponent] }); }
|
|
3660
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwTagModule, imports: [CommonModule,
|
|
3661
|
+
FwIconModule] }); }
|
|
3662
|
+
}
|
|
3663
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwTagModule, decorators: [{
|
|
3664
|
+
type: NgModule,
|
|
3665
|
+
args: [{
|
|
3666
|
+
imports: [
|
|
3667
|
+
CommonModule,
|
|
3668
|
+
FwIconModule,
|
|
3669
|
+
],
|
|
3670
|
+
exports: [
|
|
3671
|
+
FwTagComponent,
|
|
3672
|
+
],
|
|
3673
|
+
declarations: [
|
|
3674
|
+
FwTagComponent,
|
|
3675
|
+
],
|
|
3676
|
+
}]
|
|
3677
|
+
}] });
|
|
3678
|
+
|
|
3568
3679
|
class FwFormHeadingModule {
|
|
3569
3680
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwFormHeadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3570
3681
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FwFormHeadingModule, declarations: [FwFormHeadingComponent], imports: [CommonModule,
|
|
3571
3682
|
FwButtonModule,
|
|
3572
|
-
FwIconModule
|
|
3683
|
+
FwIconModule,
|
|
3684
|
+
FwTagModule], exports: [FwFormHeadingComponent] }); }
|
|
3573
3685
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwFormHeadingModule, imports: [CommonModule,
|
|
3574
3686
|
FwButtonModule,
|
|
3575
|
-
FwIconModule
|
|
3687
|
+
FwIconModule,
|
|
3688
|
+
FwTagModule] }); }
|
|
3576
3689
|
}
|
|
3577
3690
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwFormHeadingModule, decorators: [{
|
|
3578
3691
|
type: NgModule,
|
|
@@ -3581,6 +3694,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
3581
3694
|
CommonModule,
|
|
3582
3695
|
FwButtonModule,
|
|
3583
3696
|
FwIconModule,
|
|
3697
|
+
FwTagModule,
|
|
3584
3698
|
],
|
|
3585
3699
|
exports: [
|
|
3586
3700
|
FwFormHeadingComponent,
|
|
@@ -3676,36 +3790,36 @@ const allIcons = [
|
|
|
3676
3790
|
'add-new-create',
|
|
3677
3791
|
'add-row-above',
|
|
3678
3792
|
'add-row-below',
|
|
3679
|
-
'add-server-databases-endpoint',
|
|
3680
3793
|
'add-server',
|
|
3794
|
+
'add-server-databases-endpoint',
|
|
3681
3795
|
'add-user',
|
|
3682
3796
|
'ai',
|
|
3683
3797
|
'apple',
|
|
3684
3798
|
'apply-copy-duplicate',
|
|
3685
3799
|
'archive-documents-box-big',
|
|
3686
3800
|
'arrange-filter-sort',
|
|
3801
|
+
'arrow',
|
|
3687
3802
|
'arrow-annotate',
|
|
3688
|
-
'arrow-back-collapse',
|
|
3689
3803
|
'arrow-back',
|
|
3804
|
+
'arrow-back-collapse',
|
|
3690
3805
|
'arrow-down',
|
|
3691
|
-
'arrow-forward-collapse',
|
|
3692
3806
|
'arrow-forward',
|
|
3807
|
+
'arrow-forward-collapse',
|
|
3693
3808
|
'arrow-redo',
|
|
3694
|
-
'arrow-rotate-restore',
|
|
3695
3809
|
'arrow-rotate',
|
|
3810
|
+
'arrow-rotate-restore',
|
|
3696
3811
|
'arrow-undo',
|
|
3812
|
+
'arrow-up',
|
|
3697
3813
|
'arrow-up-high-priority',
|
|
3698
3814
|
'arrow-up-low-priority',
|
|
3699
|
-
'arrow-up',
|
|
3700
|
-
'arrow',
|
|
3701
3815
|
'barcode-serial',
|
|
3702
3816
|
'barcode-stack-scan',
|
|
3703
3817
|
'bell-notification',
|
|
3704
3818
|
'bezier-curve',
|
|
3705
3819
|
'blocks-code-test-checkmark',
|
|
3706
3820
|
'book-lab-flask',
|
|
3707
|
-
'bookmark-plus-add',
|
|
3708
3821
|
'bookmark',
|
|
3822
|
+
'bookmark-plus-add',
|
|
3709
3823
|
'brain',
|
|
3710
3824
|
'brightness-photo-edit',
|
|
3711
3825
|
'browser-internet-web-windows',
|
|
@@ -3721,22 +3835,22 @@ const allIcons = [
|
|
|
3721
3835
|
'chart-trend-square',
|
|
3722
3836
|
'chat-messages-bubble',
|
|
3723
3837
|
'check-mark-certificate',
|
|
3724
|
-
'checklist-tasks-chechmark-square',
|
|
3725
3838
|
'checklist',
|
|
3839
|
+
'checklist-tasks-chechmark-square',
|
|
3726
3840
|
'chevron-back',
|
|
3727
3841
|
'chevron-down',
|
|
3728
3842
|
'chevron-forward',
|
|
3729
3843
|
'chevron-input-number',
|
|
3730
3844
|
'chevron-up',
|
|
3731
|
-
'circle-ellipses',
|
|
3732
3845
|
'circle',
|
|
3846
|
+
'circle-ellipses',
|
|
3733
3847
|
'clap-applause-hands',
|
|
3734
3848
|
'clip-attachment',
|
|
3735
3849
|
'clock-history',
|
|
3736
3850
|
'clock-hour-4',
|
|
3737
3851
|
'clock-loading',
|
|
3738
|
-
'close-circled',
|
|
3739
3852
|
'close',
|
|
3853
|
+
'close-circled',
|
|
3740
3854
|
'closed-freehand-vector-poly',
|
|
3741
3855
|
'cloud-network-add',
|
|
3742
3856
|
'cloud-storage-checkmark',
|
|
@@ -3771,21 +3885,22 @@ const allIcons = [
|
|
|
3771
3885
|
'document-file-zip',
|
|
3772
3886
|
'document-status-done-checkmark',
|
|
3773
3887
|
'document-visible',
|
|
3774
|
-
'documents-file-checkmark',
|
|
3775
3888
|
'documents-file',
|
|
3889
|
+
'documents-file-checkmark',
|
|
3890
|
+
'documents-file-move-arrow-right',
|
|
3776
3891
|
'documents-files',
|
|
3777
|
-
'done-check-tracked',
|
|
3778
3892
|
'done-check',
|
|
3779
|
-
'
|
|
3893
|
+
'done-check-tracked',
|
|
3780
3894
|
'download',
|
|
3895
|
+
'download-status',
|
|
3781
3896
|
'drag-drop-indicator',
|
|
3782
3897
|
'draw-rectangle',
|
|
3783
3898
|
'earth-globe-fail',
|
|
3899
|
+
'edit',
|
|
3784
3900
|
'edit-boxed',
|
|
3785
3901
|
'edit-erase',
|
|
3786
|
-
'edit',
|
|
3787
|
-
'email-mail-checkmark-group',
|
|
3788
3902
|
'email',
|
|
3903
|
+
'email-mail-checkmark-group',
|
|
3789
3904
|
'embed-circle',
|
|
3790
3905
|
'exchange',
|
|
3791
3906
|
'expand-pathfinder-dot-square-segmentation',
|
|
@@ -3794,13 +3909,13 @@ const allIcons = [
|
|
|
3794
3909
|
'file-blank-search',
|
|
3795
3910
|
'file-download',
|
|
3796
3911
|
'file-text',
|
|
3797
|
-
'files-library-content',
|
|
3798
|
-
'files-library',
|
|
3799
3912
|
'files',
|
|
3913
|
+
'files-library',
|
|
3914
|
+
'files-library-content',
|
|
3915
|
+
'filter',
|
|
3800
3916
|
'filter-sort-add',
|
|
3801
3917
|
'filter-sort-check-mark',
|
|
3802
3918
|
'filter-sort-delete',
|
|
3803
|
-
'filter',
|
|
3804
3919
|
'flag',
|
|
3805
3920
|
'flip-horizontal',
|
|
3806
3921
|
'flip-vertical',
|
|
@@ -3813,6 +3928,7 @@ const allIcons = [
|
|
|
3813
3928
|
'folder-copy-expand-arrow-down',
|
|
3814
3929
|
'folder-copy-expand-arrow-up',
|
|
3815
3930
|
'folder-group',
|
|
3931
|
+
'folder-move',
|
|
3816
3932
|
'folder-open',
|
|
3817
3933
|
'folder-share',
|
|
3818
3934
|
'form-metadata-element',
|
|
@@ -3821,15 +3937,15 @@ const allIcons = [
|
|
|
3821
3937
|
'full-screen-zoom',
|
|
3822
3938
|
'git-add-branch',
|
|
3823
3939
|
'git-branch',
|
|
3824
|
-
'git-merge-draft',
|
|
3825
3940
|
'git-merge',
|
|
3941
|
+
'git-merge-draft',
|
|
3826
3942
|
'git-pull-request-2',
|
|
3827
3943
|
'github-color-login',
|
|
3828
3944
|
'gitlab',
|
|
3829
3945
|
'graduate-hat',
|
|
3830
3946
|
'grid-dot-square',
|
|
3831
|
-
'grid-layout-9-square',
|
|
3832
3947
|
'grid-layout',
|
|
3948
|
+
'grid-layout-9-square',
|
|
3833
3949
|
'hammer-legal-square',
|
|
3834
3950
|
'hammer-screwdriver',
|
|
3835
3951
|
'hand-money-currency',
|
|
@@ -3841,8 +3957,8 @@ const allIcons = [
|
|
|
3841
3957
|
'image-photo-copy-left-down',
|
|
3842
3958
|
'image-picture-square',
|
|
3843
3959
|
'information-circle',
|
|
3844
|
-
'invoice-checkmark-paid',
|
|
3845
3960
|
'invoice',
|
|
3961
|
+
'invoice-checkmark-paid',
|
|
3846
3962
|
'italic',
|
|
3847
3963
|
'items-group-elements',
|
|
3848
3964
|
'key',
|
|
@@ -3851,22 +3967,21 @@ const allIcons = [
|
|
|
3851
3967
|
'label-tag',
|
|
3852
3968
|
'laptop-health-medical-cross',
|
|
3853
3969
|
'layers',
|
|
3854
|
-
'layout-grid',
|
|
3855
3970
|
'layout',
|
|
3971
|
+
'layout-grid',
|
|
3856
3972
|
'line',
|
|
3857
|
-
'link-unlink',
|
|
3858
3973
|
'link',
|
|
3974
|
+
'link-unlink',
|
|
3859
3975
|
'linkedin',
|
|
3860
3976
|
'linux',
|
|
3861
|
-
'list-paragraph-number',
|
|
3862
3977
|
'list-paragraph',
|
|
3978
|
+
'list-paragraph-number',
|
|
3863
3979
|
'list-test-lab-flask',
|
|
3864
3980
|
'livewire-tool',
|
|
3865
3981
|
'loading-status-checkmark',
|
|
3866
|
-
'lock-unlock',
|
|
3867
3982
|
'lock',
|
|
3983
|
+
'lock-unlock',
|
|
3868
3984
|
'logout',
|
|
3869
|
-
'lung',
|
|
3870
3985
|
'lungs',
|
|
3871
3986
|
'markdown',
|
|
3872
3987
|
'measure-angle',
|
|
@@ -3880,26 +3995,27 @@ const allIcons = [
|
|
|
3880
3995
|
'message-chat-question-support',
|
|
3881
3996
|
'message-checkmark-sent',
|
|
3882
3997
|
'message-question-checkmark',
|
|
3883
|
-
'microphone-mic-rec-circle',
|
|
3884
3998
|
'microphone-mic-rec',
|
|
3999
|
+
'microphone-mic-rec-circle',
|
|
3885
4000
|
'microphone-mic-recording-circle',
|
|
3886
4001
|
'minus',
|
|
3887
4002
|
'modalities',
|
|
3888
4003
|
'molecule',
|
|
4004
|
+
'money',
|
|
3889
4005
|
'money-coin',
|
|
3890
4006
|
'money-dollar',
|
|
3891
|
-
'money',
|
|
3892
4007
|
'monitor-computer',
|
|
3893
4008
|
'mouse-big',
|
|
4009
|
+
'mouse-scroll',
|
|
3894
4010
|
'move',
|
|
3895
4011
|
'music-play-resume',
|
|
3896
4012
|
'music-stop',
|
|
3897
4013
|
'mute',
|
|
3898
4014
|
'network-storage-alert',
|
|
4015
|
+
'notebook',
|
|
3899
4016
|
'notebook-add-plus',
|
|
3900
4017
|
'notebook-open',
|
|
3901
4018
|
'notebook-pen-edit',
|
|
3902
|
-
'notebook',
|
|
3903
4019
|
'notes-pen',
|
|
3904
4020
|
'object-search-zoom-plus',
|
|
3905
4021
|
'open',
|
|
@@ -3917,24 +4033,25 @@ const allIcons = [
|
|
|
3917
4033
|
'protective-mask',
|
|
3918
4034
|
'question-circle',
|
|
3919
4035
|
'quote',
|
|
3920
|
-
'radiology-scan-circle',
|
|
3921
4036
|
'radiology-scan',
|
|
4037
|
+
'radiology-scan-circle',
|
|
3922
4038
|
'reader-studies',
|
|
4039
|
+
'rotate',
|
|
3923
4040
|
'rotate-arrow-manual',
|
|
3924
4041
|
'rotate-item-left',
|
|
3925
4042
|
'rotate-item-right',
|
|
3926
4043
|
'rotate-refresh',
|
|
3927
|
-
'rotate',
|
|
3928
|
-
'ruler-bidirectional',
|
|
3929
4044
|
'ruler',
|
|
4045
|
+
'ruler-bidirectional',
|
|
3930
4046
|
'scanner',
|
|
4047
|
+
'search',
|
|
3931
4048
|
'search-loop',
|
|
3932
4049
|
'search-user-profile-person',
|
|
3933
4050
|
'search-zoom-minus',
|
|
3934
4051
|
'search-zoom-plus',
|
|
3935
|
-
'search',
|
|
3936
4052
|
'section-form-element',
|
|
3937
4053
|
'send-message-share',
|
|
4054
|
+
'server',
|
|
3938
4055
|
'server-checkmark',
|
|
3939
4056
|
'server-database-endpoint',
|
|
3940
4057
|
'server-databases-checkmark-user',
|
|
@@ -3942,15 +4059,14 @@ const allIcons = [
|
|
|
3942
4059
|
'server-databases-download',
|
|
3943
4060
|
'server-databases-key-protection',
|
|
3944
4061
|
'server-databases-minimal-download',
|
|
3945
|
-
'server-databases-sync-import',
|
|
3946
4062
|
'server-databases-sync',
|
|
4063
|
+
'server-databases-sync-import',
|
|
3947
4064
|
'server-upload',
|
|
3948
|
-
'server',
|
|
3949
4065
|
'servers-database',
|
|
3950
4066
|
'setting-gear',
|
|
3951
4067
|
'settings-adjust',
|
|
3952
|
-
'settings-gear-square',
|
|
3953
4068
|
'settings-gear',
|
|
4069
|
+
'settings-gear-square',
|
|
3954
4070
|
'settings-select',
|
|
3955
4071
|
'shapes-objects',
|
|
3956
4072
|
'share',
|
|
@@ -3958,8 +4074,8 @@ const allIcons = [
|
|
|
3958
4074
|
'show-visible',
|
|
3959
4075
|
'smiley-emoji-face',
|
|
3960
4076
|
'speed-dashboard',
|
|
3961
|
-
'square-fill-outline',
|
|
3962
4077
|
'square-fill',
|
|
4078
|
+
'square-fill-outline',
|
|
3963
4079
|
'square-outline',
|
|
3964
4080
|
'star',
|
|
3965
4081
|
'stars-light-sparkle',
|
|
@@ -3968,8 +4084,8 @@ const allIcons = [
|
|
|
3968
4084
|
'stretch-vertical',
|
|
3969
4085
|
'substract-group',
|
|
3970
4086
|
'switch',
|
|
3971
|
-
'target-space-object-select',
|
|
3972
4087
|
'target',
|
|
4088
|
+
'target-space-object-select',
|
|
3973
4089
|
'tasklist-to-do-checkmark',
|
|
3974
4090
|
'technology-cube-3d',
|
|
3975
4091
|
'test-lab-flask',
|
|
@@ -3981,6 +4097,7 @@ const allIcons = [
|
|
|
3981
4097
|
'text-long',
|
|
3982
4098
|
'text-short-form-element',
|
|
3983
4099
|
'text-underline',
|
|
4100
|
+
'thumbs-down-dislike',
|
|
3984
4101
|
'thumbs-up-like',
|
|
3985
4102
|
'timer-clock-style',
|
|
3986
4103
|
'trash-delete',
|
|
@@ -3988,6 +4105,7 @@ const allIcons = [
|
|
|
3988
4105
|
'undone-uncheck-untracked',
|
|
3989
4106
|
'unlimited-repeat-subscription-circle',
|
|
3990
4107
|
'upload',
|
|
4108
|
+
'user',
|
|
3991
4109
|
'user-checked',
|
|
3992
4110
|
'user-delete-cross',
|
|
3993
4111
|
'user-document',
|
|
@@ -3997,12 +4115,11 @@ const allIcons = [
|
|
|
3997
4115
|
'user-profile-cards-pool',
|
|
3998
4116
|
'user-profile-group-discovery',
|
|
3999
4117
|
'user-setting-gear',
|
|
4000
|
-
'user',
|
|
4001
4118
|
'video-player-controls',
|
|
4002
4119
|
'visible-eye-hidden',
|
|
4003
4120
|
'volume-full',
|
|
4004
|
-
'warning-circle',
|
|
4005
4121
|
'warning',
|
|
4122
|
+
'warning-circle',
|
|
4006
4123
|
'window-finder-resize-arrow-down',
|
|
4007
4124
|
'window-finder-resize-arrow-up',
|
|
4008
4125
|
'window-resize-left',
|
|
@@ -4725,14 +4842,20 @@ class FwMenuCloseTriggersDirective {
|
|
|
4725
4842
|
constructor() {
|
|
4726
4843
|
this._isOpen = false;
|
|
4727
4844
|
}
|
|
4728
|
-
outsideClick() {
|
|
4729
|
-
|
|
4845
|
+
outsideClick(event) {
|
|
4846
|
+
const target = event.target;
|
|
4847
|
+
// Check is close under fw-menu-container (overlay)
|
|
4848
|
+
const clickedInsideMenu = target.closest('fw-menu-container') !== null;
|
|
4849
|
+
// Check is clicked on trigger
|
|
4850
|
+
const clickedOnTrigger = target.closest('[cdkMenuTriggerFor]') !== null;
|
|
4851
|
+
if (!clickedInsideMenu && !clickedOnTrigger && this._isOpen && this.triggers?.length > 0) {
|
|
4852
|
+
// Close menu if click outside menu and trigger
|
|
4730
4853
|
this.triggers.forEach(trigger => {
|
|
4731
4854
|
trigger.close();
|
|
4732
4855
|
});
|
|
4733
4856
|
this._isOpen = false;
|
|
4734
4857
|
}
|
|
4735
|
-
if (this.triggers
|
|
4858
|
+
if (this.triggers?.length > 0) {
|
|
4736
4859
|
this.triggers.forEach(trigger => {
|
|
4737
4860
|
if (trigger.isOpen()) {
|
|
4738
4861
|
this._isOpen = true;
|
|
@@ -4741,19 +4864,19 @@ class FwMenuCloseTriggersDirective {
|
|
|
4741
4864
|
}
|
|
4742
4865
|
}
|
|
4743
4866
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwMenuCloseTriggersDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4744
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: FwMenuCloseTriggersDirective, selector: "[fwMenuCloseTriggers]", host: { listeners: { "document:click": "outsideClick()" } }, queries: [{ propertyName: "triggers", predicate: CdkMenuTrigger, descendants: true }], ngImport: i0 }); }
|
|
4867
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: FwMenuCloseTriggersDirective, selector: "[fwMenuCloseTriggers]", host: { listeners: { "document:click": "outsideClick($event)" } }, queries: [{ propertyName: "triggers", predicate: CdkMenuTrigger, descendants: true }], ngImport: i0 }); }
|
|
4745
4868
|
}
|
|
4746
4869
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwMenuCloseTriggersDirective, decorators: [{
|
|
4747
4870
|
type: Directive,
|
|
4748
4871
|
args: [{
|
|
4749
4872
|
selector: '[fwMenuCloseTriggers]',
|
|
4750
4873
|
}]
|
|
4751
|
-
}], propDecorators: {
|
|
4752
|
-
type: HostListener,
|
|
4753
|
-
args: ['document:click']
|
|
4754
|
-
}], triggers: [{
|
|
4874
|
+
}], propDecorators: { triggers: [{
|
|
4755
4875
|
type: ContentChildren,
|
|
4756
4876
|
args: [CdkMenuTrigger, { descendants: true }]
|
|
4877
|
+
}], outsideClick: [{
|
|
4878
|
+
type: HostListener,
|
|
4879
|
+
args: ['document:click', ['$event']]
|
|
4757
4880
|
}] } });
|
|
4758
4881
|
|
|
4759
4882
|
class FwMenuContainerComponent {
|
|
@@ -5824,6 +5947,11 @@ class FwMultiSelectMenuComponent {
|
|
|
5824
5947
|
// handles all the display side effects of a value change
|
|
5825
5948
|
updateValue(incomingValues) {
|
|
5826
5949
|
if (!incomingValues) {
|
|
5950
|
+
this.selectedValues.clear();
|
|
5951
|
+
this.selectedOptions = [];
|
|
5952
|
+
this._value = [];
|
|
5953
|
+
this.change.emit(this._value);
|
|
5954
|
+
this.postSelectSideEffects();
|
|
5827
5955
|
return;
|
|
5828
5956
|
}
|
|
5829
5957
|
this.selectedValues.clear();
|
|
@@ -6370,7 +6498,7 @@ class FwPaginatorAdvancedComponent {
|
|
|
6370
6498
|
};
|
|
6371
6499
|
}
|
|
6372
6500
|
firstPage() {
|
|
6373
|
-
const evt = this.buildPageEvent(
|
|
6501
|
+
const evt = this.buildPageEvent(0);
|
|
6374
6502
|
this.pageIndex = 0;
|
|
6375
6503
|
this.page.emit(evt);
|
|
6376
6504
|
}
|
|
@@ -8702,6 +8830,7 @@ class FwChipListComponent {
|
|
|
8702
8830
|
else {
|
|
8703
8831
|
this.moreText().nativeElement.classList.add('hidden');
|
|
8704
8832
|
}
|
|
8833
|
+
// eslint-disable-next-line @rx-angular/no-explicit-change-detection-apis
|
|
8705
8834
|
this.changeDetector.detectChanges();
|
|
8706
8835
|
}
|
|
8707
8836
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwChipListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -8725,8 +8854,10 @@ class FwTypeaheadComponent {
|
|
|
8725
8854
|
this.changeDetector = inject(ChangeDetectorRef);
|
|
8726
8855
|
this.loading = model(false);
|
|
8727
8856
|
this.disabled = model(false);
|
|
8728
|
-
this.onChange = (_) => {
|
|
8729
|
-
|
|
8857
|
+
this.onChange = (_) => {
|
|
8858
|
+
};
|
|
8859
|
+
this.onTouched = () => {
|
|
8860
|
+
};
|
|
8730
8861
|
this.value = model([]);
|
|
8731
8862
|
this.optionsInput = input([], { alias: 'options' });
|
|
8732
8863
|
this.maxOptionsHeight = input('400px');
|
|
@@ -8853,12 +8984,14 @@ class FwTypeaheadComponent {
|
|
|
8853
8984
|
const newValue = currentValue.filter(val => val !== chipValue);
|
|
8854
8985
|
this.value.set(newValue);
|
|
8855
8986
|
this.focusInput();
|
|
8987
|
+
// eslint-disable-next-line @rx-angular/no-explicit-change-detection-apis
|
|
8856
8988
|
this.changeDetector.detectChanges();
|
|
8857
8989
|
}
|
|
8858
8990
|
focusInput(e = null) {
|
|
8859
8991
|
e?.preventDefault();
|
|
8860
8992
|
e?.stopPropagation();
|
|
8861
8993
|
e?.stopImmediatePropagation();
|
|
8994
|
+
// eslint-disable-next-line @rx-angular/prefer-no-layout-sensitive-apis
|
|
8862
8995
|
this.inputRef().nativeElement.focus();
|
|
8863
8996
|
}
|
|
8864
8997
|
/* eslint-enable */
|
|
@@ -8929,22 +9062,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
8929
9062
|
|
|
8930
9063
|
class FwWrappedInputComponent {
|
|
8931
9064
|
constructor() {
|
|
9065
|
+
this.statusColor = 'slate';
|
|
8932
9066
|
this.class = true;
|
|
8933
9067
|
}
|
|
8934
9068
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwWrappedInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8935
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwWrappedInputComponent, selector: "fw-wrapped-input", inputs: { title: "title", description: "description", helperText: "helperText", errorText: "errorText" }, host: { properties: { "class.fw-wrapped-input": "this.class" } }, ngImport: i0, template: "<label>\n <fw-form-heading
|
|
9069
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwWrappedInputComponent, selector: "fw-wrapped-input", inputs: { title: "title", status: "status", statusColor: "statusColor", description: "description", helperText: "helperText", errorText: "errorText", required: "required" }, host: { properties: { "class.fw-wrapped-input": "this.class" } }, ngImport: i0, template: "<label>\n <fw-form-heading\n *ngIf=\"title\" [title]=\"title\" [description]=\"description\"\n [required]=\"required\" [status]=\"status\" [statusColor]=\"statusColor\">\n </fw-form-heading>\n <ng-content select=\"fw-form-heading\"></ng-content>\n</label>\n<div class=\"input-wrapper\">\n <ng-content\n select=\"fw-button-toggle, fw-date-input, fw-text-input, fw-number-input, fw-phone-input, fw-textarea-input, fw-select, fw-multi-select, fw-checkbox, fw-typeahead\"></ng-content>\n</div>\n<p class=\"vision-p4 helper-text\" *ngIf=\"!!helperText && !errorText\">{{ helperText }}</p>\n<p class=\"vision-p4 error-text\" *ngIf=\"!!errorText\">{{ errorText }}</p>\n", styles: [".fw-wrapped-input{display:flex;flex-direction:column;flex:1}.fw-wrapped-input .input-wrapper{max-width:100%;display:flex;flex-direction:row;flex:1;gap:16px}.fw-wrapped-input .input-wrapper>*{flex:1}.fw-wrapped-input .helper-text,.fw-wrapped-input .error-text{margin-top:4px;color:var(--typography-light);line-height:13px;margin-left:6px;margin-bottom:0;text-align:left}.fw-wrapped-input .error-text{color:var(--red-base)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwFormHeadingComponent, selector: "fw-form-heading", inputs: ["title", "description", "required", "status", "statusColor"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
8936
9070
|
}
|
|
8937
9071
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwWrappedInputComponent, decorators: [{
|
|
8938
9072
|
type: Component,
|
|
8939
|
-
args: [{ selector: 'fw-wrapped-input', encapsulation: ViewEncapsulation.None, template: "<label>\n <fw-form-heading
|
|
9073
|
+
args: [{ selector: 'fw-wrapped-input', encapsulation: ViewEncapsulation.None, template: "<label>\n <fw-form-heading\n *ngIf=\"title\" [title]=\"title\" [description]=\"description\"\n [required]=\"required\" [status]=\"status\" [statusColor]=\"statusColor\">\n </fw-form-heading>\n <ng-content select=\"fw-form-heading\"></ng-content>\n</label>\n<div class=\"input-wrapper\">\n <ng-content\n select=\"fw-button-toggle, fw-date-input, fw-text-input, fw-number-input, fw-phone-input, fw-textarea-input, fw-select, fw-multi-select, fw-checkbox, fw-typeahead\"></ng-content>\n</div>\n<p class=\"vision-p4 helper-text\" *ngIf=\"!!helperText && !errorText\">{{ helperText }}</p>\n<p class=\"vision-p4 error-text\" *ngIf=\"!!errorText\">{{ errorText }}</p>\n", styles: [".fw-wrapped-input{display:flex;flex-direction:column;flex:1}.fw-wrapped-input .input-wrapper{max-width:100%;display:flex;flex-direction:row;flex:1;gap:16px}.fw-wrapped-input .input-wrapper>*{flex:1}.fw-wrapped-input .helper-text,.fw-wrapped-input .error-text{margin-top:4px;color:var(--typography-light);line-height:13px;margin-left:6px;margin-bottom:0;text-align:left}.fw-wrapped-input .error-text{color:var(--red-base)}\n"] }]
|
|
8940
9074
|
}], propDecorators: { title: [{
|
|
8941
9075
|
type: Input
|
|
9076
|
+
}], status: [{
|
|
9077
|
+
type: Input
|
|
9078
|
+
}], statusColor: [{
|
|
9079
|
+
type: Input
|
|
8942
9080
|
}], description: [{
|
|
8943
9081
|
type: Input
|
|
8944
9082
|
}], helperText: [{
|
|
8945
9083
|
type: Input
|
|
8946
9084
|
}], errorText: [{
|
|
8947
9085
|
type: Input
|
|
9086
|
+
}], required: [{
|
|
9087
|
+
type: Input
|
|
8948
9088
|
}], class: [{
|
|
8949
9089
|
type: HostBinding,
|
|
8950
9090
|
args: ['class.fw-wrapped-input']
|