@impartner/design-components 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2020/lib/alert/alert.component.mjs +1 -1
- package/esm2020/lib/avatar/avatar.component.mjs +1 -1
- package/esm2020/lib/backdrop/backdrop.component.mjs +7 -1
- package/esm2020/lib/badge/badge.component.mjs +1 -1
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +11 -7
- package/esm2020/lib/breadcrumb/breadcrumb.module.mjs +5 -5
- package/esm2020/lib/button/button.component.mjs +1 -1
- package/esm2020/lib/button-group/button-group.component.mjs +1 -1
- package/esm2020/lib/card-heading/card-heading.component.mjs +1 -1
- package/esm2020/lib/data-card/data-card.component.mjs +127 -0
- package/esm2020/lib/data-card/data-card.module.mjs +19 -0
- package/esm2020/lib/data-card/index.mjs +3 -0
- package/esm2020/lib/dropdown/components/dropdown-item/dropdown-item.component.mjs +1 -1
- package/esm2020/lib/dropdown/dropdown.component.mjs +1 -1
- package/esm2020/lib/file-upload/directives/file-drop.directive.mjs +1 -1
- package/esm2020/lib/file-upload/file-upload.component.mjs +1 -1
- package/esm2020/lib/form-field/controls/checkbox/checkbox.component.mjs +1 -1
- package/esm2020/lib/form-field/controls/input/input.directive.mjs +1 -1
- package/esm2020/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +1 -1
- package/esm2020/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +2 -1
- package/esm2020/lib/form-field/controls/select/option/select-option.component.mjs +1 -1
- package/esm2020/lib/form-field/controls/select/select-model.mjs +2 -1
- package/esm2020/lib/form-field/controls/select/select.component.mjs +1 -1
- package/esm2020/lib/form-field/controls/shared/toggle/toggle.component.mjs +1 -1
- package/esm2020/lib/form-field/directives/error.directive.mjs +1 -1
- package/esm2020/lib/form-field/directives/hint.directive.mjs +1 -1
- package/esm2020/lib/form-field/shared/disabled.mixin.mjs +1 -1
- package/esm2020/lib/form-field/shared/error-state.mixin.mjs +1 -1
- package/esm2020/lib/icon/icon.component.mjs +14 -10
- package/esm2020/lib/index.mjs +2 -1
- package/esm2020/lib/modal/modal.component.mjs +51 -13
- package/esm2020/lib/pagination/pagination.component.mjs +1 -1
- package/esm2020/lib/progress-bar/progress-bar.component.mjs +1 -1
- package/esm2020/lib/scrollable/scrollable.component.mjs +14 -21
- package/esm2020/lib/select-icon/select-icon.component.mjs +1 -1
- package/esm2020/lib/spinner/spinner.component.mjs +1 -1
- package/esm2020/lib/table/table.component.mjs +1 -1
- package/esm2020/lib/text-highlight/text-highlight.component.mjs +1 -1
- package/esm2020/services/interaction.service.mjs +13 -3
- package/esm2020/utilities/sanitize.mjs +3 -3
- package/fesm2015/impartner-design-components.mjs +253 -55
- package/fesm2015/impartner-design-components.mjs.map +1 -1
- package/fesm2020/impartner-design-components.mjs +250 -54
- package/fesm2020/impartner-design-components.mjs.map +1 -1
- package/lib/backdrop/backdrop.component.d.ts +5 -3
- package/lib/breadcrumb/breadcrumb.component.d.ts +7 -4
- package/lib/breadcrumb/breadcrumb.module.d.ts +3 -3
- package/lib/data-card/data-card.component.d.ts +72 -0
- package/lib/data-card/data-card.module.d.ts +9 -0
- package/lib/data-card/index.d.ts +2 -0
- package/lib/icon/icon.component.d.ts +6 -4
- package/lib/index.d.ts +1 -0
- package/lib/modal/modal.component.d.ts +32 -7
- package/lib/scrollable/scrollable.component.d.ts +3 -1
- package/package.json +2 -2
- package/services/interaction.service.d.ts +1 -0
|
@@ -4,7 +4,7 @@ import * as i1 from '@angular/common';
|
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i2 from '@angular/forms';
|
|
6
6
|
import { FormsModule, Validators, ReactiveFormsModule, FormControl } from '@angular/forms';
|
|
7
|
-
import
|
|
7
|
+
import sanitizeHtml from 'sanitize-html';
|
|
8
8
|
import { nanoid } from 'nanoid';
|
|
9
9
|
import { Subject, defer, startWith, switchMap, merge, take, takeUntil, BehaviorSubject, debounceTime, distinctUntilChanged, combineLatest, map } from 'rxjs';
|
|
10
10
|
import * as i4 from '@ng-bootstrap/ng-bootstrap';
|
|
@@ -3082,7 +3082,7 @@ function _isNumberValue(value) {
|
|
|
3082
3082
|
}
|
|
3083
3083
|
|
|
3084
3084
|
function sanitize(value) {
|
|
3085
|
-
return
|
|
3085
|
+
return sanitizeHtml(value, {
|
|
3086
3086
|
allowedTags: []
|
|
3087
3087
|
});
|
|
3088
3088
|
}
|
|
@@ -3203,6 +3203,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
3203
3203
|
*/
|
|
3204
3204
|
class IconComponent {
|
|
3205
3205
|
constructor() {
|
|
3206
|
+
this._loading = true;
|
|
3207
|
+
this._licensed = false;
|
|
3206
3208
|
/**
|
|
3207
3209
|
* The Font Awesome 5 icon style. Local development may fallback to a free available
|
|
3208
3210
|
* theme when possible.
|
|
@@ -3214,16 +3216,8 @@ class IconComponent {
|
|
|
3214
3216
|
*/
|
|
3215
3217
|
this.size = '1.8rem';
|
|
3216
3218
|
}
|
|
3217
|
-
get usingLicensed() {
|
|
3218
|
-
if (!this.iconRef?.nativeElement) {
|
|
3219
|
-
return false;
|
|
3220
|
-
}
|
|
3221
|
-
const iconFontFamily = getComputedStyle(this.iconRef?.nativeElement).getPropertyValue('font-family');
|
|
3222
|
-
return (iconFontFamily.includes('Font Awesome') &&
|
|
3223
|
-
!iconFontFamily.includes('Free'));
|
|
3224
|
-
}
|
|
3225
3219
|
get typeClass() {
|
|
3226
|
-
if (this.
|
|
3220
|
+
if (this._licensed) {
|
|
3227
3221
|
switch (this.theme) {
|
|
3228
3222
|
case 'light':
|
|
3229
3223
|
return 'fal';
|
|
@@ -3247,6 +3241,16 @@ class IconComponent {
|
|
|
3247
3241
|
}
|
|
3248
3242
|
return `${this.size}px`;
|
|
3249
3243
|
}
|
|
3244
|
+
ngAfterContentChecked() {
|
|
3245
|
+
if (this._loading) {
|
|
3246
|
+
// During init and possibly a few checks, `iconFontFamily` will be an inherited font, later it will be Font Awesome.
|
|
3247
|
+
const iconFontFamily = getComputedStyle(this.iconRef.nativeElement).getPropertyValue('font-family');
|
|
3248
|
+
if (iconFontFamily.includes('Font Awesome')) {
|
|
3249
|
+
this._licensed = !iconFontFamily.includes('Free');
|
|
3250
|
+
this._loading = false;
|
|
3251
|
+
}
|
|
3252
|
+
}
|
|
3253
|
+
}
|
|
3250
3254
|
}
|
|
3251
3255
|
IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3252
3256
|
IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: { name: "name", theme: "theme", size: "size" }, viewQueries: [{ propertyName: "iconRef", first: true, predicate: ["icon"], descendants: true, static: true }], ngImport: i0, template: "<i\n #icon\n class=\"{{ typeClass }} fa-{{ name }}\"\n [style.font-size]=\"computedSize\"></i>\n", encapsulation: i0.ViewEncapsulation.None });
|
|
@@ -3514,10 +3518,7 @@ class ModalComponent {
|
|
|
3514
3518
|
constructor(_interactionService) {
|
|
3515
3519
|
this._interactionService = _interactionService;
|
|
3516
3520
|
this._interactableId = 0;
|
|
3517
|
-
|
|
3518
|
-
* Determines if the Modal should be shown immediately.
|
|
3519
|
-
*/
|
|
3520
|
-
this.show = false;
|
|
3521
|
+
this._show = false;
|
|
3521
3522
|
/**
|
|
3522
3523
|
* The theme of the Modal. Affects the layout of the Modal as well as some colors.
|
|
3523
3524
|
*/
|
|
@@ -3535,6 +3536,10 @@ class ModalComponent {
|
|
|
3535
3536
|
* The subject text of the Modal.
|
|
3536
3537
|
*/
|
|
3537
3538
|
this.titleText = '';
|
|
3539
|
+
/**
|
|
3540
|
+
* The fallback button text to accept the Modal. This is bypassed if you content-project the accept button.
|
|
3541
|
+
*/
|
|
3542
|
+
this.acceptText = 'OK';
|
|
3538
3543
|
/**
|
|
3539
3544
|
* Determines if the Modal should fade in/out.
|
|
3540
3545
|
*/
|
|
@@ -3557,6 +3562,12 @@ class ModalComponent {
|
|
|
3557
3562
|
this.accept = new EventEmitter();
|
|
3558
3563
|
this._interactableId = this._interactionService.add(this);
|
|
3559
3564
|
}
|
|
3565
|
+
/**
|
|
3566
|
+
* Determines if the Modal should be shown immediately.
|
|
3567
|
+
*/
|
|
3568
|
+
set show(show) {
|
|
3569
|
+
this._show = show;
|
|
3570
|
+
}
|
|
3560
3571
|
get interactableId() {
|
|
3561
3572
|
return this._interactableId;
|
|
3562
3573
|
}
|
|
@@ -3564,7 +3575,7 @@ class ModalComponent {
|
|
|
3564
3575
|
return this.interactableId > 0;
|
|
3565
3576
|
}
|
|
3566
3577
|
get shown() {
|
|
3567
|
-
return this.valid && this.
|
|
3578
|
+
return this.valid && this._show;
|
|
3568
3579
|
}
|
|
3569
3580
|
get showWorkingIcon() {
|
|
3570
3581
|
return !!this.iconName && this.theme === ModalTheme.Working;
|
|
@@ -3591,26 +3602,46 @@ class ModalComponent {
|
|
|
3591
3602
|
this._interactableId = 0;
|
|
3592
3603
|
}
|
|
3593
3604
|
handleDismiss(event) {
|
|
3594
|
-
if (!this.dismissable
|
|
3605
|
+
if (!this.dismissable ||
|
|
3606
|
+
!!this.dismissEl?.nativeElement?.firstChild?.disabled) {
|
|
3595
3607
|
return;
|
|
3596
3608
|
}
|
|
3597
|
-
this.
|
|
3609
|
+
this._show = false;
|
|
3598
3610
|
this.dismiss.emit(event);
|
|
3599
3611
|
}
|
|
3600
3612
|
handleDeny(event) {
|
|
3601
|
-
this.
|
|
3613
|
+
if (!!this.denyEl?.nativeElement?.firstChild?.disabled) {
|
|
3614
|
+
return;
|
|
3615
|
+
}
|
|
3616
|
+
this._show = false;
|
|
3602
3617
|
this.deny.emit(event);
|
|
3603
3618
|
}
|
|
3604
3619
|
handleAccept(event) {
|
|
3605
|
-
this.
|
|
3620
|
+
console.log('this.acceptEl', this.acceptEl);
|
|
3621
|
+
if (!!this.acceptEl?.nativeElement?.firstChild?.disabled) {
|
|
3622
|
+
return;
|
|
3623
|
+
}
|
|
3624
|
+
this._show = false;
|
|
3606
3625
|
this.accept.emit(event);
|
|
3607
3626
|
}
|
|
3627
|
+
/**
|
|
3628
|
+
* Opens/shows the modal programmatically.
|
|
3629
|
+
*/
|
|
3630
|
+
open() {
|
|
3631
|
+
this._show = true;
|
|
3632
|
+
}
|
|
3633
|
+
/**
|
|
3634
|
+
* Closes/hides the modal programmatically.
|
|
3635
|
+
*/
|
|
3636
|
+
close() {
|
|
3637
|
+
this._show = false;
|
|
3638
|
+
}
|
|
3608
3639
|
}
|
|
3609
3640
|
ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ModalComponent, deps: [{ token: InteractionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3610
|
-
ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ModalComponent, selector: "impdc-modal", inputs: { show: "show", theme: "theme", size: "size", iconName: "iconName", iconTheme: "iconTheme", titleText: "titleText", dismissable: "dismissable", fade: "fade", backdrop: "backdrop" }, outputs: { dismiss: "dismiss", deny: "deny", accept: "accept" }, ngImport: i0, template: "<div\n *ngIf=\"valid\"\n class=\"impdc modal\"\n [class.fade]=\"fade\"\n [class.in]=\"fade && shown\"\n [class.show]=\"shown\"\n [class.dismissable]=\"dismissable\"\n tabindex=\"-1\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.escape)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.enter)=\"handleAccept($event); $event.stopPropagation()\">\n <div\n class=\"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-theme-{{\n theme\n }}\"\n [class.modal-sm]=\"size === 'sm'\"\n [class.modal-lg]=\"size === 'lg'\"\n [class.modal-xl]=\"size === 'xl'\"\n [class.modal-fullscreen]=\"size === 'fs'\"\n [class.modal-fullscreen-lg-down]=\"size !== 'fs'\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"modal-content\">\n <div *ngIf=\"showDestructiveIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </div>\n <div #header class=\"modal-header\" [class.hide]=\"hideHeader\">\n <h3 class=\"modal-title\">\n <span *ngIf=\"showWorkingIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </span>\n <span>{{ titleText }}</span>\n </h3>\n <button\n impdcButton\n *ngIf=\"dismissable\"\n theme=\"close\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"></button>\n </div>\n <div #bodyEl class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div #footer class=\"modal-footer\">\n <span\n #dismissEl\n *ngIf=\"dismissable\"\n [class.hide]=\"!dismissEl.children.length\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\">\n <ng-content select=\"[dismiss]\"></ng-content>\n </span>\n <span\n #denyEl\n [class.hide]=\"!denyEl.children.length\"\n (click)=\"handleDeny($event); $event.stopPropagation()\">\n <ng-content select=\"[deny]\"></ng-content>\n </span>\n <span\n #acceptEl\n [class.hide]=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <ng-content select=\"[accept]\"></ng-content>\n </span>\n <span\n #acceptFallbackEl\n *ngIf=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <button
|
|
3641
|
+
ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ModalComponent, selector: "impdc-modal", inputs: { show: "show", theme: "theme", size: "size", iconName: "iconName", iconTheme: "iconTheme", titleText: "titleText", acceptText: "acceptText", dismissable: "dismissable", fade: "fade", backdrop: "backdrop" }, outputs: { dismiss: "dismiss", deny: "deny", accept: "accept" }, viewQueries: [{ propertyName: "dismissEl", first: true, predicate: ["dismissEl"], descendants: true }, { propertyName: "denyEl", first: true, predicate: ["denyEl"], descendants: true }, { propertyName: "acceptEl", first: true, predicate: ["acceptEl"], descendants: true }], ngImport: i0, template: "<div\n *ngIf=\"valid\"\n class=\"impdc modal\"\n [class.fade]=\"fade\"\n [class.in]=\"fade && shown\"\n [class.show]=\"shown\"\n [class.dismissable]=\"dismissable\"\n tabindex=\"-1\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.escape)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.enter)=\"handleAccept($event); $event.stopPropagation()\">\n <div\n class=\"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-theme-{{\n theme\n }}\"\n [class.modal-sm]=\"size === 'sm'\"\n [class.modal-lg]=\"size === 'lg'\"\n [class.modal-xl]=\"size === 'xl'\"\n [class.modal-fullscreen]=\"size === 'fs'\"\n [class.modal-fullscreen-lg-down]=\"size !== 'fs'\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"modal-content\">\n <div *ngIf=\"showDestructiveIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </div>\n <div #header class=\"modal-header\" [class.hide]=\"hideHeader\">\n <h3 class=\"modal-title\">\n <span *ngIf=\"showWorkingIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </span>\n <span>{{ titleText }}</span>\n </h3>\n <button\n impdcButton\n *ngIf=\"dismissable\"\n theme=\"close\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"></button>\n </div>\n <div #bodyEl class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div #footer class=\"modal-footer\">\n <span\n #dismissEl\n *ngIf=\"dismissable\"\n [class.hide]=\"!dismissEl.children.length\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\">\n <ng-content select=\"[dismiss]\"></ng-content>\n </span>\n <span\n #denyEl\n [class.hide]=\"!denyEl.children.length\"\n (click)=\"handleDeny($event); $event.stopPropagation()\">\n <ng-content select=\"[deny]\"></ng-content>\n </span>\n <span\n #acceptEl\n [class.hide]=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <ng-content select=\"[accept]\"></ng-content>\n </span>\n <span\n #acceptFallbackEl\n *ngIf=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <button\n impdcButton\n [text]=\"acceptText\"\n [theme]=\"acceptFallbackTheme\"></button>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".impdc.modal{-webkit-user-select:none;user-select:none}.impdc.modal .modal-icon{display:inline-flex;justify-content:center;align-items:center;height:40px;width:40px;color:var(--impd-color-gray-500);background:var(--impd-color-gray-100);border-radius:50%;flex-shrink:0}.impdc.modal .modal-icon .fa,.impdc.modal .modal-icon .fa-brands,.impdc.modal .modal-icon .fa-duotone,.impdc.modal .modal-icon .fa-light,.impdc.modal .modal-icon .fa-regular,.impdc.modal .modal-icon .fa-solid,.impdc.modal .modal-icon .fa-thin,.impdc.modal .modal-icon .fab,.impdc.modal .modal-icon .fad,.impdc.modal .modal-icon .fal,.impdc.modal .modal-icon .far,.impdc.modal .modal-icon .fas,.impdc.modal .modal-icon .fat{line-height:var(--impartner-hex-modal-title-line-height)}.impdc.modal.fade.in{background-color:transparent}.impdc.modal.show{display:block;opacity:1}.impdc.modal:not(.show),.impdc.modal.hide,.impdc.modal .hide{display:none}.impdc.modal.dismissable{cursor:pointer}.impdc.modal.dismissable .modal-dialog{cursor:default}.impdc.modal .modal-dialog{cursor:default;-webkit-user-select:auto;user-select:auto}.impdc.modal .modal-theme-simple .modal-header,.impdc.modal .modal-theme-destructive .modal-header{border:0;padding-bottom:0}.impdc.modal .modal-theme-simple .modal-body,.impdc.modal .modal-theme-destructive .modal-body{padding:calc(var(--impartner-hex-modal-padding) * .5) var(--impartner-hex-modal-padding) var(--impartner-hex-modal-padding)}.impdc.modal .modal-theme-simple .modal-footer,.impdc.modal .modal-theme-destructive .modal-footer{border:0;padding-top:0}.impdc.modal .modal-theme-working .modal-footer{padding:calc(var(--impartner-hex-modal-padding) * .5 - var(--impartner-hex-modal-footer-gap) * .5) calc(var(--impartner-hex-modal-padding) - var(--impartner-hex-modal-footer-gap) * .5)}.impdc.modal .modal-theme-destructive .modal-content{display:grid;grid-template-areas:\"modal-icon modal-header\" \"modal-icon modal-body\" \"modal-footer modal-footer\";grid-template-columns:auto 1fr;grid-template-rows:auto 1fr auto}.impdc.modal .modal-theme-destructive .modal-content>.modal-icon{grid-area:modal-icon;margin:var(--impartner-hex-modal-header-padding);margin-right:0;margin-bottom:0}.impdc.modal .modal-theme-destructive .modal-content>.modal-header{grid-area:modal-header;padding-left:16px;margin-top:8px;justify-content:unset}.impdc.modal .modal-theme-destructive .modal-content>.modal-body{grid-area:modal-body;padding-left:16px}.impdc.modal .modal-theme-destructive .modal-content>.modal-footer{grid-area:modal-footer}.impdc.modal .modal-theme-destructive .modal-icon{color:var(--impd-color-red-600);background:var(--impd-color-red-100)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[impdcButton]", inputs: ["type", "theme", "text", "disabled", "titleText", "ariaLabel"] }, { kind: "component", type: IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }] });
|
|
3611
3642
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ModalComponent, decorators: [{
|
|
3612
3643
|
type: Component,
|
|
3613
|
-
args: [{ selector: 'impdc-modal', template: "<div\n *ngIf=\"valid\"\n class=\"impdc modal\"\n [class.fade]=\"fade\"\n [class.in]=\"fade && shown\"\n [class.show]=\"shown\"\n [class.dismissable]=\"dismissable\"\n tabindex=\"-1\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.escape)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.enter)=\"handleAccept($event); $event.stopPropagation()\">\n <div\n class=\"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-theme-{{\n theme\n }}\"\n [class.modal-sm]=\"size === 'sm'\"\n [class.modal-lg]=\"size === 'lg'\"\n [class.modal-xl]=\"size === 'xl'\"\n [class.modal-fullscreen]=\"size === 'fs'\"\n [class.modal-fullscreen-lg-down]=\"size !== 'fs'\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"modal-content\">\n <div *ngIf=\"showDestructiveIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </div>\n <div #header class=\"modal-header\" [class.hide]=\"hideHeader\">\n <h3 class=\"modal-title\">\n <span *ngIf=\"showWorkingIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </span>\n <span>{{ titleText }}</span>\n </h3>\n <button\n impdcButton\n *ngIf=\"dismissable\"\n theme=\"close\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"></button>\n </div>\n <div #bodyEl class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div #footer class=\"modal-footer\">\n <span\n #dismissEl\n *ngIf=\"dismissable\"\n [class.hide]=\"!dismissEl.children.length\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\">\n <ng-content select=\"[dismiss]\"></ng-content>\n </span>\n <span\n #denyEl\n [class.hide]=\"!denyEl.children.length\"\n (click)=\"handleDeny($event); $event.stopPropagation()\">\n <ng-content select=\"[deny]\"></ng-content>\n </span>\n <span\n #acceptEl\n [class.hide]=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <ng-content select=\"[accept]\"></ng-content>\n </span>\n <span\n #acceptFallbackEl\n *ngIf=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <button
|
|
3644
|
+
args: [{ selector: 'impdc-modal', template: "<div\n *ngIf=\"valid\"\n class=\"impdc modal\"\n [class.fade]=\"fade\"\n [class.in]=\"fade && shown\"\n [class.show]=\"shown\"\n [class.dismissable]=\"dismissable\"\n tabindex=\"-1\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.escape)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.enter)=\"handleAccept($event); $event.stopPropagation()\">\n <div\n class=\"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-theme-{{\n theme\n }}\"\n [class.modal-sm]=\"size === 'sm'\"\n [class.modal-lg]=\"size === 'lg'\"\n [class.modal-xl]=\"size === 'xl'\"\n [class.modal-fullscreen]=\"size === 'fs'\"\n [class.modal-fullscreen-lg-down]=\"size !== 'fs'\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"modal-content\">\n <div *ngIf=\"showDestructiveIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </div>\n <div #header class=\"modal-header\" [class.hide]=\"hideHeader\">\n <h3 class=\"modal-title\">\n <span *ngIf=\"showWorkingIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </span>\n <span>{{ titleText }}</span>\n </h3>\n <button\n impdcButton\n *ngIf=\"dismissable\"\n theme=\"close\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"></button>\n </div>\n <div #bodyEl class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div #footer class=\"modal-footer\">\n <span\n #dismissEl\n *ngIf=\"dismissable\"\n [class.hide]=\"!dismissEl.children.length\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\">\n <ng-content select=\"[dismiss]\"></ng-content>\n </span>\n <span\n #denyEl\n [class.hide]=\"!denyEl.children.length\"\n (click)=\"handleDeny($event); $event.stopPropagation()\">\n <ng-content select=\"[deny]\"></ng-content>\n </span>\n <span\n #acceptEl\n [class.hide]=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <ng-content select=\"[accept]\"></ng-content>\n </span>\n <span\n #acceptFallbackEl\n *ngIf=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <button\n impdcButton\n [text]=\"acceptText\"\n [theme]=\"acceptFallbackTheme\"></button>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".impdc.modal{-webkit-user-select:none;user-select:none}.impdc.modal .modal-icon{display:inline-flex;justify-content:center;align-items:center;height:40px;width:40px;color:var(--impd-color-gray-500);background:var(--impd-color-gray-100);border-radius:50%;flex-shrink:0}.impdc.modal .modal-icon .fa,.impdc.modal .modal-icon .fa-brands,.impdc.modal .modal-icon .fa-duotone,.impdc.modal .modal-icon .fa-light,.impdc.modal .modal-icon .fa-regular,.impdc.modal .modal-icon .fa-solid,.impdc.modal .modal-icon .fa-thin,.impdc.modal .modal-icon .fab,.impdc.modal .modal-icon .fad,.impdc.modal .modal-icon .fal,.impdc.modal .modal-icon .far,.impdc.modal .modal-icon .fas,.impdc.modal .modal-icon .fat{line-height:var(--impartner-hex-modal-title-line-height)}.impdc.modal.fade.in{background-color:transparent}.impdc.modal.show{display:block;opacity:1}.impdc.modal:not(.show),.impdc.modal.hide,.impdc.modal .hide{display:none}.impdc.modal.dismissable{cursor:pointer}.impdc.modal.dismissable .modal-dialog{cursor:default}.impdc.modal .modal-dialog{cursor:default;-webkit-user-select:auto;user-select:auto}.impdc.modal .modal-theme-simple .modal-header,.impdc.modal .modal-theme-destructive .modal-header{border:0;padding-bottom:0}.impdc.modal .modal-theme-simple .modal-body,.impdc.modal .modal-theme-destructive .modal-body{padding:calc(var(--impartner-hex-modal-padding) * .5) var(--impartner-hex-modal-padding) var(--impartner-hex-modal-padding)}.impdc.modal .modal-theme-simple .modal-footer,.impdc.modal .modal-theme-destructive .modal-footer{border:0;padding-top:0}.impdc.modal .modal-theme-working .modal-footer{padding:calc(var(--impartner-hex-modal-padding) * .5 - var(--impartner-hex-modal-footer-gap) * .5) calc(var(--impartner-hex-modal-padding) - var(--impartner-hex-modal-footer-gap) * .5)}.impdc.modal .modal-theme-destructive .modal-content{display:grid;grid-template-areas:\"modal-icon modal-header\" \"modal-icon modal-body\" \"modal-footer modal-footer\";grid-template-columns:auto 1fr;grid-template-rows:auto 1fr auto}.impdc.modal .modal-theme-destructive .modal-content>.modal-icon{grid-area:modal-icon;margin:var(--impartner-hex-modal-header-padding);margin-right:0;margin-bottom:0}.impdc.modal .modal-theme-destructive .modal-content>.modal-header{grid-area:modal-header;padding-left:16px;margin-top:8px;justify-content:unset}.impdc.modal .modal-theme-destructive .modal-content>.modal-body{grid-area:modal-body;padding-left:16px}.impdc.modal .modal-theme-destructive .modal-content>.modal-footer{grid-area:modal-footer}.impdc.modal .modal-theme-destructive .modal-icon{color:var(--impd-color-red-600);background:var(--impd-color-red-100)}\n"] }]
|
|
3614
3645
|
}], ctorParameters: function () { return [{ type: InteractionService }]; }, propDecorators: { show: [{
|
|
3615
3646
|
type: Input
|
|
3616
3647
|
}], theme: [{
|
|
@@ -3623,12 +3654,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
3623
3654
|
type: Input
|
|
3624
3655
|
}], titleText: [{
|
|
3625
3656
|
type: Input
|
|
3657
|
+
}], acceptText: [{
|
|
3658
|
+
type: Input
|
|
3626
3659
|
}], dismissable: [{
|
|
3627
3660
|
type: Input
|
|
3628
3661
|
}], fade: [{
|
|
3629
3662
|
type: Input
|
|
3630
3663
|
}], backdrop: [{
|
|
3631
3664
|
type: Input
|
|
3665
|
+
}], dismissEl: [{
|
|
3666
|
+
type: ViewChild,
|
|
3667
|
+
args: ['dismissEl', { static: false }]
|
|
3668
|
+
}], denyEl: [{
|
|
3669
|
+
type: ViewChild,
|
|
3670
|
+
args: ['denyEl', { static: false }]
|
|
3671
|
+
}], acceptEl: [{
|
|
3672
|
+
type: ViewChild,
|
|
3673
|
+
args: ['acceptEl', { static: false }]
|
|
3632
3674
|
}], dismiss: [{
|
|
3633
3675
|
type: Output
|
|
3634
3676
|
}], deny: [{
|
|
@@ -3656,9 +3698,15 @@ class BackdropComponent {
|
|
|
3656
3698
|
ngOnInit() {
|
|
3657
3699
|
this.interactionService.registerBackdrop(this);
|
|
3658
3700
|
}
|
|
3701
|
+
ngOnDestroy() {
|
|
3702
|
+
this.interactionService.unregisterBackdrop(this);
|
|
3703
|
+
}
|
|
3659
3704
|
invalidate() {
|
|
3660
3705
|
this._valid = false;
|
|
3661
3706
|
}
|
|
3707
|
+
validate() {
|
|
3708
|
+
this._valid = true;
|
|
3709
|
+
}
|
|
3662
3710
|
}
|
|
3663
3711
|
BackdropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BackdropComponent, deps: [{ token: InteractionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3664
3712
|
BackdropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: BackdropComponent, selector: "impdc-backdrop", ngImport: i0, template: "<div *ngIf=\"valid\" class=\"impdc modal-backdrop fade\" [class.show]=\"show\"></div>\n", styles: [".impdc.modal-backdrop{position:fixed;left:0;top:0;width:100vw;height:100vh;-webkit-user-select:none;user-select:none}.impdc.modal-backdrop.fade{transition:opacity .3s linear}.impdc.modal-backdrop:not(.show){height:0;opacity:0;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
@@ -5508,6 +5556,7 @@ class RadioGroupDirective extends _RadioGroupDirectiveBase {
|
|
|
5508
5556
|
/** @ignore */
|
|
5509
5557
|
emitChangesEvent() {
|
|
5510
5558
|
if (this._initialized) {
|
|
5559
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
5511
5560
|
this.change.emit({ source: this._selected, value: this._value });
|
|
5512
5561
|
}
|
|
5513
5562
|
}
|
|
@@ -5850,6 +5899,7 @@ class SelectModel {
|
|
|
5850
5899
|
}
|
|
5851
5900
|
sort(predicateFunc) {
|
|
5852
5901
|
if (this._multiple && this.selected) {
|
|
5902
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
5853
5903
|
this._selected.sort(predicateFunc);
|
|
5854
5904
|
}
|
|
5855
5905
|
}
|
|
@@ -7198,25 +7248,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
7198
7248
|
* To use, import `BreadcrumbModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
7199
7249
|
*/
|
|
7200
7250
|
class BreadcrumbComponent {
|
|
7201
|
-
constructor() {
|
|
7251
|
+
constructor(_changeDetectorRef) {
|
|
7252
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
7202
7253
|
/**
|
|
7203
7254
|
* Sets the `aria-label` attribute for the Breadcrumb's `nav` element for accessibility.
|
|
7204
7255
|
*/
|
|
7205
7256
|
this.label = '';
|
|
7206
7257
|
this.impdcBreadcrumb = true;
|
|
7207
7258
|
}
|
|
7259
|
+
ngAfterViewInit() {
|
|
7260
|
+
this._changeDetectorRef.detectChanges();
|
|
7261
|
+
}
|
|
7208
7262
|
}
|
|
7209
|
-
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7210
|
-
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: BreadcrumbComponent, selector: "impdc-breadcrumb, div[impdc-breadcrumb]", inputs: { label: "label" }, host: { properties: { "class.impdc-breadcrumb": "this.impdcBreadcrumb" } }, queries: [{ propertyName: "
|
|
7263
|
+
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
7264
|
+
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: BreadcrumbComponent, selector: "impdc-breadcrumb, div[impdc-breadcrumb]", inputs: { label: "label" }, host: { properties: { "class.impdc-breadcrumb": "this.impdcBreadcrumb" } }, queries: [{ propertyName: "breadcrumbItems", predicate: BreadcrumbItemComponent }], ngImport: i0, template: "<nav class=\"impdc-breadcrumb\" [attr.aria-label]=\"label || 'breadcrumb'\">\n <ol>\n <li\n *ngFor=\"let breadcrumbItem of breadcrumbItems; last as isLast\"\n [attr.aria-current]=\"isLast ? 'page' : undefined\">\n <ng-container\n [ngTemplateOutlet]=\"breadcrumbItem.contentTemplate\"></ng-container>\n </li>\n </ol>\n</nav>\n", styles: [".impdc-breadcrumb{--impartner-hex-link-color: var(--impd-color-gray-500, #6b7280);--impartner-hex-link-hover-color: var(--impd-color-gray-700, #374151);font-size:var(--impd-font-size-sm, 1.4rem);line-height:2rem;color:var(--impd-color-gray-500, #6b7280);font-weight:500}.impdc-breadcrumb a:not([href]):not([class]){color:var(--impartner-hex-link-color)}.impdc-breadcrumb a:not([href]):not([class]):hover{color:var(--impartner-hex-link-hover-color)}.impdc-breadcrumb ol,.impdc-breadcrumb ol li.impdc-crumb{display:inline-flex;align-items:center;vertical-align:middle}.impdc-breadcrumb ol{margin:0;padding-left:0;list-style:none}.impdc-breadcrumb li+li:before{margin:0 .8rem;display:inline-flex;align-items:center;justify-content:center;text-align:center;width:2rem;font-family:\"Font Awesome 6 Pro\",\"Font Awesome 6 Free\",\"Font Awesome 5 Pro\",\"Font Awesome 5 Free\";font-size:var(--impd-font-size-sm, 1.4rem);line-height:2rem;color:var(--impd-color-gray-400, #6b7280);font-weight:900;content:\"\\f054\";text-rendering:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
7211
7265
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
7212
7266
|
type: Component,
|
|
7213
|
-
args: [{ selector: 'impdc-breadcrumb, div[impdc-breadcrumb]', encapsulation: ViewEncapsulation.None, template: "<nav [attr.aria-label]=\"label ||
|
|
7214
|
-
}], propDecorators: { label: [{
|
|
7267
|
+
args: [{ selector: 'impdc-breadcrumb, div[impdc-breadcrumb]', encapsulation: ViewEncapsulation.None, template: "<nav class=\"impdc-breadcrumb\" [attr.aria-label]=\"label || 'breadcrumb'\">\n <ol>\n <li\n *ngFor=\"let breadcrumbItem of breadcrumbItems; last as isLast\"\n [attr.aria-current]=\"isLast ? 'page' : undefined\">\n <ng-container\n [ngTemplateOutlet]=\"breadcrumbItem.contentTemplate\"></ng-container>\n </li>\n </ol>\n</nav>\n", styles: [".impdc-breadcrumb{--impartner-hex-link-color: var(--impd-color-gray-500, #6b7280);--impartner-hex-link-hover-color: var(--impd-color-gray-700, #374151);font-size:var(--impd-font-size-sm, 1.4rem);line-height:2rem;color:var(--impd-color-gray-500, #6b7280);font-weight:500}.impdc-breadcrumb a:not([href]):not([class]){color:var(--impartner-hex-link-color)}.impdc-breadcrumb a:not([href]):not([class]):hover{color:var(--impartner-hex-link-hover-color)}.impdc-breadcrumb ol,.impdc-breadcrumb ol li.impdc-crumb{display:inline-flex;align-items:center;vertical-align:middle}.impdc-breadcrumb ol{margin:0;padding-left:0;list-style:none}.impdc-breadcrumb li+li:before{margin:0 .8rem;display:inline-flex;align-items:center;justify-content:center;text-align:center;width:2rem;font-family:\"Font Awesome 6 Pro\",\"Font Awesome 6 Free\",\"Font Awesome 5 Pro\",\"Font Awesome 5 Free\";font-size:var(--impd-font-size-sm, 1.4rem);line-height:2rem;color:var(--impd-color-gray-400, #6b7280);font-weight:900;content:\"\\f054\";text-rendering:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}\n"] }]
|
|
7268
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { label: [{
|
|
7215
7269
|
type: Input
|
|
7216
7270
|
}], impdcBreadcrumb: [{
|
|
7217
7271
|
type: HostBinding,
|
|
7218
7272
|
args: ['class.impdc-breadcrumb']
|
|
7219
|
-
}],
|
|
7273
|
+
}], breadcrumbItems: [{
|
|
7220
7274
|
type: ContentChildren,
|
|
7221
7275
|
args: [BreadcrumbItemComponent]
|
|
7222
7276
|
}] } });
|
|
@@ -7224,14 +7278,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
7224
7278
|
class BreadcrumbModule {
|
|
7225
7279
|
}
|
|
7226
7280
|
BreadcrumbModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7227
|
-
BreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbModule, declarations: [
|
|
7281
|
+
BreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbModule, declarations: [BreadcrumbItemComponent, BreadcrumbComponent], imports: [CommonModule], exports: [BreadcrumbItemComponent, BreadcrumbComponent] });
|
|
7228
7282
|
BreadcrumbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbModule, imports: [CommonModule] });
|
|
7229
7283
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbModule, decorators: [{
|
|
7230
7284
|
type: NgModule,
|
|
7231
7285
|
args: [{
|
|
7232
|
-
declarations: [
|
|
7286
|
+
declarations: [BreadcrumbItemComponent, BreadcrumbComponent],
|
|
7233
7287
|
imports: [CommonModule],
|
|
7234
|
-
exports: [
|
|
7288
|
+
exports: [BreadcrumbItemComponent, BreadcrumbComponent]
|
|
7235
7289
|
}]
|
|
7236
7290
|
}] });
|
|
7237
7291
|
|
|
@@ -7670,8 +7724,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
7670
7724
|
* `ScrollableModule` also imports and exports [BrandingModule](./?path=/docs/design-components-directives-impdcbranded).
|
|
7671
7725
|
*/
|
|
7672
7726
|
class ScrollableComponent {
|
|
7673
|
-
constructor(_cd) {
|
|
7727
|
+
constructor(_cd, _hostElementRef) {
|
|
7674
7728
|
this._cd = _cd;
|
|
7729
|
+
this._hostElementRef = _hostElementRef;
|
|
7730
|
+
this.GET_ANCESTOR_BG_SEARCH_DEPTH = 64;
|
|
7675
7731
|
/**
|
|
7676
7732
|
* The base amount to scroll.
|
|
7677
7733
|
*/
|
|
@@ -7715,12 +7771,11 @@ class ScrollableComponent {
|
|
|
7715
7771
|
this._cd.detectChanges();
|
|
7716
7772
|
}
|
|
7717
7773
|
}
|
|
7718
|
-
this._getBackgroundColorForButtons();
|
|
7719
7774
|
}
|
|
7720
7775
|
ngAfterViewInit() {
|
|
7721
7776
|
this._width = this.contentRef?.nativeElement.width;
|
|
7722
|
-
this._getBackgroundColorForButtons();
|
|
7723
7777
|
this._cd.detectChanges();
|
|
7778
|
+
Promise.resolve().then(() => this._getBackgroundColorForButtons());
|
|
7724
7779
|
}
|
|
7725
7780
|
async scroll(direction) {
|
|
7726
7781
|
if (!this._contentElement) {
|
|
@@ -7779,29 +7834,21 @@ class ScrollableComponent {
|
|
|
7779
7834
|
return promise;
|
|
7780
7835
|
}
|
|
7781
7836
|
_getBackgroundColorForButtons() {
|
|
7782
|
-
|
|
7783
|
-
return;
|
|
7784
|
-
}
|
|
7785
|
-
const projectedElementCollection = this.contentRef.nativeElement.children;
|
|
7786
|
-
if (!projectedElementCollection || !projectedElementCollection.length) {
|
|
7787
|
-
return;
|
|
7788
|
-
}
|
|
7789
|
-
const firstElement = projectedElementCollection[0];
|
|
7790
|
-
let backgroundColor = this._getBackGroundColor(firstElement);
|
|
7837
|
+
let backgroundColor = this._getBackGroundColor(this._hostElementRef.nativeElement);
|
|
7791
7838
|
if (!backgroundColor) {
|
|
7792
7839
|
backgroundColor = this._getAncestorBackgroundColor();
|
|
7793
7840
|
}
|
|
7794
|
-
this._scrollableBgColor
|
|
7841
|
+
if (this._scrollableBgColor !== backgroundColor) {
|
|
7842
|
+
this._scrollableBgColor = backgroundColor;
|
|
7843
|
+
this._cd.detectChanges();
|
|
7844
|
+
}
|
|
7795
7845
|
}
|
|
7796
7846
|
_getAncestorBackgroundColor() {
|
|
7797
|
-
if (!this.contentRef) {
|
|
7798
|
-
return null;
|
|
7799
|
-
}
|
|
7800
7847
|
let result = {
|
|
7801
|
-
parent: this.
|
|
7848
|
+
parent: this._hostElementRef.nativeElement.parentElement,
|
|
7802
7849
|
backgroundColor: null
|
|
7803
7850
|
};
|
|
7804
|
-
let count =
|
|
7851
|
+
let count = this.GET_ANCESTOR_BG_SEARCH_DEPTH;
|
|
7805
7852
|
function getParentBackgroundColor(currentContext, getBackgroundColor) {
|
|
7806
7853
|
const result = { parent: null, backgroundColor: null };
|
|
7807
7854
|
if (currentContext && currentContext.parent) {
|
|
@@ -7832,12 +7879,12 @@ class ScrollableComponent {
|
|
|
7832
7879
|
return element.style.backgroundColor;
|
|
7833
7880
|
}
|
|
7834
7881
|
}
|
|
7835
|
-
ScrollableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScrollableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
7882
|
+
ScrollableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScrollableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
7836
7883
|
ScrollableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ScrollableComponent, selector: "impdc-scrollable, div[impdc-scrollable]", inputs: { scrollUnit: "scrollUnit", clickScrollMultiplier: "clickScrollMultiplier" }, host: { properties: { "style.--impdc-scrollable-bg": "this._scrollableBgColor" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }, { propertyName: "contentRef", first: true, predicate: ["content"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"impdc-scrollable\"\n #container\n impdcSizeDetector\n (resized)=\"widthChanged($event)\">\n <a class=\"impdc-scrollable-left\" (click)=\"scroll(-1)\" *ngIf=\"canScrollLeft\">\n <i class=\"fas fa-chevron-left default\"></i>\n </a>\n <div #content class=\"content-container\">\n <ng-content></ng-content>\n </div>\n <a class=\"impdc-scrollable-right\" (click)=\"scroll(1)\" *ngIf=\"canScrollRight\">\n <i class=\"fas fa-chevron-right default\"></i>\n </a>\n</div>\n", styles: [".impdc-scrollable{position:relative;overflow-y:hidden}.impdc-scrollable .impdc-scrollable-base,.impdc-scrollable .impdc-scrollable-right,.impdc-scrollable .impdc-scrollable-left{position:absolute;top:0px;bottom:0px;display:flex;align-items:center;text-align:center;width:6.9rem;z-index:1;color:var(--impd-color-motion-blue-600, #01606d)}.impdc-scrollable .impdc-scrollable-left{justify-content:left;padding-left:1.5rem;background-image:linear-gradient(to right,var(--impdc-scrollable-bg, #fff) 50%,rgba(255,255,255,.0001) 86.46%)}.impdc-scrollable .impdc-scrollable-right{right:0;padding-right:1.5rem;justify-content:right;background-image:linear-gradient(to left,var(--impdc-scrollable-bg, #fff) 50%,rgba(255,255,255,.0001) 86.46%)}.impdc-scrollable .content-container{overflow-x:hidden;-webkit-overflow-scrolling:touch;white-space:nowrap}:host(.branded) .impdc-scrollable .impdc-scrollable-left,:host(.branded) .impdc-scrollable .impdc-scrollable-right{color:var(--px-primary-color, var(--impd-color-motion-blue-600, #01606d))}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: SizeDetectorDirective, selector: "[impdcSizeDetector]", outputs: ["resized"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7837
7884
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScrollableComponent, decorators: [{
|
|
7838
7885
|
type: Component,
|
|
7839
7886
|
args: [{ selector: 'impdc-scrollable, div[impdc-scrollable]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"impdc-scrollable\"\n #container\n impdcSizeDetector\n (resized)=\"widthChanged($event)\">\n <a class=\"impdc-scrollable-left\" (click)=\"scroll(-1)\" *ngIf=\"canScrollLeft\">\n <i class=\"fas fa-chevron-left default\"></i>\n </a>\n <div #content class=\"content-container\">\n <ng-content></ng-content>\n </div>\n <a class=\"impdc-scrollable-right\" (click)=\"scroll(1)\" *ngIf=\"canScrollRight\">\n <i class=\"fas fa-chevron-right default\"></i>\n </a>\n</div>\n", styles: [".impdc-scrollable{position:relative;overflow-y:hidden}.impdc-scrollable .impdc-scrollable-base,.impdc-scrollable .impdc-scrollable-right,.impdc-scrollable .impdc-scrollable-left{position:absolute;top:0px;bottom:0px;display:flex;align-items:center;text-align:center;width:6.9rem;z-index:1;color:var(--impd-color-motion-blue-600, #01606d)}.impdc-scrollable .impdc-scrollable-left{justify-content:left;padding-left:1.5rem;background-image:linear-gradient(to right,var(--impdc-scrollable-bg, #fff) 50%,rgba(255,255,255,.0001) 86.46%)}.impdc-scrollable .impdc-scrollable-right{right:0;padding-right:1.5rem;justify-content:right;background-image:linear-gradient(to left,var(--impdc-scrollable-bg, #fff) 50%,rgba(255,255,255,.0001) 86.46%)}.impdc-scrollable .content-container{overflow-x:hidden;-webkit-overflow-scrolling:touch;white-space:nowrap}:host(.branded) .impdc-scrollable .impdc-scrollable-left,:host(.branded) .impdc-scrollable .impdc-scrollable-right{color:var(--px-primary-color, var(--impd-color-motion-blue-600, #01606d))}\n"] }]
|
|
7840
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { scrollUnit: [{
|
|
7887
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { scrollUnit: [{
|
|
7841
7888
|
type: Input
|
|
7842
7889
|
}], clickScrollMultiplier: [{
|
|
7843
7890
|
type: Input
|
|
@@ -8201,6 +8248,145 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
8201
8248
|
}]
|
|
8202
8249
|
}] });
|
|
8203
8250
|
|
|
8251
|
+
/**
|
|
8252
|
+
* The `CardHeadingComponent` (`<impdc-data-card` or `<any impdc-data-card`) is to display data snapshots with support for
|
|
8253
|
+
* previous values and differences.
|
|
8254
|
+
* To use, import `DataCardModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
8255
|
+
*/
|
|
8256
|
+
class DataCardComponent {
|
|
8257
|
+
constructor() {
|
|
8258
|
+
/**
|
|
8259
|
+
* The subject text for the Data Card.
|
|
8260
|
+
*/
|
|
8261
|
+
this.title = '';
|
|
8262
|
+
/**
|
|
8263
|
+
* The current data value. Any number/currency format is supported.
|
|
8264
|
+
*/
|
|
8265
|
+
this.current = '0';
|
|
8266
|
+
/**
|
|
8267
|
+
* The previous data value. Any number/currency format is supported.
|
|
8268
|
+
*/
|
|
8269
|
+
this.previous = '';
|
|
8270
|
+
/**
|
|
8271
|
+
* The difference between the current and previous values. A numerical or percentage value is preferred,
|
|
8272
|
+
* but any number/currency format is supported.
|
|
8273
|
+
*/
|
|
8274
|
+
this.difference = '';
|
|
8275
|
+
/**
|
|
8276
|
+
* Text for the link at the bottom of the Data Card. If provided, enables the `linkClicked` event to be emitted.
|
|
8277
|
+
*/
|
|
8278
|
+
this.linkText = '';
|
|
8279
|
+
/**
|
|
8280
|
+
* When stacking multiple Data Card elements together, it's common to combine their borders.
|
|
8281
|
+
*/
|
|
8282
|
+
this.sharedBorders = true;
|
|
8283
|
+
/**
|
|
8284
|
+
* Makes the title stand out more than it does by default.
|
|
8285
|
+
*/
|
|
8286
|
+
// @Input()
|
|
8287
|
+
this.titleAttention = false;
|
|
8288
|
+
/**
|
|
8289
|
+
* Determines if the difference value will be wrapped in a `rounded-pill`.
|
|
8290
|
+
*/
|
|
8291
|
+
this.differencePill = false;
|
|
8292
|
+
/**
|
|
8293
|
+
* Changes the text color for the current value.
|
|
8294
|
+
*/
|
|
8295
|
+
this.currentColor = '';
|
|
8296
|
+
/**
|
|
8297
|
+
* Changes the color of the icon.
|
|
8298
|
+
*/
|
|
8299
|
+
this.iconColor = '';
|
|
8300
|
+
/**
|
|
8301
|
+
* Changes the color of the icon's background.
|
|
8302
|
+
*/
|
|
8303
|
+
this.iconBgColor = '';
|
|
8304
|
+
/**
|
|
8305
|
+
* Emitted when the link text is clicked.
|
|
8306
|
+
*/
|
|
8307
|
+
this.linkClicked = new EventEmitter();
|
|
8308
|
+
/**
|
|
8309
|
+
* Emitted when the corner content is clicked.
|
|
8310
|
+
*/
|
|
8311
|
+
this.cornerClicked = new EventEmitter();
|
|
8312
|
+
}
|
|
8313
|
+
get classDataCard() {
|
|
8314
|
+
return 'card impdc-data-card';
|
|
8315
|
+
}
|
|
8316
|
+
get classDataCardSharedBorders() {
|
|
8317
|
+
return this.sharedBorders;
|
|
8318
|
+
}
|
|
8319
|
+
get differenceNumber() {
|
|
8320
|
+
return Number(this.difference.replace(/[^0-9\.-]+/g, ''));
|
|
8321
|
+
}
|
|
8322
|
+
get differenceNegative() {
|
|
8323
|
+
return this.differenceNumber < 0;
|
|
8324
|
+
}
|
|
8325
|
+
get differencePositive() {
|
|
8326
|
+
return this.differenceNumber > 0;
|
|
8327
|
+
}
|
|
8328
|
+
get differenceDisplay() {
|
|
8329
|
+
return this.difference.replace('-', '');
|
|
8330
|
+
}
|
|
8331
|
+
handleLinkClick(event) {
|
|
8332
|
+
this.linkClicked.emit(event);
|
|
8333
|
+
}
|
|
8334
|
+
handleCornerClick(event) {
|
|
8335
|
+
this.cornerClicked.emit(event);
|
|
8336
|
+
}
|
|
8337
|
+
}
|
|
8338
|
+
DataCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8339
|
+
DataCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DataCardComponent, selector: "impdc-data-card, [impdc-data-card]", inputs: { title: "title", current: "current", previous: "previous", difference: "difference", linkText: "linkText", sharedBorders: "sharedBorders", differencePill: "differencePill", currentColor: "currentColor", iconColor: "iconColor", iconBgColor: "iconBgColor" }, outputs: { linkClicked: "linkClicked", cornerClicked: "cornerClicked" }, host: { properties: { "class": "this.classDataCard", "class.impdc-data-card-shared-borders": "this.classDataCardSharedBorders" } }, ngImport: i0, template: "<div class=\"card-body impdc-data-card-body\">\n <div\n #iconContentEl\n class=\"impdc-data-card-icon\"\n [style.color]=\"iconColor ? iconColor : undefined\"\n [style.background-color]=\"iconBgColor ? iconBgColor : undefined\"\n [class.hide]=\"!iconContentEl.children.length\">\n <ng-content select=\"[icon]\"></ng-content>\n </div>\n <div class=\"impdc-data-card-container\">\n <div class=\"impdc-data-card-title\" [class.title-attention]=\"titleAttention\">\n {{ title }}\n </div>\n <div class=\"impdc-data-card-data\">\n <ng-content></ng-content>\n <span\n *ngIf=\"current\"\n class=\"data-current\"\n [class.data-current-enlarged]=\"\n !iconContentEl.children.length && !previous && !difference\n \"\n [style.color]=\"currentColor ? currentColor : undefined\"\n [innerText]=\"current\"></span>\n <span class=\"data-other\">\n <span\n *ngIf=\"previous\"\n class=\"data-previous\"\n [innerText]=\"previous\"></span>\n <span\n *ngIf=\"difference\"\n class=\"data-difference\"\n [class.difference-negative]=\"differenceNegative\"\n [class.difference-positive]=\"differencePositive\"\n [class.badge]=\"differencePill\"\n [class.rounded-pill]=\"differencePill\">\n <span *ngIf=\"differenceNegative\" class=\"fas fa-arrow-down\"></span>\n <span *ngIf=\"differencePositive\" class=\"fas fa-arrow-up\"></span>\n <span class=\"difference-display\">{{ differenceDisplay }}</span>\n </span>\n </span>\n </div>\n </div>\n <div\n #cornerContentEl\n class=\"impdc-data-card-corner\"\n [class.hide]=\"!cornerContentEl.children.length\"\n (click)=\"handleCornerClick($event); $event.stopPropagation()\">\n <ng-content select=\"[corner]\"></ng-content>\n </div>\n</div>\n<div\n class=\"card-footer impdc-data-card-footer\"\n [class.hide]=\"!linkText && !footerContentEl.children.length\">\n <div #footerContentEl [class.hide]=\"!footerContentEl.children.length\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n <a\n *ngIf=\"linkText\"\n class=\"footer-link\"\n (click)=\"handleLinkClick($event); $event.stopPropagation()\"\n >{{ linkText }}</a\n >\n</div>\n", styles: [".hide{display:none}.impdc-data-card{overflow-x:hidden;border:0;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;border-radius:8px}.impdc-data-card.impdc-data-card-shared-borders:first-child:not(:last-child){border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.impdc-data-card.impdc-data-card-shared-borders:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.impdc-data-card.impdc-data-card-shared-borders:not(:first-child):not(:last-child){border-right:0;border-radius:0}.impdc-data-card-body{position:relative;display:flex;align-items:center;gap:20px;padding:24px}.impdc-data-card-icon{display:flex;align-items:center;justify-content:center;padding:12px;background-color:#01606d;color:#fff;border-radius:6px}.impdc-data-card-icon .fa,.impdc-data-card-icon .fa-brands,.impdc-data-card-icon .fa-duotone,.impdc-data-card-icon .fa-light,.impdc-data-card-icon .fa-regular,.impdc-data-card-icon .fa-solid,.impdc-data-card-icon .fa-thin,.impdc-data-card-icon .fab,.impdc-data-card-icon .fad,.impdc-data-card-icon .fal,.impdc-data-card-icon .far,.impdc-data-card-icon .fas,.impdc-data-card-icon .fat,.impdc-data-card-icon svg{display:flex;align-items:center;justify-content:center;height:24px;width:24px;font-size:18px;line-height:24px}.impdc-data-card-icon.hide{display:none}.impdc-data-card-container{display:flex;flex-direction:column;min-width:50px}.impdc-data-card-title{color:#6b7280;font-size:14px;line-height:20px;font-weight:500;min-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.impdc-data-card-title.title-attention{color:#161e2e;font-size:16px;line-height:24px;font-weight:400}.impdc-data-card-data{display:flex;flex-wrap:wrap;align-items:end;min-width:0}.impdc-data-card-data .data-current{color:#161e2e;font-size:24px;line-height:32px;font-weight:600;min-width:75px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:8px}.impdc-data-card-data .data-current.data-current-enlarged{font-size:30px;line-height:36px}.impdc-data-card-data .data-other{display:inline-flex;justify-content:space-between;align-items:end;min-width:50px}.impdc-data-card-data .data-previous{min-width:0;color:#6b7280;font-size:14px;line-height:20px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:13px}.impdc-data-card-data .data-difference{display:inline-flex;align-items:center;gap:5px;color:#6b7280;font-size:14px;line-height:20px;font-weight:500}.impdc-data-card-data .data-difference.difference-negative{color:#e02424}.impdc-data-card-data .data-difference.difference-negative.badge{background-color:#fde8e8}.impdc-data-card-data .data-difference.difference-positive{color:#057a55}.impdc-data-card-data .data-difference.difference-positive.badge{background-color:#def7ec}.impdc-data-card-data .data-difference.rounded-pill{padding:4px 10px;border-radius:12px!important}.impdc-data-card-corner{position:absolute;top:0;right:0;margin:1rem;line-height:14px;color:#374151}.impdc-data-card-corner .fa,.impdc-data-card-corner .fa-brands,.impdc-data-card-corner .fa-duotone,.impdc-data-card-corner .fa-light,.impdc-data-card-corner .fa-regular,.impdc-data-card-corner .fa-solid,.impdc-data-card-corner .fa-thin,.impdc-data-card-corner .fab,.impdc-data-card-corner .fad,.impdc-data-card-corner .fal,.impdc-data-card-corner .far,.impdc-data-card-corner .fas,.impdc-data-card-corner .fat,.impdc-data-card-corner svg{height:14px;line-height:14px}.impdc-data-card-corner.hide{display:none}.impdc-data-card-footer{display:flex;align-items:center;padding:16px;background-color:#f9fafb}.impdc-data-card-footer.card-footer{border-top:0}.impdc-data-card-footer.hide{display:none}.impdc-data-card-footer .footer-link{color:#01606d;font-weight:500;font-size:14px;line-height:20px}.impdc-data-card-footer .footer-link:hover{color:#19a8c1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
8340
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataCardComponent, decorators: [{
|
|
8341
|
+
type: Component,
|
|
8342
|
+
args: [{ selector: 'impdc-data-card, [impdc-data-card]', encapsulation: ViewEncapsulation.None, template: "<div class=\"card-body impdc-data-card-body\">\n <div\n #iconContentEl\n class=\"impdc-data-card-icon\"\n [style.color]=\"iconColor ? iconColor : undefined\"\n [style.background-color]=\"iconBgColor ? iconBgColor : undefined\"\n [class.hide]=\"!iconContentEl.children.length\">\n <ng-content select=\"[icon]\"></ng-content>\n </div>\n <div class=\"impdc-data-card-container\">\n <div class=\"impdc-data-card-title\" [class.title-attention]=\"titleAttention\">\n {{ title }}\n </div>\n <div class=\"impdc-data-card-data\">\n <ng-content></ng-content>\n <span\n *ngIf=\"current\"\n class=\"data-current\"\n [class.data-current-enlarged]=\"\n !iconContentEl.children.length && !previous && !difference\n \"\n [style.color]=\"currentColor ? currentColor : undefined\"\n [innerText]=\"current\"></span>\n <span class=\"data-other\">\n <span\n *ngIf=\"previous\"\n class=\"data-previous\"\n [innerText]=\"previous\"></span>\n <span\n *ngIf=\"difference\"\n class=\"data-difference\"\n [class.difference-negative]=\"differenceNegative\"\n [class.difference-positive]=\"differencePositive\"\n [class.badge]=\"differencePill\"\n [class.rounded-pill]=\"differencePill\">\n <span *ngIf=\"differenceNegative\" class=\"fas fa-arrow-down\"></span>\n <span *ngIf=\"differencePositive\" class=\"fas fa-arrow-up\"></span>\n <span class=\"difference-display\">{{ differenceDisplay }}</span>\n </span>\n </span>\n </div>\n </div>\n <div\n #cornerContentEl\n class=\"impdc-data-card-corner\"\n [class.hide]=\"!cornerContentEl.children.length\"\n (click)=\"handleCornerClick($event); $event.stopPropagation()\">\n <ng-content select=\"[corner]\"></ng-content>\n </div>\n</div>\n<div\n class=\"card-footer impdc-data-card-footer\"\n [class.hide]=\"!linkText && !footerContentEl.children.length\">\n <div #footerContentEl [class.hide]=\"!footerContentEl.children.length\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n <a\n *ngIf=\"linkText\"\n class=\"footer-link\"\n (click)=\"handleLinkClick($event); $event.stopPropagation()\"\n >{{ linkText }}</a\n >\n</div>\n", styles: [".hide{display:none}.impdc-data-card{overflow-x:hidden;border:0;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;border-radius:8px}.impdc-data-card.impdc-data-card-shared-borders:first-child:not(:last-child){border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.impdc-data-card.impdc-data-card-shared-borders:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.impdc-data-card.impdc-data-card-shared-borders:not(:first-child):not(:last-child){border-right:0;border-radius:0}.impdc-data-card-body{position:relative;display:flex;align-items:center;gap:20px;padding:24px}.impdc-data-card-icon{display:flex;align-items:center;justify-content:center;padding:12px;background-color:#01606d;color:#fff;border-radius:6px}.impdc-data-card-icon .fa,.impdc-data-card-icon .fa-brands,.impdc-data-card-icon .fa-duotone,.impdc-data-card-icon .fa-light,.impdc-data-card-icon .fa-regular,.impdc-data-card-icon .fa-solid,.impdc-data-card-icon .fa-thin,.impdc-data-card-icon .fab,.impdc-data-card-icon .fad,.impdc-data-card-icon .fal,.impdc-data-card-icon .far,.impdc-data-card-icon .fas,.impdc-data-card-icon .fat,.impdc-data-card-icon svg{display:flex;align-items:center;justify-content:center;height:24px;width:24px;font-size:18px;line-height:24px}.impdc-data-card-icon.hide{display:none}.impdc-data-card-container{display:flex;flex-direction:column;min-width:50px}.impdc-data-card-title{color:#6b7280;font-size:14px;line-height:20px;font-weight:500;min-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.impdc-data-card-title.title-attention{color:#161e2e;font-size:16px;line-height:24px;font-weight:400}.impdc-data-card-data{display:flex;flex-wrap:wrap;align-items:end;min-width:0}.impdc-data-card-data .data-current{color:#161e2e;font-size:24px;line-height:32px;font-weight:600;min-width:75px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:8px}.impdc-data-card-data .data-current.data-current-enlarged{font-size:30px;line-height:36px}.impdc-data-card-data .data-other{display:inline-flex;justify-content:space-between;align-items:end;min-width:50px}.impdc-data-card-data .data-previous{min-width:0;color:#6b7280;font-size:14px;line-height:20px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:13px}.impdc-data-card-data .data-difference{display:inline-flex;align-items:center;gap:5px;color:#6b7280;font-size:14px;line-height:20px;font-weight:500}.impdc-data-card-data .data-difference.difference-negative{color:#e02424}.impdc-data-card-data .data-difference.difference-negative.badge{background-color:#fde8e8}.impdc-data-card-data .data-difference.difference-positive{color:#057a55}.impdc-data-card-data .data-difference.difference-positive.badge{background-color:#def7ec}.impdc-data-card-data .data-difference.rounded-pill{padding:4px 10px;border-radius:12px!important}.impdc-data-card-corner{position:absolute;top:0;right:0;margin:1rem;line-height:14px;color:#374151}.impdc-data-card-corner .fa,.impdc-data-card-corner .fa-brands,.impdc-data-card-corner .fa-duotone,.impdc-data-card-corner .fa-light,.impdc-data-card-corner .fa-regular,.impdc-data-card-corner .fa-solid,.impdc-data-card-corner .fa-thin,.impdc-data-card-corner .fab,.impdc-data-card-corner .fad,.impdc-data-card-corner .fal,.impdc-data-card-corner .far,.impdc-data-card-corner .fas,.impdc-data-card-corner .fat,.impdc-data-card-corner svg{height:14px;line-height:14px}.impdc-data-card-corner.hide{display:none}.impdc-data-card-footer{display:flex;align-items:center;padding:16px;background-color:#f9fafb}.impdc-data-card-footer.card-footer{border-top:0}.impdc-data-card-footer.hide{display:none}.impdc-data-card-footer .footer-link{color:#01606d;font-weight:500;font-size:14px;line-height:20px}.impdc-data-card-footer .footer-link:hover{color:#19a8c1}\n"] }]
|
|
8343
|
+
}], propDecorators: { title: [{
|
|
8344
|
+
type: Input
|
|
8345
|
+
}], current: [{
|
|
8346
|
+
type: Input
|
|
8347
|
+
}], previous: [{
|
|
8348
|
+
type: Input
|
|
8349
|
+
}], difference: [{
|
|
8350
|
+
type: Input
|
|
8351
|
+
}], linkText: [{
|
|
8352
|
+
type: Input
|
|
8353
|
+
}], sharedBorders: [{
|
|
8354
|
+
type: Input
|
|
8355
|
+
}], differencePill: [{
|
|
8356
|
+
type: Input
|
|
8357
|
+
}], currentColor: [{
|
|
8358
|
+
type: Input
|
|
8359
|
+
}], iconColor: [{
|
|
8360
|
+
type: Input
|
|
8361
|
+
}], iconBgColor: [{
|
|
8362
|
+
type: Input
|
|
8363
|
+
}], linkClicked: [{
|
|
8364
|
+
type: Output
|
|
8365
|
+
}], cornerClicked: [{
|
|
8366
|
+
type: Output
|
|
8367
|
+
}], classDataCard: [{
|
|
8368
|
+
type: HostBinding,
|
|
8369
|
+
args: ['class']
|
|
8370
|
+
}], classDataCardSharedBorders: [{
|
|
8371
|
+
type: HostBinding,
|
|
8372
|
+
args: ['class.impdc-data-card-shared-borders']
|
|
8373
|
+
}] } });
|
|
8374
|
+
|
|
8375
|
+
class DataCardModule {
|
|
8376
|
+
constructor() { }
|
|
8377
|
+
}
|
|
8378
|
+
DataCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8379
|
+
DataCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DataCardModule, declarations: [DataCardComponent], imports: [CommonModule], exports: [DataCardComponent] });
|
|
8380
|
+
DataCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataCardModule, imports: [CommonModule] });
|
|
8381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataCardModule, decorators: [{
|
|
8382
|
+
type: NgModule,
|
|
8383
|
+
args: [{
|
|
8384
|
+
imports: [CommonModule],
|
|
8385
|
+
declarations: [DataCardComponent],
|
|
8386
|
+
exports: [DataCardComponent]
|
|
8387
|
+
}]
|
|
8388
|
+
}], ctorParameters: function () { return []; } });
|
|
8389
|
+
|
|
8204
8390
|
class InteractionService {
|
|
8205
8391
|
constructor() {
|
|
8206
8392
|
this._interactables = [];
|
|
@@ -8213,8 +8399,18 @@ class InteractionService {
|
|
|
8213
8399
|
if (!this._backdrop) {
|
|
8214
8400
|
this._backdrop = modalBackdrop;
|
|
8215
8401
|
}
|
|
8216
|
-
else {
|
|
8217
|
-
|
|
8402
|
+
else if (this._backdrop !== modalBackdrop) {
|
|
8403
|
+
this._backdrop.invalidate();
|
|
8404
|
+
this._backdrop = modalBackdrop;
|
|
8405
|
+
if (!modalBackdrop.valid) {
|
|
8406
|
+
// we invalidated and set backdrop to the same backdrop
|
|
8407
|
+
modalBackdrop.validate();
|
|
8408
|
+
}
|
|
8409
|
+
}
|
|
8410
|
+
}
|
|
8411
|
+
unregisterBackdrop(modalBackdrop) {
|
|
8412
|
+
if (this._backdrop === modalBackdrop) {
|
|
8413
|
+
this._backdrop = undefined;
|
|
8218
8414
|
}
|
|
8219
8415
|
}
|
|
8220
8416
|
add(interactable) {
|
|
@@ -8260,5 +8456,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
8260
8456
|
* Generated bundle index. Do not edit.
|
|
8261
8457
|
*/
|
|
8262
8458
|
|
|
8263
|
-
export { AlertComponent, AlertModule, AvatarComponent, AvatarGroupComponent, AvatarGroupModule, AvatarModule, BackdropComponent, BackdropModule, BadgeComponent, BadgeModule, BadgeSize, BadgeSizesArr, BrandedDirective, BrandingModule, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, ButtonComponent, ButtonGroupComponent, ButtonGroupModule, ButtonModule, CardHeadingComponent, CardHeadingModule, CheckboxChangeEvent, CheckboxComponent, CheckboxModule, ComponentSize, ComponentTheme, ComponentThemesArr, CornerHintDirective, DesignComponentsModule, DropdownComponent, DropdownItemComponent, DropdownModule, ErrorDirective, ErrorStateMatcher, FileDropDirective, FileUploadComponent, FileUploadModule, FontAwesomeFreeRegularIcons, FontAwesomeFreeSolidIcons, FontAwesomeIconThemes, FontAwesomeIcons, FormFieldComponent, HintDirective, HumanReadableByteSizePipe, IMPDC_FORM_FIELD, IMPDC_FORM_ROOT, IMPDC_RADIO_BUTTON, IMPDC_RADIO_GROUP, IMPDC_SELECT_OPTION_PARENT_COMPONENT, IconComponent, IconModule, ImpdcFormFieldControl, ImpdcFormsModule, ImpdcSelectIconChange, InputDirective, InteractionService, LabelDirective, ModalComponent, ModalComponentSizesArr, ModalModule, ModalTheme, ModalThemesArr, PaginationComponent, PaginationModule, PrefixDirective, ProgressBarComponent, ProgressBarModule, RadioButtonComponent, RadioChangeEvent, RadioGroupDirective, RadioModule, RootFormGroupDirective, RootNgFormDirective, ScrollableComponent, ScrollableModule, SelectChangeEvent, SelectComponent, SelectIconComponent, SelectIconModule, SelectModel, SelectModule, SelectOptionComponent, SelectOptionSelectionChangeEvent, ShowOnDirtyErrorStateMatcher, SizeDetectionModule, SizeDetectorDirective, SpinnerComponent, SpinnerModule, SuffixDirective, TableComponent, TableModule, TextHighlightComponent, TextHighlightModule, UniqueSelectionDispatcher, getImpdcFormFieldMissingControlError, mixinDisabled, mixinErrorState, mixinTabIndex };
|
|
8459
|
+
export { AlertComponent, AlertModule, AvatarComponent, AvatarGroupComponent, AvatarGroupModule, AvatarModule, BackdropComponent, BackdropModule, BadgeComponent, BadgeModule, BadgeSize, BadgeSizesArr, BrandedDirective, BrandingModule, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, ButtonComponent, ButtonGroupComponent, ButtonGroupModule, ButtonModule, CardHeadingComponent, CardHeadingModule, CheckboxChangeEvent, CheckboxComponent, CheckboxModule, ComponentSize, ComponentTheme, ComponentThemesArr, CornerHintDirective, DataCardComponent, DataCardModule, DesignComponentsModule, DropdownComponent, DropdownItemComponent, DropdownModule, ErrorDirective, ErrorStateMatcher, FileDropDirective, FileUploadComponent, FileUploadModule, FontAwesomeFreeRegularIcons, FontAwesomeFreeSolidIcons, FontAwesomeIconThemes, FontAwesomeIcons, FormFieldComponent, HintDirective, HumanReadableByteSizePipe, IMPDC_FORM_FIELD, IMPDC_FORM_ROOT, IMPDC_RADIO_BUTTON, IMPDC_RADIO_GROUP, IMPDC_SELECT_OPTION_PARENT_COMPONENT, IconComponent, IconModule, ImpdcFormFieldControl, ImpdcFormsModule, ImpdcSelectIconChange, InputDirective, InteractionService, LabelDirective, ModalComponent, ModalComponentSizesArr, ModalModule, ModalTheme, ModalThemesArr, PaginationComponent, PaginationModule, PrefixDirective, ProgressBarComponent, ProgressBarModule, RadioButtonComponent, RadioChangeEvent, RadioGroupDirective, RadioModule, RootFormGroupDirective, RootNgFormDirective, ScrollableComponent, ScrollableModule, SelectChangeEvent, SelectComponent, SelectIconComponent, SelectIconModule, SelectModel, SelectModule, SelectOptionComponent, SelectOptionSelectionChangeEvent, ShowOnDirtyErrorStateMatcher, SizeDetectionModule, SizeDetectorDirective, SpinnerComponent, SpinnerModule, SuffixDirective, TableComponent, TableModule, TextHighlightComponent, TextHighlightModule, UniqueSelectionDispatcher, getImpdcFormFieldMissingControlError, mixinDisabled, mixinErrorState, mixinTabIndex };
|
|
8264
8460
|
//# sourceMappingURL=impartner-design-components.mjs.map
|