@leanix/components 0.4.441 → 0.4.443
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/esm2022/index.mjs +1 -3
- package/esm2022/lib/core-ui/core-ui.module.mjs +1 -12
- package/fesm2022/leanix-components.mjs +239 -363
- package/fesm2022/leanix-components.mjs.map +1 -1
- package/index.d.ts +0 -2
- package/lib/core-ui/core-ui.module.d.ts +21 -23
- package/package.json +1 -1
- package/esm2022/lib/core-ui/components/integration-link-card/integration-link-card-group.component.mjs +0 -11
- package/esm2022/lib/core-ui/components/integration-link-card/integration-link-card.component.mjs +0 -112
- package/lib/core-ui/components/integration-link-card/integration-link-card-group.component.d.ts +0 -5
- package/lib/core-ui/components/integration-link-card/integration-link-card.component.d.ts +0 -86
@@ -11,19 +11,19 @@ import { BehaviorSubject, timer, Observable, Subject, combineLatest, merge, conc
|
|
11
11
|
import { skipWhile, map, switchMap, startWith, pairwise, filter, take, debounceTime, skip, withLatestFrom, distinctUntilChanged, takeUntil, delay, tap, first } from 'rxjs/operators';
|
12
12
|
import * as i1$9 from '@angular/router';
|
13
13
|
import { RouterLink, RouterLinkActive, RouterModule } from '@angular/router';
|
14
|
-
import * as i3 from '@angular/cdk/portal';
|
15
|
-
import { ComponentPortal, CdkPortal, PortalModule } from '@angular/cdk/portal';
|
16
|
-
import * as i1$2 from '@angular/cdk/overlay';
|
17
|
-
import { CdkOverlayOrigin, CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
|
18
|
-
import * as i2 from '@angular/cdk/a11y';
|
19
|
-
import { ActiveDescendantKeyManager, A11yModule } from '@angular/cdk/a11y';
|
20
14
|
import { CdkStepper, CdkStepperModule } from '@angular/cdk/stepper';
|
21
|
-
import * as i1$
|
15
|
+
import * as i1$2 from '@angular/cdk/bidi';
|
22
16
|
import Color from 'color';
|
23
17
|
import { format, distanceInWords, startOfDay } from 'date-fns';
|
24
18
|
import DOMPurify from 'dompurify';
|
25
19
|
import { isArray, isEqual, split, uniqueId, pick, intersection, isNil, curry } from 'lodash-es';
|
26
20
|
import { Renderer, marked } from 'marked';
|
21
|
+
import * as i3 from '@angular/cdk/portal';
|
22
|
+
import { ComponentPortal, CdkPortal, PortalModule } from '@angular/cdk/portal';
|
23
|
+
import * as i1$3 from '@angular/cdk/overlay';
|
24
|
+
import { CdkOverlayOrigin, CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
|
25
|
+
import * as i2 from '@angular/cdk/a11y';
|
26
|
+
import { ActiveDescendantKeyManager, A11yModule } from '@angular/cdk/a11y';
|
27
27
|
import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
28
28
|
import * as i1$4 from '@ncstate/sat-popover';
|
29
29
|
import { SatPopoverComponent, SatPopoverModule } from '@ncstate/sat-popover';
|
@@ -815,342 +815,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
815
815
|
type: Input
|
816
816
|
}] } });
|
817
817
|
|
818
|
-
class IntegrationLinkCardGroupComponent {
|
819
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: IntegrationLinkCardGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
820
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: IntegrationLinkCardGroupComponent, isStandalone: true, selector: "lx-integration-link-card-group", ngImport: i0, template: "<ng-content />\n", styles: [":host::ng-deep lx-integration-link-card:not(:first-child),:host::ng-deep .integration-link-card-container:not(:first-child)>lx-integration-link-card{border-top-left-radius:0;border-top-right-radius:0;padding-top:4px}:host::ng-deep lx-integration-link-card:not(:last-child),:host::ng-deep .integration-link-card-container:not(:last-child)>lx-integration-link-card{border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:4px}:host::ng-deep lx-integration-link-card:not(:last-child):after,:host::ng-deep .integration-link-card-container:not(:last-child)>lx-integration-link-card:after{content:\"\";width:187px;height:1px;background:#b2bccc;position:absolute;bottom:-1px;z-index:2;left:8px}\n"] }); }
|
821
|
-
}
|
822
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: IntegrationLinkCardGroupComponent, decorators: [{
|
823
|
-
type: Component,
|
824
|
-
args: [{ selector: 'lx-integration-link-card-group', standalone: true, template: "<ng-content />\n", styles: [":host::ng-deep lx-integration-link-card:not(:first-child),:host::ng-deep .integration-link-card-container:not(:first-child)>lx-integration-link-card{border-top-left-radius:0;border-top-right-radius:0;padding-top:4px}:host::ng-deep lx-integration-link-card:not(:last-child),:host::ng-deep .integration-link-card-container:not(:last-child)>lx-integration-link-card{border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:4px}:host::ng-deep lx-integration-link-card:not(:last-child):after,:host::ng-deep .integration-link-card-container:not(:last-child)>lx-integration-link-card:after{content:\"\";width:187px;height:1px;background:#b2bccc;position:absolute;bottom:-1px;z-index:2;left:8px}\n"] }]
|
825
|
-
}] });
|
826
|
-
|
827
|
-
function toCdkX(x) {
|
828
|
-
switch (x) {
|
829
|
-
case 'left':
|
830
|
-
return 'start';
|
831
|
-
case 'center':
|
832
|
-
return 'center';
|
833
|
-
case 'right':
|
834
|
-
return 'end';
|
835
|
-
}
|
836
|
-
}
|
837
|
-
function invertCdkX(x) {
|
838
|
-
switch (x) {
|
839
|
-
case 'start':
|
840
|
-
return 'end';
|
841
|
-
case 'center':
|
842
|
-
return 'center';
|
843
|
-
case 'end':
|
844
|
-
return 'start';
|
845
|
-
}
|
846
|
-
}
|
847
|
-
function invertCdkY(x) {
|
848
|
-
switch (x) {
|
849
|
-
case 'top':
|
850
|
-
return 'bottom';
|
851
|
-
case 'center':
|
852
|
-
return 'center';
|
853
|
-
case 'bottom':
|
854
|
-
return 'top';
|
855
|
-
}
|
856
|
-
}
|
857
|
-
function offsetYDirection(x) {
|
858
|
-
switch (x) {
|
859
|
-
case 'top':
|
860
|
-
return -6;
|
861
|
-
case 'center':
|
862
|
-
return 0;
|
863
|
-
case 'bottom':
|
864
|
-
return 6;
|
865
|
-
}
|
866
|
-
}
|
867
|
-
function offsetXDirection(position) {
|
868
|
-
switch (position.y) {
|
869
|
-
case 'center':
|
870
|
-
switch (position.x) {
|
871
|
-
case 'left':
|
872
|
-
return -6;
|
873
|
-
case 'center':
|
874
|
-
return 0;
|
875
|
-
case 'right':
|
876
|
-
return 6;
|
877
|
-
}
|
878
|
-
case 'top':
|
879
|
-
case 'bottom':
|
880
|
-
switch (position.x) {
|
881
|
-
case 'left':
|
882
|
-
return 30;
|
883
|
-
case 'center':
|
884
|
-
return 0;
|
885
|
-
case 'right':
|
886
|
-
return -30;
|
887
|
-
}
|
888
|
-
}
|
889
|
-
}
|
890
|
-
function toCdkPosition(position) {
|
891
|
-
return {
|
892
|
-
originX: toCdkX(position.x),
|
893
|
-
originY: position.y,
|
894
|
-
overlayX: invertCdkX(toCdkX(position.x)),
|
895
|
-
overlayY: invertCdkY(position.y),
|
896
|
-
offsetY: offsetYDirection(position.y),
|
897
|
-
offsetX: offsetXDirection(position)
|
898
|
-
};
|
899
|
-
}
|
900
|
-
|
901
|
-
function isValidX(x) {
|
902
|
-
return ['left', 'center', 'right'].includes(x);
|
903
|
-
}
|
904
|
-
function isValidY(y) {
|
905
|
-
return ['top', 'center', 'bottom'].includes(y);
|
906
|
-
}
|
907
|
-
|
908
|
-
class TooltipComponent {
|
909
|
-
constructor() {
|
910
|
-
this.content = '';
|
911
|
-
this.isHtmlContent = false;
|
912
|
-
this.position = {
|
913
|
-
x: 'center',
|
914
|
-
y: 'top'
|
915
|
-
};
|
916
|
-
}
|
917
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
918
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TooltipComponent, isStandalone: true, selector: "lx-tooltip", inputs: { content: "content", isHtmlContent: "isHtmlContent", position: "position" }, host: { attributes: { "role": "tooltip" } }, ngImport: i0, template: "<div *ngIf=\"!isHtmlContent; else htmlTooltip\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\">{{ content }}</div>\n<ng-template #htmlTooltip>\n <div [innerHtml]=\"content\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\"></div>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin:5px}div{background-color:#292929;color:#fff;border:0 solid transparent;border-radius:5px;opacity:1;font-size:var(--lxFontSmallSize, 12px);font-weight:var(--lxFontNormal, 400);text-shadow:0 1px black;text-align:left;word-wrap:break-word;line-height:16px;max-width:280px;min-width:50px;padding:6px 10px;overflow:hidden}.y-bottom:after,.y-top:after,.x-left:after,.x-right:after{content:\" \";position:absolute;border-width:5px;border-style:solid;border-color:#292929 transparent transparent transparent}.y-top:after{top:100%;margin-left:-5px}.y-bottom:after{top:0;margin-left:-5px;transform-origin:center top;transform:rotate(180deg)}.y-center:after{top:50%;margin-left:-5px;margin-top:-10px}.y-top.x-center:after,.y-bottom.x-center:after{left:50%}.y-top.x-left:after,.y-bottom.x-left:after{right:10px}.y-top.x-right:after,.y-bottom.x-right:after{left:10px}.y-center.x-right:after{left:0;transform-origin:left center;transform:rotate(90deg)}.y-center.x-left:after{left:100%;transform-origin:right center;transform:rotate(-90deg)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
919
|
-
}
|
920
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TooltipComponent, decorators: [{
|
921
|
-
type: Component,
|
922
|
-
args: [{ selector: 'lx-tooltip', standalone: true, imports: [NgIf, NgClass], host: { role: 'tooltip' }, template: "<div *ngIf=\"!isHtmlContent; else htmlTooltip\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\">{{ content }}</div>\n<ng-template #htmlTooltip>\n <div [innerHtml]=\"content\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\"></div>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin:5px}div{background-color:#292929;color:#fff;border:0 solid transparent;border-radius:5px;opacity:1;font-size:var(--lxFontSmallSize, 12px);font-weight:var(--lxFontNormal, 400);text-shadow:0 1px black;text-align:left;word-wrap:break-word;line-height:16px;max-width:280px;min-width:50px;padding:6px 10px;overflow:hidden}.y-bottom:after,.y-top:after,.x-left:after,.x-right:after{content:\" \";position:absolute;border-width:5px;border-style:solid;border-color:#292929 transparent transparent transparent}.y-top:after{top:100%;margin-left:-5px}.y-bottom:after{top:0;margin-left:-5px;transform-origin:center top;transform:rotate(180deg)}.y-center:after{top:50%;margin-left:-5px;margin-top:-10px}.y-top.x-center:after,.y-bottom.x-center:after{left:50%}.y-top.x-left:after,.y-bottom.x-left:after{right:10px}.y-top.x-right:after,.y-bottom.x-right:after{left:10px}.y-center.x-right:after{left:0;transform-origin:left center;transform:rotate(90deg)}.y-center.x-left:after{left:100%;transform-origin:right center;transform:rotate(-90deg)}\n"] }]
|
923
|
-
}], propDecorators: { content: [{
|
924
|
-
type: Input
|
925
|
-
}], isHtmlContent: [{
|
926
|
-
type: Input
|
927
|
-
}], position: [{
|
928
|
-
type: Input
|
929
|
-
}] } });
|
930
|
-
|
931
|
-
/**
|
932
|
-
* Tooltip directive is used to show a tooltip on hover or focus on an element.
|
933
|
-
*
|
934
|
-
* ## Usage
|
935
|
-
*
|
936
|
-
* 1. Import the `TooltipDirective` component from `@leanix/components` in your module or standalone copmonent where you want to use the component.
|
937
|
-
*
|
938
|
-
* ```ts
|
939
|
-
* import { TooltipDirective } from '@leanix/components';
|
940
|
-
* ```
|
941
|
-
*/
|
942
|
-
class TooltipDirective {
|
943
|
-
/** The position of the tooltip. */
|
944
|
-
set lxTooltipPosition(value) {
|
945
|
-
this.position = {
|
946
|
-
x: value && isValidX(value.x) ? value.x : 'center',
|
947
|
-
y: value && isValidY(value.y) ? value.y : 'top'
|
948
|
-
};
|
949
|
-
}
|
950
|
-
get positionStrategy() {
|
951
|
-
return this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([toCdkPosition(this.position)]);
|
952
|
-
}
|
953
|
-
constructor(overlayPositionBuilder, elementRef, overlay, ariaDescriber) {
|
954
|
-
this.overlayPositionBuilder = overlayPositionBuilder;
|
955
|
-
this.elementRef = elementRef;
|
956
|
-
this.overlay = overlay;
|
957
|
-
this.ariaDescriber = ariaDescriber;
|
958
|
-
this.position = {
|
959
|
-
x: 'center',
|
960
|
-
y: 'top'
|
961
|
-
};
|
962
|
-
/** Whether the tooltip content is HTML. */
|
963
|
-
this.lxTooltipIsHtmlContent = false;
|
964
|
-
this.mouseOrFocusOnHost = false;
|
965
|
-
}
|
966
|
-
ngOnChanges(changes) {
|
967
|
-
if (this.overlayRef && changes['lxTooltipPosition']) {
|
968
|
-
this.overlayRef.updatePositionStrategy(this.positionStrategy);
|
969
|
-
}
|
970
|
-
if (this.tooltipRef) {
|
971
|
-
if (changes['lxTooltipPosition']) {
|
972
|
-
this.tooltipRef.instance.position = this.position;
|
973
|
-
}
|
974
|
-
if (changes['lxTooltipIsHtmlContent']) {
|
975
|
-
this.tooltipRef.instance.isHtmlContent = this.lxTooltipIsHtmlContent;
|
976
|
-
}
|
977
|
-
if (changes['content']) {
|
978
|
-
if (this.content) {
|
979
|
-
this.tooltipRef.instance.content = this.content;
|
980
|
-
this.overlayRef?.updatePosition();
|
981
|
-
}
|
982
|
-
else {
|
983
|
-
this.overlayRef?.detach();
|
984
|
-
}
|
985
|
-
}
|
986
|
-
}
|
987
|
-
}
|
988
|
-
/** @internal */
|
989
|
-
show() {
|
990
|
-
this.mouseOrFocusOnHost = true;
|
991
|
-
setTimeout(() => {
|
992
|
-
if (!this.overlayRef?.hasAttached() && this.mouseOrFocusOnHost && this.content) {
|
993
|
-
this.overlayRef = this.overlay.create({ positionStrategy: this.positionStrategy });
|
994
|
-
const tooltipPortal = new ComponentPortal(TooltipComponent);
|
995
|
-
this.tooltipRef = this.overlayRef.attach(tooltipPortal);
|
996
|
-
this.tooltipRef.instance.content = this.content;
|
997
|
-
this.tooltipRef.instance.isHtmlContent = this.lxTooltipIsHtmlContent;
|
998
|
-
this.tooltipRef.instance.position = this.position;
|
999
|
-
this.ariaDescriber.describe(this.elementRef.nativeElement, this.tooltipRef.location.nativeElement);
|
1000
|
-
}
|
1001
|
-
}, this.lxTooltipDelay ?? 90);
|
1002
|
-
}
|
1003
|
-
ngOnDestroy() {
|
1004
|
-
this.mouseOrFocusOnHost = false;
|
1005
|
-
this.overlayRef?.dispose();
|
1006
|
-
}
|
1007
|
-
/** @internal */
|
1008
|
-
hide() {
|
1009
|
-
this.mouseOrFocusOnHost = false;
|
1010
|
-
this.ariaDescriber.removeDescription(this.elementRef.nativeElement, this.tooltipRef?.location.nativeElement);
|
1011
|
-
this.overlayRef?.dispose();
|
1012
|
-
}
|
1013
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TooltipDirective, deps: [{ token: i1$2.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1$2.Overlay }, { token: i2.AriaDescriber }], target: i0.ɵɵFactoryTarget.Directive }); }
|
1014
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: TooltipDirective, isStandalone: true, selector: "[lxTooltip]", inputs: { content: ["lxTooltip", "content"], lxTooltipPosition: "lxTooltipPosition", lxTooltipDelay: "lxTooltipDelay", lxTooltipIsHtmlContent: "lxTooltipIsHtmlContent" }, host: { listeners: { "mouseenter": "show()", "focus": "show()", "mouseleave": "hide()", "click": "hide()", "blur": "hide()" } }, usesOnChanges: true, ngImport: i0 }); }
|
1015
|
-
}
|
1016
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TooltipDirective, decorators: [{
|
1017
|
-
type: Directive,
|
1018
|
-
args: [{
|
1019
|
-
selector: '[lxTooltip]',
|
1020
|
-
standalone: true
|
1021
|
-
}]
|
1022
|
-
}], ctorParameters: () => [{ type: i1$2.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i1$2.Overlay }, { type: i2.AriaDescriber }], propDecorators: { content: [{
|
1023
|
-
type: Input,
|
1024
|
-
args: ['lxTooltip']
|
1025
|
-
}], lxTooltipPosition: [{
|
1026
|
-
type: Input
|
1027
|
-
}], lxTooltipDelay: [{
|
1028
|
-
type: Input
|
1029
|
-
}], lxTooltipIsHtmlContent: [{
|
1030
|
-
type: Input
|
1031
|
-
}], show: [{
|
1032
|
-
type: HostListener,
|
1033
|
-
args: ['mouseenter']
|
1034
|
-
}, {
|
1035
|
-
type: HostListener,
|
1036
|
-
args: ['focus']
|
1037
|
-
}], hide: [{
|
1038
|
-
type: HostListener,
|
1039
|
-
args: ['mouseleave']
|
1040
|
-
}, {
|
1041
|
-
type: HostListener,
|
1042
|
-
args: ['click']
|
1043
|
-
}, {
|
1044
|
-
type: HostListener,
|
1045
|
-
args: ['blur']
|
1046
|
-
}] } });
|
1047
|
-
|
1048
|
-
/**
|
1049
|
-
* Integration Link Card Component is a card component that displays information about an integration link.
|
1050
|
-
*
|
1051
|
-
* This documentation provides details on the usage and configuration of the Integration Link Card Component.
|
1052
|
-
*
|
1053
|
-
* ## Usage
|
1054
|
-
*
|
1055
|
-
* 1. Import `LxCoreUiModule` module from `@leanix/components` in your module where you want to use the component, or in case of a standalone parent component, import the
|
1056
|
-
* `IntegrationLinkCardComponent` directly into your standalone component.
|
1057
|
-
*
|
1058
|
-
* - Module import:
|
1059
|
-
*
|
1060
|
-
* ```ts
|
1061
|
-
* import { LxCoreUiModule } from '@leanix/components';
|
1062
|
-
* ```
|
1063
|
-
*
|
1064
|
-
* - Standalone component import:
|
1065
|
-
*
|
1066
|
-
* ```ts
|
1067
|
-
* import { IntegrationLinkCardComponent } from '@leanix/components';
|
1068
|
-
*
|
1069
|
-
* @Component({
|
1070
|
-
* selector: 'lx-my-component',
|
1071
|
-
* standalone: true,
|
1072
|
-
* imports: [IntegrationLinkCardComponent],
|
1073
|
-
* templateUrl: './my-component.component.html'
|
1074
|
-
* })
|
1075
|
-
* export class MyComponent {}
|
1076
|
-
* ```
|
1077
|
-
*
|
1078
|
-
* ## Usage
|
1079
|
-
*
|
1080
|
-
* #### Required Inputs:
|
1081
|
-
*
|
1082
|
-
* - `sourceIconClasses` (`string`) - font awesome classes for source icon;
|
1083
|
-
* - `sourceName` (`string`) - the name of the source associated with the integration card;
|
1084
|
-
* - `title` (`string`) - the main title of the integration card.
|
1085
|
-
*/
|
1086
|
-
class IntegrationLinkCardComponent {
|
1087
|
-
constructor() {
|
1088
|
-
/**
|
1089
|
-
* Determines if the integration is in an inactive state
|
1090
|
-
* When set to true, the card will display in an inactive state
|
1091
|
-
* */
|
1092
|
-
this.isInactive = false;
|
1093
|
-
/** Event emitted when the action button is clicked */
|
1094
|
-
this.actionButtonClicked = new EventEmitter();
|
1095
|
-
/** Event emitted when the link is clicked */
|
1096
|
-
this.linkClicked = new EventEmitter();
|
1097
|
-
}
|
1098
|
-
/** @internal */
|
1099
|
-
onActionButtonClicked() {
|
1100
|
-
this.actionButtonClicked.emit();
|
1101
|
-
}
|
1102
|
-
/** @internal */
|
1103
|
-
onLinkClicked(event) {
|
1104
|
-
this.linkClicked.emit(event);
|
1105
|
-
}
|
1106
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: IntegrationLinkCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
1107
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: IntegrationLinkCardComponent, isStandalone: true, selector: "lx-integration-link-card", inputs: { sourceIconClasses: "sourceIconClasses", sourceName: "sourceName", title: "title", isInactive: "isInactive", link: "link", queryParams: "queryParams", externalLink: "externalLink", tooltipContent: "tooltipContent", badgeContent: "badgeContent", actionButtonName: "actionButtonName", timestamp: "timestamp", tertiaryInfo: "tertiaryInfo" }, outputs: { actionButtonClicked: "actionButtonClicked", linkClicked: "linkClicked" }, ngImport: i0, template: "<div class=\"integration-link-card-body {{ isInactive ? 'inactive-link' : '' }}\">\n @if (badgeContent) {\n <div class=\"integration-link-card-badge\">\n <lx-badge [content]=\"badgeContent\" />\n </div>\n }\n <div class=\"integration-link-card-source\"><i [class]=\"sourceIconClasses\" aria-hidden=\"true\"></i>{{ sourceName }}</div>\n <h2 class=\"integration-link-card-heading\">{{ title }}</h2>\n @if (tertiaryInfo) {\n <div class=\"integration-link-card-tertiary-info\">{{ tertiaryInfo }}</div>\n }\n @if (timestamp) {\n <div class=\"integration-link-card-timestamp\">{{ timestamp }}</div>\n }\n @if (actionButtonName) {\n <button lx-button color=\"light\" class=\"integration-link-card-action-button\" (click)=\"onActionButtonClicked()\">\n {{ actionButtonName }}\n </button>\n }\n</div>\n@if (link) {\n <div class=\"integration-link-card-link\">\n @if (externalLink) {\n <a\n [href]=\"link\"\n [attr.target]=\"'_blank'\"\n [attr.rel]=\"'noopener norefferer'\"\n [lxTooltip]=\"tooltipContent\"\n [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\"\n (click)=\"onLinkClicked($event)\"\n >\n <i class=\"far fa-external-link\" aria-hidden=\"true\"></i>\n </a>\n } @else {\n @if (link.startsWith('http')) {\n <a [lxTooltip]=\"tooltipContent\" [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\" [href]=\"link\" (click)=\"onLinkClicked($event)\">\n <i class=\"far fa-arrow-circle-right\" aria-hidden=\"true\"></i>\n </a>\n } @else {\n <a\n [lxTooltip]=\"tooltipContent\"\n [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n (click)=\"onLinkClicked($event)\"\n >\n <i class=\"far fa-arrow-circle-right\" aria-hidden=\"true\"></i>\n </a>\n }\n }\n </div>\n}\n", styles: [":host{width:100%;border-radius:4px;position:relative;display:flex;flex-direction:row;justify-content:space-between;gap:4px;background-color:#e1e5eb;font-size:var(--lxFontSmallSize, 12px)}.integration-link-card-body{display:flex;flex-direction:column;align-items:flex-start;padding:8px}.integration-link-card-badge{margin-bottom:8px}.integration-link-card-source{margin-bottom:4px}.integration-link-card-source i{margin-right:4px}.integration-link-card-tertiary-info{margin-bottom:4px;color:#99a5bb}.integration-link-card-timestamp{margin-bottom:4px;color:#526179}.integration-link-card-action-button{margin:4px 0}.integration-link-card-heading{padding-bottom:4px;font-weight:var(--lxFontBold, 700);font-size:var(--lxFontHeader5Size, 14px);line-height:16px;margin:0;text-overflow:ellipsis;overflow:hidden;max-width:160px}.integration-link-card-link{width:30px;height:30px;display:flex;justify-content:center;align-items:center;align-self:center;transition:background-color .18s;transition-delay:0s;transition-timing-function:ease;cursor:pointer}.integration-link-card-link:hover,.integration-link-card-link:focus{text-decoration:none}.inactive-link *{color:#61779d}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[lxTooltip]", inputs: ["lxTooltip", "lxTooltipPosition", "lxTooltipDelay", "lxTooltipIsHtmlContent"] }, { kind: "component", type: BadgeComponent, selector: "lx-badge", inputs: ["content", "color", "calculateColorsDynamically"] }, { kind: "component", type: ButtonComponent, selector: "button[lx-button]", inputs: ["size", "color", "mode", "pressed", "selected", "square", "circle", "disabled", "showSpinner"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
1108
|
-
}
|
1109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: IntegrationLinkCardComponent, decorators: [{
|
1110
|
-
type: Component,
|
1111
|
-
args: [{ selector: 'lx-integration-link-card', standalone: true, imports: [TooltipDirective, BadgeComponent, ButtonComponent, RouterLink], template: "<div class=\"integration-link-card-body {{ isInactive ? 'inactive-link' : '' }}\">\n @if (badgeContent) {\n <div class=\"integration-link-card-badge\">\n <lx-badge [content]=\"badgeContent\" />\n </div>\n }\n <div class=\"integration-link-card-source\"><i [class]=\"sourceIconClasses\" aria-hidden=\"true\"></i>{{ sourceName }}</div>\n <h2 class=\"integration-link-card-heading\">{{ title }}</h2>\n @if (tertiaryInfo) {\n <div class=\"integration-link-card-tertiary-info\">{{ tertiaryInfo }}</div>\n }\n @if (timestamp) {\n <div class=\"integration-link-card-timestamp\">{{ timestamp }}</div>\n }\n @if (actionButtonName) {\n <button lx-button color=\"light\" class=\"integration-link-card-action-button\" (click)=\"onActionButtonClicked()\">\n {{ actionButtonName }}\n </button>\n }\n</div>\n@if (link) {\n <div class=\"integration-link-card-link\">\n @if (externalLink) {\n <a\n [href]=\"link\"\n [attr.target]=\"'_blank'\"\n [attr.rel]=\"'noopener norefferer'\"\n [lxTooltip]=\"tooltipContent\"\n [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\"\n (click)=\"onLinkClicked($event)\"\n >\n <i class=\"far fa-external-link\" aria-hidden=\"true\"></i>\n </a>\n } @else {\n @if (link.startsWith('http')) {\n <a [lxTooltip]=\"tooltipContent\" [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\" [href]=\"link\" (click)=\"onLinkClicked($event)\">\n <i class=\"far fa-arrow-circle-right\" aria-hidden=\"true\"></i>\n </a>\n } @else {\n <a\n [lxTooltip]=\"tooltipContent\"\n [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n (click)=\"onLinkClicked($event)\"\n >\n <i class=\"far fa-arrow-circle-right\" aria-hidden=\"true\"></i>\n </a>\n }\n }\n </div>\n}\n", styles: [":host{width:100%;border-radius:4px;position:relative;display:flex;flex-direction:row;justify-content:space-between;gap:4px;background-color:#e1e5eb;font-size:var(--lxFontSmallSize, 12px)}.integration-link-card-body{display:flex;flex-direction:column;align-items:flex-start;padding:8px}.integration-link-card-badge{margin-bottom:8px}.integration-link-card-source{margin-bottom:4px}.integration-link-card-source i{margin-right:4px}.integration-link-card-tertiary-info{margin-bottom:4px;color:#99a5bb}.integration-link-card-timestamp{margin-bottom:4px;color:#526179}.integration-link-card-action-button{margin:4px 0}.integration-link-card-heading{padding-bottom:4px;font-weight:var(--lxFontBold, 700);font-size:var(--lxFontHeader5Size, 14px);line-height:16px;margin:0;text-overflow:ellipsis;overflow:hidden;max-width:160px}.integration-link-card-link{width:30px;height:30px;display:flex;justify-content:center;align-items:center;align-self:center;transition:background-color .18s;transition-delay:0s;transition-timing-function:ease;cursor:pointer}.integration-link-card-link:hover,.integration-link-card-link:focus{text-decoration:none}.inactive-link *{color:#61779d}\n"] }]
|
1112
|
-
}], propDecorators: { sourceIconClasses: [{
|
1113
|
-
type: Input,
|
1114
|
-
args: [{ required: true }]
|
1115
|
-
}], sourceName: [{
|
1116
|
-
type: Input,
|
1117
|
-
args: [{ required: true }]
|
1118
|
-
}], title: [{
|
1119
|
-
type: Input,
|
1120
|
-
args: [{ required: true }]
|
1121
|
-
}], isInactive: [{
|
1122
|
-
type: Input,
|
1123
|
-
args: [{ required: false }]
|
1124
|
-
}], link: [{
|
1125
|
-
type: Input,
|
1126
|
-
args: [{ required: false }]
|
1127
|
-
}], queryParams: [{
|
1128
|
-
type: Input,
|
1129
|
-
args: [{ required: false }]
|
1130
|
-
}], externalLink: [{
|
1131
|
-
type: Input,
|
1132
|
-
args: [{ required: false }]
|
1133
|
-
}], tooltipContent: [{
|
1134
|
-
type: Input,
|
1135
|
-
args: [{ required: false }]
|
1136
|
-
}], badgeContent: [{
|
1137
|
-
type: Input,
|
1138
|
-
args: [{ required: false }]
|
1139
|
-
}], actionButtonName: [{
|
1140
|
-
type: Input,
|
1141
|
-
args: [{ required: false }]
|
1142
|
-
}], timestamp: [{
|
1143
|
-
type: Input,
|
1144
|
-
args: [{ required: false }]
|
1145
|
-
}], tertiaryInfo: [{
|
1146
|
-
type: Input,
|
1147
|
-
args: [{ required: false }]
|
1148
|
-
}], actionButtonClicked: [{
|
1149
|
-
type: Output
|
1150
|
-
}], linkClicked: [{
|
1151
|
-
type: Output
|
1152
|
-
}] } });
|
1153
|
-
|
1154
818
|
/**
|
1155
819
|
* The following CSS classes should be used to style this component. The use of the inputs is deprecated.
|
1156
820
|
* - fullSpace: Sets position to absolute with full height and width => fills ancestor with position set.
|
@@ -1231,13 +895,13 @@ class StepperComponent extends CdkStepper {
|
|
1231
895
|
isActiveStep(index) {
|
1232
896
|
return index === this.selectedIndex;
|
1233
897
|
}
|
1234
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StepperComponent, deps: [{ token: i1$
|
898
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StepperComponent, deps: [{ token: i1$2.Directionality }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
1235
899
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: StepperComponent, isStandalone: true, selector: "lx-stepper", providers: [{ provide: CdkStepper, useExisting: StepperComponent }], usesInheritance: true, ngImport: i0, template: "<ul class=\"stepper\">\n @for (step of steps; track step.label; let i = $index) {\n <li class=\"step\" [ngClass]=\"{ 'step-completed': isCompleted(i) }\">\n <div\n class=\"step-container\"\n [class]=\"isSmallVariant ? 'step-container-small' : 'step-container-normal'\"\n [ngClass]=\"{ 'step-container-active': isActiveStep(i), 'step-container-completed': isCompleted(i) }\"\n >\n <div class=\"step-number\" [ngClass]=\"{ 'step-number-active': isActiveStep(i) }\">\n @if (isCompleted(i)) {\n <i [class]=\"'far fa-check check-icon'\" [ngClass]=\"{ 'small-icon': isSmallVariant }\"></i>\n } @else if (!isSmallVariant) {\n {{ i + 1 }}\n }\n </div>\n @if (!isSmallVariant) {\n <div class=\"step-title\">\n {{ step.label }}\n </div>\n }\n </div>\n </li>\n }\n</ul>\n@if (selected) {\n <div class=\"content\">\n <ng-container [ngTemplateOutlet]=\"selected!.content\" />\n </div>\n}\n", styles: [".stepper{display:flex;position:relative;align-items:center;padding-left:0}.step{position:relative;z-index:1;flex:1;display:flex;flex-direction:row;flex-shrink:0}.step:not(:last-child):after{content:\"\";position:relative;z-index:1;flex:auto;height:1px;min-width:30px;border-top:2px solid #b2bccc;align-self:center;margin-left:5px;margin-right:5px}.step-container{display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0;border:2px solid #b2bccc;border-radius:50%;background-color:#fff;pointer-events:none}.step-container-normal{width:40px;height:40px}.step-container-small{width:22.5px;height:22.5px}.step-number{color:#b2bccc;font-size:15.5px;font-style:normal;font-weight:var(--lxFontNormal, 400);line-height:20px;width:100%;height:100%;padding-top:8px;text-align:center}.step-container-small .step-number{padding-top:0}.step-title{width:max-content;top:50px;position:absolute}.check-icon{font-size:20px;color:#0070f2}.small-icon{position:relative;font-size:var(--lxFontSmallSize, 12px)}@supports (-moz-appearance: none){.small-icon{top:-1px}}.content{margin-top:48px;height:100%}.step:first-child{justify-content:flex-start}.step:first-child .step-title{left:0}.step:not(:first-child):not(:last-child) .step-container{align-self:center}.step:not(:first-child):not(:last-child) .step-container .step-title{align-self:center}.step:last-child{justify-content:flex-end;align-items:flex-end;text-align:right;flex:0 0 auto}.step:last-child .step-container .step-title{align-self:flex-end;right:0}.step:last-child .step-number{margin-right:40%}.step:nth-child(n+19):last-child .step-number{margin-right:31%}.step-container.step-container-active{background-color:#0070f2;border-color:#0070f2}.step-number-active{color:#fff}.step.step-completed:not(:last-child):after{border-color:#0070f2}.step-container.step-container-completed{border-color:#0070f2}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: CdkStepperModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
1236
900
|
}
|
1237
901
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StepperComponent, decorators: [{
|
1238
902
|
type: Component,
|
1239
903
|
args: [{ selector: 'lx-stepper', standalone: true, imports: [CommonModule, CdkStepperModule], providers: [{ provide: CdkStepper, useExisting: StepperComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul class=\"stepper\">\n @for (step of steps; track step.label; let i = $index) {\n <li class=\"step\" [ngClass]=\"{ 'step-completed': isCompleted(i) }\">\n <div\n class=\"step-container\"\n [class]=\"isSmallVariant ? 'step-container-small' : 'step-container-normal'\"\n [ngClass]=\"{ 'step-container-active': isActiveStep(i), 'step-container-completed': isCompleted(i) }\"\n >\n <div class=\"step-number\" [ngClass]=\"{ 'step-number-active': isActiveStep(i) }\">\n @if (isCompleted(i)) {\n <i [class]=\"'far fa-check check-icon'\" [ngClass]=\"{ 'small-icon': isSmallVariant }\"></i>\n } @else if (!isSmallVariant) {\n {{ i + 1 }}\n }\n </div>\n @if (!isSmallVariant) {\n <div class=\"step-title\">\n {{ step.label }}\n </div>\n }\n </div>\n </li>\n }\n</ul>\n@if (selected) {\n <div class=\"content\">\n <ng-container [ngTemplateOutlet]=\"selected!.content\" />\n </div>\n}\n", styles: [".stepper{display:flex;position:relative;align-items:center;padding-left:0}.step{position:relative;z-index:1;flex:1;display:flex;flex-direction:row;flex-shrink:0}.step:not(:last-child):after{content:\"\";position:relative;z-index:1;flex:auto;height:1px;min-width:30px;border-top:2px solid #b2bccc;align-self:center;margin-left:5px;margin-right:5px}.step-container{display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0;border:2px solid #b2bccc;border-radius:50%;background-color:#fff;pointer-events:none}.step-container-normal{width:40px;height:40px}.step-container-small{width:22.5px;height:22.5px}.step-number{color:#b2bccc;font-size:15.5px;font-style:normal;font-weight:var(--lxFontNormal, 400);line-height:20px;width:100%;height:100%;padding-top:8px;text-align:center}.step-container-small .step-number{padding-top:0}.step-title{width:max-content;top:50px;position:absolute}.check-icon{font-size:20px;color:#0070f2}.small-icon{position:relative;font-size:var(--lxFontSmallSize, 12px)}@supports (-moz-appearance: none){.small-icon{top:-1px}}.content{margin-top:48px;height:100%}.step:first-child{justify-content:flex-start}.step:first-child .step-title{left:0}.step:not(:first-child):not(:last-child) .step-container{align-self:center}.step:not(:first-child):not(:last-child) .step-container .step-title{align-self:center}.step:last-child{justify-content:flex-end;align-items:flex-end;text-align:right;flex:0 0 auto}.step:last-child .step-container .step-title{align-self:flex-end;right:0}.step:last-child .step-number{margin-right:40%}.step:nth-child(n+19):last-child .step-number{margin-right:31%}.step-container.step-container-active{background-color:#0070f2;border-color:#0070f2}.step-number-active{color:#fff}.step.step-completed:not(:last-child):after{border-color:#0070f2}.step-container.step-container-completed{border-color:#0070f2}\n"] }]
|
1240
|
-
}], ctorParameters: () => [{ type: i1$
|
904
|
+
}], ctorParameters: () => [{ type: i1$2.Directionality }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }] });
|
1241
905
|
|
1242
906
|
class TableHeaderComponent {
|
1243
907
|
constructor(elmentRef, changeDetection) {
|
@@ -2217,6 +1881,227 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
2217
1881
|
}]
|
2218
1882
|
}] });
|
2219
1883
|
|
1884
|
+
function toCdkX(x) {
|
1885
|
+
switch (x) {
|
1886
|
+
case 'left':
|
1887
|
+
return 'start';
|
1888
|
+
case 'center':
|
1889
|
+
return 'center';
|
1890
|
+
case 'right':
|
1891
|
+
return 'end';
|
1892
|
+
}
|
1893
|
+
}
|
1894
|
+
function invertCdkX(x) {
|
1895
|
+
switch (x) {
|
1896
|
+
case 'start':
|
1897
|
+
return 'end';
|
1898
|
+
case 'center':
|
1899
|
+
return 'center';
|
1900
|
+
case 'end':
|
1901
|
+
return 'start';
|
1902
|
+
}
|
1903
|
+
}
|
1904
|
+
function invertCdkY(x) {
|
1905
|
+
switch (x) {
|
1906
|
+
case 'top':
|
1907
|
+
return 'bottom';
|
1908
|
+
case 'center':
|
1909
|
+
return 'center';
|
1910
|
+
case 'bottom':
|
1911
|
+
return 'top';
|
1912
|
+
}
|
1913
|
+
}
|
1914
|
+
function offsetYDirection(x) {
|
1915
|
+
switch (x) {
|
1916
|
+
case 'top':
|
1917
|
+
return -6;
|
1918
|
+
case 'center':
|
1919
|
+
return 0;
|
1920
|
+
case 'bottom':
|
1921
|
+
return 6;
|
1922
|
+
}
|
1923
|
+
}
|
1924
|
+
function offsetXDirection(position) {
|
1925
|
+
switch (position.y) {
|
1926
|
+
case 'center':
|
1927
|
+
switch (position.x) {
|
1928
|
+
case 'left':
|
1929
|
+
return -6;
|
1930
|
+
case 'center':
|
1931
|
+
return 0;
|
1932
|
+
case 'right':
|
1933
|
+
return 6;
|
1934
|
+
}
|
1935
|
+
case 'top':
|
1936
|
+
case 'bottom':
|
1937
|
+
switch (position.x) {
|
1938
|
+
case 'left':
|
1939
|
+
return 30;
|
1940
|
+
case 'center':
|
1941
|
+
return 0;
|
1942
|
+
case 'right':
|
1943
|
+
return -30;
|
1944
|
+
}
|
1945
|
+
}
|
1946
|
+
}
|
1947
|
+
function toCdkPosition(position) {
|
1948
|
+
return {
|
1949
|
+
originX: toCdkX(position.x),
|
1950
|
+
originY: position.y,
|
1951
|
+
overlayX: invertCdkX(toCdkX(position.x)),
|
1952
|
+
overlayY: invertCdkY(position.y),
|
1953
|
+
offsetY: offsetYDirection(position.y),
|
1954
|
+
offsetX: offsetXDirection(position)
|
1955
|
+
};
|
1956
|
+
}
|
1957
|
+
|
1958
|
+
function isValidX(x) {
|
1959
|
+
return ['left', 'center', 'right'].includes(x);
|
1960
|
+
}
|
1961
|
+
function isValidY(y) {
|
1962
|
+
return ['top', 'center', 'bottom'].includes(y);
|
1963
|
+
}
|
1964
|
+
|
1965
|
+
class TooltipComponent {
|
1966
|
+
constructor() {
|
1967
|
+
this.content = '';
|
1968
|
+
this.isHtmlContent = false;
|
1969
|
+
this.position = {
|
1970
|
+
x: 'center',
|
1971
|
+
y: 'top'
|
1972
|
+
};
|
1973
|
+
}
|
1974
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
1975
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TooltipComponent, isStandalone: true, selector: "lx-tooltip", inputs: { content: "content", isHtmlContent: "isHtmlContent", position: "position" }, host: { attributes: { "role": "tooltip" } }, ngImport: i0, template: "<div *ngIf=\"!isHtmlContent; else htmlTooltip\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\">{{ content }}</div>\n<ng-template #htmlTooltip>\n <div [innerHtml]=\"content\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\"></div>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin:5px}div{background-color:#292929;color:#fff;border:0 solid transparent;border-radius:5px;opacity:1;font-size:var(--lxFontSmallSize, 12px);font-weight:var(--lxFontNormal, 400);text-shadow:0 1px black;text-align:left;word-wrap:break-word;line-height:16px;max-width:280px;min-width:50px;padding:6px 10px;overflow:hidden}.y-bottom:after,.y-top:after,.x-left:after,.x-right:after{content:\" \";position:absolute;border-width:5px;border-style:solid;border-color:#292929 transparent transparent transparent}.y-top:after{top:100%;margin-left:-5px}.y-bottom:after{top:0;margin-left:-5px;transform-origin:center top;transform:rotate(180deg)}.y-center:after{top:50%;margin-left:-5px;margin-top:-10px}.y-top.x-center:after,.y-bottom.x-center:after{left:50%}.y-top.x-left:after,.y-bottom.x-left:after{right:10px}.y-top.x-right:after,.y-bottom.x-right:after{left:10px}.y-center.x-right:after{left:0;transform-origin:left center;transform:rotate(90deg)}.y-center.x-left:after{left:100%;transform-origin:right center;transform:rotate(-90deg)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
1976
|
+
}
|
1977
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TooltipComponent, decorators: [{
|
1978
|
+
type: Component,
|
1979
|
+
args: [{ selector: 'lx-tooltip', standalone: true, imports: [NgIf, NgClass], host: { role: 'tooltip' }, template: "<div *ngIf=\"!isHtmlContent; else htmlTooltip\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\">{{ content }}</div>\n<ng-template #htmlTooltip>\n <div [innerHtml]=\"content\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\"></div>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin:5px}div{background-color:#292929;color:#fff;border:0 solid transparent;border-radius:5px;opacity:1;font-size:var(--lxFontSmallSize, 12px);font-weight:var(--lxFontNormal, 400);text-shadow:0 1px black;text-align:left;word-wrap:break-word;line-height:16px;max-width:280px;min-width:50px;padding:6px 10px;overflow:hidden}.y-bottom:after,.y-top:after,.x-left:after,.x-right:after{content:\" \";position:absolute;border-width:5px;border-style:solid;border-color:#292929 transparent transparent transparent}.y-top:after{top:100%;margin-left:-5px}.y-bottom:after{top:0;margin-left:-5px;transform-origin:center top;transform:rotate(180deg)}.y-center:after{top:50%;margin-left:-5px;margin-top:-10px}.y-top.x-center:after,.y-bottom.x-center:after{left:50%}.y-top.x-left:after,.y-bottom.x-left:after{right:10px}.y-top.x-right:after,.y-bottom.x-right:after{left:10px}.y-center.x-right:after{left:0;transform-origin:left center;transform:rotate(90deg)}.y-center.x-left:after{left:100%;transform-origin:right center;transform:rotate(-90deg)}\n"] }]
|
1980
|
+
}], propDecorators: { content: [{
|
1981
|
+
type: Input
|
1982
|
+
}], isHtmlContent: [{
|
1983
|
+
type: Input
|
1984
|
+
}], position: [{
|
1985
|
+
type: Input
|
1986
|
+
}] } });
|
1987
|
+
|
1988
|
+
/**
|
1989
|
+
* Tooltip directive is used to show a tooltip on hover or focus on an element.
|
1990
|
+
*
|
1991
|
+
* ## Usage
|
1992
|
+
*
|
1993
|
+
* 1. Import the `TooltipDirective` component from `@leanix/components` in your module or standalone copmonent where you want to use the component.
|
1994
|
+
*
|
1995
|
+
* ```ts
|
1996
|
+
* import { TooltipDirective } from '@leanix/components';
|
1997
|
+
* ```
|
1998
|
+
*/
|
1999
|
+
class TooltipDirective {
|
2000
|
+
/** The position of the tooltip. */
|
2001
|
+
set lxTooltipPosition(value) {
|
2002
|
+
this.position = {
|
2003
|
+
x: value && isValidX(value.x) ? value.x : 'center',
|
2004
|
+
y: value && isValidY(value.y) ? value.y : 'top'
|
2005
|
+
};
|
2006
|
+
}
|
2007
|
+
get positionStrategy() {
|
2008
|
+
return this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([toCdkPosition(this.position)]);
|
2009
|
+
}
|
2010
|
+
constructor(overlayPositionBuilder, elementRef, overlay, ariaDescriber) {
|
2011
|
+
this.overlayPositionBuilder = overlayPositionBuilder;
|
2012
|
+
this.elementRef = elementRef;
|
2013
|
+
this.overlay = overlay;
|
2014
|
+
this.ariaDescriber = ariaDescriber;
|
2015
|
+
this.position = {
|
2016
|
+
x: 'center',
|
2017
|
+
y: 'top'
|
2018
|
+
};
|
2019
|
+
/** Whether the tooltip content is HTML. */
|
2020
|
+
this.lxTooltipIsHtmlContent = false;
|
2021
|
+
this.mouseOrFocusOnHost = false;
|
2022
|
+
}
|
2023
|
+
ngOnChanges(changes) {
|
2024
|
+
if (this.overlayRef && changes['lxTooltipPosition']) {
|
2025
|
+
this.overlayRef.updatePositionStrategy(this.positionStrategy);
|
2026
|
+
}
|
2027
|
+
if (this.tooltipRef) {
|
2028
|
+
if (changes['lxTooltipPosition']) {
|
2029
|
+
this.tooltipRef.instance.position = this.position;
|
2030
|
+
}
|
2031
|
+
if (changes['lxTooltipIsHtmlContent']) {
|
2032
|
+
this.tooltipRef.instance.isHtmlContent = this.lxTooltipIsHtmlContent;
|
2033
|
+
}
|
2034
|
+
if (changes['content']) {
|
2035
|
+
if (this.content) {
|
2036
|
+
this.tooltipRef.instance.content = this.content;
|
2037
|
+
this.overlayRef?.updatePosition();
|
2038
|
+
}
|
2039
|
+
else {
|
2040
|
+
this.overlayRef?.detach();
|
2041
|
+
}
|
2042
|
+
}
|
2043
|
+
}
|
2044
|
+
}
|
2045
|
+
/** @internal */
|
2046
|
+
show() {
|
2047
|
+
this.mouseOrFocusOnHost = true;
|
2048
|
+
setTimeout(() => {
|
2049
|
+
if (!this.overlayRef?.hasAttached() && this.mouseOrFocusOnHost && this.content) {
|
2050
|
+
this.overlayRef = this.overlay.create({ positionStrategy: this.positionStrategy });
|
2051
|
+
const tooltipPortal = new ComponentPortal(TooltipComponent);
|
2052
|
+
this.tooltipRef = this.overlayRef.attach(tooltipPortal);
|
2053
|
+
this.tooltipRef.instance.content = this.content;
|
2054
|
+
this.tooltipRef.instance.isHtmlContent = this.lxTooltipIsHtmlContent;
|
2055
|
+
this.tooltipRef.instance.position = this.position;
|
2056
|
+
this.ariaDescriber.describe(this.elementRef.nativeElement, this.tooltipRef.location.nativeElement);
|
2057
|
+
}
|
2058
|
+
}, this.lxTooltipDelay ?? 90);
|
2059
|
+
}
|
2060
|
+
ngOnDestroy() {
|
2061
|
+
this.mouseOrFocusOnHost = false;
|
2062
|
+
this.overlayRef?.dispose();
|
2063
|
+
}
|
2064
|
+
/** @internal */
|
2065
|
+
hide() {
|
2066
|
+
this.mouseOrFocusOnHost = false;
|
2067
|
+
this.ariaDescriber.removeDescription(this.elementRef.nativeElement, this.tooltipRef?.location.nativeElement);
|
2068
|
+
this.overlayRef?.dispose();
|
2069
|
+
}
|
2070
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TooltipDirective, deps: [{ token: i1$3.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1$3.Overlay }, { token: i2.AriaDescriber }], target: i0.ɵɵFactoryTarget.Directive }); }
|
2071
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: TooltipDirective, isStandalone: true, selector: "[lxTooltip]", inputs: { content: ["lxTooltip", "content"], lxTooltipPosition: "lxTooltipPosition", lxTooltipDelay: "lxTooltipDelay", lxTooltipIsHtmlContent: "lxTooltipIsHtmlContent" }, host: { listeners: { "mouseenter": "show()", "focus": "show()", "mouseleave": "hide()", "click": "hide()", "blur": "hide()" } }, usesOnChanges: true, ngImport: i0 }); }
|
2072
|
+
}
|
2073
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TooltipDirective, decorators: [{
|
2074
|
+
type: Directive,
|
2075
|
+
args: [{
|
2076
|
+
selector: '[lxTooltip]',
|
2077
|
+
standalone: true
|
2078
|
+
}]
|
2079
|
+
}], ctorParameters: () => [{ type: i1$3.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i1$3.Overlay }, { type: i2.AriaDescriber }], propDecorators: { content: [{
|
2080
|
+
type: Input,
|
2081
|
+
args: ['lxTooltip']
|
2082
|
+
}], lxTooltipPosition: [{
|
2083
|
+
type: Input
|
2084
|
+
}], lxTooltipDelay: [{
|
2085
|
+
type: Input
|
2086
|
+
}], lxTooltipIsHtmlContent: [{
|
2087
|
+
type: Input
|
2088
|
+
}], show: [{
|
2089
|
+
type: HostListener,
|
2090
|
+
args: ['mouseenter']
|
2091
|
+
}, {
|
2092
|
+
type: HostListener,
|
2093
|
+
args: ['focus']
|
2094
|
+
}], hide: [{
|
2095
|
+
type: HostListener,
|
2096
|
+
args: ['mouseleave']
|
2097
|
+
}, {
|
2098
|
+
type: HostListener,
|
2099
|
+
args: ['click']
|
2100
|
+
}, {
|
2101
|
+
type: HostListener,
|
2102
|
+
args: ['blur']
|
2103
|
+
}] } });
|
2104
|
+
|
2220
2105
|
class LxCoreUiModule {
|
2221
2106
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LxCoreUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
2222
2107
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: LxCoreUiModule, imports: [i1$1.TranslateModule, AfterViewInitDirective,
|
@@ -2235,8 +2120,6 @@ class LxCoreUiModule {
|
|
2235
2120
|
HighlightRangePipe,
|
2236
2121
|
HighlightTermPipe,
|
2237
2122
|
IconScaleComponent,
|
2238
|
-
IntegrationLinkCardComponent,
|
2239
|
-
IntegrationLinkCardGroupComponent,
|
2240
2123
|
LxLinkifyPipe,
|
2241
2124
|
LxUnlinkifyPipe,
|
2242
2125
|
LxTimeAgo,
|
@@ -2271,8 +2154,6 @@ class LxCoreUiModule {
|
|
2271
2154
|
HighlightRangePipe,
|
2272
2155
|
HighlightTermPipe,
|
2273
2156
|
IconScaleComponent,
|
2274
|
-
IntegrationLinkCardComponent,
|
2275
|
-
IntegrationLinkCardGroupComponent,
|
2276
2157
|
LxLinkifyPipe,
|
2277
2158
|
LxUnlinkifyPipe,
|
2278
2159
|
LxTimeAgo,
|
@@ -2297,7 +2178,6 @@ class LxCoreUiModule {
|
|
2297
2178
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LxCoreUiModule, providers: [LxTimeAgo], imports: [TranslateModule.forChild(),
|
2298
2179
|
BadgeComponent,
|
2299
2180
|
BannerComponent,
|
2300
|
-
IntegrationLinkCardComponent,
|
2301
2181
|
StepperComponent,
|
2302
2182
|
EmptyStateComponent] }); }
|
2303
2183
|
}
|
@@ -2322,8 +2202,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
2322
2202
|
HighlightRangePipe,
|
2323
2203
|
HighlightTermPipe,
|
2324
2204
|
IconScaleComponent,
|
2325
|
-
IntegrationLinkCardComponent,
|
2326
|
-
IntegrationLinkCardGroupComponent,
|
2327
2205
|
LxLinkifyPipe,
|
2328
2206
|
LxUnlinkifyPipe,
|
2329
2207
|
LxTimeAgo,
|
@@ -2361,8 +2239,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
2361
2239
|
HighlightRangePipe,
|
2362
2240
|
HighlightTermPipe,
|
2363
2241
|
IconScaleComponent,
|
2364
|
-
IntegrationLinkCardComponent,
|
2365
|
-
IntegrationLinkCardGroupComponent,
|
2366
2242
|
LxLinkifyPipe,
|
2367
2243
|
LxUnlinkifyPipe,
|
2368
2244
|
LxTimeAgo,
|
@@ -5560,7 +5436,7 @@ class KeyboardSortableItemDirective {
|
|
5560
5436
|
}
|
5561
5437
|
}
|
5562
5438
|
}
|
5563
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KeyboardSortableItemDirective, deps: [{ token: i1$7.CdkDrag }, { token: i1$
|
5439
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KeyboardSortableItemDirective, deps: [{ token: i1$7.CdkDrag }, { token: i1$3.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1$3.Overlay }, { token: i2.AriaDescriber }], target: i0.ɵɵFactoryTarget.Directive }); }
|
5564
5440
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: KeyboardSortableItemDirective, isStandalone: true, selector: "[lxKeyboardSortableItem]", inputs: { allItemsData: ["lxKeyboardSortableItem", "allItemsData"], itemData: ["lxKeyboardItemData", "itemData"], isSortingByKeyboard: "isSortingByKeyboard", itemBeingSorted: ["lxKeyboardItemBeingSorted", "itemBeingSorted"] }, outputs: { isSortingByKeyboardChange: "isSortingByKeyboardChange", itemBeingSortedChange: "lxKeyboardItemBeingSortedChange", sortItemsWithKeyboard: "sortItemsWithKeyboard", focusWithKeyboard: "focusWithKeyboard" }, host: { listeners: { "keyup.tab": "focusViaKeyboard()", "keydown.enter": "enterSortingModeEnabledByKeyboard($event)", "keydown.space": "enterSortingModeEnabledByKeyboard($event)", "blur": "leaveSortingModeEnabledByKeyboard($event)", "keydown.esc": "leaveSortingModeEnabledByKeyboard($event)", "keydown.arrowUp": "sort($event)", "keydown.arrowDown": "sort($event)" }, properties: { "attr.lxTooltip": "this.tooltipDirective", "class.isBeingSortedByKeyboard": "this.isBeingSorted" } }, usesOnChanges: true, ngImport: i0 }); }
|
5565
5441
|
}
|
5566
5442
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KeyboardSortableItemDirective, decorators: [{
|
@@ -5569,7 +5445,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
5569
5445
|
selector: '[lxKeyboardSortableItem]',
|
5570
5446
|
standalone: true
|
5571
5447
|
}]
|
5572
|
-
}], ctorParameters: () => [{ type: i1$7.CdkDrag }, { type: i1$
|
5448
|
+
}], ctorParameters: () => [{ type: i1$7.CdkDrag }, { type: i1$3.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i1$3.Overlay }, { type: i2.AriaDescriber }], propDecorators: { allItemsData: [{
|
5573
5449
|
type: Input,
|
5574
5450
|
args: ['lxKeyboardSortableItem']
|
5575
5451
|
}], itemData: [{
|
@@ -6877,13 +6753,13 @@ class OptionsDropdownComponent {
|
|
6877
6753
|
const newEvent = new KeyboardEvent(event.type, newEventOptions);
|
6878
6754
|
this.lxButton?.dispatchEvent(newEvent);
|
6879
6755
|
}
|
6880
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: OptionsDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$
|
6756
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: OptionsDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$3.ScrollStrategyOptions }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
6881
6757
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: OptionsDropdownComponent, isStandalone: true, selector: "lx-options-dropdown", inputs: { align: "align", closeOnScroll: "closeOnScroll", disabled: "disabled", maxHeight: "maxHeight", closeOnSelect: "closeOnSelect", overlayPositioning: "overlayPositioning", dropdownClass: "dropdownClass", isFlexEnabledTriggerContainer: "isFlexEnabledTriggerContainer" }, outputs: { opened: "opened", closed: "closed", closedWithoutSelection: "closedWithoutSelection" }, host: { properties: { "style.display": "this.displayStyle" } }, queries: [{ propertyName: "trigger", first: true, predicate: KeyboardActionSourceDirective, descendants: true }, { propertyName: "_options", predicate: OptionComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"!overlayPositioning\">\n <div lxAutoclose (autoclose)=\"closeDropdown()\">\n <div class=\"triggerContainer\" [ngClass]=\"{ flexDisplay: isFlexEnabledTriggerContainer }\" (click)=\"toggleOpen()\">\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\" />\n </div>\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate\" />\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"overlayPositioning\">\n <div class=\"overlayOrigin triggerContainer\" (click)=\"toggleOpen()\" cdkOverlayOrigin #selectOrigin=\"cdkOverlayOrigin\">\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\" />\n </div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"selectOrigin\"\n [cdkConnectedOverlayScrollStrategy]=\"overlayScrollStrategy\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n (overlayOutsideClick)=\"closeDropdown(); closedWithoutSelection.emit()\"\n >\n <div class=\"overlayDropdown\">\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate\" />\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #triggerTemplate>\n <ng-content select=\"[lxKeyboardActionSource]\" />\n</ng-template>\n\n<ng-template #dropdownTemplate>\n <ul\n *ngIf=\"open\"\n [id]=\"listboxId\"\n [class]=\"dropdownClass\"\n [class.left]=\"align === 'left'\"\n [class.showScrollbar]=\"maxHeight !== 'none'\"\n [style.max-height]=\"maxHeight\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.aria-owns]=\"optionIds.join(' ')\"\n >\n <ng-content />\n </ul>\n</ng-template>\n", styles: [":host{position:relative}.overlayDropdown ul{position:static}ul{position:absolute;background-color:#fff;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;border:solid 1px #e1e5eb;text-align:left;list-style:none;margin:0;padding-left:0;z-index:20;white-space:nowrap}ul::-webkit-scrollbar{width:.5em;height:.5em;background-color:transparent}ul::-webkit-scrollbar-thumb{background-color:#c2c9d6;border-radius:6px}ul::-webkit-scrollbar-track-piece{background-color:transparent}ul.left{right:0;padding-right:0}ul.showScrollbar{overflow-y:auto}.triggerContainer{display:inline-block}.flexDisplay{display:flex}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: AutocloseDirective, selector: "[lxAutoclose]", inputs: ["autocloseGroup"], outputs: ["autoclose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
6882
6758
|
}
|
6883
6759
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: OptionsDropdownComponent, decorators: [{
|
6884
6760
|
type: Component,
|
6885
6761
|
args: [{ selector: 'lx-options-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgTemplateOutlet, NgClass, CdkOverlayOrigin, CdkConnectedOverlay, AutocloseDirective], template: "<ng-container *ngIf=\"!overlayPositioning\">\n <div lxAutoclose (autoclose)=\"closeDropdown()\">\n <div class=\"triggerContainer\" [ngClass]=\"{ flexDisplay: isFlexEnabledTriggerContainer }\" (click)=\"toggleOpen()\">\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\" />\n </div>\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate\" />\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"overlayPositioning\">\n <div class=\"overlayOrigin triggerContainer\" (click)=\"toggleOpen()\" cdkOverlayOrigin #selectOrigin=\"cdkOverlayOrigin\">\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\" />\n </div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"selectOrigin\"\n [cdkConnectedOverlayScrollStrategy]=\"overlayScrollStrategy\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n (overlayOutsideClick)=\"closeDropdown(); closedWithoutSelection.emit()\"\n >\n <div class=\"overlayDropdown\">\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate\" />\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #triggerTemplate>\n <ng-content select=\"[lxKeyboardActionSource]\" />\n</ng-template>\n\n<ng-template #dropdownTemplate>\n <ul\n *ngIf=\"open\"\n [id]=\"listboxId\"\n [class]=\"dropdownClass\"\n [class.left]=\"align === 'left'\"\n [class.showScrollbar]=\"maxHeight !== 'none'\"\n [style.max-height]=\"maxHeight\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.aria-owns]=\"optionIds.join(' ')\"\n >\n <ng-content />\n </ul>\n</ng-template>\n", styles: [":host{position:relative}.overlayDropdown ul{position:static}ul{position:absolute;background-color:#fff;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;border:solid 1px #e1e5eb;text-align:left;list-style:none;margin:0;padding-left:0;z-index:20;white-space:nowrap}ul::-webkit-scrollbar{width:.5em;height:.5em;background-color:transparent}ul::-webkit-scrollbar-thumb{background-color:#c2c9d6;border-radius:6px}ul::-webkit-scrollbar-track-piece{background-color:transparent}ul.left{right:0;padding-right:0}ul.showScrollbar{overflow-y:auto}.triggerContainer{display:inline-block}.flexDisplay{display:flex}\n"] }]
|
6886
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$
|
6762
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$3.ScrollStrategyOptions }, { type: i0.Renderer2 }], propDecorators: { align: [{
|
6887
6763
|
type: Input
|
6888
6764
|
}], closeOnScroll: [{
|
6889
6765
|
type: Input
|
@@ -7312,7 +7188,7 @@ class PickerComponent {
|
|
7312
7188
|
}
|
7313
7189
|
propagateChange(_value) { }
|
7314
7190
|
onTouched() { }
|
7315
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PickerComponent, deps: [{ token: i1$
|
7191
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PickerComponent, deps: [{ token: i1$2.Directionality }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
7316
7192
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: PickerComponent, isStandalone: true, selector: "lx-picker", inputs: { listBoxAriaLabel: "listBoxAriaLabel", listBoxAriaLabelledBy: "listBoxAriaLabelledBy", openDirection: "openDirection" }, host: { listeners: { "document:keydown": "manageKeyboardEvents($event)" } }, providers: [
|
7317
7193
|
{
|
7318
7194
|
provide: NG_VALUE_ACCESSOR,
|
@@ -7330,7 +7206,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
7330
7206
|
useExisting: forwardRef(() => PickerComponent)
|
7331
7207
|
}
|
7332
7208
|
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, AutocloseDirective], template: "<div class=\"pickerContainer\">\n <ng-content select=\"[lxPickerTrigger]\" />\n <ul\n class=\"pickerOptions\"\n *ngIf=\"open\"\n lxAutoclose\n (autoclose)=\"closePicker()\"\n role=\"listbox\"\n [style.margin-left]=\"leftOffset\"\n [attr.aria-activedescendant]=\"activeDescendantsId\"\n [attr.aria-label]=\"listBoxAriaLabel\"\n [attr.aria-labelledby]=\"listBoxAriaLabelledBy\"\n >\n <ng-content />\n </ul>\n</div>\n", styles: [":host{display:inline-block;width:100%;position:relative}.pickerOptions{position:absolute;background-color:#fff;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;border:solid 1px #e1e5eb;padding:4px;z-index:20;width:185px}\n"] }]
|
7333
|
-
}], ctorParameters: () => [{ type: i1$
|
7209
|
+
}], ctorParameters: () => [{ type: i1$2.Directionality }, { type: i0.ChangeDetectorRef }], propDecorators: { listBoxAriaLabel: [{
|
7334
7210
|
type: Input
|
7335
7211
|
}], listBoxAriaLabelledBy: [{
|
7336
7212
|
type: Input
|
@@ -9105,7 +8981,7 @@ class ModalComponent {
|
|
9105
8981
|
trapFocusInModal(hostElement) {
|
9106
8982
|
this.focusTrap.create(hostElement);
|
9107
8983
|
}
|
9108
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ModalComponent, deps: [{ token: i1$
|
8984
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ModalComponent, deps: [{ token: i1$3.Overlay }, { token: i0.Renderer2 }, { token: MODAL_CLOSE, optional: true }, { token: i2.ConfigurableFocusTrapFactory }], target: i0.ɵɵFactoryTarget.Component }); }
|
9109
8985
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ModalComponent, isStandalone: true, selector: "lx-modal", inputs: { open: "open", showCloseButton: "showCloseButton", showBackButton: "showBackButton", verticalScroll: "verticalScroll", size: "size", minWidth: "minWidth", isFocusTrap: "isFocusTrap", canModalBeClosed: "canModalBeClosed" }, outputs: { close: "close", back: "back" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "header", first: true, predicate: ModalHeaderComponent, descendants: true }, { propertyName: "footer", first: true, predicate: ModalFooterComponent, descendants: true }, { propertyName: "explicitContent", first: true, predicate: ModalContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "cdkPortal", first: true, predicate: CdkPortal, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal(closeLocation.CloseButton)\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\" />\n <div class=\"modalContentContainer\" [class.lxThinScrollbar]=\"verticalScroll\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\" />\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content />\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--withFooter.lxmodal--fullscreen:not(.lxmodal--verticalScroll) .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;right:36px;top:12px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;height:32px;width:32px;z-index:999;right:10px;top:20px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog .modalContentContainer{padding:16px 16px 0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{padding:16px;max-height:calc(84vh - 136px)}.lxmodal--dialog-large .modalContentContainer{padding:16px;height:calc(100% - 136px)}.modalContentContainer{flex:1}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], animations: [
|
9110
8986
|
trigger('modal', [
|
9111
8987
|
transition(':enter', [style({ opacity: 0 }), animate('0.15s', style({ opacity: 1 }))]),
|
@@ -9121,7 +8997,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
9121
8997
|
transition(':leave', animate('0.15s', style({ opacity: 0 })))
|
9122
8998
|
])
|
9123
8999
|
], standalone: true, imports: [PortalModule, NgIf, NgTemplateOutlet, TranslateModule], template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal(closeLocation.CloseButton)\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\" />\n <div class=\"modalContentContainer\" [class.lxThinScrollbar]=\"verticalScroll\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\" />\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content />\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--withFooter.lxmodal--fullscreen:not(.lxmodal--verticalScroll) .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;right:36px;top:12px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;height:32px;width:32px;z-index:999;right:10px;top:20px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog .modalContentContainer{padding:16px 16px 0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{padding:16px;max-height:calc(84vh - 136px)}.lxmodal--dialog-large .modalContentContainer{padding:16px;height:calc(100% - 136px)}.modalContentContainer{flex:1}\n"] }]
|
9124
|
-
}], ctorParameters: () => [{ type: i1$
|
9000
|
+
}], ctorParameters: () => [{ type: i1$3.Overlay }, { type: i0.Renderer2 }, { type: i5.Observable, decorators: [{
|
9125
9001
|
type: Optional
|
9126
9002
|
}, {
|
9127
9003
|
type: Inject,
|
@@ -9847,5 +9723,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
9847
9723
|
* Generated bundle index. Do not edit.
|
9848
9724
|
*/
|
9849
9725
|
|
9850
|
-
export { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, AfterViewInitDirective, AutocloseDirective, AutocloseGroupService, AutofocusDirective, BACKSPACE, BadgeComponent, BannerComponent, BaseSelectDirective, BasicDropdownComponent, BasicDropdownItemComponent, BrPipe, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CURRENCY_SYMBOL_MAP, CardComponent, CdkOptionsDropdownComponent, CdkOptionsSubDropdownComponent, CollapsibleComponent, ContentPanelComponent, ContenteditableDirective, ContrastColorPipe, CounterComponent, CurrencyInputComponent, CurrencySymbolComponent, CustomDatePipe, DATEPICKER_CONTROL_VALUE_ACCESSOR, DATE_FN_LOCALE, DATE_FORMATS, DateFormatter, DateInputComponent, DatePickerComponent, DatepickerConfig, DatepickerUiModule, DragAndDropListComponent, DragAndDropListItemComponent, END, ENTER, ESCAPE, EllipsisComponent, EmptyStateComponent, ErrorMessageComponent, ExpandedDropdownComponent, FORM_CONTROL_ERROR_DISPLAY_STRATEGY, FORM_CONTROL_ERROR_NAMESPACE, FilterSelectionPipe, FilterTermPipe, FormErrorComponent, FormErrorDirective, FormSubmitDirective, FormatNumberPipe, GLOBAL_TRANSLATION_OPTIONS, HOME, HighlightRangePipe, HighlightTermPipe, IconComponent, IconScaleComponent, InputComponent,
|
9726
|
+
export { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, AfterViewInitDirective, AutocloseDirective, AutocloseGroupService, AutofocusDirective, BACKSPACE, BadgeComponent, BannerComponent, BaseSelectDirective, BasicDropdownComponent, BasicDropdownItemComponent, BrPipe, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CURRENCY_SYMBOL_MAP, CardComponent, CdkOptionsDropdownComponent, CdkOptionsSubDropdownComponent, CollapsibleComponent, ContentPanelComponent, ContenteditableDirective, ContrastColorPipe, CounterComponent, CurrencyInputComponent, CurrencySymbolComponent, CustomDatePipe, DATEPICKER_CONTROL_VALUE_ACCESSOR, DATE_FN_LOCALE, DATE_FORMATS, DateFormatter, DateInputComponent, DatePickerComponent, DatepickerConfig, DatepickerUiModule, DragAndDropListComponent, DragAndDropListItemComponent, END, ENTER, ESCAPE, EllipsisComponent, EmptyStateComponent, ErrorMessageComponent, ExpandedDropdownComponent, FORM_CONTROL_ERROR_DISPLAY_STRATEGY, FORM_CONTROL_ERROR_NAMESPACE, FilterSelectionPipe, FilterTermPipe, FormErrorComponent, FormErrorDirective, FormSubmitDirective, FormatNumberPipe, GLOBAL_TRANSLATION_OPTIONS, HOME, HighlightRangePipe, HighlightTermPipe, IconComponent, IconScaleComponent, InputComponent, KeyboardActionSourceDirective, KeyboardSelectAction, KeyboardSelectDirective, LOCALE_FN, LX_ELLIPSIS_DEBOUNCE_ON_RESIZE, LxCoreUiModule, LxDragAndDropListModule, LxFormsModule, LxIsUuidPipe, LxLinkifyPipe, LxModalModule, LxPopoverUiModule, LxTabUiModule, LxTimeAgo, LxTranslatePipe, LxUnlinkifyPipe, MODAL_CLOSE, MarkInvalidDirective, MarkdownPipe, MaxLengthCounterDirective, ModalCloseClickLocation, ModalComponent, ModalContentDirective, ModalFooterComponent, ModalHeaderComponent, MultiSelectComponent, NbspPipe, OptionComponent, OptionGroupComponent, OptionGroupDropdownComponent, OptionsDropdownComponent, OptionsSubDropdownComponent, PickerComponent, PickerOptionComponent, PickerTriggerDirective, PillItemComponent, PillListComponent, PopoverClickDirective, PopoverComponent, PopoverContentDirective, PopoverHoverDirective, RELEVANCE_SORTING_KEY, ResizeObserverService, ResponsiveInputComponent, SPACE, SelectDropdownDirective, SelectListComponent, SelectableItemDirective, SelectedOptionDirective, SingleSelectComponent, SkeletonComponent, SortPipe, Sorting, SortingDropdownComponent, SortingDropdownTriggerComponent, SpinnerComponent, StepperComponent, SwitchComponent, TAB, TabComponent, TabGroupComponent, TableComponent, TableHeaderComponent, TinySpinnerComponent, TokenComponent, TokenizerComponent, TokenizerOverflowPopoverComponent, TooltipComponent, TooltipDirective, TranslationAfterPipe, TranslationBeforePipe, TranslationBetweenPipe, UnescapeCurlyBracesPipe, ValidateDateInForeseeableFuture, ValidateStringNotInArray, ValidateStringNotInArrayAsync, getContrastColor, getTranslationParts, highlightText, isValidHexColor, isValidX, isValidY, provideFormControlErrorDisplayStrategy, provideFormControlErrorNamespace, shorthandHexHandle };
|
9851
9727
|
//# sourceMappingURL=leanix-components.mjs.map
|