@lucca-front/ng 16.4.3 → 16.5.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/button/button.component.d.ts +20 -0
- package/button/index.d.ts +5 -0
- package/button/public-api.d.ts +1 -0
- package/callout/{callout.component.d.ts → callout/callout.component.d.ts} +8 -16
- package/callout/callout-disclosure/callout-disclosure.component.d.ts +13 -0
- package/callout/callout-feedback-item/callout-feedback-item.component.d.ts +5 -0
- package/callout/callout-feedback-list/callout-feedback-list.component.d.ts +12 -0
- package/callout/callout-popover/callout-popover.component.d.ts +50 -0
- package/callout/callout-state.d.ts +7 -0
- package/callout/public-api.d.ts +5 -1
- package/core/portal/index.d.ts +2 -0
- package/core/portal/portal-content.d.ts +2 -0
- package/core/portal/portal.directive.d.ts +13 -0
- package/core/public-api.d.ts +1 -0
- package/dockerRegistry-c4c72252-360b-4df7-8b16-dcbd6f477e82.env +1 -0
- package/esm2022/api/select/input/api-select-input.component.mjs +3 -3
- package/esm2022/button/button.component.mjs +60 -0
- package/esm2022/button/lucca-front-ng-button.mjs +5 -0
- package/esm2022/button/public-api.mjs +2 -0
- package/esm2022/callout/callout/callout.component.mjs +82 -0
- package/esm2022/callout/callout-disclosure/callout-disclosure.component.mjs +41 -0
- package/esm2022/callout/callout-feedback-item/callout-feedback-item.component.mjs +14 -0
- package/esm2022/callout/callout-feedback-list/callout-feedback-list.component.mjs +24 -0
- package/esm2022/callout/callout-popover/callout-popover.component.mjs +164 -0
- package/esm2022/callout/callout-state.mjs +15 -0
- package/esm2022/callout/public-api.mjs +6 -2
- package/esm2022/core/date/native/native-date.adapter.mjs +7 -4
- package/esm2022/core/portal/index.mjs +3 -0
- package/esm2022/core/portal/portal-content.mjs +2 -0
- package/esm2022/core/portal/portal.directive.mjs +43 -0
- package/esm2022/core/public-api.mjs +2 -1
- package/esm2022/core-select/input/select-input.component.mjs +2 -1
- package/esm2022/date/select/date-select-input.component.mjs +3 -3
- package/esm2022/department/select/input/department-select-input.component.mjs +3 -3
- package/esm2022/establishment/select/input/establishment-select-input.component.mjs +3 -3
- package/esm2022/form-field/form-field.component.mjs +4 -4
- package/esm2022/forms/checkboxfield/checkboxfield.component.mjs +3 -4
- package/esm2022/forms/switchfield/switchfield.component.mjs +3 -4
- package/esm2022/forms/textfield/textfield.component.mjs +1 -2
- package/esm2022/icon/icon.component.mjs +4 -6
- package/esm2022/inline-message/inline-message.component.mjs +5 -9
- package/esm2022/input/clearer/clearer.component.mjs +3 -3
- package/esm2022/multi-select/displayer/default-displayer.component.mjs +3 -3
- package/esm2022/multi-select/input/select-input.component.mjs +5 -4
- package/esm2022/new-badge/new-badge.component.mjs +10 -4
- package/esm2022/numeric-badge/numeric-badge.component.mjs +43 -0
- package/esm2022/numeric-badge/public-api.mjs +2 -2
- package/esm2022/qualification/select/input/qualification-select-input.component.mjs +3 -3
- package/esm2022/select/input/select-input.component.mjs +2 -2
- package/esm2022/simple-select/api/api-v3.directive.mjs +8 -3
- package/esm2022/simple-select/api/api-v4.directive.mjs +10 -4
- package/esm2022/simple-select/input/select-input.component.mjs +5 -4
- package/esm2022/user/picture/user-picture.component.mjs +16 -12
- package/esm2022/user/select/input/user-select-input.component.mjs +3 -3
- package/fesm2022/lucca-front-ng-api.mjs +2 -2
- package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-button.mjs +66 -0
- package/fesm2022/lucca-front-ng-button.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-callout.mjs +261 -21
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +1 -0
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +48 -5
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date.mjs +2 -2
- package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-department.mjs +2 -2
- package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-establishment.mjs +2 -2
- package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +3 -3
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +4 -7
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-icon.mjs +3 -5
- package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-inline-message.mjs +4 -8
- package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-input.mjs +2 -2
- package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +6 -5
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-new-badge.mjs +9 -3
- package/fesm2022/lucca-front-ng-new-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-numeric-badge.mjs +12 -6
- package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-qualification.mjs +2 -2
- package/fesm2022/lucca-front-ng-qualification.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-select.mjs +2 -2
- package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select-api.mjs +16 -5
- package/fesm2022/lucca-front-ng-simple-select-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +4 -3
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +15 -11
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/icon/icon.component.d.ts +1 -1
- package/new-badge/new-badge.component.d.ts +1 -0
- package/numeric-badge/{numeric-badge/numeric-badge.component.d.ts → numeric-badge.component.d.ts} +6 -2
- package/numeric-badge/public-api.d.ts +1 -1
- package/package.json +32 -26
- package/src/definitions/select/_select-input.scss +11 -9
- package/user/picture/user-picture.component.d.ts +6 -4
- package/esm2022/callout/callout.component.mjs +0 -79
- package/esm2022/numeric-badge/numeric-badge/numeric-badge.component.mjs +0 -37
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, EventEmitter, booleanAttribute, Component, ChangeDetectionStrategy, Input, Output } from '@angular/core';
|
|
2
|
+
import { InjectionToken, EventEmitter, booleanAttribute, Component, ChangeDetectionStrategy, Input, HostBinding, Output, ViewEncapsulation, inject, ViewContainerRef, ElementRef, numberAttribute, ViewChild } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
|
-
import
|
|
4
|
+
import { NgIf, CommonModule } from '@angular/common';
|
|
5
|
+
import * as i1$1 from '@lucca-front/ng/core';
|
|
6
|
+
import { getIntl, PortalDirective, NgClazz } from '@lucca-front/ng/core';
|
|
7
|
+
import { IconComponent } from '@lucca-front/ng/icon';
|
|
8
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
9
|
+
import { TemplatePortal } from '@angular/cdk/portal';
|
|
10
|
+
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
11
|
+
import { ButtonComponent } from '@lucca-front/ng/button';
|
|
6
12
|
|
|
7
13
|
const LU_CALLOUT_TRANSLATIONS = new InjectionToken('LuCalloutTranslations', {
|
|
8
14
|
factory: () => luCalloutTranslations,
|
|
@@ -19,21 +25,47 @@ const luCalloutTranslations = {
|
|
|
19
25
|
},
|
|
20
26
|
};
|
|
21
27
|
|
|
28
|
+
const CalloutStateMap = {
|
|
29
|
+
success: {
|
|
30
|
+
icon: 'signSuccess',
|
|
31
|
+
palette: 'success',
|
|
32
|
+
},
|
|
33
|
+
warning: {
|
|
34
|
+
icon: 'signWarning',
|
|
35
|
+
palette: 'warning',
|
|
36
|
+
},
|
|
37
|
+
error: {
|
|
38
|
+
icon: 'signError',
|
|
39
|
+
palette: 'error',
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
|
|
22
43
|
class CalloutComponent {
|
|
23
44
|
constructor() {
|
|
24
45
|
this.palette = 'none';
|
|
25
|
-
this.size = 'M';
|
|
26
46
|
this.removable = false;
|
|
27
47
|
this.removed = false;
|
|
28
48
|
this.removedChange = new EventEmitter();
|
|
29
49
|
this.intl = getIntl(LU_CALLOUT_TRANSLATIONS);
|
|
30
50
|
}
|
|
51
|
+
set state(state) {
|
|
52
|
+
const { icon, palette } = CalloutStateMap[state];
|
|
53
|
+
if (this.palette === 'none') {
|
|
54
|
+
this.palette = palette;
|
|
55
|
+
}
|
|
56
|
+
if (!this.icon) {
|
|
57
|
+
this.icon = icon;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
get hiddenAttr() {
|
|
61
|
+
return this.removed ? 'hidden' : null;
|
|
62
|
+
}
|
|
31
63
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CalloutComponent, isStandalone: true, selector: "lu-callout", inputs: { heading: "heading", palette: "palette", size: "size", removable: "removable", icon: "icon",
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CalloutComponent, isStandalone: true, selector: "lu-callout", inputs: { heading: "heading", palette: "palette", size: "size", removable: ["removable", "removable", booleanAttribute], icon: "icon", state: "state", removed: ["removed", "removed", booleanAttribute] }, outputs: { removedChange: "removedChange" }, host: { properties: { "attr.hidden": "this.hiddenAttr" } }, ngImport: i0, template: "<div class=\"callout palette-{{palette}} mod-{{size}}\" *ngIf=\"!removed\">\n\t<div class=\"callout-icon\" *ngIf=\"icon\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-{{icon}}\"></span>\n\t</div>\n\t<div class=\"callout-content\">\n\t\t<strong class=\"callout-content-title\" *ngIf=\"heading\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</strong>\n\t\t<div class=\"callout-content-description\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n\t<button *ngIf=\"removable\" type=\"button\" class=\"callout-kill\" (click)=\"removed = true; removedChange.emit(true)\">\n\t\t<span class=\"u-mask\">{{ intl.close }}</span>\n\t</button>\n</div>\n", styles: [".callout{align-items:flex-start;border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-grey-50));color:var(--palettes-grey-800);border-color:var(--palettes-300, var(--palettes-grey-300));border-style:solid;border-width:var(--commons-divider-width);gap:.75rem;padding:var(--spacings-XS) .75rem;position:relative}.callout:not([hidden]){display:flex}.callout a,.callout .link{--commons-text-link-color: var(--palettes-grey-800);--commons-text-link-hover: var(--palettes-grey-700)}.callout-content{flex:1;display:flex;flex-direction:column;gap:var(--spacings-XXS)}.callout-content-title{font-weight:600}.callout-icon{display:inline-flex;color:var(--palettes-700, var(--palettes-grey-700))}.callout-icon .lucca-icon{font-size:var(--sizes-M-lineHeight)}.callout-kill{padding:0;border:0;width:100%;background-color:transparent;color:inherit;text-align:left;display:block;font:inherit;cursor:pointer;color:currentColor;transition-duration:var(--commons-animations-durations-fast);transition-property:background-color;width:auto}.callout-kill:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-M)}.callout-kill:before{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;font-size:var(--sizes-S-lineHeight)}@supports (content: \"*\"/\"\"){.callout-kill:before{content:\"\\e9bf\"/\"\"}}@supports not (content: \"*\"/\"\"){.callout-kill:before{content:\"\\e9bf\"}}.callout.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);gap:.75rem}.callout.mod-S .callout-icon{line-height:var(--sizes-S-lineHeight)}.callout.mod-S .callout-icon .lucca-icon{font-size:var(--sizes-S-lineHeight)}.callout.mod-tiny{display:inline-flex;gap:.375rem;padding:var(--spacings-XS)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33
65
|
}
|
|
34
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutComponent, decorators: [{
|
|
35
67
|
type: Component,
|
|
36
|
-
args: [{ selector: 'lu-callout', standalone: true, imports: [
|
|
68
|
+
args: [{ selector: 'lu-callout', standalone: true, imports: [NgIf, PortalDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"callout palette-{{palette}} mod-{{size}}\" *ngIf=\"!removed\">\n\t<div class=\"callout-icon\" *ngIf=\"icon\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-{{icon}}\"></span>\n\t</div>\n\t<div class=\"callout-content\">\n\t\t<strong class=\"callout-content-title\" *ngIf=\"heading\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</strong>\n\t\t<div class=\"callout-content-description\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n\t<button *ngIf=\"removable\" type=\"button\" class=\"callout-kill\" (click)=\"removed = true; removedChange.emit(true)\">\n\t\t<span class=\"u-mask\">{{ intl.close }}</span>\n\t</button>\n</div>\n", styles: [".callout{align-items:flex-start;border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-grey-50));color:var(--palettes-grey-800);border-color:var(--palettes-300, var(--palettes-grey-300));border-style:solid;border-width:var(--commons-divider-width);gap:.75rem;padding:var(--spacings-XS) .75rem;position:relative}.callout:not([hidden]){display:flex}.callout a,.callout .link{--commons-text-link-color: var(--palettes-grey-800);--commons-text-link-hover: var(--palettes-grey-700)}.callout-content{flex:1;display:flex;flex-direction:column;gap:var(--spacings-XXS)}.callout-content-title{font-weight:600}.callout-icon{display:inline-flex;color:var(--palettes-700, var(--palettes-grey-700))}.callout-icon .lucca-icon{font-size:var(--sizes-M-lineHeight)}.callout-kill{padding:0;border:0;width:100%;background-color:transparent;color:inherit;text-align:left;display:block;font:inherit;cursor:pointer;color:currentColor;transition-duration:var(--commons-animations-durations-fast);transition-property:background-color;width:auto}.callout-kill:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px;border-radius:var(--commons-borderRadius-M)}.callout-kill:before{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;font-size:var(--sizes-S-lineHeight)}@supports (content: \"*\"/\"\"){.callout-kill:before{content:\"\\e9bf\"/\"\"}}@supports not (content: \"*\"/\"\"){.callout-kill:before{content:\"\\e9bf\"}}.callout.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);gap:.75rem}.callout.mod-S .callout-icon{line-height:var(--sizes-S-lineHeight)}.callout.mod-S .callout-icon .lucca-icon{font-size:var(--sizes-S-lineHeight)}.callout.mod-tiny{display:inline-flex;gap:.375rem;padding:var(--spacings-XS)}\n"] }]
|
|
37
69
|
}], propDecorators: {
|
|
38
70
|
/**
|
|
39
71
|
* The title of the callout
|
|
@@ -56,13 +88,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
|
|
|
56
88
|
}],
|
|
57
89
|
/**
|
|
58
90
|
* Should we display the remove icon?
|
|
59
|
-
*
|
|
60
|
-
* IMPORTANT: the callout won't hide itself, you're responsible for removing
|
|
61
|
-
* it using *ngIf as you might want to store the information that it has been
|
|
62
|
-
* hidden. Hook on the `hidden` event emitter for that.
|
|
63
91
|
*/
|
|
64
92
|
removable: [{
|
|
65
|
-
type: Input
|
|
93
|
+
type: Input,
|
|
94
|
+
args: [{ transform: booleanAttribute }]
|
|
66
95
|
}],
|
|
67
96
|
/**
|
|
68
97
|
* Which icon should we display in the callout if any?
|
|
@@ -70,30 +99,241 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
|
|
|
70
99
|
*/
|
|
71
100
|
icon: [{
|
|
72
101
|
type: Input
|
|
73
|
-
}],
|
|
74
|
-
/**
|
|
75
|
-
* Should we use tiny mode?
|
|
76
|
-
* WARNING: tiny mode should only be used without a title, there's no runtime
|
|
77
|
-
* check for this for performance reasons but make sure to never have both title
|
|
78
|
-
* and tiny.
|
|
79
|
-
*/
|
|
80
|
-
tiny: [{
|
|
102
|
+
}], state: [{
|
|
81
103
|
type: Input
|
|
82
104
|
}],
|
|
83
105
|
/**
|
|
84
106
|
* Is the callout removed? Works with two way binding too.
|
|
85
|
-
*
|
|
86
107
|
*/
|
|
87
108
|
removed: [{
|
|
88
109
|
type: Input,
|
|
89
110
|
args: [{ transform: booleanAttribute }]
|
|
111
|
+
}], hiddenAttr: [{
|
|
112
|
+
type: HostBinding,
|
|
113
|
+
args: ['attr.hidden']
|
|
90
114
|
}], removedChange: [{
|
|
91
115
|
type: Output
|
|
92
116
|
}] } });
|
|
93
117
|
|
|
118
|
+
class CalloutDisclosureComponent {
|
|
119
|
+
constructor() {
|
|
120
|
+
this.palette = 'none';
|
|
121
|
+
this.size = 'M';
|
|
122
|
+
}
|
|
123
|
+
set state(state) {
|
|
124
|
+
const { icon, palette } = CalloutStateMap[state];
|
|
125
|
+
if (this.palette === 'none') {
|
|
126
|
+
this.palette = palette;
|
|
127
|
+
}
|
|
128
|
+
if (!this.icon) {
|
|
129
|
+
this.icon = icon;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutDisclosureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
133
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CalloutDisclosureComponent, isStandalone: true, selector: "lu-callout-disclosure", inputs: { icon: "icon", heading: "heading", palette: "palette", size: "size", state: "state" }, ngImport: i0, template: "<details class=\"calloutDisclosure palette-{{palette}} mod-{{size}}\" [class.mod-iconless]=\"!icon\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t<lu-icon class=\"calloutDisclosure-summary-icon\" *ngIf=\"icon\" [icon]=\"icon\"></lu-icon>\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\"></lu-icon>\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content></ng-content>\n\t</div>\n</details>\n", styles: [".calloutDisclosure{--components-calloutDisclosure-paddingHorizontal: .75rem;border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-grey-50));color:var(--palettes-grey-800);border-color:var(--palettes-300, var(--palettes-grey-300));border-style:solid;border-width:var(--commons-divider-width)}.calloutDisclosure a,.calloutDisclosure .link{--commons-text-link-color: var(--palettes-grey-800);--commons-text-link-hover: var(--palettes-grey-700)}.calloutDisclosure-summary{display:flex;gap:.75rem;padding:var(--spacings-XS) var(--components-calloutDisclosure-paddingHorizontal);border-radius:var(--commons-borderRadius-L);transition:background-color var(--commons-animations-durations-fast) ease;cursor:pointer;z-index:1;position:relative}.calloutDisclosure-summary:hover{background-color:var(--palettes-100, var(--palettes-grey-100))}.calloutDisclosure-summary:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:3px;border-radius:6px}.calloutDisclosure-summary:focus-visible~.calloutDisclosure-details{box-shadow:none}.calloutDisclosure-summary-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-grey-700))}.calloutDisclosure-summary-title{font-weight:600}.calloutDisclosure-summary-chevron{--icon-size: 1.5rem;color:var(--palettes-grey-700);margin-left:auto;transition:transform var(--commons-animations-durations-standard) ease}.calloutDisclosure-details{margin:0 calc(var(--components-calloutDisclosure-paddingHorizontal) + 2.25rem);padding:var(--spacings-XS) 0 var(--spacings-S);box-shadow:0 -1px 0 0 var(--palettes-200, var(--palettes-grey-200))}.calloutDisclosure[open] .calloutDisclosure-summary-chevron{transform:rotate(-180deg)}.calloutDisclosure.mod-S .calloutDisclosure-summary-title{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutDisclosure-summary-icon,.calloutDisclosure.mod-S .calloutDisclosure-summary-chevron{--icon-size: 1.25rem}.calloutDisclosure.mod-S .calloutDisclosure-details{margin-left:calc(var(--components-calloutDisclosure-paddingHorizontal) + 2rem)}.calloutDisclosure.mod-S .calloutFeedbackList{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutFeedbackList .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutDisclosure.mod-S .calloutFeedbackList .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutDisclosure.mod-iconless .calloutDisclosure-summary-icon{display:none}.calloutDisclosure.mod-iconless .calloutDisclosure-details{margin-left:var(--components-calloutDisclosure-paddingHorizontal)}:host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "lu-icon", inputs: ["icon", "alt", "size", "color"] }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
134
|
+
}
|
|
135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutDisclosureComponent, decorators: [{
|
|
136
|
+
type: Component,
|
|
137
|
+
args: [{ selector: 'lu-callout-disclosure', standalone: true, imports: [CommonModule, IconComponent, PortalDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<details class=\"calloutDisclosure palette-{{palette}} mod-{{size}}\" [class.mod-iconless]=\"!icon\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t<lu-icon class=\"calloutDisclosure-summary-icon\" *ngIf=\"icon\" [icon]=\"icon\"></lu-icon>\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\"></lu-icon>\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content></ng-content>\n\t</div>\n</details>\n", styles: [".calloutDisclosure{--components-calloutDisclosure-paddingHorizontal: .75rem;border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-grey-50));color:var(--palettes-grey-800);border-color:var(--palettes-300, var(--palettes-grey-300));border-style:solid;border-width:var(--commons-divider-width)}.calloutDisclosure a,.calloutDisclosure .link{--commons-text-link-color: var(--palettes-grey-800);--commons-text-link-hover: var(--palettes-grey-700)}.calloutDisclosure-summary{display:flex;gap:.75rem;padding:var(--spacings-XS) var(--components-calloutDisclosure-paddingHorizontal);border-radius:var(--commons-borderRadius-L);transition:background-color var(--commons-animations-durations-fast) ease;cursor:pointer;z-index:1;position:relative}.calloutDisclosure-summary:hover{background-color:var(--palettes-100, var(--palettes-grey-100))}.calloutDisclosure-summary:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:3px;border-radius:6px}.calloutDisclosure-summary:focus-visible~.calloutDisclosure-details{box-shadow:none}.calloutDisclosure-summary-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-grey-700))}.calloutDisclosure-summary-title{font-weight:600}.calloutDisclosure-summary-chevron{--icon-size: 1.5rem;color:var(--palettes-grey-700);margin-left:auto;transition:transform var(--commons-animations-durations-standard) ease}.calloutDisclosure-details{margin:0 calc(var(--components-calloutDisclosure-paddingHorizontal) + 2.25rem);padding:var(--spacings-XS) 0 var(--spacings-S);box-shadow:0 -1px 0 0 var(--palettes-200, var(--palettes-grey-200))}.calloutDisclosure[open] .calloutDisclosure-summary-chevron{transform:rotate(-180deg)}.calloutDisclosure.mod-S .calloutDisclosure-summary-title{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutDisclosure-summary-icon,.calloutDisclosure.mod-S .calloutDisclosure-summary-chevron{--icon-size: 1.25rem}.calloutDisclosure.mod-S .calloutDisclosure-details{margin-left:calc(var(--components-calloutDisclosure-paddingHorizontal) + 2rem)}.calloutDisclosure.mod-S .calloutFeedbackList{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutFeedbackList .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutDisclosure.mod-S .calloutFeedbackList .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutDisclosure.mod-iconless .calloutDisclosure-summary-icon{display:none}.calloutDisclosure.mod-iconless .calloutDisclosure-details{margin-left:var(--components-calloutDisclosure-paddingHorizontal)}:host{display:block}\n"] }]
|
|
138
|
+
}], propDecorators: { icon: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], heading: [{
|
|
141
|
+
type: Input,
|
|
142
|
+
args: [{ required: true }]
|
|
143
|
+
}], palette: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], size: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], state: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}] } });
|
|
150
|
+
|
|
151
|
+
class CalloutPopoverComponent {
|
|
152
|
+
constructor() {
|
|
153
|
+
this.#overlay = inject(Overlay);
|
|
154
|
+
this.#viewContainerRef = inject(ViewContainerRef);
|
|
155
|
+
this.#elementRef = inject(ElementRef);
|
|
156
|
+
/**
|
|
157
|
+
* Debounce for the popover to open (mouse will have to be on the element fox openDelay milliseconds for popover to show)
|
|
158
|
+
*/
|
|
159
|
+
this.openDelay = 50;
|
|
160
|
+
/**
|
|
161
|
+
* Debounce for the popover to close (mouse will have to be out of both popover and trigger for closeDelay milliseconds for it to close)
|
|
162
|
+
*/
|
|
163
|
+
this.closeDelay = 500;
|
|
164
|
+
/**
|
|
165
|
+
* Palette for both the button and the popover content
|
|
166
|
+
*/
|
|
167
|
+
this.palette = 'none';
|
|
168
|
+
}
|
|
169
|
+
#overlay;
|
|
170
|
+
#viewContainerRef;
|
|
171
|
+
#elementRef;
|
|
172
|
+
#overlayRef;
|
|
173
|
+
set state(state) {
|
|
174
|
+
const { icon, palette } = CalloutStateMap[state];
|
|
175
|
+
if (this.palette === 'none') {
|
|
176
|
+
this.palette = palette;
|
|
177
|
+
}
|
|
178
|
+
if (!this.icon) {
|
|
179
|
+
this.icon = icon;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
get contentSize() {
|
|
183
|
+
if (this.size === 'XS') {
|
|
184
|
+
return 'S';
|
|
185
|
+
}
|
|
186
|
+
return this.size;
|
|
187
|
+
}
|
|
188
|
+
showContent() {
|
|
189
|
+
clearTimeout(this._hideDelayId);
|
|
190
|
+
// Don't open if we still have one opened
|
|
191
|
+
if (this._showDelayId) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
this._showDelayId = setTimeout(() => {
|
|
195
|
+
this.createPanelContent();
|
|
196
|
+
delete this._hideDelayId;
|
|
197
|
+
}, this.openDelay);
|
|
198
|
+
}
|
|
199
|
+
createPanelContent() {
|
|
200
|
+
const positionStrategy = this.#overlay
|
|
201
|
+
.position()
|
|
202
|
+
.flexibleConnectedTo(this.overlayOrigin)
|
|
203
|
+
.withPositions([
|
|
204
|
+
{
|
|
205
|
+
originX: 'center',
|
|
206
|
+
originY: 'top',
|
|
207
|
+
overlayX: 'center',
|
|
208
|
+
overlayY: 'bottom',
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
originX: 'center',
|
|
212
|
+
originY: 'bottom',
|
|
213
|
+
overlayX: 'center',
|
|
214
|
+
overlayY: 'top',
|
|
215
|
+
},
|
|
216
|
+
]);
|
|
217
|
+
this.#overlayRef = this.#overlay.create({
|
|
218
|
+
positionStrategy,
|
|
219
|
+
});
|
|
220
|
+
const portal = new TemplatePortal(this.overlayContent, this.#viewContainerRef);
|
|
221
|
+
this.#overlayRef.attach(portal);
|
|
222
|
+
}
|
|
223
|
+
hideContent(event) {
|
|
224
|
+
clearTimeout(this._showDelayId);
|
|
225
|
+
this._hideDelayId = setTimeout(() => {
|
|
226
|
+
const newTarget = event?.relatedTarget;
|
|
227
|
+
// This is to prevent tooltip closing when user puts cursor on tooltip, thus leaving the origin trigger
|
|
228
|
+
if (!newTarget || !(this.#overlayRef?.overlayElement?.contains(newTarget) || this.#elementRef?.nativeElement?.contains(newTarget))) {
|
|
229
|
+
// Remove the tooltip if needed.
|
|
230
|
+
if (this.#overlayRef) {
|
|
231
|
+
this.#overlayRef.dispose();
|
|
232
|
+
delete this._showDelayId;
|
|
233
|
+
delete this._hideDelayId;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}, this.closeDelay);
|
|
237
|
+
}
|
|
238
|
+
ngOnDestroy() {
|
|
239
|
+
this.hideContent(null);
|
|
240
|
+
}
|
|
241
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
242
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CalloutPopoverComponent, isStandalone: true, selector: "lu-callout-popover", inputs: { openDelay: ["openDelay", "openDelay", numberAttribute], closeDelay: ["closeDelay", "closeDelay", numberAttribute], buttonLabel: "buttonLabel", palette: "palette", size: "size", icon: "icon", state: "state", heading: "heading" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: ["overlayOriginRef"], descendants: true }, { propertyName: "overlayContent", first: true, predicate: ["overlayContentRef"], descendants: true }], ngImport: i0, template: "<button\n\ttype=\"button\"\n\tclass=\"calloutPopover palette-{{palette}} mod-{{size}}\"\n\t#overlayOriginRef\n\t(mouseenter)=\"showContent()\"\n\t(focus)=\"showContent()\"\n\t(mouseleave)=\"hideContent($event)\"\n\t(blur)=\"hideContent(null)\"\n>\n\t<lu-icon class=\"calloutPopover-icon\" [icon]=\"icon\"></lu-icon>\n\t{{buttonLabel}}\n</button>\n<ng-template #overlayContentRef>\n\t<div\n\t\t[@tooltip]=\"'open'\"\n\t\tclass=\"lu-popover-content calloutPopover-overlay mod-{{contentSize}}\"\n\t\t(mouseenter)=\"showContent()\"\n\t\t(mouseleave)=\"hideContent($event)\"\n\t>\n\t\t<div class=\"calloutPopover-overlay-head\">\n\t\t\t<lu-icon class=\"calloutPopover-overlay-head-icon palette-{{palette}}\" [icon]=\"icon\"></lu-icon>\n\t\t\t<strong class=\"calloutPopover-overlay-head-title\">\n\t\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t\t</strong>\n\t\t</div>\n\t\t<div class=\"calloutPopover-overlay-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n</ng-template>\n", styles: [".calloutPopover{display:inline-flex;gap:.375rem;align-items:center;padding:var(--spacings-XS);border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-grey-50));border-color:var(--palettes-300, var(--palettes-grey-300));border-style:solid;border-width:var(--commons-divider-width);cursor:pointer}:root{--components-calloutPopover-width: 30rem;--components-calloutPopover-content-margin: 2rem}.calloutPopover:hover{background-color:var(--palettes-100, var(--palettes-grey-100))}.calloutPopover:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px}.calloutPopover-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-grey-700))}.calloutPopover-overlay{width:var(--components-calloutPopover-width);max-width:100vw}.calloutPopover-overlay-head{display:flex;gap:var(--spacings-XS)}.calloutPopover-overlay-head-title{margin-top:0;color:var(--palettes-grey-900);margin-bottom:var(--spacings-S);text-rendering:geometricPrecision;text-wrap:balance;font-weight:var(--components-title-weight, 600);font-size:var(--sizes-fontSize);line-height:var(--sizes-lineHeight);padding-top:var(--sizes-verticalPadding);padding-bottom:var(--sizes-verticalPadding);--sizes-verticalPadding: var(--sizes-M-verticalPadding);--sizes-fontSize: var(--sizes-M-fontSize);--sizes-lineHeight: var(--sizes-M-lineHeight);--components-title-weight: 600;margin:0;padding:0}.calloutPopover-overlay-head-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-grey-700))}.calloutPopover-overlay-content{margin:var(--spacings-XS) .75rem var(--spacings-XS) var(--components-calloutPopover-content-margin);padding-top:var(--spacings-XS);border-top:var(--commons-divider-width) solid var(--palettes-grey-200)}.calloutPopover.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);padding:.375rem}.calloutPopover.mod-S .calloutPopover-icon{--icon-size: 1.25rem}.calloutPopover.mod-XS{font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);padding:.125rem var(--spacings-XXS);gap:var(--spacings-XXS)}.calloutPopover.mod-XS .calloutPopover-icon{--icon-size: .75rem}.calloutPopover-overlay.mod-S{--components-calloutPopover-width: 20rem;--components-calloutPopover-content-margin: 1.75rem}.calloutPopover-overlay.mod-S .calloutPopover-overlay-head-icon{--icon-size: 1.25rem}.calloutPopover-overlay.mod-S .calloutPopover-overlay-head-title{--sizes-verticalPadding: var(--sizes-S-verticalPadding);--sizes-fontSize: var(--sizes-S-fontSize);--sizes-lineHeight: var(--sizes-S-lineHeight);--components-title-weight: 600}.calloutPopover-overlay.mod-S .calloutFeedbackList{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutPopover-overlay.mod-S .calloutFeedbackList .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutPopover-overlay.mod-S .calloutFeedbackList .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutPopover-overlay.mod-iconless{--components-calloutPopover-content-margin: 0}.calloutPopover-overlay.mod-iconless .calloutPopover-overlay-head-icon{display:none}:host{display:inline-flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "lu-icon", inputs: ["icon", "alt", "size", "color"] }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal"] }], animations: [
|
|
243
|
+
trigger('tooltip', [
|
|
244
|
+
state('enter', style({
|
|
245
|
+
opacity: 1,
|
|
246
|
+
transform: `scale(1)`,
|
|
247
|
+
})),
|
|
248
|
+
transition('void => *', [
|
|
249
|
+
style({
|
|
250
|
+
opacity: 0,
|
|
251
|
+
transform: `scale(0)`,
|
|
252
|
+
}),
|
|
253
|
+
animate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),
|
|
254
|
+
]),
|
|
255
|
+
transition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),
|
|
256
|
+
]),
|
|
257
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
258
|
+
}
|
|
259
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutPopoverComponent, decorators: [{
|
|
260
|
+
type: Component,
|
|
261
|
+
args: [{ selector: 'lu-callout-popover', standalone: true, imports: [CommonModule, IconComponent, ButtonComponent, PortalDirective], animations: [
|
|
262
|
+
trigger('tooltip', [
|
|
263
|
+
state('enter', style({
|
|
264
|
+
opacity: 1,
|
|
265
|
+
transform: `scale(1)`,
|
|
266
|
+
})),
|
|
267
|
+
transition('void => *', [
|
|
268
|
+
style({
|
|
269
|
+
opacity: 0,
|
|
270
|
+
transform: `scale(0)`,
|
|
271
|
+
}),
|
|
272
|
+
animate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),
|
|
273
|
+
]),
|
|
274
|
+
transition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),
|
|
275
|
+
]),
|
|
276
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<button\n\ttype=\"button\"\n\tclass=\"calloutPopover palette-{{palette}} mod-{{size}}\"\n\t#overlayOriginRef\n\t(mouseenter)=\"showContent()\"\n\t(focus)=\"showContent()\"\n\t(mouseleave)=\"hideContent($event)\"\n\t(blur)=\"hideContent(null)\"\n>\n\t<lu-icon class=\"calloutPopover-icon\" [icon]=\"icon\"></lu-icon>\n\t{{buttonLabel}}\n</button>\n<ng-template #overlayContentRef>\n\t<div\n\t\t[@tooltip]=\"'open'\"\n\t\tclass=\"lu-popover-content calloutPopover-overlay mod-{{contentSize}}\"\n\t\t(mouseenter)=\"showContent()\"\n\t\t(mouseleave)=\"hideContent($event)\"\n\t>\n\t\t<div class=\"calloutPopover-overlay-head\">\n\t\t\t<lu-icon class=\"calloutPopover-overlay-head-icon palette-{{palette}}\" [icon]=\"icon\"></lu-icon>\n\t\t\t<strong class=\"calloutPopover-overlay-head-title\">\n\t\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t\t</strong>\n\t\t</div>\n\t\t<div class=\"calloutPopover-overlay-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n</ng-template>\n", styles: [".calloutPopover{display:inline-flex;gap:.375rem;align-items:center;padding:var(--spacings-XS);border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-grey-50));border-color:var(--palettes-300, var(--palettes-grey-300));border-style:solid;border-width:var(--commons-divider-width);cursor:pointer}:root{--components-calloutPopover-width: 30rem;--components-calloutPopover-content-margin: 2rem}.calloutPopover:hover{background-color:var(--palettes-100, var(--palettes-grey-100))}.calloutPopover:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px}.calloutPopover-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-grey-700))}.calloutPopover-overlay{width:var(--components-calloutPopover-width);max-width:100vw}.calloutPopover-overlay-head{display:flex;gap:var(--spacings-XS)}.calloutPopover-overlay-head-title{margin-top:0;color:var(--palettes-grey-900);margin-bottom:var(--spacings-S);text-rendering:geometricPrecision;text-wrap:balance;font-weight:var(--components-title-weight, 600);font-size:var(--sizes-fontSize);line-height:var(--sizes-lineHeight);padding-top:var(--sizes-verticalPadding);padding-bottom:var(--sizes-verticalPadding);--sizes-verticalPadding: var(--sizes-M-verticalPadding);--sizes-fontSize: var(--sizes-M-fontSize);--sizes-lineHeight: var(--sizes-M-lineHeight);--components-title-weight: 600;margin:0;padding:0}.calloutPopover-overlay-head-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-grey-700))}.calloutPopover-overlay-content{margin:var(--spacings-XS) .75rem var(--spacings-XS) var(--components-calloutPopover-content-margin);padding-top:var(--spacings-XS);border-top:var(--commons-divider-width) solid var(--palettes-grey-200)}.calloutPopover.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);padding:.375rem}.calloutPopover.mod-S .calloutPopover-icon{--icon-size: 1.25rem}.calloutPopover.mod-XS{font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);padding:.125rem var(--spacings-XXS);gap:var(--spacings-XXS)}.calloutPopover.mod-XS .calloutPopover-icon{--icon-size: .75rem}.calloutPopover-overlay.mod-S{--components-calloutPopover-width: 20rem;--components-calloutPopover-content-margin: 1.75rem}.calloutPopover-overlay.mod-S .calloutPopover-overlay-head-icon{--icon-size: 1.25rem}.calloutPopover-overlay.mod-S .calloutPopover-overlay-head-title{--sizes-verticalPadding: var(--sizes-S-verticalPadding);--sizes-fontSize: var(--sizes-S-fontSize);--sizes-lineHeight: var(--sizes-S-lineHeight);--components-title-weight: 600}.calloutPopover-overlay.mod-S .calloutFeedbackList{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutPopover-overlay.mod-S .calloutFeedbackList .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutPopover-overlay.mod-S .calloutFeedbackList .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutPopover-overlay.mod-iconless{--components-calloutPopover-content-margin: 0}.calloutPopover-overlay.mod-iconless .calloutPopover-overlay-head-icon{display:none}:host{display:inline-flex}\n"] }]
|
|
277
|
+
}], propDecorators: { overlayOrigin: [{
|
|
278
|
+
type: ViewChild,
|
|
279
|
+
args: ['overlayOriginRef']
|
|
280
|
+
}], overlayContent: [{
|
|
281
|
+
type: ViewChild,
|
|
282
|
+
args: ['overlayContentRef']
|
|
283
|
+
}], openDelay: [{
|
|
284
|
+
type: Input,
|
|
285
|
+
args: [{ transform: numberAttribute }]
|
|
286
|
+
}], closeDelay: [{
|
|
287
|
+
type: Input,
|
|
288
|
+
args: [{ transform: numberAttribute }]
|
|
289
|
+
}], buttonLabel: [{
|
|
290
|
+
type: Input
|
|
291
|
+
}], palette: [{
|
|
292
|
+
type: Input
|
|
293
|
+
}], size: [{
|
|
294
|
+
type: Input
|
|
295
|
+
}], icon: [{
|
|
296
|
+
type: Input
|
|
297
|
+
}], state: [{
|
|
298
|
+
type: Input
|
|
299
|
+
}], heading: [{
|
|
300
|
+
type: Input,
|
|
301
|
+
args: [{ required: true }]
|
|
302
|
+
}] } });
|
|
303
|
+
|
|
304
|
+
class CalloutFeedbackItemComponent {
|
|
305
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutFeedbackItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
306
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CalloutFeedbackItemComponent, isStandalone: true, selector: "li[lu-callout-feedback-item]", host: { classAttribute: "calloutFeedbackList-item" }, ngImport: i0, template: "<span class=\"calloutFeedbackList-item-description\">\n\t<ng-content select=\"lu-feedback-item-description\"></ng-content>\n</span>\n<div class=\"calloutFeedbackList-item-actions\">\n\t<ng-content select=\"[lu-feedback-item-action]\"></ng-content>\n</div>\n", styles: [".calloutFeedbackList{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:var(--spacings-S)}.calloutFeedbackList-item{display:flex;flex-direction:column;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions{display:inline-flex;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions .button{--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: .375rem .75rem;--components-button-gap: .375rem;--icon-size: 1.25rem;margin:0}.calloutFeedbackList-item-actions .button .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutFeedbackList.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutFeedbackList.mod-S .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutFeedbackList.mod-S .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
307
|
+
}
|
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutFeedbackItemComponent, decorators: [{
|
|
309
|
+
type: Component,
|
|
310
|
+
args: [{ selector: 'li[lu-callout-feedback-item]', standalone: true, imports: [], host: {
|
|
311
|
+
class: 'calloutFeedbackList-item',
|
|
312
|
+
}, encapsulation: ViewEncapsulation.None, template: "<span class=\"calloutFeedbackList-item-description\">\n\t<ng-content select=\"lu-feedback-item-description\"></ng-content>\n</span>\n<div class=\"calloutFeedbackList-item-actions\">\n\t<ng-content select=\"[lu-feedback-item-action]\"></ng-content>\n</div>\n", styles: [".calloutFeedbackList{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:var(--spacings-S)}.calloutFeedbackList-item{display:flex;flex-direction:column;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions{display:inline-flex;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions .button{--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: .375rem .75rem;--components-button-gap: .375rem;--icon-size: 1.25rem;margin:0}.calloutFeedbackList-item-actions .button .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutFeedbackList.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutFeedbackList.mod-S .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutFeedbackList.mod-S .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}\n"] }]
|
|
313
|
+
}] });
|
|
314
|
+
|
|
315
|
+
class CalloutFeedbackListComponent {
|
|
316
|
+
#ngClass = inject(NgClazz);
|
|
317
|
+
ngOnChanges() {
|
|
318
|
+
this.#ngClass.ngClass = [`palette-${this.palette}`, `mod-${this.size}`];
|
|
319
|
+
}
|
|
320
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutFeedbackListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
321
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: CalloutFeedbackListComponent, isStandalone: true, selector: "ul[lu-callout-feedback-list]", inputs: { palette: "palette", size: "size" }, host: { classAttribute: "calloutFeedbackList" }, usesOnChanges: true, hostDirectives: [{ directive: i1$1.NgClazz }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".calloutFeedbackList{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:var(--spacings-S)}.calloutFeedbackList-item{display:flex;flex-direction:column;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions{display:inline-flex;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions .button{--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: .375rem .75rem;--components-button-gap: .375rem;--icon-size: 1.25rem;margin:0}.calloutFeedbackList-item-actions .button .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutFeedbackList.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutFeedbackList.mod-S .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutFeedbackList.mod-S .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
322
|
+
}
|
|
323
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutFeedbackListComponent, decorators: [{
|
|
324
|
+
type: Component,
|
|
325
|
+
args: [{ selector: 'ul[lu-callout-feedback-list]', standalone: true, template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
326
|
+
class: 'calloutFeedbackList',
|
|
327
|
+
}, hostDirectives: [NgClazz], encapsulation: ViewEncapsulation.None, styles: [".calloutFeedbackList{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:var(--spacings-S)}.calloutFeedbackList-item{display:flex;flex-direction:column;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions{display:inline-flex;gap:var(--spacings-XS)}.calloutFeedbackList-item-actions .button{--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: .375rem .75rem;--components-button-gap: .375rem;--icon-size: 1.25rem;margin:0}.calloutFeedbackList-item-actions .button .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutFeedbackList.mod-S{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutFeedbackList.mod-S .button{--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS);--icon-size: 1rem}.calloutFeedbackList.mod-S .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}\n"] }]
|
|
328
|
+
}], propDecorators: { palette: [{
|
|
329
|
+
type: Input
|
|
330
|
+
}], size: [{
|
|
331
|
+
type: Input
|
|
332
|
+
}] } });
|
|
333
|
+
|
|
94
334
|
/**
|
|
95
335
|
* Generated bundle index. Do not edit.
|
|
96
336
|
*/
|
|
97
337
|
|
|
98
|
-
export { CalloutComponent, LU_CALLOUT_TRANSLATIONS, luCalloutTranslations };
|
|
338
|
+
export { CalloutComponent, CalloutDisclosureComponent, CalloutFeedbackItemComponent, CalloutFeedbackListComponent, CalloutPopoverComponent, LU_CALLOUT_TRANSLATIONS, luCalloutTranslations };
|
|
99
339
|
//# sourceMappingURL=lucca-front-ng-callout.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-callout.mjs","sources":["../../../packages/ng/callout/callout.translate.ts","../../../packages/ng/callout/callout.component.ts","../../../packages/ng/callout/callout.component.html","../../../packages/ng/callout/lucca-front-ng-callout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_CALLOUT_TRANSLATIONS = new InjectionToken('LuCalloutTranslations', {\n\tfactory: () => luCalloutTranslations,\n});\n\nexport interface LuCalloutLabel {\n\tclose: string;\n}\n\nexport const luCalloutTranslations: ILuTranslation<LuCalloutLabel> = {\n\ten: {\n\t\tclose: 'Close',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n};\n","import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { getIntl, Palette } from '@lucca-front/ng/core';\nimport { LU_CALLOUT_TRANSLATIONS } from './callout.translate';\nimport { LuccaIcon } from '@lucca-front/icons';\n\n@Component({\n\tselector: 'lu-callout',\n\tstandalone: true,\n\timports: [CommonModule],\n\ttemplateUrl: './callout.component.html',\n\tstyleUrls: ['./callout.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalloutComponent {\n\t@Input()\n\t/**\n\t * The title of the callout\n\t */\n\theading: string;\n\n\t@Input()\n\t/**\n\t * Which palette should be used for the entire callout.\n\t * Defaults to none (inherits parent palette)\n\t */\n\tpalette: Palette = 'none';\n\n\t@Input()\n\t/**\n\t * Which size should the callout be? Defaults to medium\n\t */\n\tsize: 'M' | 'S' = 'M';\n\n\t@Input()\n\t/**\n\t * Should we display the remove icon?\n\t *\n\t * IMPORTANT: the callout won't hide itself, you're responsible for removing\n\t * it using *ngIf as you might want to store the information that it has been\n\t * hidden. Hook on the `hidden` event emitter for that.\n\t */\n\tremovable = false;\n\n\t@Input()\n\t/**\n\t * Which icon should we display in the callout if any?\n\t * Defaults to no icon.\n\t */\n\ticon: LuccaIcon;\n\n\t@Input()\n\t/**\n\t * Should we use tiny mode?\n\t * WARNING: tiny mode should only be used without a title, there's no runtime\n\t * check for this for performance reasons but make sure to never have both title\n\t * and tiny.\n\t */\n\ttiny: boolean;\n\n\t@Input({ transform: booleanAttribute })\n\t/**\n\t * Is the callout removed? Works with two way binding too.\n\t *\n\t */\n\tremoved = false;\n\n\t@Output()\n\tremovedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n\tpublic intl = getIntl(LU_CALLOUT_TRANSLATIONS);\n}\n","<div class=\"callout palette-{{palette}} mod-{{size}}\" [class.mod-tiny]=\"tiny\" *ngIf=\"!removed\">\n\t<div class=\"callout-icon\" *ngIf=\"icon\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-{{icon}}\"></span>\n\t</div>\n\t<div class=\"callout-content\">\n\t\t<strong class=\"callout-content-title\" *ngIf=\"heading\">{{heading}}</strong>\n\t\t<div class=\"callout-content-description\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n\t<button *ngIf=\"removable\" type=\"button\" class=\"callout-kill\" (click)=\"removed = true; removedChange.emit(true)\">\n\t\t<span class=\"u-mask\">{{ intl.close }}</span>\n\t</button>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAGa,uBAAuB,GAAG,IAAI,cAAc,CAAC,uBAAuB,EAAE;AAClF,IAAA,OAAO,EAAE,MAAM,qBAAqB;AACpC,CAAA,EAAE;AAMU,MAAA,qBAAqB,GAAmC;AACpE,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,OAAO;AACd,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,QAAQ;AACf,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,QAAQ;AACf,KAAA;;;ACdF,MAQa,gBAAgB,CAAA;AAR7B,IAAA,WAAA,GAAA;QAoBC,IAAO,CAAA,OAAA,GAAY,MAAM,CAAC;QAM1B,IAAI,CAAA,IAAA,GAAc,GAAG,CAAC;QAUtB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAuBlB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAGhB,QAAA,IAAA,CAAA,aAAa,GAA0B,IAAI,YAAY,EAAW,CAAC;AAE5D,QAAA,IAAA,CAAA,IAAI,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAC/C,KAAA;8GAzDY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EA8CR,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,gBAAgB,CC5DrC,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ipBAcA,0yDDLW,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAKV,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;+BACC,YAAY,EAAA,UAAA,EACV,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ipBAAA,EAAA,MAAA,EAAA,CAAA,mvDAAA,CAAA,EAAA,CAAA;;AAI/C;;AAEG;QACH,OAAO,EAAA,CAAA;sBAJN,KAAK;;AAON;;;AAGG;QACH,OAAO,EAAA,CAAA;sBALN,KAAK;;AAQN;;AAEG;QACH,IAAI,EAAA,CAAA;sBAJH,KAAK;;AAON;;;;;;AAMG;QACH,SAAS,EAAA,CAAA;sBARR,KAAK;;AAWN;;;AAGG;QACH,IAAI,EAAA,CAAA;sBALH,KAAK;;AAQN;;;;;AAKG;QACH,IAAI,EAAA,CAAA;sBAPH,KAAK;;AAUN;;;AAGG;QACH,OAAO,EAAA,CAAA;sBALN,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAQtC,aAAa,EAAA,CAAA;sBADZ,MAAM;;;AEnER;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-callout.mjs","sources":["../../../packages/ng/callout/callout.translate.ts","../../../packages/ng/callout/callout-state.ts","../../../packages/ng/callout/callout/callout.component.ts","../../../packages/ng/callout/callout/callout.component.html","../../../packages/ng/callout/callout-disclosure/callout-disclosure.component.ts","../../../packages/ng/callout/callout-disclosure/callout-disclosure.component.html","../../../packages/ng/callout/callout-popover/callout-popover.component.ts","../../../packages/ng/callout/callout-popover/callout-popover.component.html","../../../packages/ng/callout/callout-feedback-item/callout-feedback-item.component.ts","../../../packages/ng/callout/callout-feedback-item/callout-feedback-item.component.html","../../../packages/ng/callout/callout-feedback-list/callout-feedback-list.component.ts","../../../packages/ng/callout/lucca-front-ng-callout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_CALLOUT_TRANSLATIONS = new InjectionToken('LuCalloutTranslations', {\n\tfactory: () => luCalloutTranslations,\n});\n\nexport interface LuCalloutLabel {\n\tclose: string;\n}\n\nexport const luCalloutTranslations: ILuTranslation<LuCalloutLabel> = {\n\ten: {\n\t\tclose: 'Close',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n};\n","import { Palette } from '@lucca-front/ng/core';\nimport { LuccaIcon } from '@lucca-front/icons';\n\nexport type CalloutState = 'success' | 'warning' | 'error';\n\nexport const CalloutStateMap: Record<CalloutState, { icon: LuccaIcon; palette: Palette }> = {\n\tsuccess: {\n\t\ticon: 'signSuccess',\n\t\tpalette: 'success',\n\t},\n\twarning: {\n\t\ticon: 'signWarning',\n\t\tpalette: 'warning',\n\t},\n\terror: {\n\t\ticon: 'signError',\n\t\tpalette: 'error',\n\t},\n};\n","import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { getIntl, Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { LU_CALLOUT_TRANSLATIONS } from '../callout.translate';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { CalloutState, CalloutStateMap } from '../callout-state';\n\n@Component({\n\tselector: 'lu-callout',\n\tstandalone: true,\n\timports: [NgIf, PortalDirective],\n\ttemplateUrl: './callout.component.html',\n\tstyleUrls: ['./callout.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalloutComponent {\n\t@Input()\n\t/**\n\t * The title of the callout\n\t */\n\theading: PortalContent;\n\n\t@Input()\n\t/**\n\t * Which palette should be used for the entire callout.\n\t * Defaults to none (inherits parent palette)\n\t */\n\tpalette: Palette = 'none';\n\n\t@Input()\n\t/**\n\t * Which size should the callout be? Defaults to medium\n\t */\n\tsize: 'M' | 'S';\n\n\t@Input({ transform: booleanAttribute })\n\t/**\n\t * Should we display the remove icon?\n\t */\n\tremovable = false;\n\n\t@Input()\n\t/**\n\t * Which icon should we display in the callout if any?\n\t * Defaults to no icon.\n\t */\n\ticon: LuccaIcon;\n\n\t@Input()\n\t/**\n\t * State is a shorthand to set the icon and the palette to the recommended values for the icon and palette based on\n\t * the provided state.\n\t *\n\t * If one of the icon or palette inputs are filled along with the state input, their values will have the priority over\n\t * state (so setting state to success and palette to warning will make the palette warning)\n\t */\n\tset state(state: CalloutState) {\n\t\tconst { icon, palette } = CalloutStateMap[state];\n\t\tif (this.palette === 'none') {\n\t\t\tthis.palette = palette;\n\t\t}\n\t\tif (!this.icon) {\n\t\t\tthis.icon = icon;\n\t\t}\n\t}\n\n\t@Input({ transform: booleanAttribute })\n\t/**\n\t * Is the callout removed? Works with two way binding too.\n\t */\n\tremoved = false;\n\n\t@HostBinding('attr.hidden')\n\tget hiddenAttr(): 'hidden' | null {\n\t\treturn this.removed ? 'hidden' : null;\n\t}\n\n\t@Output()\n\tremovedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n\tpublic intl = getIntl(LU_CALLOUT_TRANSLATIONS);\n}\n","<div class=\"callout palette-{{palette}} mod-{{size}}\" *ngIf=\"!removed\">\n\t<div class=\"callout-icon\" *ngIf=\"icon\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-{{icon}}\"></span>\n\t</div>\n\t<div class=\"callout-content\">\n\t\t<strong class=\"callout-content-title\" *ngIf=\"heading\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</strong>\n\t\t<div class=\"callout-content-description\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n\t<button *ngIf=\"removable\" type=\"button\" class=\"callout-kill\" (click)=\"removed = true; removedChange.emit(true)\">\n\t\t<span class=\"u-mask\">{{ intl.close }}</span>\n\t</button>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { CalloutState, CalloutStateMap } from '../callout-state';\n\n@Component({\n\tselector: 'lu-callout-disclosure',\n\tstandalone: true,\n\timports: [CommonModule, IconComponent, PortalDirective],\n\ttemplateUrl: './callout-disclosure.component.html',\n\tstyleUrls: ['./callout-disclosure.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutDisclosureComponent {\n\t@Input()\n\ticon: LuccaIcon;\n\n\t@Input({ required: true })\n\theading: PortalContent;\n\n\t@Input()\n\tpalette: Palette = 'none';\n\n\t@Input()\n\tsize: 'M' | 'S' = 'M';\n\n\t@Input()\n\t/**\n\t * State is a shorthand to set the icon and the palette to the recommended values for the icon and palette based on\n\t * the provided state.\n\t *\n\t * If one of the icon or palette inputs are filled along with the state input, their values will have the priority over\n\t * state (so setting state to success and palette to warning will make the palette warning)\n\t */\n\tset state(state: CalloutState) {\n\t\tconst { icon, palette } = CalloutStateMap[state];\n\t\tif (this.palette === 'none') {\n\t\t\tthis.palette = palette;\n\t\t}\n\t\tif (!this.icon) {\n\t\t\tthis.icon = icon;\n\t\t}\n\t}\n}\n","<details class=\"calloutDisclosure palette-{{palette}} mod-{{size}}\" [class.mod-iconless]=\"!icon\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t<lu-icon class=\"calloutDisclosure-summary-icon\" *ngIf=\"icon\" [icon]=\"icon\"></lu-icon>\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\"></lu-icon>\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content></ng-content>\n\t</div>\n</details>\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, Input, numberAttribute, OnDestroy, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { CalloutState, CalloutStateMap } from '../callout-state';\n\n@Component({\n\tselector: 'lu-callout-popover',\n\tstandalone: true,\n\timports: [CommonModule, IconComponent, ButtonComponent, PortalDirective],\n\tanimations: [\n\t\ttrigger('tooltip', [\n\t\t\tstate(\n\t\t\t\t'enter',\n\t\t\t\tstyle({\n\t\t\t\t\topacity: 1,\n\t\t\t\t\ttransform: `scale(1)`,\n\t\t\t\t}),\n\t\t\t),\n\t\t\ttransition('void => *', [\n\t\t\t\tstyle({\n\t\t\t\t\topacity: 0,\n\t\t\t\t\ttransform: `scale(0)`,\n\t\t\t\t}),\n\t\t\t\tanimate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),\n\t\t\t]),\n\t\t\ttransition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),\n\t\t]),\n\t],\n\ttemplateUrl: './callout-popover.component.html',\n\tstyleUrls: ['./callout-popover.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutPopoverComponent implements OnDestroy {\n\t#overlay = inject(Overlay);\n\t#viewContainerRef = inject(ViewContainerRef);\n\t#elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t@ViewChild('overlayOriginRef')\n\toverlayOrigin: ElementRef;\n\n\t@ViewChild('overlayContentRef')\n\toverlayContent: TemplateRef<unknown>;\n\n\t#overlayRef: OverlayRef;\n\n\t// Using unknown here because it's using Node types for whatever reason but it's a number\n\tprivate _hideDelayId: unknown | undefined;\n\n\t// Using unknown here because it's using Node types for whatever reason but it's a number\n\tprivate _showDelayId: unknown | undefined;\n\n\t/**\n\t * Debounce for the popover to open (mouse will have to be on the element fox openDelay milliseconds for popover to show)\n\t */\n\t@Input({ transform: numberAttribute })\n\treadonly openDelay = 50;\n\n\t/**\n\t * Debounce for the popover to close (mouse will have to be out of both popover and trigger for closeDelay milliseconds for it to close)\n\t */\n\t@Input({ transform: numberAttribute })\n\treadonly closeDelay = 500;\n\n\t/**\n\t * Label to put inside the button, often used to show just a number\n\t */\n\t@Input()\n\tbuttonLabel: string;\n\n\t/**\n\t * Palette for both the button and the popover content\n\t */\n\t@Input()\n\tpalette: Palette = 'none';\n\n\t/**\n\t * Size for both button and popover content\n\t */\n\t@Input()\n\tsize?: 'M' | 'S' | 'XS';\n\n\t/**\n\t * Icon shows in button and next to popover's title\n\t */\n\t@Input()\n\ticon: LuccaIcon;\n\n\t@Input()\n\t/**\n\t * State is a shorthand to set the icon and the palette to the recommended values for the icon and palette based on\n\t * the provided state.\n\t *\n\t * If one of the icon or palette inputs are filled along with the state input, their values will have the priority over\n\t * state (so setting state to success and palette to warning will make the palette warning)\n\t */\n\tset state(state: CalloutState) {\n\t\tconst { icon, palette } = CalloutStateMap[state];\n\t\tif (this.palette === 'none') {\n\t\t\tthis.palette = palette;\n\t\t}\n\t\tif (!this.icon) {\n\t\t\tthis.icon = icon;\n\t\t}\n\t}\n\n\t/**\n\t * Heading for the details popover\n\t */\n\t@Input({ required: true })\n\theading: PortalContent;\n\n\tget contentSize(): 'S' | 'M' | undefined {\n\t\tif (this.size === 'XS') {\n\t\t\treturn 'S';\n\t\t}\n\t\treturn this.size;\n\t}\n\n\tpublic showContent() {\n\t\tclearTimeout(this._hideDelayId as number);\n\t\t// Don't open if we still have one opened\n\t\tif (this._showDelayId) {\n\t\t\treturn;\n\t\t}\n\t\tthis._showDelayId = setTimeout(() => {\n\t\t\tthis.createPanelContent();\n\t\t\tdelete this._hideDelayId;\n\t\t}, this.openDelay);\n\t}\n\n\tprivate createPanelContent() {\n\t\tconst positionStrategy = this.#overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.overlayOrigin)\n\t\t\t.withPositions([\n\t\t\t\t{\n\t\t\t\t\toriginX: 'center',\n\t\t\t\t\toriginY: 'top',\n\t\t\t\t\toverlayX: 'center',\n\t\t\t\t\toverlayY: 'bottom',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: 'center',\n\t\t\t\t\toriginY: 'bottom',\n\t\t\t\t\toverlayX: 'center',\n\t\t\t\t\toverlayY: 'top',\n\t\t\t\t},\n\t\t\t]);\n\n\t\tthis.#overlayRef = this.#overlay.create({\n\t\t\tpositionStrategy,\n\t\t});\n\n\t\tconst portal = new TemplatePortal(this.overlayContent, this.#viewContainerRef);\n\n\t\tthis.#overlayRef.attach(portal);\n\t}\n\n\tpublic hideContent(event: MouseEvent | null) {\n\t\tclearTimeout(this._showDelayId as number);\n\t\tthis._hideDelayId = setTimeout(() => {\n\t\t\tconst newTarget = event?.relatedTarget as Node | null;\n\t\t\t// This is to prevent tooltip closing when user puts cursor on tooltip, thus leaving the origin trigger\n\t\t\tif (!newTarget || !(this.#overlayRef?.overlayElement?.contains(newTarget) || this.#elementRef?.nativeElement?.contains(newTarget))) {\n\t\t\t\t// Remove the tooltip if needed.\n\t\t\t\tif (this.#overlayRef) {\n\t\t\t\t\tthis.#overlayRef.dispose();\n\t\t\t\t\tdelete this._showDelayId;\n\t\t\t\t\tdelete this._hideDelayId;\n\t\t\t\t}\n\t\t\t}\n\t\t}, this.closeDelay);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.hideContent(null);\n\t}\n}\n","<button\n\ttype=\"button\"\n\tclass=\"calloutPopover palette-{{palette}} mod-{{size}}\"\n\t#overlayOriginRef\n\t(mouseenter)=\"showContent()\"\n\t(focus)=\"showContent()\"\n\t(mouseleave)=\"hideContent($event)\"\n\t(blur)=\"hideContent(null)\"\n>\n\t<lu-icon class=\"calloutPopover-icon\" [icon]=\"icon\"></lu-icon>\n\t{{buttonLabel}}\n</button>\n<ng-template #overlayContentRef>\n\t<div\n\t\t[@tooltip]=\"'open'\"\n\t\tclass=\"lu-popover-content calloutPopover-overlay mod-{{contentSize}}\"\n\t\t(mouseenter)=\"showContent()\"\n\t\t(mouseleave)=\"hideContent($event)\"\n\t>\n\t\t<div class=\"calloutPopover-overlay-head\">\n\t\t\t<lu-icon class=\"calloutPopover-overlay-head-icon palette-{{palette}}\" [icon]=\"icon\"></lu-icon>\n\t\t\t<strong class=\"calloutPopover-overlay-head-title\">\n\t\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t\t</strong>\n\t\t</div>\n\t\t<div class=\"calloutPopover-overlay-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n</ng-template>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'li[lu-callout-feedback-item]',\n\tstandalone: true,\n\timports: [],\n\ttemplateUrl: './callout-feedback-item.component.html',\n\tstyleUrls: ['./callout-feedback-item.component.scss'],\n\t// eslint-disable-next-line @angular-eslint/no-host-metadata-property\n\thost: {\n\t\tclass: 'calloutFeedbackList-item',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutFeedbackItemComponent {}\n","<span class=\"calloutFeedbackList-item-description\">\n\t<ng-content select=\"lu-feedback-item-description\"></ng-content>\n</span>\n<div class=\"calloutFeedbackList-item-actions\">\n\t<ng-content select=\"[lu-feedback-item-action]\"></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, inject, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { NgClazz, Palette } from '@lucca-front/ng/core';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'ul[lu-callout-feedback-list]',\n\tstandalone: true,\n\ttemplate: '<ng-content></ng-content>',\n\tstyleUrls: ['./callout-feedback-list.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'calloutFeedbackList',\n\t},\n\thostDirectives: [NgClazz],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutFeedbackListComponent implements OnChanges {\n\t#ngClass = inject(NgClazz);\n\n\t@Input()\n\tpalette: Palette;\n\n\t@Input()\n\tsize: 'M' | 'S';\n\n\tngOnChanges(): void {\n\t\tthis.#ngClass.ngClass = [`palette-${this.palette}`, `mod-${this.size}`];\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|