@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';
|
|
@@ -3083,7 +3083,7 @@ function _isNumberValue(value) {
|
|
|
3083
3083
|
}
|
|
3084
3084
|
|
|
3085
3085
|
function sanitize(value) {
|
|
3086
|
-
return
|
|
3086
|
+
return sanitizeHtml(value, {
|
|
3087
3087
|
allowedTags: []
|
|
3088
3088
|
});
|
|
3089
3089
|
}
|
|
@@ -3204,6 +3204,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
3204
3204
|
*/
|
|
3205
3205
|
class IconComponent {
|
|
3206
3206
|
constructor() {
|
|
3207
|
+
this._loading = true;
|
|
3208
|
+
this._licensed = false;
|
|
3207
3209
|
/**
|
|
3208
3210
|
* The Font Awesome 5 icon style. Local development may fallback to a free available
|
|
3209
3211
|
* theme when possible.
|
|
@@ -3215,17 +3217,8 @@ class IconComponent {
|
|
|
3215
3217
|
*/
|
|
3216
3218
|
this.size = '1.8rem';
|
|
3217
3219
|
}
|
|
3218
|
-
get usingLicensed() {
|
|
3219
|
-
var _a, _b;
|
|
3220
|
-
if (!((_a = this.iconRef) === null || _a === void 0 ? void 0 : _a.nativeElement)) {
|
|
3221
|
-
return false;
|
|
3222
|
-
}
|
|
3223
|
-
const iconFontFamily = getComputedStyle((_b = this.iconRef) === null || _b === void 0 ? void 0 : _b.nativeElement).getPropertyValue('font-family');
|
|
3224
|
-
return (iconFontFamily.includes('Font Awesome') &&
|
|
3225
|
-
!iconFontFamily.includes('Free'));
|
|
3226
|
-
}
|
|
3227
3220
|
get typeClass() {
|
|
3228
|
-
if (this.
|
|
3221
|
+
if (this._licensed) {
|
|
3229
3222
|
switch (this.theme) {
|
|
3230
3223
|
case 'light':
|
|
3231
3224
|
return 'fal';
|
|
@@ -3249,6 +3242,16 @@ class IconComponent {
|
|
|
3249
3242
|
}
|
|
3250
3243
|
return `${this.size}px`;
|
|
3251
3244
|
}
|
|
3245
|
+
ngAfterContentChecked() {
|
|
3246
|
+
if (this._loading) {
|
|
3247
|
+
// During init and possibly a few checks, `iconFontFamily` will be an inherited font, later it will be Font Awesome.
|
|
3248
|
+
const iconFontFamily = getComputedStyle(this.iconRef.nativeElement).getPropertyValue('font-family');
|
|
3249
|
+
if (iconFontFamily.includes('Font Awesome')) {
|
|
3250
|
+
this._licensed = !iconFontFamily.includes('Free');
|
|
3251
|
+
this._loading = false;
|
|
3252
|
+
}
|
|
3253
|
+
}
|
|
3254
|
+
}
|
|
3252
3255
|
}
|
|
3253
3256
|
IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3254
3257
|
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 });
|
|
@@ -3516,10 +3519,7 @@ class ModalComponent {
|
|
|
3516
3519
|
constructor(_interactionService) {
|
|
3517
3520
|
this._interactionService = _interactionService;
|
|
3518
3521
|
this._interactableId = 0;
|
|
3519
|
-
|
|
3520
|
-
* Determines if the Modal should be shown immediately.
|
|
3521
|
-
*/
|
|
3522
|
-
this.show = false;
|
|
3522
|
+
this._show = false;
|
|
3523
3523
|
/**
|
|
3524
3524
|
* The theme of the Modal. Affects the layout of the Modal as well as some colors.
|
|
3525
3525
|
*/
|
|
@@ -3537,6 +3537,10 @@ class ModalComponent {
|
|
|
3537
3537
|
* The subject text of the Modal.
|
|
3538
3538
|
*/
|
|
3539
3539
|
this.titleText = '';
|
|
3540
|
+
/**
|
|
3541
|
+
* The fallback button text to accept the Modal. This is bypassed if you content-project the accept button.
|
|
3542
|
+
*/
|
|
3543
|
+
this.acceptText = 'OK';
|
|
3540
3544
|
/**
|
|
3541
3545
|
* Determines if the Modal should fade in/out.
|
|
3542
3546
|
*/
|
|
@@ -3559,6 +3563,12 @@ class ModalComponent {
|
|
|
3559
3563
|
this.accept = new EventEmitter();
|
|
3560
3564
|
this._interactableId = this._interactionService.add(this);
|
|
3561
3565
|
}
|
|
3566
|
+
/**
|
|
3567
|
+
* Determines if the Modal should be shown immediately.
|
|
3568
|
+
*/
|
|
3569
|
+
set show(show) {
|
|
3570
|
+
this._show = show;
|
|
3571
|
+
}
|
|
3562
3572
|
get interactableId() {
|
|
3563
3573
|
return this._interactableId;
|
|
3564
3574
|
}
|
|
@@ -3566,7 +3576,7 @@ class ModalComponent {
|
|
|
3566
3576
|
return this.interactableId > 0;
|
|
3567
3577
|
}
|
|
3568
3578
|
get shown() {
|
|
3569
|
-
return this.valid && this.
|
|
3579
|
+
return this.valid && this._show;
|
|
3570
3580
|
}
|
|
3571
3581
|
get showWorkingIcon() {
|
|
3572
3582
|
return !!this.iconName && this.theme === ModalTheme.Working;
|
|
@@ -3593,26 +3603,49 @@ class ModalComponent {
|
|
|
3593
3603
|
this._interactableId = 0;
|
|
3594
3604
|
}
|
|
3595
3605
|
handleDismiss(event) {
|
|
3596
|
-
|
|
3606
|
+
var _a, _b, _c;
|
|
3607
|
+
if (!this.dismissable ||
|
|
3608
|
+
!!((_c = (_b = (_a = this.dismissEl) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.disabled)) {
|
|
3597
3609
|
return;
|
|
3598
3610
|
}
|
|
3599
|
-
this.
|
|
3611
|
+
this._show = false;
|
|
3600
3612
|
this.dismiss.emit(event);
|
|
3601
3613
|
}
|
|
3602
3614
|
handleDeny(event) {
|
|
3603
|
-
|
|
3615
|
+
var _a, _b, _c;
|
|
3616
|
+
if (!!((_c = (_b = (_a = this.denyEl) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.disabled)) {
|
|
3617
|
+
return;
|
|
3618
|
+
}
|
|
3619
|
+
this._show = false;
|
|
3604
3620
|
this.deny.emit(event);
|
|
3605
3621
|
}
|
|
3606
3622
|
handleAccept(event) {
|
|
3607
|
-
|
|
3623
|
+
var _a, _b, _c;
|
|
3624
|
+
console.log('this.acceptEl', this.acceptEl);
|
|
3625
|
+
if (!!((_c = (_b = (_a = this.acceptEl) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.firstChild) === null || _c === void 0 ? void 0 : _c.disabled)) {
|
|
3626
|
+
return;
|
|
3627
|
+
}
|
|
3628
|
+
this._show = false;
|
|
3608
3629
|
this.accept.emit(event);
|
|
3609
3630
|
}
|
|
3631
|
+
/**
|
|
3632
|
+
* Opens/shows the modal programmatically.
|
|
3633
|
+
*/
|
|
3634
|
+
open() {
|
|
3635
|
+
this._show = true;
|
|
3636
|
+
}
|
|
3637
|
+
/**
|
|
3638
|
+
* Closes/hides the modal programmatically.
|
|
3639
|
+
*/
|
|
3640
|
+
close() {
|
|
3641
|
+
this._show = false;
|
|
3642
|
+
}
|
|
3610
3643
|
}
|
|
3611
3644
|
ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ModalComponent, deps: [{ token: InteractionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3612
|
-
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
|
|
3645
|
+
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"] }] });
|
|
3613
3646
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ModalComponent, decorators: [{
|
|
3614
3647
|
type: Component,
|
|
3615
|
-
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
|
|
3648
|
+
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"] }]
|
|
3616
3649
|
}], ctorParameters: function () { return [{ type: InteractionService }]; }, propDecorators: { show: [{
|
|
3617
3650
|
type: Input
|
|
3618
3651
|
}], theme: [{
|
|
@@ -3625,12 +3658,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
3625
3658
|
type: Input
|
|
3626
3659
|
}], titleText: [{
|
|
3627
3660
|
type: Input
|
|
3661
|
+
}], acceptText: [{
|
|
3662
|
+
type: Input
|
|
3628
3663
|
}], dismissable: [{
|
|
3629
3664
|
type: Input
|
|
3630
3665
|
}], fade: [{
|
|
3631
3666
|
type: Input
|
|
3632
3667
|
}], backdrop: [{
|
|
3633
3668
|
type: Input
|
|
3669
|
+
}], dismissEl: [{
|
|
3670
|
+
type: ViewChild,
|
|
3671
|
+
args: ['dismissEl', { static: false }]
|
|
3672
|
+
}], denyEl: [{
|
|
3673
|
+
type: ViewChild,
|
|
3674
|
+
args: ['denyEl', { static: false }]
|
|
3675
|
+
}], acceptEl: [{
|
|
3676
|
+
type: ViewChild,
|
|
3677
|
+
args: ['acceptEl', { static: false }]
|
|
3634
3678
|
}], dismiss: [{
|
|
3635
3679
|
type: Output
|
|
3636
3680
|
}], deny: [{
|
|
@@ -3658,9 +3702,15 @@ class BackdropComponent {
|
|
|
3658
3702
|
ngOnInit() {
|
|
3659
3703
|
this.interactionService.registerBackdrop(this);
|
|
3660
3704
|
}
|
|
3705
|
+
ngOnDestroy() {
|
|
3706
|
+
this.interactionService.unregisterBackdrop(this);
|
|
3707
|
+
}
|
|
3661
3708
|
invalidate() {
|
|
3662
3709
|
this._valid = false;
|
|
3663
3710
|
}
|
|
3711
|
+
validate() {
|
|
3712
|
+
this._valid = true;
|
|
3713
|
+
}
|
|
3664
3714
|
}
|
|
3665
3715
|
BackdropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BackdropComponent, deps: [{ token: InteractionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3666
3716
|
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"] }] });
|
|
@@ -5523,6 +5573,7 @@ class RadioGroupDirective extends _RadioGroupDirectiveBase {
|
|
|
5523
5573
|
/** @ignore */
|
|
5524
5574
|
emitChangesEvent() {
|
|
5525
5575
|
if (this._initialized) {
|
|
5576
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
5526
5577
|
this.change.emit({ source: this._selected, value: this._value });
|
|
5527
5578
|
}
|
|
5528
5579
|
}
|
|
@@ -5869,6 +5920,7 @@ class SelectModel {
|
|
|
5869
5920
|
}
|
|
5870
5921
|
sort(predicateFunc) {
|
|
5871
5922
|
if (this._multiple && this.selected) {
|
|
5923
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
5872
5924
|
this._selected.sort(predicateFunc);
|
|
5873
5925
|
}
|
|
5874
5926
|
}
|
|
@@ -7222,25 +7274,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
7222
7274
|
* To use, import `BreadcrumbModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
7223
7275
|
*/
|
|
7224
7276
|
class BreadcrumbComponent {
|
|
7225
|
-
constructor() {
|
|
7277
|
+
constructor(_changeDetectorRef) {
|
|
7278
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
7226
7279
|
/**
|
|
7227
7280
|
* Sets the `aria-label` attribute for the Breadcrumb's `nav` element for accessibility.
|
|
7228
7281
|
*/
|
|
7229
7282
|
this.label = '';
|
|
7230
7283
|
this.impdcBreadcrumb = true;
|
|
7231
7284
|
}
|
|
7285
|
+
ngAfterViewInit() {
|
|
7286
|
+
this._changeDetectorRef.detectChanges();
|
|
7287
|
+
}
|
|
7232
7288
|
}
|
|
7233
|
-
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7234
|
-
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: "
|
|
7289
|
+
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
7290
|
+
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 });
|
|
7235
7291
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
7236
7292
|
type: Component,
|
|
7237
|
-
args: [{ selector: 'impdc-breadcrumb, div[impdc-breadcrumb]', encapsulation: ViewEncapsulation.None, template: "<nav [attr.aria-label]=\"label ||
|
|
7238
|
-
}], propDecorators: { label: [{
|
|
7293
|
+
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"] }]
|
|
7294
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { label: [{
|
|
7239
7295
|
type: Input
|
|
7240
7296
|
}], impdcBreadcrumb: [{
|
|
7241
7297
|
type: HostBinding,
|
|
7242
7298
|
args: ['class.impdc-breadcrumb']
|
|
7243
|
-
}],
|
|
7299
|
+
}], breadcrumbItems: [{
|
|
7244
7300
|
type: ContentChildren,
|
|
7245
7301
|
args: [BreadcrumbItemComponent]
|
|
7246
7302
|
}] } });
|
|
@@ -7248,14 +7304,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
7248
7304
|
class BreadcrumbModule {
|
|
7249
7305
|
}
|
|
7250
7306
|
BreadcrumbModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7251
|
-
BreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbModule, declarations: [
|
|
7307
|
+
BreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbModule, declarations: [BreadcrumbItemComponent, BreadcrumbComponent], imports: [CommonModule], exports: [BreadcrumbItemComponent, BreadcrumbComponent] });
|
|
7252
7308
|
BreadcrumbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbModule, imports: [CommonModule] });
|
|
7253
7309
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BreadcrumbModule, decorators: [{
|
|
7254
7310
|
type: NgModule,
|
|
7255
7311
|
args: [{
|
|
7256
|
-
declarations: [
|
|
7312
|
+
declarations: [BreadcrumbItemComponent, BreadcrumbComponent],
|
|
7257
7313
|
imports: [CommonModule],
|
|
7258
|
-
exports: [
|
|
7314
|
+
exports: [BreadcrumbItemComponent, BreadcrumbComponent]
|
|
7259
7315
|
}]
|
|
7260
7316
|
}] });
|
|
7261
7317
|
|
|
@@ -7694,8 +7750,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
7694
7750
|
* `ScrollableModule` also imports and exports [BrandingModule](./?path=/docs/design-components-directives-impdcbranded).
|
|
7695
7751
|
*/
|
|
7696
7752
|
class ScrollableComponent {
|
|
7697
|
-
constructor(_cd) {
|
|
7753
|
+
constructor(_cd, _hostElementRef) {
|
|
7698
7754
|
this._cd = _cd;
|
|
7755
|
+
this._hostElementRef = _hostElementRef;
|
|
7756
|
+
this.GET_ANCESTOR_BG_SEARCH_DEPTH = 64;
|
|
7699
7757
|
/**
|
|
7700
7758
|
* The base amount to scroll.
|
|
7701
7759
|
*/
|
|
@@ -7740,13 +7798,12 @@ class ScrollableComponent {
|
|
|
7740
7798
|
this._cd.detectChanges();
|
|
7741
7799
|
}
|
|
7742
7800
|
}
|
|
7743
|
-
this._getBackgroundColorForButtons();
|
|
7744
7801
|
}
|
|
7745
7802
|
ngAfterViewInit() {
|
|
7746
7803
|
var _a;
|
|
7747
7804
|
this._width = (_a = this.contentRef) === null || _a === void 0 ? void 0 : _a.nativeElement.width;
|
|
7748
|
-
this._getBackgroundColorForButtons();
|
|
7749
7805
|
this._cd.detectChanges();
|
|
7806
|
+
Promise.resolve().then(() => this._getBackgroundColorForButtons());
|
|
7750
7807
|
}
|
|
7751
7808
|
scroll(direction) {
|
|
7752
7809
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -7809,29 +7866,21 @@ class ScrollableComponent {
|
|
|
7809
7866
|
});
|
|
7810
7867
|
}
|
|
7811
7868
|
_getBackgroundColorForButtons() {
|
|
7812
|
-
|
|
7813
|
-
return;
|
|
7814
|
-
}
|
|
7815
|
-
const projectedElementCollection = this.contentRef.nativeElement.children;
|
|
7816
|
-
if (!projectedElementCollection || !projectedElementCollection.length) {
|
|
7817
|
-
return;
|
|
7818
|
-
}
|
|
7819
|
-
const firstElement = projectedElementCollection[0];
|
|
7820
|
-
let backgroundColor = this._getBackGroundColor(firstElement);
|
|
7869
|
+
let backgroundColor = this._getBackGroundColor(this._hostElementRef.nativeElement);
|
|
7821
7870
|
if (!backgroundColor) {
|
|
7822
7871
|
backgroundColor = this._getAncestorBackgroundColor();
|
|
7823
7872
|
}
|
|
7824
|
-
this._scrollableBgColor
|
|
7873
|
+
if (this._scrollableBgColor !== backgroundColor) {
|
|
7874
|
+
this._scrollableBgColor = backgroundColor;
|
|
7875
|
+
this._cd.detectChanges();
|
|
7876
|
+
}
|
|
7825
7877
|
}
|
|
7826
7878
|
_getAncestorBackgroundColor() {
|
|
7827
|
-
if (!this.contentRef) {
|
|
7828
|
-
return null;
|
|
7829
|
-
}
|
|
7830
7879
|
let result = {
|
|
7831
|
-
parent: this.
|
|
7880
|
+
parent: this._hostElementRef.nativeElement.parentElement,
|
|
7832
7881
|
backgroundColor: null
|
|
7833
7882
|
};
|
|
7834
|
-
let count =
|
|
7883
|
+
let count = this.GET_ANCESTOR_BG_SEARCH_DEPTH;
|
|
7835
7884
|
function getParentBackgroundColor(currentContext, getBackgroundColor) {
|
|
7836
7885
|
const result = { parent: null, backgroundColor: null };
|
|
7837
7886
|
if (currentContext && currentContext.parent) {
|
|
@@ -7862,12 +7911,12 @@ class ScrollableComponent {
|
|
|
7862
7911
|
return element.style.backgroundColor;
|
|
7863
7912
|
}
|
|
7864
7913
|
}
|
|
7865
|
-
ScrollableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScrollableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
7914
|
+
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 });
|
|
7866
7915
|
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 });
|
|
7867
7916
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScrollableComponent, decorators: [{
|
|
7868
7917
|
type: Component,
|
|
7869
7918
|
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"] }]
|
|
7870
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { scrollUnit: [{
|
|
7919
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { scrollUnit: [{
|
|
7871
7920
|
type: Input
|
|
7872
7921
|
}], clickScrollMultiplier: [{
|
|
7873
7922
|
type: Input
|
|
@@ -8232,6 +8281,145 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
8232
8281
|
}]
|
|
8233
8282
|
}] });
|
|
8234
8283
|
|
|
8284
|
+
/**
|
|
8285
|
+
* The `CardHeadingComponent` (`<impdc-data-card` or `<any impdc-data-card`) is to display data snapshots with support for
|
|
8286
|
+
* previous values and differences.
|
|
8287
|
+
* To use, import `DataCardModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
8288
|
+
*/
|
|
8289
|
+
class DataCardComponent {
|
|
8290
|
+
constructor() {
|
|
8291
|
+
/**
|
|
8292
|
+
* The subject text for the Data Card.
|
|
8293
|
+
*/
|
|
8294
|
+
this.title = '';
|
|
8295
|
+
/**
|
|
8296
|
+
* The current data value. Any number/currency format is supported.
|
|
8297
|
+
*/
|
|
8298
|
+
this.current = '0';
|
|
8299
|
+
/**
|
|
8300
|
+
* The previous data value. Any number/currency format is supported.
|
|
8301
|
+
*/
|
|
8302
|
+
this.previous = '';
|
|
8303
|
+
/**
|
|
8304
|
+
* The difference between the current and previous values. A numerical or percentage value is preferred,
|
|
8305
|
+
* but any number/currency format is supported.
|
|
8306
|
+
*/
|
|
8307
|
+
this.difference = '';
|
|
8308
|
+
/**
|
|
8309
|
+
* Text for the link at the bottom of the Data Card. If provided, enables the `linkClicked` event to be emitted.
|
|
8310
|
+
*/
|
|
8311
|
+
this.linkText = '';
|
|
8312
|
+
/**
|
|
8313
|
+
* When stacking multiple Data Card elements together, it's common to combine their borders.
|
|
8314
|
+
*/
|
|
8315
|
+
this.sharedBorders = true;
|
|
8316
|
+
/**
|
|
8317
|
+
* Makes the title stand out more than it does by default.
|
|
8318
|
+
*/
|
|
8319
|
+
// @Input()
|
|
8320
|
+
this.titleAttention = false;
|
|
8321
|
+
/**
|
|
8322
|
+
* Determines if the difference value will be wrapped in a `rounded-pill`.
|
|
8323
|
+
*/
|
|
8324
|
+
this.differencePill = false;
|
|
8325
|
+
/**
|
|
8326
|
+
* Changes the text color for the current value.
|
|
8327
|
+
*/
|
|
8328
|
+
this.currentColor = '';
|
|
8329
|
+
/**
|
|
8330
|
+
* Changes the color of the icon.
|
|
8331
|
+
*/
|
|
8332
|
+
this.iconColor = '';
|
|
8333
|
+
/**
|
|
8334
|
+
* Changes the color of the icon's background.
|
|
8335
|
+
*/
|
|
8336
|
+
this.iconBgColor = '';
|
|
8337
|
+
/**
|
|
8338
|
+
* Emitted when the link text is clicked.
|
|
8339
|
+
*/
|
|
8340
|
+
this.linkClicked = new EventEmitter();
|
|
8341
|
+
/**
|
|
8342
|
+
* Emitted when the corner content is clicked.
|
|
8343
|
+
*/
|
|
8344
|
+
this.cornerClicked = new EventEmitter();
|
|
8345
|
+
}
|
|
8346
|
+
get classDataCard() {
|
|
8347
|
+
return 'card impdc-data-card';
|
|
8348
|
+
}
|
|
8349
|
+
get classDataCardSharedBorders() {
|
|
8350
|
+
return this.sharedBorders;
|
|
8351
|
+
}
|
|
8352
|
+
get differenceNumber() {
|
|
8353
|
+
return Number(this.difference.replace(/[^0-9\.-]+/g, ''));
|
|
8354
|
+
}
|
|
8355
|
+
get differenceNegative() {
|
|
8356
|
+
return this.differenceNumber < 0;
|
|
8357
|
+
}
|
|
8358
|
+
get differencePositive() {
|
|
8359
|
+
return this.differenceNumber > 0;
|
|
8360
|
+
}
|
|
8361
|
+
get differenceDisplay() {
|
|
8362
|
+
return this.difference.replace('-', '');
|
|
8363
|
+
}
|
|
8364
|
+
handleLinkClick(event) {
|
|
8365
|
+
this.linkClicked.emit(event);
|
|
8366
|
+
}
|
|
8367
|
+
handleCornerClick(event) {
|
|
8368
|
+
this.cornerClicked.emit(event);
|
|
8369
|
+
}
|
|
8370
|
+
}
|
|
8371
|
+
DataCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8372
|
+
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 });
|
|
8373
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataCardComponent, decorators: [{
|
|
8374
|
+
type: Component,
|
|
8375
|
+
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"] }]
|
|
8376
|
+
}], propDecorators: { title: [{
|
|
8377
|
+
type: Input
|
|
8378
|
+
}], current: [{
|
|
8379
|
+
type: Input
|
|
8380
|
+
}], previous: [{
|
|
8381
|
+
type: Input
|
|
8382
|
+
}], difference: [{
|
|
8383
|
+
type: Input
|
|
8384
|
+
}], linkText: [{
|
|
8385
|
+
type: Input
|
|
8386
|
+
}], sharedBorders: [{
|
|
8387
|
+
type: Input
|
|
8388
|
+
}], differencePill: [{
|
|
8389
|
+
type: Input
|
|
8390
|
+
}], currentColor: [{
|
|
8391
|
+
type: Input
|
|
8392
|
+
}], iconColor: [{
|
|
8393
|
+
type: Input
|
|
8394
|
+
}], iconBgColor: [{
|
|
8395
|
+
type: Input
|
|
8396
|
+
}], linkClicked: [{
|
|
8397
|
+
type: Output
|
|
8398
|
+
}], cornerClicked: [{
|
|
8399
|
+
type: Output
|
|
8400
|
+
}], classDataCard: [{
|
|
8401
|
+
type: HostBinding,
|
|
8402
|
+
args: ['class']
|
|
8403
|
+
}], classDataCardSharedBorders: [{
|
|
8404
|
+
type: HostBinding,
|
|
8405
|
+
args: ['class.impdc-data-card-shared-borders']
|
|
8406
|
+
}] } });
|
|
8407
|
+
|
|
8408
|
+
class DataCardModule {
|
|
8409
|
+
constructor() { }
|
|
8410
|
+
}
|
|
8411
|
+
DataCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8412
|
+
DataCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DataCardModule, declarations: [DataCardComponent], imports: [CommonModule], exports: [DataCardComponent] });
|
|
8413
|
+
DataCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataCardModule, imports: [CommonModule] });
|
|
8414
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataCardModule, decorators: [{
|
|
8415
|
+
type: NgModule,
|
|
8416
|
+
args: [{
|
|
8417
|
+
imports: [CommonModule],
|
|
8418
|
+
declarations: [DataCardComponent],
|
|
8419
|
+
exports: [DataCardComponent]
|
|
8420
|
+
}]
|
|
8421
|
+
}], ctorParameters: function () { return []; } });
|
|
8422
|
+
|
|
8235
8423
|
class InteractionService {
|
|
8236
8424
|
constructor() {
|
|
8237
8425
|
this._interactables = [];
|
|
@@ -8244,8 +8432,18 @@ class InteractionService {
|
|
|
8244
8432
|
if (!this._backdrop) {
|
|
8245
8433
|
this._backdrop = modalBackdrop;
|
|
8246
8434
|
}
|
|
8247
|
-
else {
|
|
8248
|
-
|
|
8435
|
+
else if (this._backdrop !== modalBackdrop) {
|
|
8436
|
+
this._backdrop.invalidate();
|
|
8437
|
+
this._backdrop = modalBackdrop;
|
|
8438
|
+
if (!modalBackdrop.valid) {
|
|
8439
|
+
// we invalidated and set backdrop to the same backdrop
|
|
8440
|
+
modalBackdrop.validate();
|
|
8441
|
+
}
|
|
8442
|
+
}
|
|
8443
|
+
}
|
|
8444
|
+
unregisterBackdrop(modalBackdrop) {
|
|
8445
|
+
if (this._backdrop === modalBackdrop) {
|
|
8446
|
+
this._backdrop = undefined;
|
|
8249
8447
|
}
|
|
8250
8448
|
}
|
|
8251
8449
|
add(interactable) {
|
|
@@ -8291,5 +8489,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
8291
8489
|
* Generated bundle index. Do not edit.
|
|
8292
8490
|
*/
|
|
8293
8491
|
|
|
8294
|
-
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 };
|
|
8492
|
+
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 };
|
|
8295
8493
|
//# sourceMappingURL=impartner-design-components.mjs.map
|