@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
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { IconComponent } from '@lucca-front/ng/icon';
|
|
4
|
+
import { PortalDirective } from '@lucca-front/ng/core';
|
|
5
|
+
import { CalloutStateMap } from '../callout-state';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
class CalloutDisclosureComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.palette = 'none';
|
|
11
|
+
this.size = 'M';
|
|
12
|
+
}
|
|
13
|
+
set state(state) {
|
|
14
|
+
const { icon, palette } = CalloutStateMap[state];
|
|
15
|
+
if (this.palette === 'none') {
|
|
16
|
+
this.palette = palette;
|
|
17
|
+
}
|
|
18
|
+
if (!this.icon) {
|
|
19
|
+
this.icon = icon;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutDisclosureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
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 }); }
|
|
24
|
+
}
|
|
25
|
+
export { CalloutDisclosureComponent };
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutDisclosureComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
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"] }]
|
|
29
|
+
}], propDecorators: { icon: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], heading: [{
|
|
32
|
+
type: Input,
|
|
33
|
+
args: [{ required: true }]
|
|
34
|
+
}], palette: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], size: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], state: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbG91dC1kaXNjbG9zdXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NhbGxvdXQvY2FsbG91dC1kaXNjbG9zdXJlL2NhbGxvdXQtZGlzY2xvc3VyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9jYWxsb3V0L2NhbGxvdXQtZGlzY2xvc3VyZS9jYWxsb3V0LWRpc2Nsb3N1cmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQTBCLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9FLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUVqRSxNQVNhLDBCQUEwQjtJQVR2QztRQWlCQyxZQUFPLEdBQVksTUFBTSxDQUFDO1FBRzFCLFNBQUksR0FBYyxHQUFHLENBQUM7S0FtQnRCO0lBakJBLElBUUksS0FBSyxDQUFDLEtBQW1CO1FBQzVCLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7U0FDdkI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ2pCO0lBQ0YsQ0FBQzs4R0E3QlcsMEJBQTBCO2tHQUExQiwwQkFBMEIsaUxDaEJ2Qywwa0JBWUEseWlHREZXLFlBQVksbUlBQUUsYUFBYSw4RkFBRSxlQUFlOztTQU0xQywwQkFBMEI7MkZBQTFCLDBCQUEwQjtrQkFUdEMsU0FBUzsrQkFDQyx1QkFBdUIsY0FDckIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsbUJBR3RDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OEJBSXJDLElBQUk7c0JBREgsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUl6QixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQVdGLEtBQUs7c0JBUlIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvaWNvbic7XG5pbXBvcnQgeyBMdWNjYUljb24gfSBmcm9tICdAbHVjY2EtZnJvbnQvaWNvbnMnO1xuaW1wb3J0IHsgUGFsZXR0ZSwgUG9ydGFsQ29udGVudCwgUG9ydGFsRGlyZWN0aXZlIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL2NvcmUnO1xuaW1wb3J0IHsgQ2FsbG91dFN0YXRlLCBDYWxsb3V0U3RhdGVNYXAgfSBmcm9tICcuLi9jYWxsb3V0LXN0YXRlJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbHUtY2FsbG91dC1kaXNjbG9zdXJlJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudCwgUG9ydGFsRGlyZWN0aXZlXSxcblx0dGVtcGxhdGVVcmw6ICcuL2NhbGxvdXQtZGlzY2xvc3VyZS5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL2NhbGxvdXQtZGlzY2xvc3VyZS5jb21wb25lbnQuc2NzcyddLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0ZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsbG91dERpc2Nsb3N1cmVDb21wb25lbnQge1xuXHRASW5wdXQoKVxuXHRpY29uOiBMdWNjYUljb247XG5cblx0QElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcblx0aGVhZGluZzogUG9ydGFsQ29udGVudDtcblxuXHRASW5wdXQoKVxuXHRwYWxldHRlOiBQYWxldHRlID0gJ25vbmUnO1xuXG5cdEBJbnB1dCgpXG5cdHNpemU6ICdNJyB8ICdTJyA9ICdNJztcblxuXHRASW5wdXQoKVxuXHQvKipcblx0ICogU3RhdGUgaXMgYSBzaG9ydGhhbmQgdG8gc2V0IHRoZSBpY29uIGFuZCB0aGUgcGFsZXR0ZSB0byB0aGUgcmVjb21tZW5kZWQgdmFsdWVzIGZvciB0aGUgaWNvbiBhbmQgcGFsZXR0ZSBiYXNlZCBvblxuXHQgKiB0aGUgcHJvdmlkZWQgc3RhdGUuXG5cdCAqXG5cdCAqIElmIG9uZSBvZiB0aGUgaWNvbiBvciBwYWxldHRlIGlucHV0cyBhcmUgZmlsbGVkIGFsb25nIHdpdGggdGhlIHN0YXRlIGlucHV0LCB0aGVpciB2YWx1ZXMgd2lsbCBoYXZlIHRoZSBwcmlvcml0eSBvdmVyXG5cdCAqIHN0YXRlIChzbyBzZXR0aW5nIHN0YXRlIHRvIHN1Y2Nlc3MgYW5kIHBhbGV0dGUgdG8gd2FybmluZyB3aWxsIG1ha2UgdGhlIHBhbGV0dGUgd2FybmluZylcblx0ICovXG5cdHNldCBzdGF0ZShzdGF0ZTogQ2FsbG91dFN0YXRlKSB7XG5cdFx0Y29uc3QgeyBpY29uLCBwYWxldHRlIH0gPSBDYWxsb3V0U3RhdGVNYXBbc3RhdGVdO1xuXHRcdGlmICh0aGlzLnBhbGV0dGUgPT09ICdub25lJykge1xuXHRcdFx0dGhpcy5wYWxldHRlID0gcGFsZXR0ZTtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLmljb24pIHtcblx0XHRcdHRoaXMuaWNvbiA9IGljb247XG5cdFx0fVxuXHR9XG59XG4iLCI8ZGV0YWlscyBjbGFzcz1cImNhbGxvdXREaXNjbG9zdXJlIHBhbGV0dGUte3twYWxldHRlfX0gbW9kLXt7c2l6ZX19XCIgW2NsYXNzLm1vZC1pY29ubGVzc109XCIhaWNvblwiPlxuXHQ8c3VtbWFyeSBjbGFzcz1cImNhbGxvdXREaXNjbG9zdXJlLXN1bW1hcnlcIj5cblx0XHQ8bHUtaWNvbiBjbGFzcz1cImNhbGxvdXREaXNjbG9zdXJlLXN1bW1hcnktaWNvblwiICpuZ0lmPVwiaWNvblwiIFtpY29uXT1cImljb25cIj48L2x1LWljb24+XG5cdFx0PHNwYW4gY2xhc3M9XCJjYWxsb3V0RGlzY2xvc3VyZS1zdW1tYXJ5LXRpdGxlXCI+XG5cdFx0XHQ8bmctY29udGFpbmVyICpsdVBvcnRhbD1cImhlYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cblx0XHQ8L3NwYW4+XG5cdFx0PGx1LWljb24gY2xhc3M9XCJjYWxsb3V0RGlzY2xvc3VyZS1zdW1tYXJ5LWNoZXZyb25cIiBpY29uPVwiYXJyb3dDaGV2cm9uQm90dG9tXCI+PC9sdS1pY29uPlxuXHQ8L3N1bW1hcnk+XG5cdDxkaXYgY2xhc3M9XCJjYWxsb3V0RGlzY2xvc3VyZS1kZXRhaWxzXCI+XG5cdFx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXHQ8L2Rpdj5cbjwvZGV0YWlscz5cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
class CalloutFeedbackItemComponent {
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutFeedbackItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
+
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 }); }
|
|
6
|
+
}
|
|
7
|
+
export { CalloutFeedbackItemComponent };
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutFeedbackItemComponent, decorators: [{
|
|
9
|
+
type: Component,
|
|
10
|
+
args: [{ selector: 'li[lu-callout-feedback-item]', standalone: true, imports: [], host: {
|
|
11
|
+
class: 'calloutFeedbackList-item',
|
|
12
|
+
}, 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"] }]
|
|
13
|
+
}] });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbG91dC1mZWVkYmFjay1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NhbGxvdXQvY2FsbG91dC1mZWVkYmFjay1pdGVtL2NhbGxvdXQtZmVlZGJhY2staXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9jYWxsb3V0L2NhbGxvdXQtZmVlZGJhY2staXRlbS9jYWxsb3V0LWZlZWRiYWNrLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFN0QsTUFhYSw0QkFBNEI7OEdBQTVCLDRCQUE0QjtrR0FBNUIsNEJBQTRCLDhJQ2Z6QyxtUUFNQTs7U0RTYSw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFieEMsU0FBUzsrQkFFQyw4QkFBOEIsY0FDNUIsSUFBSSxXQUNQLEVBQUUsUUFJTDt3QkFDTCxLQUFLLEVBQUUsMEJBQTBCO3FCQUNqQyxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3Jcblx0c2VsZWN0b3I6ICdsaVtsdS1jYWxsb3V0LWZlZWRiYWNrLWl0ZW1dJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW10sXG5cdHRlbXBsYXRlVXJsOiAnLi9jYWxsb3V0LWZlZWRiYWNrLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9jYWxsb3V0LWZlZWRiYWNrLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG5cdGhvc3Q6IHtcblx0XHRjbGFzczogJ2NhbGxvdXRGZWVkYmFja0xpc3QtaXRlbScsXG5cdH0sXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIENhbGxvdXRGZWVkYmFja0l0ZW1Db21wb25lbnQge31cbiIsIjxzcGFuIGNsYXNzPVwiY2FsbG91dEZlZWRiYWNrTGlzdC1pdGVtLWRlc2NyaXB0aW9uXCI+XG5cdDxuZy1jb250ZW50IHNlbGVjdD1cImx1LWZlZWRiYWNrLWl0ZW0tZGVzY3JpcHRpb25cIj48L25nLWNvbnRlbnQ+XG48L3NwYW4+XG48ZGl2IGNsYXNzPVwiY2FsbG91dEZlZWRiYWNrTGlzdC1pdGVtLWFjdGlvbnNcIj5cblx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2x1LWZlZWRiYWNrLWl0ZW0tYWN0aW9uXVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { NgClazz } from '@lucca-front/ng/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@lucca-front/ng/core";
|
|
5
|
+
class CalloutFeedbackListComponent {
|
|
6
|
+
#ngClass = inject(NgClazz);
|
|
7
|
+
ngOnChanges() {
|
|
8
|
+
this.#ngClass.ngClass = [`palette-${this.palette}`, `mod-${this.size}`];
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutFeedbackListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
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.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 }); }
|
|
12
|
+
}
|
|
13
|
+
export { CalloutFeedbackListComponent };
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutFeedbackListComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'ul[lu-callout-feedback-list]', standalone: true, template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
17
|
+
class: 'calloutFeedbackList',
|
|
18
|
+
}, 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"] }]
|
|
19
|
+
}], propDecorators: { palette: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], size: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}] } });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbG91dC1mZWVkYmFjay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NhbGxvdXQvY2FsbG91dC1mZWVkYmFjay1saXN0L2NhbGxvdXQtZmVlZGJhY2stbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxPQUFPLEVBQVcsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRXhELE1BYWEsNEJBQTRCO0lBQ3hDLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFRM0IsV0FBVztRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDOzhHQVhXLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHlQQVQ5QiwyQkFBMkI7O1NBU3pCLDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQWJ4QyxTQUFTOytCQUVDLDhCQUE4QixjQUM1QixJQUFJLFlBQ04sMkJBQTJCLG1CQUVwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNMLEtBQUssRUFBRSxxQkFBcUI7cUJBQzVCLGtCQUNlLENBQUMsT0FBTyxDQUFDLGlCQUNWLGlCQUFpQixDQUFDLElBQUk7OEJBTXJDLE9BQU87c0JBRE4sS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXp6LCBQYWxldHRlIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3Jcblx0c2VsZWN0b3I6ICd1bFtsdS1jYWxsb3V0LWZlZWRiYWNrLWxpc3RdJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+Jyxcblx0c3R5bGVVcmxzOiBbJy4vY2FsbG91dC1mZWVkYmFjay1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRob3N0OiB7XG5cdFx0Y2xhc3M6ICdjYWxsb3V0RmVlZGJhY2tMaXN0Jyxcblx0fSxcblx0aG9zdERpcmVjdGl2ZXM6IFtOZ0NsYXp6XSxcblx0ZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsbG91dEZlZWRiYWNrTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cdCNuZ0NsYXNzID0gaW5qZWN0KE5nQ2xhenopO1xuXG5cdEBJbnB1dCgpXG5cdHBhbGV0dGU6IFBhbGV0dGU7XG5cblx0QElucHV0KClcblx0c2l6ZTogJ00nIHwgJ1MnO1xuXG5cdG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuXHRcdHRoaXMuI25nQ2xhc3MubmdDbGFzcyA9IFtgcGFsZXR0ZS0ke3RoaXMucGFsZXR0ZX1gLCBgbW9kLSR7dGhpcy5zaXplfWBdO1xuXHR9XG59XG4iXX0=
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, inject, Input, numberAttribute, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { IconComponent } from '@lucca-front/ng/icon';
|
|
4
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
5
|
+
import { TemplatePortal } from '@angular/cdk/portal';
|
|
6
|
+
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
7
|
+
import { PortalDirective } from '@lucca-front/ng/core';
|
|
8
|
+
import { ButtonComponent } from '@lucca-front/ng/button';
|
|
9
|
+
import { CalloutStateMap } from '../callout-state';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
class CalloutPopoverComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.#overlay = inject(Overlay);
|
|
14
|
+
this.#viewContainerRef = inject(ViewContainerRef);
|
|
15
|
+
this.#elementRef = inject(ElementRef);
|
|
16
|
+
/**
|
|
17
|
+
* Debounce for the popover to open (mouse will have to be on the element fox openDelay milliseconds for popover to show)
|
|
18
|
+
*/
|
|
19
|
+
this.openDelay = 50;
|
|
20
|
+
/**
|
|
21
|
+
* Debounce for the popover to close (mouse will have to be out of both popover and trigger for closeDelay milliseconds for it to close)
|
|
22
|
+
*/
|
|
23
|
+
this.closeDelay = 500;
|
|
24
|
+
/**
|
|
25
|
+
* Palette for both the button and the popover content
|
|
26
|
+
*/
|
|
27
|
+
this.palette = 'none';
|
|
28
|
+
}
|
|
29
|
+
#overlay;
|
|
30
|
+
#viewContainerRef;
|
|
31
|
+
#elementRef;
|
|
32
|
+
#overlayRef;
|
|
33
|
+
set state(state) {
|
|
34
|
+
const { icon, palette } = CalloutStateMap[state];
|
|
35
|
+
if (this.palette === 'none') {
|
|
36
|
+
this.palette = palette;
|
|
37
|
+
}
|
|
38
|
+
if (!this.icon) {
|
|
39
|
+
this.icon = icon;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
get contentSize() {
|
|
43
|
+
if (this.size === 'XS') {
|
|
44
|
+
return 'S';
|
|
45
|
+
}
|
|
46
|
+
return this.size;
|
|
47
|
+
}
|
|
48
|
+
showContent() {
|
|
49
|
+
clearTimeout(this._hideDelayId);
|
|
50
|
+
// Don't open if we still have one opened
|
|
51
|
+
if (this._showDelayId) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this._showDelayId = setTimeout(() => {
|
|
55
|
+
this.createPanelContent();
|
|
56
|
+
delete this._hideDelayId;
|
|
57
|
+
}, this.openDelay);
|
|
58
|
+
}
|
|
59
|
+
createPanelContent() {
|
|
60
|
+
const positionStrategy = this.#overlay
|
|
61
|
+
.position()
|
|
62
|
+
.flexibleConnectedTo(this.overlayOrigin)
|
|
63
|
+
.withPositions([
|
|
64
|
+
{
|
|
65
|
+
originX: 'center',
|
|
66
|
+
originY: 'top',
|
|
67
|
+
overlayX: 'center',
|
|
68
|
+
overlayY: 'bottom',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
originX: 'center',
|
|
72
|
+
originY: 'bottom',
|
|
73
|
+
overlayX: 'center',
|
|
74
|
+
overlayY: 'top',
|
|
75
|
+
},
|
|
76
|
+
]);
|
|
77
|
+
this.#overlayRef = this.#overlay.create({
|
|
78
|
+
positionStrategy,
|
|
79
|
+
});
|
|
80
|
+
const portal = new TemplatePortal(this.overlayContent, this.#viewContainerRef);
|
|
81
|
+
this.#overlayRef.attach(portal);
|
|
82
|
+
}
|
|
83
|
+
hideContent(event) {
|
|
84
|
+
clearTimeout(this._showDelayId);
|
|
85
|
+
this._hideDelayId = setTimeout(() => {
|
|
86
|
+
const newTarget = event?.relatedTarget;
|
|
87
|
+
// This is to prevent tooltip closing when user puts cursor on tooltip, thus leaving the origin trigger
|
|
88
|
+
if (!newTarget || !(this.#overlayRef?.overlayElement?.contains(newTarget) || this.#elementRef?.nativeElement?.contains(newTarget))) {
|
|
89
|
+
// Remove the tooltip if needed.
|
|
90
|
+
if (this.#overlayRef) {
|
|
91
|
+
this.#overlayRef.dispose();
|
|
92
|
+
delete this._showDelayId;
|
|
93
|
+
delete this._hideDelayId;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}, this.closeDelay);
|
|
97
|
+
}
|
|
98
|
+
ngOnDestroy() {
|
|
99
|
+
this.hideContent(null);
|
|
100
|
+
}
|
|
101
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
102
|
+
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: [
|
|
103
|
+
trigger('tooltip', [
|
|
104
|
+
state('enter', style({
|
|
105
|
+
opacity: 1,
|
|
106
|
+
transform: `scale(1)`,
|
|
107
|
+
})),
|
|
108
|
+
transition('void => *', [
|
|
109
|
+
style({
|
|
110
|
+
opacity: 0,
|
|
111
|
+
transform: `scale(0)`,
|
|
112
|
+
}),
|
|
113
|
+
animate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),
|
|
114
|
+
]),
|
|
115
|
+
transition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),
|
|
116
|
+
]),
|
|
117
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
118
|
+
}
|
|
119
|
+
export { CalloutPopoverComponent };
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CalloutPopoverComponent, decorators: [{
|
|
121
|
+
type: Component,
|
|
122
|
+
args: [{ selector: 'lu-callout-popover', standalone: true, imports: [CommonModule, IconComponent, ButtonComponent, PortalDirective], animations: [
|
|
123
|
+
trigger('tooltip', [
|
|
124
|
+
state('enter', style({
|
|
125
|
+
opacity: 1,
|
|
126
|
+
transform: `scale(1)`,
|
|
127
|
+
})),
|
|
128
|
+
transition('void => *', [
|
|
129
|
+
style({
|
|
130
|
+
opacity: 0,
|
|
131
|
+
transform: `scale(0)`,
|
|
132
|
+
}),
|
|
133
|
+
animate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),
|
|
134
|
+
]),
|
|
135
|
+
transition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),
|
|
136
|
+
]),
|
|
137
|
+
], 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"] }]
|
|
138
|
+
}], propDecorators: { overlayOrigin: [{
|
|
139
|
+
type: ViewChild,
|
|
140
|
+
args: ['overlayOriginRef']
|
|
141
|
+
}], overlayContent: [{
|
|
142
|
+
type: ViewChild,
|
|
143
|
+
args: ['overlayContentRef']
|
|
144
|
+
}], openDelay: [{
|
|
145
|
+
type: Input,
|
|
146
|
+
args: [{ transform: numberAttribute }]
|
|
147
|
+
}], closeDelay: [{
|
|
148
|
+
type: Input,
|
|
149
|
+
args: [{ transform: numberAttribute }]
|
|
150
|
+
}], buttonLabel: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], palette: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], size: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], icon: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], state: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], heading: [{
|
|
161
|
+
type: Input,
|
|
162
|
+
args: [{ required: true }]
|
|
163
|
+
}] } });
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbG91dC1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NhbGxvdXQvY2FsbG91dC1wb3BvdmVyL2NhbGxvdXQtcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9jYWxsb3V0L2NhbGxvdXQtcG9wb3Zlci9jYWxsb3V0LXBvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQTBCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2TCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQTBCLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUVqRSxNQTRCYSx1QkFBdUI7SUE1QnBDO1FBNkJDLGFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0Isc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDN0Ms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Q0FBQztnQ0FDTCxPQUFPLEVBQUUsQ0FBQztnQ0FDVixTQUFTLEVBQUUsVUFBVTs2QkFDckIsQ0FBQyxDQUNGOzRCQUNELFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0NBQ3ZCLEtBQUssQ0FBQztvQ0FDTCxPQUFPLEVBQUUsQ0FBQztvQ0FDVixTQUFTLEVBQUUsVUFBVTtpQ0FDckIsQ0FBQztnQ0FDRixPQUFPLENBQUMsd0NBQXdDLENBQUM7NkJBQ2pELENBQUM7NEJBQ0YsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQzlFLENBQUM7cUJBQ0YsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OEJBUXJDLGFBQWE7c0JBRFosU0FBUzt1QkFBQyxrQkFBa0I7Z0JBSTdCLGNBQWM7c0JBRGIsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBZXJCLFNBQVM7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQU81QixVQUFVO3NCQURsQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFPckMsV0FBVztzQkFEVixLQUFLO2dCQU9OLE9BQU87c0JBRE4sS0FBSztnQkFPTixJQUFJO3NCQURILEtBQUs7Z0JBT04sSUFBSTtzQkFESCxLQUFLO2dCQVdGLEtBQUs7c0JBUlIsS0FBSztnQkFzQk4sT0FBTztzQkFETixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIG51bWJlckF0dHJpYnV0ZSwgT25EZXN0cm95LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvaWNvbic7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgUGFsZXR0ZSwgUG9ydGFsQ29udGVudCwgUG9ydGFsRGlyZWN0aXZlIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL2NvcmUnO1xuaW1wb3J0IHsgTHVjY2FJY29uIH0gZnJvbSAnQGx1Y2NhLWZyb250L2ljb25zJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9idXR0b24nO1xuaW1wb3J0IHsgQ2FsbG91dFN0YXRlLCBDYWxsb3V0U3RhdGVNYXAgfSBmcm9tICcuLi9jYWxsb3V0LXN0YXRlJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbHUtY2FsbG91dC1wb3BvdmVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBQb3J0YWxEaXJlY3RpdmVdLFxuXHRhbmltYXRpb25zOiBbXG5cdFx0dHJpZ2dlcigndG9vbHRpcCcsIFtcblx0XHRcdHN0YXRlKFxuXHRcdFx0XHQnZW50ZXInLFxuXHRcdFx0XHRzdHlsZSh7XG5cdFx0XHRcdFx0b3BhY2l0eTogMSxcblx0XHRcdFx0XHR0cmFuc2Zvcm06IGBzY2FsZSgxKWAsXG5cdFx0XHRcdH0pLFxuXHRcdFx0KSxcblx0XHRcdHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIFtcblx0XHRcdFx0c3R5bGUoe1xuXHRcdFx0XHRcdG9wYWNpdHk6IDAsXG5cdFx0XHRcdFx0dHJhbnNmb3JtOiBgc2NhbGUoMClgLFxuXHRcdFx0XHR9KSxcblx0XHRcdFx0YW5pbWF0ZShgMTUwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSlgKSxcblx0XHRcdF0pLFxuXHRcdFx0dHJhbnNpdGlvbignKiA9PiB2b2lkJywgW2FuaW1hdGUoJzUwbXMgMTAwbXMgbGluZWFyJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKV0pLFxuXHRcdF0pLFxuXHRdLFxuXHR0ZW1wbGF0ZVVybDogJy4vY2FsbG91dC1wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vY2FsbG91dC1wb3BvdmVyLmNvbXBvbmVudC5zY3NzJ10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxsb3V0UG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cdCNvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuXHQjdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblx0I2VsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG5cdEBWaWV3Q2hpbGQoJ292ZXJsYXlPcmlnaW5SZWYnKVxuXHRvdmVybGF5T3JpZ2luOiBFbGVtZW50UmVmO1xuXG5cdEBWaWV3Q2hpbGQoJ292ZXJsYXlDb250ZW50UmVmJylcblx0b3ZlcmxheUNvbnRlbnQ6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG5cdCNvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuXG5cdC8vIFVzaW5nIHVua25vd24gaGVyZSBiZWNhdXNlIGl0J3MgdXNpbmcgTm9kZSB0eXBlcyBmb3Igd2hhdGV2ZXIgcmVhc29uIGJ1dCBpdCdzIGEgbnVtYmVyXG5cdHByaXZhdGUgX2hpZGVEZWxheUlkOiB1bmtub3duIHwgdW5kZWZpbmVkO1xuXG5cdC8vIFVzaW5nIHVua25vd24gaGVyZSBiZWNhdXNlIGl0J3MgdXNpbmcgTm9kZSB0eXBlcyBmb3Igd2hhdGV2ZXIgcmVhc29uIGJ1dCBpdCdzIGEgbnVtYmVyXG5cdHByaXZhdGUgX3Nob3dEZWxheUlkOiB1bmtub3duIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBEZWJvdW5jZSBmb3IgdGhlIHBvcG92ZXIgdG8gb3BlbiAobW91c2Ugd2lsbCBoYXZlIHRvIGJlIG9uIHRoZSBlbGVtZW50IGZveCBvcGVuRGVsYXkgbWlsbGlzZWNvbmRzIGZvciBwb3BvdmVyIHRvIHNob3cpXG5cdCAqL1xuXHRASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuXHRyZWFkb25seSBvcGVuRGVsYXkgPSA1MDtcblxuXHQvKipcblx0ICogRGVib3VuY2UgZm9yIHRoZSBwb3BvdmVyIHRvIGNsb3NlIChtb3VzZSB3aWxsIGhhdmUgdG8gYmUgb3V0IG9mIGJvdGggcG9wb3ZlciBhbmQgdHJpZ2dlciBmb3IgY2xvc2VEZWxheSBtaWxsaXNlY29uZHMgZm9yIGl0IHRvIGNsb3NlKVxuXHQgKi9cblx0QElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcblx0cmVhZG9ubHkgY2xvc2VEZWxheSA9IDUwMDtcblxuXHQvKipcblx0ICogTGFiZWwgdG8gcHV0IGluc2lkZSB0aGUgYnV0dG9uLCBvZnRlbiB1c2VkIHRvIHNob3cganVzdCBhIG51bWJlclxuXHQgKi9cblx0QElucHV0KClcblx0YnV0dG9uTGFiZWw6IHN0cmluZztcblxuXHQvKipcblx0ICogUGFsZXR0ZSBmb3IgYm90aCB0aGUgYnV0dG9uIGFuZCB0aGUgcG9wb3ZlciBjb250ZW50XG5cdCAqL1xuXHRASW5wdXQoKVxuXHRwYWxldHRlOiBQYWxldHRlID0gJ25vbmUnO1xuXG5cdC8qKlxuXHQgKiBTaXplIGZvciBib3RoIGJ1dHRvbiBhbmQgcG9wb3ZlciBjb250ZW50XG5cdCAqL1xuXHRASW5wdXQoKVxuXHRzaXplPzogJ00nIHwgJ1MnIHwgJ1hTJztcblxuXHQvKipcblx0ICogSWNvbiBzaG93cyBpbiBidXR0b24gYW5kIG5leHQgdG8gcG9wb3ZlcidzIHRpdGxlXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRpY29uOiBMdWNjYUljb247XG5cblx0QElucHV0KClcblx0LyoqXG5cdCAqIFN0YXRlIGlzIGEgc2hvcnRoYW5kIHRvIHNldCB0aGUgaWNvbiBhbmQgdGhlIHBhbGV0dGUgdG8gdGhlIHJlY29tbWVuZGVkIHZhbHVlcyBmb3IgdGhlIGljb24gYW5kIHBhbGV0dGUgYmFzZWQgb25cblx0ICogdGhlIHByb3ZpZGVkIHN0YXRlLlxuXHQgKlxuXHQgKiBJZiBvbmUgb2YgdGhlIGljb24gb3IgcGFsZXR0ZSBpbnB1dHMgYXJlIGZpbGxlZCBhbG9uZyB3aXRoIHRoZSBzdGF0ZSBpbnB1dCwgdGhlaXIgdmFsdWVzIHdpbGwgaGF2ZSB0aGUgcHJpb3JpdHkgb3ZlclxuXHQgKiBzdGF0ZSAoc28gc2V0dGluZyBzdGF0ZSB0byBzdWNjZXNzIGFuZCBwYWxldHRlIHRvIHdhcm5pbmcgd2lsbCBtYWtlIHRoZSBwYWxldHRlIHdhcm5pbmcpXG5cdCAqL1xuXHRzZXQgc3RhdGUoc3RhdGU6IENhbGxvdXRTdGF0ZSkge1xuXHRcdGNvbnN0IHsgaWNvbiwgcGFsZXR0ZSB9ID0gQ2FsbG91dFN0YXRlTWFwW3N0YXRlXTtcblx0XHRpZiAodGhpcy5wYWxldHRlID09PSAnbm9uZScpIHtcblx0XHRcdHRoaXMucGFsZXR0ZSA9IHBhbGV0dGU7XG5cdFx0fVxuXHRcdGlmICghdGhpcy5pY29uKSB7XG5cdFx0XHR0aGlzLmljb24gPSBpY29uO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBIZWFkaW5nIGZvciB0aGUgZGV0YWlscyBwb3BvdmVyXG5cdCAqL1xuXHRASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuXHRoZWFkaW5nOiBQb3J0YWxDb250ZW50O1xuXG5cdGdldCBjb250ZW50U2l6ZSgpOiAnUycgfCAnTScgfCB1bmRlZmluZWQge1xuXHRcdGlmICh0aGlzLnNpemUgPT09ICdYUycpIHtcblx0XHRcdHJldHVybiAnUyc7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnNpemU7XG5cdH1cblxuXHRwdWJsaWMgc2hvd0NvbnRlbnQoKSB7XG5cdFx0Y2xlYXJUaW1lb3V0KHRoaXMuX2hpZGVEZWxheUlkIGFzIG51bWJlcik7XG5cdFx0Ly8gRG9uJ3Qgb3BlbiBpZiB3ZSBzdGlsbCBoYXZlIG9uZSBvcGVuZWRcblx0XHRpZiAodGhpcy5fc2hvd0RlbGF5SWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5fc2hvd0RlbGF5SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuY3JlYXRlUGFuZWxDb250ZW50KCk7XG5cdFx0XHRkZWxldGUgdGhpcy5faGlkZURlbGF5SWQ7XG5cdFx0fSwgdGhpcy5vcGVuRGVsYXkpO1xuXHR9XG5cblx0cHJpdmF0ZSBjcmVhdGVQYW5lbENvbnRlbnQoKSB7XG5cdFx0Y29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuI292ZXJsYXlcblx0XHRcdC5wb3NpdGlvbigpXG5cdFx0XHQuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLm92ZXJsYXlPcmlnaW4pXG5cdFx0XHQud2l0aFBvc2l0aW9ucyhbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRvcmlnaW5YOiAnY2VudGVyJyxcblx0XHRcdFx0XHRvcmlnaW5ZOiAndG9wJyxcblx0XHRcdFx0XHRvdmVybGF5WDogJ2NlbnRlcicsXG5cdFx0XHRcdFx0b3ZlcmxheVk6ICdib3R0b20nLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0b3JpZ2luWDogJ2NlbnRlcicsXG5cdFx0XHRcdFx0b3JpZ2luWTogJ2JvdHRvbScsXG5cdFx0XHRcdFx0b3ZlcmxheVg6ICdjZW50ZXInLFxuXHRcdFx0XHRcdG92ZXJsYXlZOiAndG9wJyxcblx0XHRcdFx0fSxcblx0XHRcdF0pO1xuXG5cdFx0dGhpcy4jb3ZlcmxheVJlZiA9IHRoaXMuI292ZXJsYXkuY3JlYXRlKHtcblx0XHRcdHBvc2l0aW9uU3RyYXRlZ3ksXG5cdFx0fSk7XG5cblx0XHRjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5vdmVybGF5Q29udGVudCwgdGhpcy4jdmlld0NvbnRhaW5lclJlZik7XG5cblx0XHR0aGlzLiNvdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXHR9XG5cblx0cHVibGljIGhpZGVDb250ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgbnVsbCkge1xuXHRcdGNsZWFyVGltZW91dCh0aGlzLl9zaG93RGVsYXlJZCBhcyBudW1iZXIpO1xuXHRcdHRoaXMuX2hpZGVEZWxheUlkID0gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRjb25zdCBuZXdUYXJnZXQgPSBldmVudD8ucmVsYXRlZFRhcmdldCBhcyBOb2RlIHwgbnVsbDtcblx0XHRcdC8vIFRoaXMgaXMgdG8gcHJldmVudCB0b29sdGlwIGNsb3Npbmcgd2hlbiB1c2VyIHB1dHMgY3Vyc29yIG9uIHRvb2x0aXAsIHRodXMgbGVhdmluZyB0aGUgb3JpZ2luIHRyaWdnZXJcblx0XHRcdGlmICghbmV3VGFyZ2V0IHx8ICEodGhpcy4jb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQ/LmNvbnRhaW5zKG5ld1RhcmdldCkgfHwgdGhpcy4jZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uY29udGFpbnMobmV3VGFyZ2V0KSkpIHtcblx0XHRcdFx0Ly8gUmVtb3ZlIHRoZSB0b29sdGlwIGlmIG5lZWRlZC5cblx0XHRcdFx0aWYgKHRoaXMuI292ZXJsYXlSZWYpIHtcblx0XHRcdFx0XHR0aGlzLiNvdmVybGF5UmVmLmRpc3Bvc2UoKTtcblx0XHRcdFx0XHRkZWxldGUgdGhpcy5fc2hvd0RlbGF5SWQ7XG5cdFx0XHRcdFx0ZGVsZXRlIHRoaXMuX2hpZGVEZWxheUlkO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSwgdGhpcy5jbG9zZURlbGF5KTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuaGlkZUNvbnRlbnQobnVsbCk7XG5cdH1cbn1cbiIsIjxidXR0b25cblx0dHlwZT1cImJ1dHRvblwiXG5cdGNsYXNzPVwiY2FsbG91dFBvcG92ZXIgcGFsZXR0ZS17e3BhbGV0dGV9fSBtb2Qte3tzaXplfX1cIlxuXHQjb3ZlcmxheU9yaWdpblJlZlxuXHQobW91c2VlbnRlcik9XCJzaG93Q29udGVudCgpXCJcblx0KGZvY3VzKT1cInNob3dDb250ZW50KClcIlxuXHQobW91c2VsZWF2ZSk9XCJoaWRlQ29udGVudCgkZXZlbnQpXCJcblx0KGJsdXIpPVwiaGlkZUNvbnRlbnQobnVsbClcIlxuPlxuXHQ8bHUtaWNvbiBjbGFzcz1cImNhbGxvdXRQb3BvdmVyLWljb25cIiBbaWNvbl09XCJpY29uXCI+PC9sdS1pY29uPlxuXHR7e2J1dHRvbkxhYmVsfX1cbjwvYnV0dG9uPlxuPG5nLXRlbXBsYXRlICNvdmVybGF5Q29udGVudFJlZj5cblx0PGRpdlxuXHRcdFtAdG9vbHRpcF09XCInb3BlbidcIlxuXHRcdGNsYXNzPVwibHUtcG9wb3Zlci1jb250ZW50IGNhbGxvdXRQb3BvdmVyLW92ZXJsYXkgbW9kLXt7Y29udGVudFNpemV9fVwiXG5cdFx0KG1vdXNlZW50ZXIpPVwic2hvd0NvbnRlbnQoKVwiXG5cdFx0KG1vdXNlbGVhdmUpPVwiaGlkZUNvbnRlbnQoJGV2ZW50KVwiXG5cdD5cblx0XHQ8ZGl2IGNsYXNzPVwiY2FsbG91dFBvcG92ZXItb3ZlcmxheS1oZWFkXCI+XG5cdFx0XHQ8bHUtaWNvbiBjbGFzcz1cImNhbGxvdXRQb3BvdmVyLW92ZXJsYXktaGVhZC1pY29uIHBhbGV0dGUte3twYWxldHRlfX1cIiBbaWNvbl09XCJpY29uXCI+PC9sdS1pY29uPlxuXHRcdFx0PHN0cm9uZyBjbGFzcz1cImNhbGxvdXRQb3BvdmVyLW92ZXJsYXktaGVhZC10aXRsZVwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpsdVBvcnRhbD1cImhlYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdDwvc3Ryb25nPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJjYWxsb3V0UG9wb3Zlci1vdmVybGF5LWNvbnRlbnRcIj5cblx0XHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const CalloutStateMap = {
|
|
2
|
+
success: {
|
|
3
|
+
icon: 'signSuccess',
|
|
4
|
+
palette: 'success',
|
|
5
|
+
},
|
|
6
|
+
warning: {
|
|
7
|
+
icon: 'signWarning',
|
|
8
|
+
palette: 'warning',
|
|
9
|
+
},
|
|
10
|
+
error: {
|
|
11
|
+
icon: 'signError',
|
|
12
|
+
palette: 'error',
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbG91dC1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NhbGxvdXQvY2FsbG91dC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWdFO0lBQzNGLE9BQU8sRUFBRTtRQUNSLElBQUksRUFBRSxhQUFhO1FBQ25CLE9BQU8sRUFBRSxTQUFTO0tBQ2xCO0lBQ0QsT0FBTyxFQUFFO1FBQ1IsSUFBSSxFQUFFLGFBQWE7UUFDbkIsT0FBTyxFQUFFLFNBQVM7S0FDbEI7SUFDRCxLQUFLLEVBQUU7UUFDTixJQUFJLEVBQUUsV0FBVztRQUNqQixPQUFPLEVBQUUsT0FBTztLQUNoQjtDQUNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWxldHRlIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL2NvcmUnO1xuaW1wb3J0IHsgTHVjY2FJY29uIH0gZnJvbSAnQGx1Y2NhLWZyb250L2ljb25zJztcblxuZXhwb3J0IHR5cGUgQ2FsbG91dFN0YXRlID0gJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJztcblxuZXhwb3J0IGNvbnN0IENhbGxvdXRTdGF0ZU1hcDogUmVjb3JkPENhbGxvdXRTdGF0ZSwgeyBpY29uOiBMdWNjYUljb247IHBhbGV0dGU6IFBhbGV0dGUgfT4gPSB7XG5cdHN1Y2Nlc3M6IHtcblx0XHRpY29uOiAnc2lnblN1Y2Nlc3MnLFxuXHRcdHBhbGV0dGU6ICdzdWNjZXNzJyxcblx0fSxcblx0d2FybmluZzoge1xuXHRcdGljb246ICdzaWduV2FybmluZycsXG5cdFx0cGFsZXR0ZTogJ3dhcm5pbmcnLFxuXHR9LFxuXHRlcnJvcjoge1xuXHRcdGljb246ICdzaWduRXJyb3InLFxuXHRcdHBhbGV0dGU6ICdlcnJvcicsXG5cdH0sXG59O1xuIl19
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
export * from './callout.component';
|
|
1
|
+
export * from './callout/callout.component';
|
|
2
|
+
export * from './callout-disclosure/callout-disclosure.component';
|
|
3
|
+
export * from './callout-popover/callout-popover.component';
|
|
4
|
+
export * from './callout-feedback-item/callout-feedback-item.component';
|
|
5
|
+
export * from './callout-feedback-list/callout-feedback-list.component';
|
|
2
6
|
export * from './callout.translate';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NhbGxvdXQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FsbG91dC9jYWxsb3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NhbGxvdXQtZGlzY2xvc3VyZS9jYWxsb3V0LWRpc2Nsb3N1cmUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2FsbG91dC1wb3BvdmVyL2NhbGxvdXQtcG9wb3Zlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxsb3V0LWZlZWRiYWNrLWl0ZW0vY2FsbG91dC1mZWVkYmFjay1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NhbGxvdXQtZmVlZGJhY2stbGlzdC9jYWxsb3V0LWZlZWRiYWNrLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2FsbG91dC50cmFuc2xhdGUnO1xuIl19
|
|
@@ -57,13 +57,16 @@ class LuNativeDateAdapter extends ALuDateAdapter {
|
|
|
57
57
|
return false;
|
|
58
58
|
}
|
|
59
59
|
const groups = text.split(this._regex);
|
|
60
|
-
|
|
60
|
+
const dayTextInvalid = granularity === ELuDateGranularity.day && groups.length !== 3;
|
|
61
|
+
const monthTextInvalid = granularity === ELuDateGranularity.month && groups.length !== 2;
|
|
62
|
+
const yearTextInvalid = granularity === ELuDateGranularity.year && groups.length !== 1;
|
|
63
|
+
if (dayTextInvalid || monthTextInvalid || yearTextInvalid) {
|
|
61
64
|
return false;
|
|
62
65
|
}
|
|
63
66
|
try {
|
|
64
67
|
const { date, month, year } = this.extract(text, granularity);
|
|
65
|
-
// When year is greater than 10_000 ISO string goes from 2000-01-01 to +010000-01-01 which is not supported by backends
|
|
66
|
-
if (year
|
|
68
|
+
// When year is equal or greater than 10_000 ISO string goes from 2000-01-01 to +010000-01-01 which is not supported by backends
|
|
69
|
+
if (year >= 10000) {
|
|
67
70
|
return false;
|
|
68
71
|
}
|
|
69
72
|
let d;
|
|
@@ -230,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
|
|
|
230
233
|
}, {
|
|
231
234
|
type: Optional
|
|
232
235
|
}] }]; } });
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NvcmUvZGF0ZS9uYXRpdmUvbmF0aXZlLWRhdGUuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBK0IsaUNBQWlDLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFdEksTUFDYSxtQkFBb0IsU0FBUSxjQUFvQjtJQU81RCxZQUM0QixPQUFlLEVBR2xDLFFBQXFDO1FBRTdDLEtBQUssRUFBRSxDQUFDO1FBTG1CLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFHbEMsYUFBUSxHQUFSLFFBQVEsQ0FBNkI7UUFWdEMsV0FBTSxHQUFHLFlBQVksQ0FBQztRQUN0QixXQUFNLEdBQUc7WUFDaEIsSUFBSSxFQUFFLENBQUM7WUFDUCxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksRUFBRSxDQUFDO1NBQ1AsQ0FBQztRQVFELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxpQ0FBaUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUNPLFNBQVM7UUFDaEIsTUFBTSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEUsTUFBTSxNQUFNLEdB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TyxFQUFFLEtBQWEsRUFBRSxXQUErQjtRQUMxRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixRQUFRLFdBQVcsRUFBRTtZQUNwQixLQUFLLGtCQUFrQixDQUFDLE1BQU07Z0JBQzdCLElBQUksSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixNQUFNO1lBQ1AsS0FBSyxrQkFBa0IsQ0FBQyxJQUFJO2dCQUMzQixJQUFJLElBQUksS0FBSyxDQUFDO2dCQUNkLE1BQU07WUFDUCxLQUFLLGtCQUFrQixDQUFDLEtBQUs7Z0JBQzVCLEtBQUssSUFBSSxLQUFLLENBQUM7Z0JBQ2YsTUFBTTtZQUNQLEtBQUssa0JBQWtCLENBQUMsR0FBRztnQkFDMUIsSUFBSSxJQUFJLEtBQUssQ0FBQztnQkFDZCxNQUFNO1NBQ1A7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOzhHQXJOVyxtQkFBbUIsa0JBUXRCLFNBQVMsYUFDVCw4QkFBOEI7a0hBVDNCLG1CQUFtQjs7U0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQVNSLE1BQU07MkJBQUMsU0FBUzs7MEJBQ2hCLE1BQU07MkJBQUMsOEJBQThCOzswQkFDckMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdERhdGUsIEZvcm1hdFdpZHRoLCBnZXRMb2NhbGVEYXRlRm9ybWF0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgTE9DQUxFX0lELCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUx1RGF0ZUFkYXB0ZXIgfSBmcm9tICcuLi9kYXRlLWFkYXB0ZXIuY2xhc3MnO1xuaW1wb3J0IHsgSUx1RGF0ZUFkYXB0ZXIgfSBmcm9tICcuLi9kYXRlLWFkYXB0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEVMdURhdGVHcmFudWxhcml0eSB9IGZyb20gJy4uL2RhdGUtZ3JhbnVsYXJpdHkuZW51bSc7XG5pbXBvcnQgeyBJTHVOYXRpdmVEYXRlQWRhcHRlck9wdGlvbnMsIGx1RGVmYXVsdE5hdGl2ZURhdGVBZGFwdGVyT3B0aW9ucywgTFVfTkFUSVZFX0RBVEVfQURBUFRFUl9PUFRJT05TIH0gZnJvbSAnLi9uYXRpdmUtZGF0ZS5vcHRpb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTHVOYXRpdmVEYXRlQWRhcHRlciBleHRlbmRzIEFMdURhdGVBZGFwdGVyPERhdGU+IGltcGxlbWVudHMgSUx1RGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuXHRwcml2YXRlIF9yZWdleCA9IC9bLywuXFwtXFxzXS9pO1xuXHRwcml2YXRlIF9vcmRlciA9IHtcblx0XHRkYXRlOiAwLFxuXHRcdG1vbnRoOiAxLFxuXHRcdHllYXI6IDIsXG5cdH07XG5cdGNvbnN0cnVjdG9yKFxuXHRcdEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyxcblx0XHRASW5qZWN0KExVX05BVElWRV9EQVRFX0FEQVBURVJfT1BUSU9OUylcblx0XHRAT3B0aW9uYWwoKVxuXHRcdHByaXZhdGUgX29wdGlvbnM6IElMdU5hdGl2ZURhdGVBZGFwdGVyT3B0aW9ucyxcblx0KSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLl9vcHRpb25zID0gdGhpcy5fb3B0aW9ucyB8fCBsdURlZmF1bHROYXRpdmVEYXRlQWRhcHRlck9wdGlvbnM7XG5cdFx0dGhpcy5pbml0T3JkZXIoKTtcblx0fVxuXHRwcml2YXRlIGluaXRPcmRlcigpIHtcblx0XHRjb25zdCBmb3JtYXQgPSBnZXRMb2NhbGVEYXRlRm9ybWF0KHRoaXMuX2xvY2FsZSwgRm9ybWF0V2lkdGguU2hvcnQpO1xuXHRcdGNvbnN0IGdyb3VwcyA9IGZvcm1hdC5zcGxpdCh0aGlzLl9yZWdleCk7XG5cdFx0Z3JvdXBzLmZvckVhY2goKGcsIGkpID0+IHtcblx0XHRcdGlmIChnLmluZGV4T2YoJ2QnKSAhPT0gLTEpIHtcblx0XHRcdFx0dGhpcy5fb3JkZXIuZGF0ZSA9IGk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoZy5pbmRleE9mKCdNJykgIT09IC0xKSB7XG5cdFx0XHRcdHRoaXMuX29yZGVyLm1vbnRoID0gaTtcblx0XHRcdH1cblx0XHRcdGlmIChnLmluZGV4T2YoJ3knKSAhPT0gLTEpIHtcblx0XHRcdFx0dGhpcy5fb3JkZXIueWVhciA9IGk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cHJpdmF0ZSBleHRyYWN0KHRleHQ6IHN0cmluZywgZ3JhbnVsYXJpdHk6IEVMdURhdGVHcmFudWxhcml0eSA9IEVMdURhdGVHcmFudWxhcml0eS5kYXkpOiB7IGRhdGU6IG51bWJlcjsgbW9udGg6IG51bWJlcjsgeWVhcjogbnVtYmVyIH0ge1xuXHRcdGNvbnN0IGdyb3VwcyA9IHRleHQuc3BsaXQodGhpcy5fcmVnZXgpO1xuXHRcdGxldCBkYXRlID0gMSxcblx0XHRcdG1vbnRoID0gMSxcblx0XHRcdHllYXIgPSAxO1xuXHRcdHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHtcblx0XHRcdGNhc2UgRUx1RGF0ZUdyYW51bGFyaXR5LnllYXI6XG5cdFx0XHRcdHllYXIgPSBwYXJzZUludChncm91cHNbTWF0aC5tYXgodGhpcy5fb3JkZXIueWVhciAtIDIsIDApXSwgMTApO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgRUx1RGF0ZUdyYW51bGFyaXR5Lm1vbnRoOlxuXHRcdFx0XHRtb250aCA9IHBhcnNlSW50KGdyb3Vwc1tNYXRoLm1heCh0aGlzLl9vcmRlci5tb250aCAtIDEsIDApXSwgMTApO1xuXHRcdFx0XHR5ZWFyID0gcGFyc2VJbnQoZ3JvdXBzW01hdGgubWF4KHRoaXMuX29yZGVyLnllYXIgLSAxLCAwKV0sIDEwKSB8fCBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5OlxuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0ZGF0ZSA9IHBhcnNlSW50KGdyb3Vwc1t0aGlzLl9vcmRlci5kYXRlXSwgMTApO1xuXHRcdFx0XHRtb250aCA9IHBhcnNlSW50KGdyb3Vwc1t0aGlzLl9vcmRlci5tb250aF0sIDEwKTtcblx0XHRcdFx0eWVhciA9IHBhcnNlSW50KGdyb3Vwc1t0aGlzLl9vcmRlci55ZWFyXSwgMTApIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHsgZGF0ZSwgbW9udGgsIHllYXIgfTtcblx0fVxuXHRpc1BhcnNhYmxlKHRleHQ6IHN0cmluZywgZ3JhbnVsYXJpdHkgPSBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5KTogYm9vbGVhbiB7XG5cdFx0aWYgKCF0ZXh0KSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdGNvbnN0IGdyb3VwcyA9IHRleHQuc3BsaXQodGhpcy5fcmVnZXgpO1xuXHRcdGlmIChncm91cHMubGVuZ3RoICE9PSAzICYmIGdyb3Vwcy5sZW5ndGggIT09IDIpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHsgZGF0ZSwgbW9udGgsIHllYXIgfSA9IHRoaXMuZXh0cmFjdCh0ZXh0LCBncmFudWxhcml0eSk7XG5cblx0XHRcdC8vIFdoZW4geWVhciBpcyBncmVhdGVyIHRoYW4gMTBfMDAwIElTTyBzdHJpbmcgZ29lcyBmcm9tIDIwMDAtMDEtMDEgdG8gKzAxMDAwMC0wMS0wMSB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGJhY2tlbmRzXG5cdFx0XHRpZiAoeWVhciA+IDEwXzAwMCkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cblx0XHRcdGxldCBkOiBEYXRlO1xuXHRcdFx0aWYgKHRoaXMuX29wdGlvbnMudXNlVXRjKSB7XG5cdFx0XHRcdGQgPSBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCAtIDEsIGRhdGUpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGQgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRhdGUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY2hlY2tpbmcgaWYgaXRzIGEgdmFsaWQgZGF0ZVxuXHRcdFx0Ly8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTM1MzY4NC9kZXRlY3RpbmctYW4taW52YWxpZC1kYXRlLWRhdGUtaW5zdGFuY2UtaW4tamF2YXNjcmlwdFxuXHRcdFx0aWYgKCEoZCBpbnN0YW5jZW9mIERhdGUpKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRcdGlmIChpc05hTihkLmdldFRpbWUoKSkpIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0Ly8gZCBpcyBhIHZhbGlkIGRhdGUsIGJ1dFxuXHRcdFx0Ly8gYXMgaSBjYW4gd3JpdGUgbmV3IERhdGUoMTIzNCwgNTYsIDc4KSBhbmQgbXIgamF2YXNjcmlwdCBhY2NlcHRzIGl0XG5cdFx0XHQvLyBpIGNoZWNrIG5vdyB0aGF0IHRoZSBnZW5lcmF0ZWQgZGF0ZSBoYXMgdGhlIHNhbWUgeWVhci9tb250aC9kYXRlIGFzIHdoYXQgaSBlbnRlcmVkXG5cdFx0XHRpZiAodGhpcy5fb3B0aW9ucy51c2VVdGMpIHtcblx0XHRcdFx0aWYgKGQuZ2V0VVRDRnVsbFllYXIoKSAhPT0geWVhcikge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoZC5nZXRVVENNb250aCgpICE9PSBtb250aCAtIDEpIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGQuZ2V0VVRDRGF0ZSgpICE9PSBkYXRlKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAoZC5nZXRGdWxsWWVhcigpICE9PSB5ZWFyKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChkLmdldE1vbnRoKCkgIT09IG1vbnRoIC0gMSkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoZC5nZXREYXRlKCkgIT09IGRhdGUpIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cdHBhcnNlKHRleHQ6IHN0cmluZywgZ3JhbnVsYXJpdHkgPSBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5KTogRGF0ZSB7XG5cdFx0aWYgKCF0ZXh0KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRpZiAoIXRoaXMuaXNQYXJzYWJsZSh0ZXh0LCBncmFudWxhcml0eSkpIHtcblx0XHRcdHJldHVybiB0aGlzLmZvcmdlSW52YWxpZCgpO1xuXHRcdH1cblxuXHRcdGNvbnN0IHsgZGF0ZSwgbW9udGgsIHllYXIgfSA9IHRoaXMuZXh0cmFjdCh0ZXh0LCBncmFudWxhcml0eSk7XG5cblx0XHRyZXR1cm4gdGhpcy5mb3JnZSh5ZWFyLCBtb250aCwgZGF0ZSk7XG5cdH1cblx0Zm9ybWF0KGQ6IERhdGUsIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAodGhpcy5fb3B0aW9ucy51c2VVdGMpIHtcblx0XHRcdHJldHVybiBmb3JtYXREYXRlKGQsIGZvcm1hdCwgdGhpcy5fbG9jYWxlLCAnVVRDJyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBmb3JtYXREYXRlKGQsIGZvcm1hdCwgdGhpcy5fbG9jYWxlKTtcblx0XHR9XG5cdH1cblx0Zm9yZ2UoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlOiBudW1iZXIpOiBEYXRlIHtcblx0XHRpZiAodGhpcy5fb3B0aW9ucy51c2VVdGMpIHtcblx0XHRcdHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCAtIDEsIGRhdGUpKTsgLy8gbW9udGgtMSBjdXogMCAtPiBqYW51YXJ5XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRhdGUpOyAvLyBtb250aC0xIGN1eiAwIC0+IGphbnVhcnlcblx0XHR9XG5cdH1cblx0Zm9yZ2VUb2RheSgpOiBEYXRlIHtcblx0XHRpZiAodGhpcy5fb3B0aW9ucy51c2VVdGMpIHtcblx0XHRcdGNvbnN0IG5vblVUQ1RvZGF5ID0gbmV3IERhdGUoKTtcblx0XHRcdHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhub25VVENUb2RheS5nZXRGdWxsWWVhcigpLCBub25VVENUb2RheS5nZXRNb250aCgpLCBub25VVENUb2RheS5nZXREYXRlKCkpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0cmV0dXJuIG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHRvZGF5LmdldE1vbnRoKCksIHRvZGF5LmdldERhdGUoKSk7XG5cdFx0fVxuXHR9XG5cdGZvcmdlSW52YWxpZCgpOiBEYXRlIHtcblx0XHRyZXR1cm4gbmV3IERhdGUoJ0ludmFsaWQgRGF0ZScpO1xuXHR9XG5cdGlzVmFsaWQoZDogRGF0ZSk6IGJvb2xlYW4ge1xuXHRcdGlmICghKGQgaW5zdGFuY2VvZiBEYXRlKSkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRpZiAoaXNOYU4oZC5nZXRUaW1lKCkpKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0Y2xvbmUoZDogRGF0ZSk6IERhdGUge1xuXHRcdHJldHVybiBuZXcgRGF0ZShkKTtcblx0fVxuXG5cdGdldFllYXIoZDogRGF0ZSk6IG51bWJlciB7XG5cdFx0aWYgKHRoaXMuX29wdGlvbnMudXNlVXRjKSB7XG5cdFx0XHRyZXR1cm4gZC5nZXRVVENGdWxsWWVhcigpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZC5nZXRGdWxsWWVhcigpO1xuXHRcdH1cblx0fVxuXHRnZXRNb250aChkOiBEYXRlKTogbnVtYmVyIHtcblx0XHRpZiAodGhpcy5fb3B0aW9ucy51c2VVdGMpIHtcblx0XHRcdHJldHVybiBkLmdldFVUQ01vbnRoKCkgKyAxO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZC5nZXRNb250aCgpICsgMTtcblx0XHR9XG5cdH1cblx0Z2V0RGF0ZShkOiBEYXRlKTogbnVtYmVyIHtcblx0XHRpZiAodGhpcy5fb3B0aW9ucy51c2VVdGMpIHtcblx0XHRcdHJldHVybiBkLmdldFVUQ0RhdGUoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIGQuZ2V0RGF0ZSgpO1xuXHRcdH1cblx0fVxuXHRnZXREYXkoZDogRGF0ZSk6IG51bWJlciB7XG5cdFx0aWYgKHRoaXMuX29wdGlvbnMudXNlVXRjKSB7XG5cdFx0XHRyZXR1cm4gZC5nZXRVVENEYXkoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIGQuZ2V0RGF5KCk7XG5cdFx0fVxuXHR9XG5cblx0YWRkKGQ6IERhdGUsIGNvdW50OiBudW1iZXIsIGdyYW51bGFyaXR5OiBFTHVEYXRlR3JhbnVsYXJpdHkpOiBEYXRlIHtcblx0XHRsZXQgeWVhciA9IHRoaXMuZ2V0WWVhcihkKTtcblx0XHRsZXQgbW9udGggPSB0aGlzLmdldE1vbnRoKGQpO1xuXHRcdGxldCBkYXRlID0gdGhpcy5nZXREYXRlKGQpO1xuXHRcdHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHtcblx0XHRcdGNhc2UgRUx1RGF0ZUdyYW51bGFyaXR5LmRlY2FkZTpcblx0XHRcdFx0eWVhciArPSAxMCAqIGNvdW50O1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgRUx1RGF0ZUdyYW51bGFyaXR5LnllYXI6XG5cdFx0XHRcdHllYXIgKz0gY291bnQ7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGg6XG5cdFx0XHRcdG1vbnRoICs9IGNvdW50O1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgRUx1RGF0ZUdyYW51bGFyaXR5LmRheTpcblx0XHRcdFx0ZGF0ZSArPSBjb3VudDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmZvcmdlKHllYXIsIG1vbnRoLCBkYXRlKTtcblx0fVxufVxuIl19
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NvcmUvZGF0ZS9uYXRpdmUvbmF0aXZlLWRhdGUuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBK0IsaUNBQWlDLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFdEksTUFDYSxtQkFBb0IsU0FBUSxjQUFvQjtJQU81RCxZQUM0QixPQUFlLEVBR2xDLFFBQXFDO1FBRTdDLEtBQUssRUFBRSxDQUFDO1FBTG1CLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFHbEMsYUFBUSxHQUFSLFFBQVEsQ0FBNkI7UUFWdEMsV0FBTSxHQUFHLFlBQVksQ0FBQztRQUN0QixXQUFNLEdBQUc7WUFDaEIsSUFBSSxFQUFFLENBQUM7WUFDUCxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksRUFBRSxDQUFDO1NBQ1AsQ0FBQztRQVFELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxpQ0FBaUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUNPLFNBQVM7UUFDaEIsTUFBTSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEUsTUFBTSxNQUFNLEdB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QVM7OzBCQUNoQixNQUFNOzJCQUFDLDhCQUE4Qjs7MEJBQ3JDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREYXRlLCBGb3JtYXRXaWR0aCwgZ2V0TG9jYWxlRGF0ZUZvcm1hdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIExPQ0FMRV9JRCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFMdURhdGVBZGFwdGVyIH0gZnJvbSAnLi4vZGF0ZS1hZGFwdGVyLmNsYXNzJztcbmltcG9ydCB7IElMdURhdGVBZGFwdGVyIH0gZnJvbSAnLi4vZGF0ZS1hZGFwdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFTHVEYXRlR3JhbnVsYXJpdHkgfSBmcm9tICcuLi9kYXRlLWdyYW51bGFyaXR5LmVudW0nO1xuaW1wb3J0IHsgSUx1TmF0aXZlRGF0ZUFkYXB0ZXJPcHRpb25zLCBsdURlZmF1bHROYXRpdmVEYXRlQWRhcHRlck9wdGlvbnMsIExVX05BVElWRV9EQVRFX0FEQVBURVJfT1BUSU9OUyB9IGZyb20gJy4vbmF0aXZlLWRhdGUub3B0aW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEx1TmF0aXZlRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBBTHVEYXRlQWRhcHRlcjxEYXRlPiBpbXBsZW1lbnRzIElMdURhdGVBZGFwdGVyPERhdGU+IHtcblx0cHJpdmF0ZSBfcmVnZXggPSAvWy8sLlxcLVxcc10vaTtcblx0cHJpdmF0ZSBfb3JkZXIgPSB7XG5cdFx0ZGF0ZTogMCxcblx0XHRtb250aDogMSxcblx0XHR5ZWFyOiAyLFxuXHR9O1xuXHRjb25zdHJ1Y3Rvcihcblx0XHRASW5qZWN0KExPQ0FMRV9JRCkgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmcsXG5cdFx0QEluamVjdChMVV9OQVRJVkVfREFURV9BREFQVEVSX09QVElPTlMpXG5cdFx0QE9wdGlvbmFsKClcblx0XHRwcml2YXRlIF9vcHRpb25zOiBJTHVOYXRpdmVEYXRlQWRhcHRlck9wdGlvbnMsXG5cdCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5fb3B0aW9ucyA9IHRoaXMuX29wdGlvbnMgfHwgbHVEZWZhdWx0TmF0aXZlRGF0ZUFkYXB0ZXJPcHRpb25zO1xuXHRcdHRoaXMuaW5pdE9yZGVyKCk7XG5cdH1cblx0cHJpdmF0ZSBpbml0T3JkZXIoKSB7XG5cdFx0Y29uc3QgZm9ybWF0ID0gZ2V0TG9jYWxlRGF0ZUZvcm1hdCh0aGlzLl9sb2NhbGUsIEZvcm1hdFdpZHRoLlNob3J0KTtcblx0XHRjb25zdCBncm91cHMgPSBmb3JtYXQuc3BsaXQodGhpcy5fcmVnZXgpO1xuXHRcdGdyb3Vwcy5mb3JFYWNoKChnLCBpKSA9PiB7XG5cdFx0XHRpZiAoZy5pbmRleE9mKCdkJykgIT09IC0xKSB7XG5cdFx0XHRcdHRoaXMuX29yZGVyLmRhdGUgPSBpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGcuaW5kZXhPZignTScpICE9PSAtMSkge1xuXHRcdFx0XHR0aGlzLl9vcmRlci5tb250aCA9IGk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoZy5pbmRleE9mKCd5JykgIT09IC0xKSB7XG5cdFx0XHRcdHRoaXMuX29yZGVyLnllYXIgPSBpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHByaXZhdGUgZXh0cmFjdCh0ZXh0OiBzdHJpbmcsIGdyYW51bGFyaXR5OiBFTHVEYXRlR3JhbnVsYXJpdHkgPSBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5KTogeyBkYXRlOiBudW1iZXI7IG1vbnRoOiBudW1iZXI7IHllYXI6IG51bWJlciB9IHtcblx0XHRjb25zdCBncm91cHMgPSB0ZXh0LnNwbGl0KHRoaXMuX3JlZ2V4KTtcblx0XHRsZXQgZGF0ZSA9IDEsXG5cdFx0XHRtb250aCA9IDEsXG5cdFx0XHR5ZWFyID0gMTtcblx0XHRzd2l0Y2ggKGdyYW51bGFyaXR5KSB7XG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS55ZWFyOlxuXHRcdFx0XHR5ZWFyID0gcGFyc2VJbnQoZ3JvdXBzW01hdGgubWF4KHRoaXMuX29yZGVyLnllYXIgLSAyLCAwKV0sIDEwKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5tb250aDpcblx0XHRcdFx0bW9udGggPSBwYXJzZUludChncm91cHNbTWF0aC5tYXgodGhpcy5fb3JkZXIubW9udGggLSAxLCAwKV0sIDEwKTtcblx0XHRcdFx0eWVhciA9IHBhcnNlSW50KGdyb3Vwc1tNYXRoLm1heCh0aGlzLl9vcmRlci55ZWFyIC0gMSwgMCldLCAxMCkgfHwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgRUx1RGF0ZUdyYW51bGFyaXR5LmRheTpcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGRhdGUgPSBwYXJzZUludChncm91cHNbdGhpcy5fb3JkZXIuZGF0ZV0sIDEwKTtcblx0XHRcdFx0bW9udGggPSBwYXJzZUludChncm91cHNbdGhpcy5fb3JkZXIubW9udGhdLCAxMCk7XG5cdFx0XHRcdHllYXIgPSBwYXJzZUludChncm91cHNbdGhpcy5fb3JkZXIueWVhcl0sIDEwKSB8fCBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG5cdFx0fVxuXHRcdHJldHVybiB7IGRhdGUsIG1vbnRoLCB5ZWFyIH07XG5cdH1cblx0aXNQYXJzYWJsZSh0ZXh0OiBzdHJpbmcsIGdyYW51bGFyaXR5ID0gRUx1RGF0ZUdyYW51bGFyaXR5LmRheSk6IGJvb2xlYW4ge1xuXHRcdGlmICghdGV4dCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRjb25zdCBncm91cHMgPSB0ZXh0LnNwbGl0KHRoaXMuX3JlZ2V4KTtcblx0XHRjb25zdCBkYXlUZXh0SW52YWxpZCA9IGdyYW51bGFyaXR5ID09PSBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5ICYmIGdyb3Vwcy5sZW5ndGggIT09IDM7XG5cdFx0Y29uc3QgbW9udGhUZXh0SW52YWxpZCA9IGdyYW51bGFyaXR5ID09PSBFTHVEYXRlR3JhbnVsYXJpdHkubW9udGggJiYgZ3JvdXBzLmxlbmd0aCAhPT0gMjtcblx0XHRjb25zdCB5ZWFyVGV4dEludmFsaWQgPSBncmFudWxhcml0eSA9PT0gRUx1RGF0ZUdyYW51bGFyaXR5LnllYXIgJiYgZ3JvdXBzLmxlbmd0aCAhPT0gMTtcblx0XHRpZiAoZGF5VGV4dEludmFsaWQgfHwgbW9udGhUZXh0SW52YWxpZCB8fCB5ZWFyVGV4dEludmFsaWQpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgeyBkYXRlLCBtb250aCwgeWVhciB9ID0gdGhpcy5leHRyYWN0KHRleHQsIGdyYW51bGFyaXR5KTtcblxuXHRcdFx0Ly8gV2hlbiB5ZWFyIGlzIGVxdWFsIG9yIGdyZWF0ZXIgdGhhbiAxMF8wMDAgSVNPIHN0cmluZyBnb2VzIGZyb20gMjAwMC0wMS0wMSB0byArMDEwMDAwLTAxLTAxIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgYnkgYmFja2VuZHNcblx0XHRcdGlmICh5ZWFyID49IDEwXzAwMCkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cblx0XHRcdGxldCBkOiBEYXRlO1xuXHRcdFx0aWYgKHRoaXMuX29wdGlvbnMudXNlVXRjKSB7XG5cdFx0XHRcdGQgPSBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCAtIDEsIGRhdGUpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGQgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRhdGUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY2hlY2tpbmcgaWYgaXRzIGEgdmFsaWQgZGF0ZVxuXHRcdFx0Ly8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTM1MzY4NC9kZXRlY3RpbmctYW4taW52YWxpZC1kYXRlLWRhdGUtaW5zdGFuY2UtaW4tamF2YXNjcmlwdFxuXHRcdFx0aWYgKCEoZCBpbnN0YW5jZW9mIERhdGUpKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRcdGlmIChpc05hTihkLmdldFRpbWUoKSkpIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0Ly8gZCBpcyBhIHZhbGlkIGRhdGUsIGJ1dFxuXHRcdFx0Ly8gYXMgaSBjYW4gd3JpdGUgbmV3IERhdGUoMTIzNCwgNTYsIDc4KSBhbmQgbXIgamF2YXNjcmlwdCBhY2NlcHRzIGl0XG5cdFx0XHQvLyBpIGNoZWNrIG5vdyB0aGF0IHRoZSBnZW5lcmF0ZWQgZGF0ZSBoYXMgdGhlIHNhbWUgeWVhci9tb250aC9kYXRlIGFzIHdoYXQgaSBlbnRlcmVkXG5cdFx0XHRpZiAodGhpcy5fb3B0aW9ucy51c2VVdGMpIHtcblx0XHRcdFx0aWYgKGQuZ2V0VVRDRnVsbFllYXIoKSAhPT0geWVhcikge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoZC5nZXRVVENNb250aCgpICE9PSBtb250aCAtIDEpIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGQuZ2V0VVRDRGF0ZSgpICE9PSBkYXRlKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAoZC5nZXRGdWxsWWVhcigpICE9PSB5ZWFyKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChkLmdldE1vbnRoKCkgIT09IG1vbnRoIC0gMSkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoZC5nZXREYXRlKCkgIT09IGRhdGUpIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cdHBhcnNlKHRleHQ6IHN0cmluZywgZ3JhbnVsYXJpdHkgPSBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5KTogRGF0ZSB7XG5cdFx0aWYgKCF0ZXh0KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy5pc1BhcnNhYmxlKHRleHQsIGdyYW51bGFyaXR5KSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZm9yZ2VJbnZhbGlkKCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgeyBkYXRlLCBtb250aCwgeWVhciB9ID0gdGhpcy5leHRyYWN0KHRleHQsIGdyYW51bGFyaXR5KTtcblxuXHRcdHJldHVybiB0aGlzLmZvcmdlKHllYXIsIG1vbnRoLCBkYXRlKTtcblx0fVxuXHRmb3JtYXQoZDogRGF0ZSwgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGlmICh0aGlzLl9vcHRpb25zLnVzZVV0Yykge1xuXHRcdFx0cmV0dXJuIGZvcm1hdERhdGUoZCwgZm9ybWF0LCB0aGlzLl9sb2NhbGUsICdVVEMnKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIGZvcm1hdERhdGUoZCwgZm9ybWF0LCB0aGlzLl9sb2NhbGUpO1xuXHRcdH1cblx0fVxuXHRmb3JnZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERhdGUge1xuXHRcdGlmICh0aGlzLl9vcHRpb25zLnVzZVV0Yykge1xuXHRcdFx0cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHllYXIsIG1vbnRoIC0gMSwgZGF0ZSkpOyAvLyBtb250aC0xIGN1eiAwIC0+IGphbnVhcnlcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF0ZSk7IC8vIG1vbnRoLTEgY3V6IDAgLT4gamFudWFyeVxuXHRcdH1cblx0fVxuXHRmb3JnZVRvZGF5KCk6IERhdGUge1xuXHRcdGlmICh0aGlzLl9vcHRpb25zLnVzZVV0Yykge1xuXHRcdFx0Y29uc3Qgbm9uVVRDVG9kYXkgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKG5vblVUQ1RvZGF5LmdldEZ1bGxZZWFyKCksIG5vblVUQ1RvZGF5LmdldE1vbnRoKCksIG5vblVUQ1RvZGF5LmdldERhdGUoKSkpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRyZXR1cm4gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgdG9kYXkuZ2V0TW9udGgoKSwgdG9kYXkuZ2V0RGF0ZSgpKTtcblx0XHR9XG5cdH1cblx0Zm9yZ2VJbnZhbGlkKCk6IERhdGUge1xuXHRcdHJldHVybiBuZXcgRGF0ZSgnSW52YWxpZCBEYXRlJyk7XG5cdH1cblx0aXNWYWxpZChkOiBEYXRlKTogYm9vbGVhbiB7XG5cdFx0aWYgKCEoZCBpbnN0YW5jZW9mIERhdGUpKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdGlmIChpc05hTihkLmdldFRpbWUoKSkpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRjbG9uZShkOiBEYXRlKTogRGF0ZSB7XG5cdFx0cmV0dXJuIG5ldyBEYXRlKGQpO1xuXHR9XG5cblx0Z2V0WWVhcihkOiBEYXRlKTogbnVtYmVyIHtcblx0XHRpZiAodGhpcy5fb3B0aW9ucy51c2VVdGMpIHtcblx0XHRcdHJldHVybiBkLmdldFVUQ0Z1bGxZZWFyKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBkLmdldEZ1bGxZZWFyKCk7XG5cdFx0fVxuXHR9XG5cdGdldE1vbnRoKGQ6IERhdGUpOiBudW1iZXIge1xuXHRcdGlmICh0aGlzLl9vcHRpb25zLnVzZVV0Yykge1xuXHRcdFx0cmV0dXJuIGQuZ2V0VVRDTW9udGgoKSArIDE7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBkLmdldE1vbnRoKCkgKyAxO1xuXHRcdH1cblx0fVxuXHRnZXREYXRlKGQ6IERhdGUpOiBudW1iZXIge1xuXHRcdGlmICh0aGlzLl9vcHRpb25zLnVzZVV0Yykge1xuXHRcdFx0cmV0dXJuIGQuZ2V0VVRDRGF0ZSgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZC5nZXREYXRlKCk7XG5cdFx0fVxuXHR9XG5cdGdldERheShkOiBEYXRlKTogbnVtYmVyIHtcblx0XHRpZiAodGhpcy5fb3B0aW9ucy51c2VVdGMpIHtcblx0XHRcdHJldHVybiBkLmdldFVUQ0RheSgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZC5nZXREYXkoKTtcblx0XHR9XG5cdH1cblxuXHRhZGQoZDogRGF0ZSwgY291bnQ6IG51bWJlciwgZ3JhbnVsYXJpdHk6IEVMdURhdGVHcmFudWxhcml0eSk6IERhdGUge1xuXHRcdGxldCB5ZWFyID0gdGhpcy5nZXRZZWFyKGQpO1xuXHRcdGxldCBtb250aCA9IHRoaXMuZ2V0TW9udGgoZCk7XG5cdFx0bGV0IGRhdGUgPSB0aGlzLmdldERhdGUoZCk7XG5cdFx0c3dpdGNoIChncmFudWxhcml0eSkge1xuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkuZGVjYWRlOlxuXHRcdFx0XHR5ZWFyICs9IDEwICogY291bnQ7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkueWVhcjpcblx0XHRcdFx0eWVhciArPSBjb3VudDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIEVMdURhdGVHcmFudWxhcml0eS5tb250aDpcblx0XHRcdFx0bW9udGggKz0gY291bnQ7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBFTHVEYXRlR3JhbnVsYXJpdHkuZGF5OlxuXHRcdFx0XHRkYXRlICs9IGNvdW50O1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZm9yZ2UoeWVhciwgbW9udGgsIGRhdGUpO1xuXHR9XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './portal-content';
|
|
2
|
+
export * from './portal.directive';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9jb3JlL3BvcnRhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BvcnRhbC1jb250ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcG9ydGFsLmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9jb3JlL3BvcnRhbC9wb3J0YWwtY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUG9ydGFsQ29udGVudDxUID0gdW5rbm93bj4gPSBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxUPjtcbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Directive, inject, Input, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
class PortalDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.viewContainerRef = inject(ViewContainerRef);
|
|
6
|
+
this.renderer = inject(Renderer2);
|
|
7
|
+
this.templateRef = inject(TemplateRef);
|
|
8
|
+
this.luPortal = null;
|
|
9
|
+
}
|
|
10
|
+
render() {
|
|
11
|
+
this.viewContainerRef.clear();
|
|
12
|
+
if (this.luPortal instanceof TemplateRef) {
|
|
13
|
+
this.viewContainerRef.createEmbeddedView(this.luPortal);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
const ref = this.viewContainerRef.createEmbeddedView(this.templateRef);
|
|
17
|
+
const container = ref.rootNodes[0];
|
|
18
|
+
const parent = container.parentElement;
|
|
19
|
+
this.renderer.insertBefore(parent, document.createTextNode(this.luPortal), container);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
ngOnChanges(changes) {
|
|
23
|
+
if (changes['luPortal']) {
|
|
24
|
+
// If we're here, it means that either the template ref changed or the string changed,
|
|
25
|
+
// meaning that we need to render again
|
|
26
|
+
this.render();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: PortalDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
30
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: PortalDirective, isStandalone: true, selector: "[luPortal]", inputs: { luPortal: "luPortal" }, usesOnChanges: true, ngImport: i0 }); }
|
|
31
|
+
}
|
|
32
|
+
export { PortalDirective };
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: PortalDirective, decorators: [{
|
|
34
|
+
type: Directive,
|
|
35
|
+
args: [{
|
|
36
|
+
selector: '[luPortal]',
|
|
37
|
+
standalone: true,
|
|
38
|
+
}]
|
|
39
|
+
}], propDecorators: { luPortal: [{
|
|
40
|
+
type: Input,
|
|
41
|
+
args: [{ required: true }]
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NvcmUvcG9ydGFsL3BvcnRhbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBaUIsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUc3SCxNQUlhLGVBQWU7SUFKNUI7UUFLUyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBR25DLGFBQVEsR0FBcUIsSUFBSSxDQUFDO0tBc0J6QztJQXBCUSxNQUFNO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLFFBQVEsWUFBWSxXQUFXLEVBQUU7WUFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4RDthQUFNO1lBQ04sTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RSxNQUFNLFNBQVMsR0FBZ0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7WUFDL0QsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQztZQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDdEY7SUFDRixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2pDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3hCLHNGQUFzRjtZQUN0Rix1Q0FBdUM7WUFDdkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2Q7SUFDRixDQUFDOzhHQTNCVyxlQUFlO2tHQUFmLGVBQWU7O1NBQWYsZUFBZTsyRkFBZixlQUFlO2tCQUozQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtpQkFDaEI7OEJBT08sUUFBUTtzQkFEZCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3J0YWxDb250ZW50IH0gZnJvbSAnLi9wb3J0YWwtY29udGVudCc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tsdVBvcnRhbF0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBQb3J0YWxEaXJlY3RpdmU8VCA9IHVua25vd24+IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblx0cHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXHRwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cdHByaXZhdGUgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuXG5cdEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG5cdHB1YmxpYyBsdVBvcnRhbDogUG9ydGFsQ29udGVudDxUPiA9IG51bGw7XG5cblx0cHJpdmF0ZSByZW5kZXIoKTogdm9pZCB7XG5cdFx0dGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cblx0XHRpZiAodGhpcy5sdVBvcnRhbCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG5cdFx0XHR0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubHVQb3J0YWwpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCByZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuXHRcdFx0Y29uc3QgY29udGFpbmVyOiBIVE1MRWxlbWVudCA9IHJlZi5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cdFx0XHRjb25zdCBwYXJlbnQgPSBjb250YWluZXIucGFyZW50RWxlbWVudDtcblx0XHRcdHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHBhcmVudCwgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcy5sdVBvcnRhbCksIGNvbnRhaW5lcik7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXHRcdGlmIChjaGFuZ2VzWydsdVBvcnRhbCddKSB7XG5cdFx0XHQvLyBJZiB3ZSdyZSBoZXJlLCBpdCBtZWFucyB0aGF0IGVpdGhlciB0aGUgdGVtcGxhdGUgcmVmIGNoYW5nZWQgb3IgdGhlIHN0cmluZyBjaGFuZ2VkLFxuXHRcdFx0Ly8gbWVhbmluZyB0aGF0IHdlIG5lZWQgdG8gcmVuZGVyIGFnYWluXG5cdFx0XHR0aGlzLnJlbmRlcigpO1xuXHRcdH1cblx0fVxufVxuIl19
|
|
@@ -4,6 +4,7 @@ export * from './translate/index';
|
|
|
4
4
|
export * from './tree/index';
|
|
5
5
|
export * from './group/index';
|
|
6
6
|
export * from './id/index';
|
|
7
|
+
export * from './portal/index';
|
|
7
8
|
export * from './type/index';
|
|
8
9
|
export * from './tools/ng-clazz.directive';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NvcmUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2dyb3VwL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vaWQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3J0YWwvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbHMvbmctY2xhenouZGlyZWN0aXZlJztcbiJdfQ==
|