@impartner/design-components 2.1.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/alert/alert.component.mjs +11 -4
- package/esm2022/lib/datetime-picker/components/datetime-picker/datetime-picker.component.mjs +10 -10
- package/esm2022/lib/datetime-picker/constants/datetime-picker-defaults.mjs +2 -2
- package/esm2022/lib/file-upload/file-upload.module.mjs +14 -6
- package/esm2022/lib/modal/modal.component.mjs +9 -3
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +19 -3
- package/esm2022/lib/table/components/bulk-actions/bulk-actions.component.mjs +6 -1
- package/esm2022/lib/table/constants/table.constants.mjs +1 -2
- package/esm2022/lib/table/containers/table.component.mjs +91 -20
- package/esm2022/lib/table/directives/collapse-monitor.directive.mjs +42 -0
- package/esm2022/lib/table/directives/index.mjs +2 -1
- package/esm2022/lib/table/directives/table-inject-component.directive.mjs +1 -1
- package/esm2022/lib/table/directives/table.directive.mjs +24 -4
- package/esm2022/lib/table/index.mjs +2 -2
- package/esm2022/lib/table/interfaces/cell-renderer.interface.mjs +1 -1
- package/esm2022/lib/table/interfaces/collapsible-row-content-context.interface.mjs +2 -0
- package/esm2022/lib/table/interfaces/index.mjs +3 -1
- package/esm2022/lib/table/interfaces/sort-by-payload.interface.mjs +1 -1
- package/esm2022/lib/table/interfaces/table-column-defs.type.mjs +1 -1
- package/esm2022/lib/table/interfaces/table-event-payload.interface.mjs +1 -1
- package/esm2022/lib/table/interfaces/table-row-action-payload.interface.mjs +1 -1
- package/esm2022/lib/table/interfaces/table-row-action.interface.mjs +1 -1
- package/esm2022/lib/table/interfaces/table-row-collapse-change.interface.mjs +2 -0
- package/esm2022/lib/table/interfaces/table-row-item.interface.mjs +1 -1
- package/esm2022/lib/table/table.module.mjs +12 -7
- package/fesm2022/impartner-design-components.mjs +215 -42
- package/fesm2022/impartner-design-components.mjs.map +1 -1
- package/lib/alert/alert.component.d.ts +5 -1
- package/lib/datetime-picker/components/datetime-picker/datetime-picker.component.d.ts +3 -3
- package/lib/datetime-picker/constants/datetime-picker-defaults.d.ts +1 -1
- package/lib/file-upload/file-upload.module.d.ts +1 -1
- package/lib/modal/modal.component.d.ts +5 -1
- package/lib/progress-bar/progress-bar.component.d.ts +10 -1
- package/lib/table/components/bulk-actions/bulk-actions.component.d.ts +5 -0
- package/lib/table/constants/table.constants.d.ts +0 -1
- package/lib/table/containers/table.component.d.ts +58 -13
- package/lib/table/directives/collapse-monitor.directive.d.ts +12 -0
- package/lib/table/directives/index.d.ts +1 -0
- package/lib/table/directives/table-inject-component.directive.d.ts +2 -2
- package/lib/table/directives/table.directive.d.ts +11 -3
- package/lib/table/index.d.ts +1 -1
- package/lib/table/interfaces/cell-renderer.interface.d.ts +10 -3
- package/lib/table/interfaces/collapsible-row-content-context.interface.d.ts +39 -0
- package/lib/table/interfaces/index.d.ts +2 -0
- package/lib/table/interfaces/sort-by-payload.interface.d.ts +6 -0
- package/lib/table/interfaces/table-column-defs.type.d.ts +30 -6
- package/lib/table/interfaces/table-event-payload.interface.d.ts +8 -1
- package/lib/table/interfaces/table-row-action-payload.interface.d.ts +8 -1
- package/lib/table/interfaces/table-row-action.interface.d.ts +10 -2
- package/lib/table/interfaces/table-row-collapse-change.interface.d.ts +11 -0
- package/lib/table/interfaces/table-row-item.interface.d.ts +3 -4
- package/lib/table/table.module.d.ts +18 -17
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Component, Input, NgModule, ViewEncapsulation, ViewChild, HostBinding, Directive, InjectionToken, Host, Optional, SkipSelf, Inject, ChangeDetectionStrategy, ContentChild, ContentChildren, inject, EventEmitter, Output, Self, booleanAttribute, numberAttribute, Attribute, ChangeDetectorRef, NgZone, ElementRef, ViewChildren, TemplateRef, HostListener, Pipe, DestroyRef } from '@angular/core';
|
|
2
|
+
import { Injectable, Component, Input, NgModule, ViewEncapsulation, ViewChild, HostBinding, Directive, InjectionToken, Host, Optional, SkipSelf, Inject, ChangeDetectionStrategy, ContentChild, ContentChildren, inject, EventEmitter, Output, Self, booleanAttribute, numberAttribute, Attribute, ChangeDetectorRef, NgZone, ElementRef, ViewChildren, signal, TemplateRef, HostListener, Pipe, DestroyRef } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject, map, distinctUntilChanged, shareReplay, Subject, takeUntil, merge, tap, startWith, combineLatest, switchMap, take, defer, debounceTime, filter, fromEvent } from 'rxjs';
|
|
4
4
|
import * as i1 from '@angular/common';
|
|
5
5
|
import { CommonModule, NgClass, AsyncPipe, DatePipe, PercentPipe, DecimalPipe, TranslationWidth } from '@angular/common';
|
|
@@ -11,7 +11,7 @@ import { debounceTime as debounceTime$1 } from 'rxjs/operators';
|
|
|
11
11
|
import sanitizeHtml from 'sanitize-html';
|
|
12
12
|
import { nanoid } from 'nanoid';
|
|
13
13
|
import * as i3 from '@ng-bootstrap/ng-bootstrap';
|
|
14
|
-
import { NgbDropdownItem, NgbDropdown, NgbDropdownModule, NgbDatepickerI18n, NgbDate, NgbCalendar, NgbDatepickerMonth, NgbDateAdapter, NgbDatepicker, NgbDatepickerModule, NgbTimepickerModule, NgbTimeAdapter, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap';
|
|
14
|
+
import { NgbDropdownItem, NgbDropdown, NgbDropdownModule, NgbCollapse, NgbCollapseModule, NgbDatepickerI18n, NgbDate, NgbCalendar, NgbDatepickerMonth, NgbDateAdapter, NgbDatepicker, NgbDatepickerModule, NgbTimepickerModule, NgbTimeAdapter, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap';
|
|
15
15
|
|
|
16
16
|
const FontAwesomeIconThemes = ['solid', 'regular', 'light'];
|
|
17
17
|
const FontAwesomeIcons = [
|
|
@@ -3530,7 +3530,6 @@ const ROWS_PER_PAGE_GROUP = [
|
|
|
3530
3530
|
label: '100'
|
|
3531
3531
|
}
|
|
3532
3532
|
];
|
|
3533
|
-
const SORT_COLUMN_INDEX = 0;
|
|
3534
3533
|
const DEBOUNCE_TIME = 500;
|
|
3535
3534
|
|
|
3536
3535
|
const IS_SELECTED_PROPERTY = 'isSelected';
|
|
@@ -7269,6 +7268,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7269
7268
|
type: Output
|
|
7270
7269
|
}] } });
|
|
7271
7270
|
|
|
7271
|
+
/**
|
|
7272
|
+
* A container component for projecting displays and controls for performing bulk actions upon one
|
|
7273
|
+
* or more selected table rows. Elements to be projected should be decorated with `[selectedTotal]`
|
|
7274
|
+
* and `[bulkAction]` attributes.
|
|
7275
|
+
*/
|
|
7272
7276
|
class TableBulkActionsComponent {
|
|
7273
7277
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TableBulkActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7274
7278
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: TableBulkActionsComponent, selector: "impdc-table-bulk-actions", ngImport: i0, template: "<div class=\"table-bulk-actions\">\n <div class=\"selected-total\">\n <ng-content select=\"[selectedTotal]\"></ng-content>\n </div>\n <div class=\"bulk-actions\">\n <ng-content select=\"[bulkAction]\"></ng-content>\n </div>\n</div>\n", styles: [".table-bulk-actions{display:flex;flex-direction:row;align-items:center;font-weight:400}.table-bulk-actions .selected-total{border-right:1px solid var(--impd-color-gray-200, \"#e5e7eb\");padding-right:1.6rem}.table-bulk-actions .bulk-actions{padding-left:1.6rem;display:flex;flex-direction:row;gap:1.6rem}\n"] }); }
|
|
@@ -7350,9 +7354,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7350
7354
|
type: Input
|
|
7351
7355
|
}] } });
|
|
7352
7356
|
|
|
7357
|
+
class CollapseMonitorDirective {
|
|
7358
|
+
constructor() {
|
|
7359
|
+
this._ngbCollapse = inject(NgbCollapse);
|
|
7360
|
+
this.collapsed = signal(true);
|
|
7361
|
+
this.ngbCollapsing = signal(true);
|
|
7362
|
+
this.collapseChange = new EventEmitter();
|
|
7363
|
+
// eagerly assert true as soon as *something* is expected to be shown, then assert false when we know we've fully collapsed
|
|
7364
|
+
this._ngbCollapse.ngbCollapseChange.subscribe(value => {
|
|
7365
|
+
this.ngbCollapsing.set(value);
|
|
7366
|
+
if (!value) {
|
|
7367
|
+
this.collapsed.set(value);
|
|
7368
|
+
this.collapseChange.emit(value);
|
|
7369
|
+
}
|
|
7370
|
+
});
|
|
7371
|
+
this._ngbCollapse.hidden.subscribe(() => {
|
|
7372
|
+
this.collapsed.set(true);
|
|
7373
|
+
this.collapseChange.emit(true);
|
|
7374
|
+
});
|
|
7375
|
+
}
|
|
7376
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: CollapseMonitorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
7377
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.1", type: CollapseMonitorDirective, selector: "[impdcCollapseMonitor]", outputs: { collapseChange: "collapseChange" }, exportAs: ["impdcCollapseMonitor"], hostDirectives: [{ directive: i3.NgbCollapse, inputs: ["ngbCollapse", "impdcCollapseMonitor"] }], ngImport: i0 }); }
|
|
7378
|
+
}
|
|
7379
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: CollapseMonitorDirective, decorators: [{
|
|
7380
|
+
type: Directive,
|
|
7381
|
+
args: [{
|
|
7382
|
+
exportAs: 'impdcCollapseMonitor',
|
|
7383
|
+
selector: '[impdcCollapseMonitor]',
|
|
7384
|
+
hostDirectives: [
|
|
7385
|
+
{
|
|
7386
|
+
directive: NgbCollapse,
|
|
7387
|
+
inputs: ['ngbCollapse: impdcCollapseMonitor']
|
|
7388
|
+
}
|
|
7389
|
+
]
|
|
7390
|
+
}]
|
|
7391
|
+
}], ctorParameters: () => [], propDecorators: { collapseChange: [{
|
|
7392
|
+
type: Output
|
|
7393
|
+
}] } });
|
|
7394
|
+
|
|
7353
7395
|
/**
|
|
7354
|
-
*
|
|
7355
|
-
* To use, import `TableModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
7396
|
+
* `TableDirective` (`table[impdcTable]`) is a directive that adds Hex styling to a `table` element.
|
|
7356
7397
|
*/
|
|
7357
7398
|
class TableDirective {
|
|
7358
7399
|
constructor() {
|
|
@@ -7360,13 +7401,24 @@ class TableDirective {
|
|
|
7360
7401
|
* Stripes every other row in a slightly darker background color.
|
|
7361
7402
|
*/
|
|
7362
7403
|
this.striped = false;
|
|
7404
|
+
/**
|
|
7405
|
+
* Whether table rows should apply hover styles when hovered over via cursor.
|
|
7406
|
+
*/
|
|
7407
|
+
this.hover = false;
|
|
7408
|
+
/**
|
|
7409
|
+
* The layout algorithm to be used when rendering the table.
|
|
7410
|
+
*/
|
|
7411
|
+
this.layout = 'auto';
|
|
7363
7412
|
this.classTable = true;
|
|
7364
7413
|
}
|
|
7365
7414
|
get classTableStriped() {
|
|
7366
7415
|
return this.striped;
|
|
7367
7416
|
}
|
|
7417
|
+
get classTableHover() {
|
|
7418
|
+
return this.hover;
|
|
7419
|
+
}
|
|
7368
7420
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
7369
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.1", type: TableDirective, selector: "table[impdcTable]", inputs: { striped: "striped" }, host: { properties: { "class.table": "this.classTable", "class.table-striped": "this.classTableStriped" } }, ngImport: i0 }); }
|
|
7421
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.1", type: TableDirective, selector: "table[impdcTable]", inputs: { striped: "striped", hover: "hover", layout: "layout" }, host: { properties: { "style.table-layout": "this.layout", "class.table": "this.classTable", "class.table-striped": "this.classTableStriped", "class.table-hover": "this.classTableHover" } }, ngImport: i0 }); }
|
|
7370
7422
|
}
|
|
7371
7423
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TableDirective, decorators: [{
|
|
7372
7424
|
type: Directive,
|
|
@@ -7375,12 +7427,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7375
7427
|
}]
|
|
7376
7428
|
}], propDecorators: { striped: [{
|
|
7377
7429
|
type: Input
|
|
7430
|
+
}], hover: [{
|
|
7431
|
+
type: Input
|
|
7432
|
+
}], layout: [{
|
|
7433
|
+
type: HostBinding,
|
|
7434
|
+
args: ['style.table-layout']
|
|
7435
|
+
}, {
|
|
7436
|
+
type: Input
|
|
7378
7437
|
}], classTable: [{
|
|
7379
7438
|
type: HostBinding,
|
|
7380
7439
|
args: ['class.table']
|
|
7381
7440
|
}], classTableStriped: [{
|
|
7382
7441
|
type: HostBinding,
|
|
7383
7442
|
args: ['class.table-striped']
|
|
7443
|
+
}], classTableHover: [{
|
|
7444
|
+
type: HostBinding,
|
|
7445
|
+
args: ['class.table-hover']
|
|
7384
7446
|
}] } });
|
|
7385
7447
|
|
|
7386
7448
|
class TableInjectComponentDirective {
|
|
@@ -7469,9 +7531,14 @@ class TableComponent {
|
|
|
7469
7531
|
}
|
|
7470
7532
|
/** @ignore */
|
|
7471
7533
|
get tableSpan() {
|
|
7472
|
-
|
|
7473
|
-
|
|
7474
|
-
|
|
7534
|
+
let cols = this.columnDefs.length;
|
|
7535
|
+
if (this.canSelectRows) {
|
|
7536
|
+
cols++;
|
|
7537
|
+
}
|
|
7538
|
+
if (this.collapsibleTemplate) {
|
|
7539
|
+
cols++;
|
|
7540
|
+
}
|
|
7541
|
+
return cols;
|
|
7475
7542
|
}
|
|
7476
7543
|
constructor(_datePipe, _percentPipe, _decmialPipe, _changeDetectorRef, _branded) {
|
|
7477
7544
|
this._datePipe = _datePipe;
|
|
@@ -7495,6 +7562,14 @@ class TableComponent {
|
|
|
7495
7562
|
* Whether the table is striped.
|
|
7496
7563
|
*/
|
|
7497
7564
|
this.striped = true;
|
|
7565
|
+
/**
|
|
7566
|
+
* Whether table rows should apply hover styles when hovered over via cursor.
|
|
7567
|
+
*/
|
|
7568
|
+
this.hover = true;
|
|
7569
|
+
/**
|
|
7570
|
+
* The layout algorithm to be used when rendering the table.
|
|
7571
|
+
*/
|
|
7572
|
+
this.layout = 'auto';
|
|
7498
7573
|
/**
|
|
7499
7574
|
* The placeholder text and empty value display text for `<impdc-select>` instances in cells with a `ITableColumnDef` `columnType` = `SingleSelect` or `MultiSelect`.
|
|
7500
7575
|
*/
|
|
@@ -7502,7 +7577,7 @@ class TableComponent {
|
|
|
7502
7577
|
/**
|
|
7503
7578
|
* The `columnDefs` index of the currently sorted column.
|
|
7504
7579
|
*/
|
|
7505
|
-
this.sortColumnIndex =
|
|
7580
|
+
this.sortColumnIndex = 0;
|
|
7506
7581
|
/**
|
|
7507
7582
|
* The direction of the currently sorted column.
|
|
7508
7583
|
*/
|
|
@@ -7511,6 +7586,18 @@ class TableComponent {
|
|
|
7511
7586
|
* The table row data as an array of `ITableRowItem`.
|
|
7512
7587
|
*/
|
|
7513
7588
|
this.tableData = [];
|
|
7589
|
+
/**
|
|
7590
|
+
* An optional template for content that may be rendered below a row in an collapsible view. Value can either be an Angular template or a function that can evaluated
|
|
7591
|
+
* to resolve to a template. The template will be rendered with a provided `ICollapsibleRowContentContext` object as template context, with the current `ITableRowData`
|
|
7592
|
+
* implicitly available as a default template key.
|
|
7593
|
+
*/
|
|
7594
|
+
this.collapsibleTemplate = null;
|
|
7595
|
+
/**
|
|
7596
|
+
* The clickable control that will trigger expansion and collapse of content when using `collapsibleTemplate` functionality.
|
|
7597
|
+
* When set to `button`, the collapsible content's state can only be toggled from a clickable button at the start of the row.
|
|
7598
|
+
* When set to `row`, the entire row will become a clickable trigger.
|
|
7599
|
+
*/
|
|
7600
|
+
this.collapsibleTrigger = 'button';
|
|
7514
7601
|
/**
|
|
7515
7602
|
* Event emitted when one or multiple rows are selected. Emits `(string | number)[]` payload.
|
|
7516
7603
|
*/
|
|
@@ -7527,15 +7614,19 @@ class TableComponent {
|
|
|
7527
7614
|
* Event emitted when a row action is clicked. Emits an `ITableRowActionPayload` payload.
|
|
7528
7615
|
*/
|
|
7529
7616
|
this.rowActionClick = new EventEmitter();
|
|
7530
|
-
/** @ignore */
|
|
7531
|
-
this.paginationComponent = undefined;
|
|
7532
|
-
/** @ignore */
|
|
7533
|
-
this.bulkActions = undefined;
|
|
7534
7617
|
/**
|
|
7535
|
-
* Event emitted when a row input value is changed. Emitted cells of `columnType` `
|
|
7618
|
+
* Event emitted when a row input value is changed. Emitted cells of `columnType` `SingleSelect`, `MultiSelect`, `Input`, `Boolean` or `Icon`.
|
|
7536
7619
|
* Not emitted if column definition property `disabled` = `true`. Emits `ITableEventPayload` payload.
|
|
7537
7620
|
*/
|
|
7538
7621
|
this.inputChange = new EventEmitter();
|
|
7622
|
+
/**
|
|
7623
|
+
* Event emitted when a row with collapsible content has its collapse state changed.
|
|
7624
|
+
*/
|
|
7625
|
+
this.rowCollapseChange = new EventEmitter();
|
|
7626
|
+
/** @ignore */
|
|
7627
|
+
this.paginationComponent = undefined;
|
|
7628
|
+
/** @ignore */
|
|
7629
|
+
this.bulkActions = undefined;
|
|
7539
7630
|
/** @ignore */
|
|
7540
7631
|
this.cellType = TableColumnType;
|
|
7541
7632
|
/** @ignore */
|
|
@@ -7564,6 +7655,7 @@ class TableComponent {
|
|
|
7564
7655
|
}
|
|
7565
7656
|
}
|
|
7566
7657
|
}
|
|
7658
|
+
/** @ignore */
|
|
7567
7659
|
getMailToValue(columnIndex, currentRow) {
|
|
7568
7660
|
const { columnType, truncated: truncated } = this._getColumnDefByIndex(columnIndex);
|
|
7569
7661
|
let value = this._getValue(columnIndex, currentRow);
|
|
@@ -7573,6 +7665,7 @@ class TableComponent {
|
|
|
7573
7665
|
value = value ? `mailto:${value}` : value;
|
|
7574
7666
|
return String(value);
|
|
7575
7667
|
}
|
|
7668
|
+
/** @ignore */
|
|
7576
7669
|
getStringValue(columnIndex, currentRow) {
|
|
7577
7670
|
const value = this.getValue(columnIndex, currentRow);
|
|
7578
7671
|
if (Array.isArray(value)) {
|
|
@@ -7580,6 +7673,7 @@ class TableComponent {
|
|
|
7580
7673
|
}
|
|
7581
7674
|
return String(value);
|
|
7582
7675
|
}
|
|
7676
|
+
/** @ignore */
|
|
7583
7677
|
getValue(columnIndex, currentRow) {
|
|
7584
7678
|
const { columnType, truncated: truncated } = this._getColumnDefByIndex(columnIndex);
|
|
7585
7679
|
let value = this._getValue(columnIndex, currentRow);
|
|
@@ -7641,6 +7735,7 @@ class TableComponent {
|
|
|
7641
7735
|
}
|
|
7642
7736
|
return String(value);
|
|
7643
7737
|
}
|
|
7738
|
+
/** @ignore */
|
|
7644
7739
|
getRawValue(columnIndex, currentRow) {
|
|
7645
7740
|
const { field } = this._getColumnDefByIndex(columnIndex);
|
|
7646
7741
|
if (!field) {
|
|
@@ -7648,19 +7743,24 @@ class TableComponent {
|
|
|
7648
7743
|
}
|
|
7649
7744
|
return currentRow[field] || '';
|
|
7650
7745
|
}
|
|
7746
|
+
/** @ignore */
|
|
7651
7747
|
getCellColor(columnDefinition, item) {
|
|
7652
7748
|
return TableThemeHelper.getCellColor(columnDefinition, item);
|
|
7653
7749
|
}
|
|
7750
|
+
/** @ignore */
|
|
7654
7751
|
getTheme(columnDefinition, item) {
|
|
7655
7752
|
return (TableThemeHelper.getTheme(columnDefinition, item) ||
|
|
7656
7753
|
ComponentTheme.Primary);
|
|
7657
7754
|
}
|
|
7755
|
+
/** @ignore */
|
|
7658
7756
|
isSortedColumn(columnIndex) {
|
|
7659
7757
|
return columnIndex === this.sortColumnIndex;
|
|
7660
7758
|
}
|
|
7759
|
+
/** @ignore */
|
|
7661
7760
|
isRowSelected(id) {
|
|
7662
7761
|
return this.selectedRowIds.includes(id);
|
|
7663
7762
|
}
|
|
7763
|
+
/** @ignore */
|
|
7664
7764
|
handleSelectAll(event) {
|
|
7665
7765
|
if (!this.canSelectAllRows || !this.tableData) {
|
|
7666
7766
|
return;
|
|
@@ -7675,6 +7775,7 @@ class TableComponent {
|
|
|
7675
7775
|
this.allSelected = this.selectedRowIds.length >= this.tableData.length;
|
|
7676
7776
|
this.rowSelect.emit(this.selectedRowIds);
|
|
7677
7777
|
}
|
|
7778
|
+
/** @ignore */
|
|
7678
7779
|
handleSort(columnIndex) {
|
|
7679
7780
|
if (columnIndex === this.sortColumnIndex) {
|
|
7680
7781
|
this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';
|
|
@@ -7690,6 +7791,7 @@ class TableComponent {
|
|
|
7690
7791
|
direction: this.sortDirection
|
|
7691
7792
|
});
|
|
7692
7793
|
}
|
|
7794
|
+
/** @ignore */
|
|
7693
7795
|
handleRowSelect(event, rowId) {
|
|
7694
7796
|
if (!this.canSelectRows) {
|
|
7695
7797
|
return;
|
|
@@ -7709,6 +7811,7 @@ class TableComponent {
|
|
|
7709
7811
|
this.allSelected = this.selectedRowIds.length >= this.tableData.length;
|
|
7710
7812
|
this.rowSelect.emit(this.selectedRowIds);
|
|
7711
7813
|
}
|
|
7814
|
+
/** @ignore */
|
|
7712
7815
|
handleCellValueChange(columnIndex, rowIndex, value) {
|
|
7713
7816
|
const { field, columnType } = this._getColumnDefByIndex(columnIndex);
|
|
7714
7817
|
let currentValue = value;
|
|
@@ -7724,12 +7827,16 @@ class TableComponent {
|
|
|
7724
7827
|
});
|
|
7725
7828
|
this._changeDetectorRef.detectChanges();
|
|
7726
7829
|
}
|
|
7727
|
-
|
|
7830
|
+
/** @ignore */
|
|
7831
|
+
handleLinkClick(columnIndex, item, event) {
|
|
7832
|
+
event.preventDefault();
|
|
7833
|
+
event.stopPropagation();
|
|
7728
7834
|
this.linkClick.emit({
|
|
7729
7835
|
item,
|
|
7730
7836
|
columnIndex
|
|
7731
7837
|
});
|
|
7732
7838
|
}
|
|
7839
|
+
/** @ignore */
|
|
7733
7840
|
handleActionClick(columnIndex, item, actionApiName) {
|
|
7734
7841
|
this.rowActionClick.emit({
|
|
7735
7842
|
item,
|
|
@@ -7740,6 +7847,21 @@ class TableComponent {
|
|
|
7740
7847
|
columnDefIsActions(columnDef) {
|
|
7741
7848
|
return columnDef.columnType === TableColumnType.Actions;
|
|
7742
7849
|
}
|
|
7850
|
+
tryToggleCollapse(collapsibleForRowResult, ngbCollapse, event, source) {
|
|
7851
|
+
if (collapsibleForRowResult.template &&
|
|
7852
|
+
(this.collapsibleTrigger === 'row' || this.collapsibleTrigger === source)) {
|
|
7853
|
+
ngbCollapse.toggle();
|
|
7854
|
+
event.stopPropagation();
|
|
7855
|
+
}
|
|
7856
|
+
}
|
|
7857
|
+
getCollapsibleTemplateForRow(row) {
|
|
7858
|
+
return {
|
|
7859
|
+
template: this.collapsibleTemplate &&
|
|
7860
|
+
typeof this.collapsibleTemplate === 'function'
|
|
7861
|
+
? this.collapsibleTemplate(row)
|
|
7862
|
+
: this.collapsibleTemplate
|
|
7863
|
+
};
|
|
7864
|
+
}
|
|
7743
7865
|
_getColumnDefByIndex(columnIndex) {
|
|
7744
7866
|
return this.columnDefs[columnIndex];
|
|
7745
7867
|
}
|
|
@@ -7756,11 +7878,11 @@ class TableComponent {
|
|
|
7756
7878
|
}
|
|
7757
7879
|
}
|
|
7758
7880
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TableComponent, deps: [{ token: i1.DatePipe }, { token: i1.PercentPipe }, { token: i1.DecimalPipe }, { token: i0.ChangeDetectorRef }, { token: BrandedDirective, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7759
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.1", type: TableComponent, selector: "impdc-table", inputs: { loading: "loading", columnDefs: "columnDefs", striped: "striped", canSelectRows: "canSelectRows", canSelectAllRows: "canSelectAllRows", selectPlaceholder: "selectPlaceholder", sortColumnIndex: "sortColumnIndex", sortDirection: "sortDirection", tableData: "tableData", selectedRowIds: "selectedRowIds", customCellComponents: "customCellComponents" }, outputs: { rowSelect: "rowSelect", sortBy: "sortBy", linkClick: "linkClick", rowActionClick: "rowActionClick", inputChange: "inputChange" }, queries: [{ propertyName: "paginationComponent", first: true, predicate: PaginationComponent, descendants: true }, { propertyName: "bulkActions", first: true, predicate: TableBulkActionsComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (tableData) {\n<table impdcTable [striped]=\"striped\">\n <thead>\n @if (!!bulkActions) {\n <tr>\n <th [attr.colspan]=\"tableSpan\" scope=\"col\" class=\"bulk-action-column\">\n <ng-content select=\"impdc-table-bulk-actions\"></ng-content>\n <ng-content select=\"[impdcTableBulkActions]\"></ng-content>\n </th>\n </tr>\n }\n <tr>\n @if (canSelectRows) {\n <th\n scope=\"col\"\n [ngClass]=\"{\n 'heading-below-bulk-actions': !!bulkActions\n }\">\n @if (canSelectAllRows) {\n <div>\n <impdc-checkbox\n ngModel\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n (change)=\"handleSelectAll($event)\"></impdc-checkbox>\n </div>\n }\n </th>\n } @for (columnDef of columnDefs; track columnDef; let columnIndex =\n $index) {\n <th\n scope=\"col\"\n [ngClass]=\"{\n 'sorted-column': isSortedColumn(columnIndex),\n 'sortable-column': columnDef.sorted,\n 'heading-below-bulk-actions': !!bulkActions\n }\"\n (click)=\"handleSort(columnIndex)\">\n <impdc-column-heading\n [isSortable]=\"columnDef.sorted || false\"\n [columnIndex]=\"columnIndex\"\n [sortColumnIndex]=\"sortColumnIndex\"\n [direction]=\"sortDirection\"\n [text]=\"columnDef.title\"\n (sort)=\"handleSort($event)\">\n </impdc-column-heading>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (loading) {\n <tr>\n <td [attr.colspan]=\"tableSpan\" class=\"data-loading\">\n <impdc-spinner></impdc-spinner>\n </td>\n </tr>\n } @else { @for (row of tableData; track row; let rowIndex = $index) {\n <tr>\n @if (canSelectRows) {\n <td>\n <div class=\"select-column\">\n <impdc-checkbox\n [ngModel]=\"isRowSelected(row.id)\"\n (change)=\"handleRowSelect($event, row.id)\"></impdc-checkbox>\n </div>\n </td>\n }\n <td\n *ngFor=\"let columnDef of columnDefs; index as colIndex; last as isLast\"\n [ngClass]=\"{\n 'col-no-padding': !!columnDef.noPadding,\n 'actions-column': columnDef.columnType === cellType.Actions\n }\">\n <div>\n @switch (columnDef.columnType) { @case (cellType.Badge) {\n <span>\n <impdc-badge\n [text]=\"getStringValue(colIndex, row)\"\n [theme]=\"getTheme(columnDef, row)\">\n </impdc-badge>\n </span>\n } @case (cellType.Link) {\n <span (click)=\"handleLinkClick(colIndex, row)\">\n @if (!branded) {\n <a>\n {{ getValue(colIndex, row) }}\n </a>\n } @else {\n <a impdcBranded>\n {{ getValue(colIndex, row) }}\n </a>\n }\n </span>\n } @case (cellType.Url) {\n <span>\n @if (!branded) {\n <a target=\"_blank\" [attr.href]=\"getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n } @else {\n <a\n impdcBranded\n target=\"_blank\"\n [attr.href]=\"getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n }\n </span>\n } @case (cellType.Email) {\n <span>\n @if (!branded) {\n <a\n target=\"_blank\"\n [attr.href]=\"'mailto:' + getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n } @else {\n <a impdcBranded [attr.href]=\"getMailToValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n }\n </span>\n } @case (cellType.Input) {\n <span>\n <input\n impdcInput\n type=\"text\"\n class=\"{{ getCellColor(columnDef, row) }}\"\n [ngModel]=\"getValue(colIndex, row)\"\n (ngModelChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event)\n \" />\n </span>\n } @case (cellType.Boolean) {\n <span>\n @if (columnDef.disabled && getValue(colIndex, row) === 'true') {\n <span\n impdc-icon\n name=\"check\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n } @else if (!columnDef.disabled) {\n <impdc-checkbox\n [checked]=\"getValue(colIndex, row) === 'true'\"\n [isSwitch]=\"true\"\n (change)=\"\n handleCellValueChange(colIndex, rowIndex, $event.checked)\n \"></impdc-checkbox>\n }\n </span>\n } @case (cellType.SingleSelect) {\n <span>\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n allowClear=\"true\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \">\n @for (value of (columnDef.values || []); track value) {\n <impdc-select-option\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n }\n </impdc-select>\n </span>\n } @case (cellType.MultiSelect) {\n <span>\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n multiple=\"true\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \">\n @for (value of (columnDef.values || []); track value) {\n <impdc-select-option\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n }\n </impdc-select>\n </span>\n } @case (cellType.CellRender) {\n <span class=\"{{ getCellColor(columnDef, row) }}\">\n <ng-template\n impdcTableInjectComponent\n [columnDef]=\"columnDef\"\n [rowItem]=\"row\"\n [customCellComponents]=\"customCellComponents || {}\"\n [value]=\"getRawValue(colIndex, row)\"></ng-template>\n </span>\n } @case (cellType.Icon) {\n <span>\n <span\n impdc-icon\n [name]=\"columnDef.iconName\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n </span>\n } @case (cellType.Actions) {\n <span>\n <!-- will always return 'true', but needed to satisfy the type engine -->\n @if (columnDefIsActions(columnDef)) {\n <impdc-row-actions\n [columnDef]=\"columnDef\"\n [rowItem]=\"row\"\n [lastColumn]=\"isLast\"\n (actionClick)=\"\n handleActionClick(colIndex, row, $event)\n \"></impdc-row-actions>\n }\n </span>\n } @default {\n <span class=\"{{ getCellColor(columnDef, row) }}\">\n {{ getValue(colIndex, row) }}\n </span>\n } }\n </div>\n </td>\n </tr>\n } @empty {\n <tr>\n <td [attr.colspan]=\"tableSpan\" class=\"no-data\">\n <ng-content select=\"[noData]\"></ng-content>\n </td>\n </tr>\n } }\n </tbody>\n <tfoot>\n @if (paginationComponent) {\n <tr>\n <td [attr.colspan]=\"tableSpan\">\n <ng-content\n select=\"impdc-pagination, div[impdc-pagination]\"></ng-content>\n </td>\n </tr>\n }\n </tfoot>\n</table>\n}\n", styles: [".bulk-action-container{display:flex;flex-direction:row;border:1px solid var(--impd-color-gray-200);border-top-left-radius:.6rem;border-top-right-radius:.6rem;border-bottom:0px}.bulk-action-container .bulk-action-checkbox{padding:1.6rem 2rem}.bulk-action-container .bulk-actions{display:flex;flex-direction:row;gap:.4rem}.col-no-padding{padding:0!important}.data-loading{height:var(--impd-size-80);vertical-align:middle;text-align:center}.no-data{vertical-align:middle;text-align:center}.select-row{display:flex;height:var(--impd-size-4);align-items:center;justify-items:end;border-radius:var(--impd-border-radius-default)}.heading-with-checkbox{padding-left:5px;padding-right:10px}.actions-column{width:.1%;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: BrandedDirective, selector: "[impdcBranded]" }, { kind: "component", type: IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }, { kind: "component", type: CheckboxComponent, selector: "impdc-checkbox", inputs: ["tabIndex", "id", "label", "description", "isSwitch", "switchIcons", "inline", "layout", "checked", "indeterminate", "disabled", "errorStateMatcher", "required"], outputs: ["change", "indeterminateChange"], exportAs: ["impdcCheckControl"] }, { kind: "component", type: SelectOptionComponent, selector: "impdc-select-option", inputs: ["value", "label", "disabled"] }, { kind: "component", type: SelectComponent, selector: "impdc-select", inputs: ["disabled", "tabIndex", "search", "placeholder", "required", "compareWith", "dropdownContainer", "errorStateMatcher", "allowClear", "multiple", "multipleDisplay"], outputs: ["selectionChange", "valueChange", "searchTextChanges"], exportAs: ["impdcSelect"] }, { kind: "directive", type: InputDirective, selector: "input[impdcInput], textarea[impdcInput], select[impdcNativeSelect]", inputs: ["disabled", "id", "type", "required", "readonly", "errorStateMatcher", "value"], exportAs: ["impdcInput"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SpinnerComponent, selector: "impdc-spinner, div[impdc-spinner]", inputs: ["accessibilityText"] }, { kind: "component", type: BadgeComponent, selector: "impdc-badge, [impdc-badge]", inputs: ["text", "icon", "theme", "size", "hideBg", "rounded", "dismissable"], outputs: ["dismiss"] }, { kind: "directive", type: TableDirective, selector: "table[impdcTable]", inputs: ["striped"] }, { kind: "component", type: ColumnHeadingComponent, selector: "impdc-column-heading", inputs: ["isSortable", "columnIndex", "sortColumnIndex", "direction", "text"], outputs: ["sort"] }, { kind: "directive", type: TableInjectComponentDirective, selector: "[impdcTableInjectComponent]", inputs: ["columnDef", "value", "rowItem", "customCellComponents"] }, { kind: "component", type: RowActionsComponent, selector: "impdc-row-actions", inputs: ["columnDef", "rowItem", "lastColumn"], outputs: ["actionClick"] }] }); }
|
|
7881
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.1", type: TableComponent, selector: "impdc-table", inputs: { loading: "loading", columnDefs: "columnDefs", striped: "striped", hover: "hover", layout: "layout", canSelectRows: "canSelectRows", canSelectAllRows: "canSelectAllRows", selectPlaceholder: "selectPlaceholder", sortColumnIndex: "sortColumnIndex", sortDirection: "sortDirection", tableData: "tableData", selectedRowIds: "selectedRowIds", customCellComponents: "customCellComponents", collapsibleTemplate: "collapsibleTemplate", collapsibleTrigger: "collapsibleTrigger" }, outputs: { rowSelect: "rowSelect", sortBy: "sortBy", linkClick: "linkClick", rowActionClick: "rowActionClick", inputChange: "inputChange", rowCollapseChange: "rowCollapseChange" }, queries: [{ propertyName: "paginationComponent", first: true, predicate: PaginationComponent, descendants: true }, { propertyName: "bulkActions", first: true, predicate: TableBulkActionsComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (tableData) {\n<table\n impdcTable\n [striped]=\"striped && !collapsibleTemplate\"\n [layout]=\"layout\"\n [hover]=\"hover\">\n <thead>\n @if (!!bulkActions) {\n <tr>\n <th [attr.colspan]=\"tableSpan\" scope=\"col\" class=\"bulk-action-column\">\n <ng-content select=\"impdc-table-bulk-actions\"></ng-content>\n <ng-content select=\"[impdcTableBulkActions]\"></ng-content>\n </th>\n </tr>\n }\n <tr>\n @if (collapsibleTemplate) {\n <th\n scope=\"col\"\n [class.heading-below-bulk-actions]=\"!!bulkActions\"\n class=\"impdc-table-collapsible-content-row-button-container\"></th>\n } @if (canSelectRows) {\n <th\n scope=\"col\"\n class=\"impdc-table-selectable-row-toggle-container\"\n [ngClass]=\"{\n 'heading-below-bulk-actions': !!bulkActions\n }\">\n @if (canSelectAllRows) {\n <div>\n <impdc-checkbox\n ngModel\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n (change)=\"handleSelectAll($event)\"></impdc-checkbox>\n </div>\n }\n </th>\n } @for (columnDef of columnDefs; track columnDef; let columnIndex =\n $index) {\n <th\n scope=\"col\"\n [ngClass]=\"{\n 'sorted-column': isSortedColumn(columnIndex),\n 'sortable-column': columnDef.sorted,\n 'heading-below-bulk-actions': !!bulkActions\n }\"\n (click)=\"handleSort(columnIndex)\">\n <impdc-column-heading\n [isSortable]=\"columnDef.sorted || false\"\n [columnIndex]=\"columnIndex\"\n [sortColumnIndex]=\"sortColumnIndex\"\n [direction]=\"sortDirection\"\n [text]=\"columnDef.title\"\n (sort)=\"handleSort($event)\">\n </impdc-column-heading>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (loading) {\n <tr>\n <td [attr.colspan]=\"tableSpan\" class=\"data-loading\">\n <impdc-spinner></impdc-spinner>\n </td>\n </tr>\n } @else { @for (row of tableData; track row.id; let rowIndex = $index; let\n rowFirst = $first; let rowLast = $last; let rowEven = $even; let rowOdd =\n $odd) { @if (getCollapsibleTemplateForRow(row); as\n collapsibleTemplateForRow) {\n <tr\n [class.impdc-table-collapsible-row-trigger]=\"collapsibleTrigger === 'row'\"\n [class.table-active]=\"isRowSelected(row.id)\"\n (click)=\"\n tryToggleCollapse(collapsibleTemplateForRow, ngbCollapse, $event, 'row')\n \">\n @if (collapsibleTemplate) {\n <td\n class=\"impdc-table-collapsible-content-row-button-container\"\n [class.opened]=\"!collapseMonitor.ngbCollapsing()\">\n @if (collapsibleTemplateForRow.template) {\n <div>\n <button\n type=\"button\"\n (click)=\"\n tryToggleCollapse(\n collapsibleTemplateForRow,\n ngbCollapse,\n $event,\n 'button'\n )\n \"\n class=\"impdc-table-collapsible-content-row-button btn btn-link\">\n <span\n class=\"far fa-chevron-right\"\n [class.fa-rotate-90]=\"!collapseMonitor.ngbCollapsing()\"></span>\n </button>\n </div>\n }\n </td>\n } @if (canSelectRows) {\n <td class=\"impdc-table-selectable-row-toggle-container\">\n <div class=\"select-column\">\n <impdc-checkbox\n [ngModel]=\"isRowSelected(row.id)\"\n (change)=\"handleRowSelect($event, row.id)\"\n (click)=\"$event.stopPropagation()\"></impdc-checkbox>\n </div>\n </td>\n }\n <td\n *ngFor=\"let columnDef of columnDefs; index as colIndex; last as isLast\"\n [ngClass]=\"{\n 'col-no-padding': !!columnDef.noPadding,\n 'actions-column': columnDef.columnType === cellType.Actions\n }\">\n <div>\n @switch (columnDef.columnType) { @case (cellType.Badge) {\n <span>\n <impdc-badge\n [text]=\"getStringValue(colIndex, row)\"\n [theme]=\"getTheme(columnDef, row)\">\n </impdc-badge>\n </span>\n } @case (cellType.Link) {\n <span (click)=\"handleLinkClick(colIndex, row, $event)\">\n @if (!branded) {\n <a class=\"link-primary\">\n {{ getValue(colIndex, row) }}\n </a>\n } @else {\n <a impdcBranded>\n {{ getValue(colIndex, row) }}\n </a>\n }\n </span>\n } @case (cellType.Url) {\n <span>\n @if (!branded) {\n <a\n target=\"_blank\"\n [attr.href]=\"getValue(colIndex, row)\"\n (click)=\"$event.stopPropagation()\">\n {{ getValue(colIndex, row) }}\n </a>\n } @else {\n <a\n impdcBranded\n target=\"_blank\"\n [attr.href]=\"getValue(colIndex, row)\"\n (click)=\"$event.stopPropagation()\">\n {{ getValue(colIndex, row) }}\n </a>\n }\n </span>\n } @case (cellType.Email) {\n <span>\n @if (!branded) {\n <a\n target=\"_blank\"\n [attr.href]=\"'mailto:' + getValue(colIndex, row)\"\n (click)=\"$event.stopPropagation()\">\n {{ getValue(colIndex, row) }}\n </a>\n } @else {\n <a\n impdcBranded\n [attr.href]=\"getMailToValue(colIndex, row)\"\n (click)=\"$event.stopPropagation()\">\n {{ getValue(colIndex, row) }}\n </a>\n }\n </span>\n } @case (cellType.Input) {\n <span>\n <input\n impdcInput\n type=\"text\"\n class=\"{{ getCellColor(columnDef, row) }}\"\n [ngModel]=\"getValue(colIndex, row)\"\n (ngModelChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event)\n \"\n (click)=\"$event.stopPropagation()\" />\n </span>\n } @case (cellType.Boolean) {\n <span>\n @if (columnDef.disabled && getValue(colIndex, row) === 'true') {\n <span\n impdc-icon\n name=\"check\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n } @else if (!columnDef.disabled) {\n <impdc-checkbox\n [checked]=\"getValue(colIndex, row) === 'true'\"\n [isSwitch]=\"true\"\n (change)=\"\n handleCellValueChange(colIndex, rowIndex, $event.checked)\n \"\n (click)=\"$event.stopPropagation()\"></impdc-checkbox>\n }\n </span>\n } @case (cellType.SingleSelect) {\n <span>\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n allowClear=\"true\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \"\n (click)=\"$event.stopPropagation()\">\n @for (value of (columnDef.values || []); track value) {\n <impdc-select-option\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n }\n </impdc-select>\n </span>\n } @case (cellType.MultiSelect) {\n <span>\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n multiple=\"true\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \"\n (click)=\"$event.stopPropagation()\">\n @for (value of (columnDef.values || []); track value) {\n <impdc-select-option\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n }\n </impdc-select>\n </span>\n } @case (cellType.CellRender) {\n <span class=\"{{ getCellColor(columnDef, row) }}\">\n <ng-template\n impdcTableInjectComponent\n [columnDef]=\"columnDef\"\n [rowItem]=\"row\"\n [customCellComponents]=\"customCellComponents || {}\"\n [value]=\"getRawValue(colIndex, row)\"></ng-template>\n </span>\n } @case (cellType.Icon) {\n <span>\n <span\n impdc-icon\n [name]=\"columnDef.iconName\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n </span>\n } @case (cellType.Actions) {\n <span>\n <!-- will always return 'true', but needed to satisfy the type engine -->\n @if (columnDefIsActions(columnDef)) {\n <impdc-row-actions\n [columnDef]=\"columnDef\"\n [rowItem]=\"row\"\n [lastColumn]=\"isLast\"\n (actionClick)=\"handleActionClick(colIndex, row, $event)\"\n (click)=\"$event.stopPropagation()\"></impdc-row-actions>\n }\n </span>\n } @default {\n <span class=\"{{ getCellColor(columnDef, row) }}\">\n {{ getValue(colIndex, row) }}\n </span>\n } }\n </div>\n </td>\n </tr>\n <tr\n class=\"impdc-table-collapsible-content-row\"\n [class.opened]=\"!collapseMonitor.ngbCollapsing()\">\n <td class=\"w-100 p-0\" [attr.colspan]=\"tableSpan\">\n <div\n class=\"impdc-table-collapsible-content-container\"\n #ngbCollapse=\"ngbCollapse\"\n #collapseMonitor=\"impdcCollapseMonitor\"\n [impdcCollapseMonitor]=\"true\"\n (collapseChange)=\"rowCollapseChange.emit({ row, collapsed: $event })\">\n @if (collapsibleTemplateForRow.template) {\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n collapsibleTemplateForRow.template;\n context: {\n $implicit: row,\n collapsed: collapseMonitor.collapsed(),\n selected: isRowSelected(row.id),\n index: rowIndex,\n first: !!rowFirst,\n last: !!rowLast,\n even: !!rowEven,\n odd: !!rowOdd\n }\n \"></ng-container>\n </div>\n }\n </div>\n </td>\n </tr>\n } } @empty {\n <tr>\n <td [attr.colspan]=\"tableSpan\" class=\"no-data\">\n <ng-content select=\"[noData]\"></ng-content>\n </td>\n </tr>\n } }\n </tbody>\n <tfoot>\n @if (paginationComponent) {\n <tr>\n <td [attr.colspan]=\"tableSpan\">\n <ng-content\n select=\"impdc-pagination, div[impdc-pagination]\"></ng-content>\n </td>\n </tr>\n }\n </tfoot>\n</table>\n}\n", styles: [".bulk-action-container{display:flex;flex-direction:row;border:1px solid var(--impd-color-gray-200);border-top-left-radius:.6rem;border-top-right-radius:.6rem;border-bottom:0px}.bulk-action-container .bulk-action-checkbox{padding:1.6rem 2rem}.bulk-action-container .bulk-actions{display:flex;flex-direction:row;gap:.4rem}.col-no-padding{padding:0!important}.data-loading{height:var(--impd-size-80);vertical-align:middle;text-align:center}.no-data{vertical-align:middle;text-align:center}.select-row{display:flex;height:var(--impd-size-4);align-items:center;justify-items:end;border-radius:var(--impd-border-radius-default)}.heading-with-checkbox{padding-left:5px;padding-right:10px}.actions-column{width:.1%;white-space:nowrap}tr.impdc-table-collapsible-content-row:has(>td>div.impdc-table-collapsible-content-container.collapse:not(.show)){display:none}tr:has(td.impdc-table-collapsible-content-row-button-container),tr.impdc-table-collapsible-content-row{transition:background-color .35s ease-in-out}tr:has(td.impdc-table-collapsible-content-row-button-container.opened),tr.impdc-table-collapsible-content-row.opened{background-color:var(--impd-color-gray-50)}tr.impdc-table-collapsible-row-trigger{cursor:pointer}table ::ng-deep tbody>tr>td.impdc-table-selectable-row-toggle-container,table ::ng-deep tr>td.impdc-table-selectable-row-toggle-container,table ::ng-deep thead>tr>th.impdc-table-selectable-row-toggle-container,table ::ng-deep tr>th.impdc-table-selectable-row-toggle-container{padding-left:var(--impd-size-5);padding-right:var(--impd-size-1);width:var(--impd-size-10)}table ::ng-deep tbody>tr>td.impdc-table-collapsible-content-row-button-container,table ::ng-deep tr>td.impdc-table-collapsible-content-row-button-container,table ::ng-deep thead>tr>th.impdc-table-collapsible-content-row-button-container,table ::ng-deep tr>th.impdc-table-collapsible-content-row-button-container{padding-left:var(--impd-size-5);padding-right:0;width:var(--impd-size-10)}table ::ng-deep tbody>tr>td.impdc-table-collapsible-content-row-button-container:empty,table ::ng-deep tr>td.impdc-table-collapsible-content-row-button-container:empty,table ::ng-deep thead>tr>th.impdc-table-collapsible-content-row-button-container:empty,table ::ng-deep tr>th.impdc-table-collapsible-content-row-button-container:empty{padding:0}table ::ng-deep tbody>tr>td.impdc-table-collapsible-content-row-button-container+.impdc-table-selectable-row-toggle-container,table ::ng-deep tr>td.impdc-table-collapsible-content-row-button-container+.impdc-table-selectable-row-toggle-container,table ::ng-deep thead>tr>th.impdc-table-collapsible-content-row-button-container+.impdc-table-selectable-row-toggle-container,table ::ng-deep tr>th.impdc-table-collapsible-content-row-button-container+.impdc-table-selectable-row-toggle-container{padding-left:var(--impd-size-3);width:var(--impd-size-8)}.impdc-table-collapsible-content-row-button{align-items:center;border-radius:var(--impd-border-radius-2xl);color:var(--impd-color-gray-700)!important;display:flex;height:var(--impd-size-5);justify-content:center;padding:0;width:var(--impd-size-5);box-shadow:none}.impdc-table-collapsible-content-row-button:hover,.impdc-table-collapsible-content-row-button:focus,.impdc-table-collapsible-content-row-button:active{background-color:var(--impd-color-gray-100)}.impdc-table-collapsible-content-row-button impdc-icon{line-height:1}.impdc-table-collapsible-content-row-button>span.fa-chevron-right{font-size:1.6rem;transition:transform .35s}table.table-striped>tbody>tr:nth-of-type(4n+3)>*{--impartner-hex-table-bg-type: var(--impd-color-gray-50)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: BrandedDirective, selector: "[impdcBranded]" }, { kind: "component", type: IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }, { kind: "component", type: CheckboxComponent, selector: "impdc-checkbox", inputs: ["tabIndex", "id", "label", "description", "isSwitch", "switchIcons", "inline", "layout", "checked", "indeterminate", "disabled", "errorStateMatcher", "required"], outputs: ["change", "indeterminateChange"], exportAs: ["impdcCheckControl"] }, { kind: "component", type: SelectOptionComponent, selector: "impdc-select-option", inputs: ["value", "label", "disabled"] }, { kind: "component", type: SelectComponent, selector: "impdc-select", inputs: ["disabled", "tabIndex", "search", "placeholder", "required", "compareWith", "dropdownContainer", "errorStateMatcher", "allowClear", "multiple", "multipleDisplay"], outputs: ["selectionChange", "valueChange", "searchTextChanges"], exportAs: ["impdcSelect"] }, { kind: "directive", type: InputDirective, selector: "input[impdcInput], textarea[impdcInput], select[impdcNativeSelect]", inputs: ["disabled", "id", "type", "required", "readonly", "errorStateMatcher", "value"], exportAs: ["impdcInput"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SpinnerComponent, selector: "impdc-spinner, div[impdc-spinner]", inputs: ["accessibilityText"] }, { kind: "component", type: BadgeComponent, selector: "impdc-badge, [impdc-badge]", inputs: ["text", "icon", "theme", "size", "hideBg", "rounded", "dismissable"], outputs: ["dismiss"] }, { kind: "directive", type: CollapseMonitorDirective, selector: "[impdcCollapseMonitor]", outputs: ["collapseChange"], exportAs: ["impdcCollapseMonitor"] }, { kind: "directive", type: TableDirective, selector: "table[impdcTable]", inputs: ["striped", "hover", "layout"] }, { kind: "component", type: ColumnHeadingComponent, selector: "impdc-column-heading", inputs: ["isSortable", "columnIndex", "sortColumnIndex", "direction", "text"], outputs: ["sort"] }, { kind: "directive", type: TableInjectComponentDirective, selector: "[impdcTableInjectComponent]", inputs: ["columnDef", "value", "rowItem", "customCellComponents"] }, { kind: "component", type: RowActionsComponent, selector: "impdc-row-actions", inputs: ["columnDef", "rowItem", "lastColumn"], outputs: ["actionClick"] }] }); }
|
|
7760
7882
|
}
|
|
7761
7883
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TableComponent, decorators: [{
|
|
7762
7884
|
type: Component,
|
|
7763
|
-
args: [{ selector: 'impdc-table', template: "@if (tableData) {\n<table impdcTable [striped]=\"striped\">\n <thead>\n @if (!!bulkActions) {\n <tr>\n <th [attr.colspan]=\"tableSpan\" scope=\"col\" class=\"bulk-action-column\">\n <ng-content select=\"impdc-table-bulk-actions\"></ng-content>\n <ng-content select=\"[impdcTableBulkActions]\"></ng-content>\n </th>\n </tr>\n }\n <tr>\n @if (canSelectRows) {\n <th\n scope=\"col\"\n [ngClass]=\"{\n 'heading-below-bulk-actions': !!bulkActions\n }\">\n @if (canSelectAllRows) {\n <div>\n <impdc-checkbox\n ngModel\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n (change)=\"handleSelectAll($event)\"></impdc-checkbox>\n </div>\n }\n </th>\n } @for (columnDef of columnDefs; track columnDef; let columnIndex =\n $index) {\n <th\n scope=\"col\"\n [ngClass]=\"{\n 'sorted-column': isSortedColumn(columnIndex),\n 'sortable-column': columnDef.sorted,\n 'heading-below-bulk-actions': !!bulkActions\n }\"\n (click)=\"handleSort(columnIndex)\">\n <impdc-column-heading\n [isSortable]=\"columnDef.sorted || false\"\n [columnIndex]=\"columnIndex\"\n [sortColumnIndex]=\"sortColumnIndex\"\n [direction]=\"sortDirection\"\n [text]=\"columnDef.title\"\n (sort)=\"handleSort($event)\">\n </impdc-column-heading>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (loading) {\n <tr>\n <td [attr.colspan]=\"tableSpan\" class=\"data-loading\">\n <impdc-spinner></impdc-spinner>\n </td>\n </tr>\n } @else { @for (row of tableData; track row; let rowIndex = $index) {\n <tr>\n @if (canSelectRows) {\n <td>\n <div class=\"select-column\">\n <impdc-checkbox\n [ngModel]=\"isRowSelected(row.id)\"\n (change)=\"handleRowSelect($event, row.id)\"></impdc-checkbox>\n </div>\n </td>\n }\n <td\n *ngFor=\"let columnDef of columnDefs; index as colIndex; last as isLast\"\n [ngClass]=\"{\n 'col-no-padding': !!columnDef.noPadding,\n 'actions-column': columnDef.columnType === cellType.Actions\n }\">\n <div>\n @switch (columnDef.columnType) { @case (cellType.Badge) {\n <span>\n <impdc-badge\n [text]=\"getStringValue(colIndex, row)\"\n [theme]=\"getTheme(columnDef, row)\">\n </impdc-badge>\n </span>\n } @case (cellType.Link) {\n <span (click)=\"handleLinkClick(colIndex, row)\">\n @if (!branded) {\n <a>\n {{ getValue(colIndex, row) }}\n </a>\n } @else {\n <a impdcBranded>\n {{ getValue(colIndex, row) }}\n </a>\n }\n </span>\n } @case (cellType.Url) {\n <span>\n @if (!branded) {\n <a target=\"_blank\" [attr.href]=\"getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n } @else {\n <a\n impdcBranded\n target=\"_blank\"\n [attr.href]=\"getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n }\n </span>\n } @case (cellType.Email) {\n <span>\n @if (!branded) {\n <a\n target=\"_blank\"\n [attr.href]=\"'mailto:' + getValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n } @else {\n <a impdcBranded [attr.href]=\"getMailToValue(colIndex, row)\">\n {{ getValue(colIndex, row) }}\n </a>\n }\n </span>\n } @case (cellType.Input) {\n <span>\n <input\n impdcInput\n type=\"text\"\n class=\"{{ getCellColor(columnDef, row) }}\"\n [ngModel]=\"getValue(colIndex, row)\"\n (ngModelChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event)\n \" />\n </span>\n } @case (cellType.Boolean) {\n <span>\n @if (columnDef.disabled && getValue(colIndex, row) === 'true') {\n <span\n impdc-icon\n name=\"check\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n } @else if (!columnDef.disabled) {\n <impdc-checkbox\n [checked]=\"getValue(colIndex, row) === 'true'\"\n [isSwitch]=\"true\"\n (change)=\"\n handleCellValueChange(colIndex, rowIndex, $event.checked)\n \"></impdc-checkbox>\n }\n </span>\n } @case (cellType.SingleSelect) {\n <span>\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n allowClear=\"true\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \">\n @for (value of (columnDef.values || []); track value) {\n <impdc-select-option\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n }\n </impdc-select>\n </span>\n } @case (cellType.MultiSelect) {\n <span>\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n multiple=\"true\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \">\n @for (value of (columnDef.values || []); track value) {\n <impdc-select-option\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n }\n </impdc-select>\n </span>\n } @case (cellType.CellRender) {\n <span class=\"{{ getCellColor(columnDef, row) }}\">\n <ng-template\n impdcTableInjectComponent\n [columnDef]=\"columnDef\"\n [rowItem]=\"row\"\n [customCellComponents]=\"customCellComponents || {}\"\n [value]=\"getRawValue(colIndex, row)\"></ng-template>\n </span>\n } @case (cellType.Icon) {\n <span>\n <span\n impdc-icon\n [name]=\"columnDef.iconName\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n </span>\n } @case (cellType.Actions) {\n <span>\n <!-- will always return 'true', but needed to satisfy the type engine -->\n @if (columnDefIsActions(columnDef)) {\n <impdc-row-actions\n [columnDef]=\"columnDef\"\n [rowItem]=\"row\"\n [lastColumn]=\"isLast\"\n (actionClick)=\"\n handleActionClick(colIndex, row, $event)\n \"></impdc-row-actions>\n }\n </span>\n } @default {\n <span class=\"{{ getCellColor(columnDef, row) }}\">\n {{ getValue(colIndex, row) }}\n </span>\n } }\n </div>\n </td>\n </tr>\n } @empty {\n <tr>\n <td [attr.colspan]=\"tableSpan\" class=\"no-data\">\n <ng-content select=\"[noData]\"></ng-content>\n </td>\n </tr>\n } }\n </tbody>\n <tfoot>\n @if (paginationComponent) {\n <tr>\n <td [attr.colspan]=\"tableSpan\">\n <ng-content\n select=\"impdc-pagination, div[impdc-pagination]\"></ng-content>\n </td>\n </tr>\n }\n </tfoot>\n</table>\n}\n", styles: [".bulk-action-container{display:flex;flex-direction:row;border:1px solid var(--impd-color-gray-200);border-top-left-radius:.6rem;border-top-right-radius:.6rem;border-bottom:0px}.bulk-action-container .bulk-action-checkbox{padding:1.6rem 2rem}.bulk-action-container .bulk-actions{display:flex;flex-direction:row;gap:.4rem}.col-no-padding{padding:0!important}.data-loading{height:var(--impd-size-80);vertical-align:middle;text-align:center}.no-data{vertical-align:middle;text-align:center}.select-row{display:flex;height:var(--impd-size-4);align-items:center;justify-items:end;border-radius:var(--impd-border-radius-default)}.heading-with-checkbox{padding-left:5px;padding-right:10px}.actions-column{width:.1%;white-space:nowrap}\n"] }]
|
|
7885
|
+
args: [{ selector: 'impdc-table', template: "@if (tableData) {\n<table\n impdcTable\n [striped]=\"striped && !collapsibleTemplate\"\n [layout]=\"layout\"\n [hover]=\"hover\">\n <thead>\n @if (!!bulkActions) {\n <tr>\n <th [attr.colspan]=\"tableSpan\" scope=\"col\" class=\"bulk-action-column\">\n <ng-content select=\"impdc-table-bulk-actions\"></ng-content>\n <ng-content select=\"[impdcTableBulkActions]\"></ng-content>\n </th>\n </tr>\n }\n <tr>\n @if (collapsibleTemplate) {\n <th\n scope=\"col\"\n [class.heading-below-bulk-actions]=\"!!bulkActions\"\n class=\"impdc-table-collapsible-content-row-button-container\"></th>\n } @if (canSelectRows) {\n <th\n scope=\"col\"\n class=\"impdc-table-selectable-row-toggle-container\"\n [ngClass]=\"{\n 'heading-below-bulk-actions': !!bulkActions\n }\">\n @if (canSelectAllRows) {\n <div>\n <impdc-checkbox\n ngModel\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n (change)=\"handleSelectAll($event)\"></impdc-checkbox>\n </div>\n }\n </th>\n } @for (columnDef of columnDefs; track columnDef; let columnIndex =\n $index) {\n <th\n scope=\"col\"\n [ngClass]=\"{\n 'sorted-column': isSortedColumn(columnIndex),\n 'sortable-column': columnDef.sorted,\n 'heading-below-bulk-actions': !!bulkActions\n }\"\n (click)=\"handleSort(columnIndex)\">\n <impdc-column-heading\n [isSortable]=\"columnDef.sorted || false\"\n [columnIndex]=\"columnIndex\"\n [sortColumnIndex]=\"sortColumnIndex\"\n [direction]=\"sortDirection\"\n [text]=\"columnDef.title\"\n (sort)=\"handleSort($event)\">\n </impdc-column-heading>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (loading) {\n <tr>\n <td [attr.colspan]=\"tableSpan\" class=\"data-loading\">\n <impdc-spinner></impdc-spinner>\n </td>\n </tr>\n } @else { @for (row of tableData; track row.id; let rowIndex = $index; let\n rowFirst = $first; let rowLast = $last; let rowEven = $even; let rowOdd =\n $odd) { @if (getCollapsibleTemplateForRow(row); as\n collapsibleTemplateForRow) {\n <tr\n [class.impdc-table-collapsible-row-trigger]=\"collapsibleTrigger === 'row'\"\n [class.table-active]=\"isRowSelected(row.id)\"\n (click)=\"\n tryToggleCollapse(collapsibleTemplateForRow, ngbCollapse, $event, 'row')\n \">\n @if (collapsibleTemplate) {\n <td\n class=\"impdc-table-collapsible-content-row-button-container\"\n [class.opened]=\"!collapseMonitor.ngbCollapsing()\">\n @if (collapsibleTemplateForRow.template) {\n <div>\n <button\n type=\"button\"\n (click)=\"\n tryToggleCollapse(\n collapsibleTemplateForRow,\n ngbCollapse,\n $event,\n 'button'\n )\n \"\n class=\"impdc-table-collapsible-content-row-button btn btn-link\">\n <span\n class=\"far fa-chevron-right\"\n [class.fa-rotate-90]=\"!collapseMonitor.ngbCollapsing()\"></span>\n </button>\n </div>\n }\n </td>\n } @if (canSelectRows) {\n <td class=\"impdc-table-selectable-row-toggle-container\">\n <div class=\"select-column\">\n <impdc-checkbox\n [ngModel]=\"isRowSelected(row.id)\"\n (change)=\"handleRowSelect($event, row.id)\"\n (click)=\"$event.stopPropagation()\"></impdc-checkbox>\n </div>\n </td>\n }\n <td\n *ngFor=\"let columnDef of columnDefs; index as colIndex; last as isLast\"\n [ngClass]=\"{\n 'col-no-padding': !!columnDef.noPadding,\n 'actions-column': columnDef.columnType === cellType.Actions\n }\">\n <div>\n @switch (columnDef.columnType) { @case (cellType.Badge) {\n <span>\n <impdc-badge\n [text]=\"getStringValue(colIndex, row)\"\n [theme]=\"getTheme(columnDef, row)\">\n </impdc-badge>\n </span>\n } @case (cellType.Link) {\n <span (click)=\"handleLinkClick(colIndex, row, $event)\">\n @if (!branded) {\n <a class=\"link-primary\">\n {{ getValue(colIndex, row) }}\n </a>\n } @else {\n <a impdcBranded>\n {{ getValue(colIndex, row) }}\n </a>\n }\n </span>\n } @case (cellType.Url) {\n <span>\n @if (!branded) {\n <a\n target=\"_blank\"\n [attr.href]=\"getValue(colIndex, row)\"\n (click)=\"$event.stopPropagation()\">\n {{ getValue(colIndex, row) }}\n </a>\n } @else {\n <a\n impdcBranded\n target=\"_blank\"\n [attr.href]=\"getValue(colIndex, row)\"\n (click)=\"$event.stopPropagation()\">\n {{ getValue(colIndex, row) }}\n </a>\n }\n </span>\n } @case (cellType.Email) {\n <span>\n @if (!branded) {\n <a\n target=\"_blank\"\n [attr.href]=\"'mailto:' + getValue(colIndex, row)\"\n (click)=\"$event.stopPropagation()\">\n {{ getValue(colIndex, row) }}\n </a>\n } @else {\n <a\n impdcBranded\n [attr.href]=\"getMailToValue(colIndex, row)\"\n (click)=\"$event.stopPropagation()\">\n {{ getValue(colIndex, row) }}\n </a>\n }\n </span>\n } @case (cellType.Input) {\n <span>\n <input\n impdcInput\n type=\"text\"\n class=\"{{ getCellColor(columnDef, row) }}\"\n [ngModel]=\"getValue(colIndex, row)\"\n (ngModelChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event)\n \"\n (click)=\"$event.stopPropagation()\" />\n </span>\n } @case (cellType.Boolean) {\n <span>\n @if (columnDef.disabled && getValue(colIndex, row) === 'true') {\n <span\n impdc-icon\n name=\"check\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n } @else if (!columnDef.disabled) {\n <impdc-checkbox\n [checked]=\"getValue(colIndex, row) === 'true'\"\n [isSwitch]=\"true\"\n (change)=\"\n handleCellValueChange(colIndex, rowIndex, $event.checked)\n \"\n (click)=\"$event.stopPropagation()\"></impdc-checkbox>\n }\n </span>\n } @case (cellType.SingleSelect) {\n <span>\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n allowClear=\"true\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \"\n (click)=\"$event.stopPropagation()\">\n @for (value of (columnDef.values || []); track value) {\n <impdc-select-option\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n }\n </impdc-select>\n </span>\n } @case (cellType.MultiSelect) {\n <span>\n <impdc-select\n [ngModel]=\"getValue(colIndex, row)\"\n [disabled]=\"columnDef.disabled || false\"\n [placeholder]=\"selectPlaceholder\"\n multiple=\"true\"\n (selectionChange)=\"\n handleCellValueChange(colIndex, rowIndex, $event.value)\n \"\n (click)=\"$event.stopPropagation()\">\n @for (value of (columnDef.values || []); track value) {\n <impdc-select-option\n [value]=\"value.value\"\n [label]=\"value.label\"></impdc-select-option>\n }\n </impdc-select>\n </span>\n } @case (cellType.CellRender) {\n <span class=\"{{ getCellColor(columnDef, row) }}\">\n <ng-template\n impdcTableInjectComponent\n [columnDef]=\"columnDef\"\n [rowItem]=\"row\"\n [customCellComponents]=\"customCellComponents || {}\"\n [value]=\"getRawValue(colIndex, row)\"></ng-template>\n </span>\n } @case (cellType.Icon) {\n <span>\n <span\n impdc-icon\n [name]=\"columnDef.iconName\"\n class=\"{{ getCellColor(columnDef, row) }}\"></span>\n </span>\n } @case (cellType.Actions) {\n <span>\n <!-- will always return 'true', but needed to satisfy the type engine -->\n @if (columnDefIsActions(columnDef)) {\n <impdc-row-actions\n [columnDef]=\"columnDef\"\n [rowItem]=\"row\"\n [lastColumn]=\"isLast\"\n (actionClick)=\"handleActionClick(colIndex, row, $event)\"\n (click)=\"$event.stopPropagation()\"></impdc-row-actions>\n }\n </span>\n } @default {\n <span class=\"{{ getCellColor(columnDef, row) }}\">\n {{ getValue(colIndex, row) }}\n </span>\n } }\n </div>\n </td>\n </tr>\n <tr\n class=\"impdc-table-collapsible-content-row\"\n [class.opened]=\"!collapseMonitor.ngbCollapsing()\">\n <td class=\"w-100 p-0\" [attr.colspan]=\"tableSpan\">\n <div\n class=\"impdc-table-collapsible-content-container\"\n #ngbCollapse=\"ngbCollapse\"\n #collapseMonitor=\"impdcCollapseMonitor\"\n [impdcCollapseMonitor]=\"true\"\n (collapseChange)=\"rowCollapseChange.emit({ row, collapsed: $event })\">\n @if (collapsibleTemplateForRow.template) {\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n collapsibleTemplateForRow.template;\n context: {\n $implicit: row,\n collapsed: collapseMonitor.collapsed(),\n selected: isRowSelected(row.id),\n index: rowIndex,\n first: !!rowFirst,\n last: !!rowLast,\n even: !!rowEven,\n odd: !!rowOdd\n }\n \"></ng-container>\n </div>\n }\n </div>\n </td>\n </tr>\n } } @empty {\n <tr>\n <td [attr.colspan]=\"tableSpan\" class=\"no-data\">\n <ng-content select=\"[noData]\"></ng-content>\n </td>\n </tr>\n } }\n </tbody>\n <tfoot>\n @if (paginationComponent) {\n <tr>\n <td [attr.colspan]=\"tableSpan\">\n <ng-content\n select=\"impdc-pagination, div[impdc-pagination]\"></ng-content>\n </td>\n </tr>\n }\n </tfoot>\n</table>\n}\n", styles: [".bulk-action-container{display:flex;flex-direction:row;border:1px solid var(--impd-color-gray-200);border-top-left-radius:.6rem;border-top-right-radius:.6rem;border-bottom:0px}.bulk-action-container .bulk-action-checkbox{padding:1.6rem 2rem}.bulk-action-container .bulk-actions{display:flex;flex-direction:row;gap:.4rem}.col-no-padding{padding:0!important}.data-loading{height:var(--impd-size-80);vertical-align:middle;text-align:center}.no-data{vertical-align:middle;text-align:center}.select-row{display:flex;height:var(--impd-size-4);align-items:center;justify-items:end;border-radius:var(--impd-border-radius-default)}.heading-with-checkbox{padding-left:5px;padding-right:10px}.actions-column{width:.1%;white-space:nowrap}tr.impdc-table-collapsible-content-row:has(>td>div.impdc-table-collapsible-content-container.collapse:not(.show)){display:none}tr:has(td.impdc-table-collapsible-content-row-button-container),tr.impdc-table-collapsible-content-row{transition:background-color .35s ease-in-out}tr:has(td.impdc-table-collapsible-content-row-button-container.opened),tr.impdc-table-collapsible-content-row.opened{background-color:var(--impd-color-gray-50)}tr.impdc-table-collapsible-row-trigger{cursor:pointer}table ::ng-deep tbody>tr>td.impdc-table-selectable-row-toggle-container,table ::ng-deep tr>td.impdc-table-selectable-row-toggle-container,table ::ng-deep thead>tr>th.impdc-table-selectable-row-toggle-container,table ::ng-deep tr>th.impdc-table-selectable-row-toggle-container{padding-left:var(--impd-size-5);padding-right:var(--impd-size-1);width:var(--impd-size-10)}table ::ng-deep tbody>tr>td.impdc-table-collapsible-content-row-button-container,table ::ng-deep tr>td.impdc-table-collapsible-content-row-button-container,table ::ng-deep thead>tr>th.impdc-table-collapsible-content-row-button-container,table ::ng-deep tr>th.impdc-table-collapsible-content-row-button-container{padding-left:var(--impd-size-5);padding-right:0;width:var(--impd-size-10)}table ::ng-deep tbody>tr>td.impdc-table-collapsible-content-row-button-container:empty,table ::ng-deep tr>td.impdc-table-collapsible-content-row-button-container:empty,table ::ng-deep thead>tr>th.impdc-table-collapsible-content-row-button-container:empty,table ::ng-deep tr>th.impdc-table-collapsible-content-row-button-container:empty{padding:0}table ::ng-deep tbody>tr>td.impdc-table-collapsible-content-row-button-container+.impdc-table-selectable-row-toggle-container,table ::ng-deep tr>td.impdc-table-collapsible-content-row-button-container+.impdc-table-selectable-row-toggle-container,table ::ng-deep thead>tr>th.impdc-table-collapsible-content-row-button-container+.impdc-table-selectable-row-toggle-container,table ::ng-deep tr>th.impdc-table-collapsible-content-row-button-container+.impdc-table-selectable-row-toggle-container{padding-left:var(--impd-size-3);width:var(--impd-size-8)}.impdc-table-collapsible-content-row-button{align-items:center;border-radius:var(--impd-border-radius-2xl);color:var(--impd-color-gray-700)!important;display:flex;height:var(--impd-size-5);justify-content:center;padding:0;width:var(--impd-size-5);box-shadow:none}.impdc-table-collapsible-content-row-button:hover,.impdc-table-collapsible-content-row-button:focus,.impdc-table-collapsible-content-row-button:active{background-color:var(--impd-color-gray-100)}.impdc-table-collapsible-content-row-button impdc-icon{line-height:1}.impdc-table-collapsible-content-row-button>span.fa-chevron-right{font-size:1.6rem;transition:transform .35s}table.table-striped>tbody>tr:nth-of-type(4n+3)>*{--impartner-hex-table-bg-type: var(--impd-color-gray-50)}\n"] }]
|
|
7764
7886
|
}], ctorParameters: () => [{ type: i1.DatePipe }, { type: i1.PercentPipe }, { type: i1.DecimalPipe }, { type: i0.ChangeDetectorRef }, { type: BrandedDirective, decorators: [{
|
|
7765
7887
|
type: Optional
|
|
7766
7888
|
}, {
|
|
@@ -7771,6 +7893,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7771
7893
|
type: Input
|
|
7772
7894
|
}], striped: [{
|
|
7773
7895
|
type: Input
|
|
7896
|
+
}], hover: [{
|
|
7897
|
+
type: Input
|
|
7898
|
+
}], layout: [{
|
|
7899
|
+
type: Input
|
|
7774
7900
|
}], canSelectRows: [{
|
|
7775
7901
|
type: Input
|
|
7776
7902
|
}], canSelectAllRows: [{
|
|
@@ -7787,6 +7913,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7787
7913
|
type: Input
|
|
7788
7914
|
}], customCellComponents: [{
|
|
7789
7915
|
type: Input
|
|
7916
|
+
}], collapsibleTemplate: [{
|
|
7917
|
+
type: Input
|
|
7918
|
+
}], collapsibleTrigger: [{
|
|
7919
|
+
type: Input
|
|
7790
7920
|
}], rowSelect: [{
|
|
7791
7921
|
type: Output
|
|
7792
7922
|
}], sortBy: [{
|
|
@@ -7795,14 +7925,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7795
7925
|
type: Output
|
|
7796
7926
|
}], rowActionClick: [{
|
|
7797
7927
|
type: Output
|
|
7928
|
+
}], inputChange: [{
|
|
7929
|
+
type: Output
|
|
7930
|
+
}], rowCollapseChange: [{
|
|
7931
|
+
type: Output
|
|
7798
7932
|
}], paginationComponent: [{
|
|
7799
7933
|
type: ContentChild,
|
|
7800
7934
|
args: [PaginationComponent]
|
|
7801
7935
|
}], bulkActions: [{
|
|
7802
7936
|
type: ContentChild,
|
|
7803
7937
|
args: [TableBulkActionsComponent]
|
|
7804
|
-
}], inputChange: [{
|
|
7805
|
-
type: Output
|
|
7806
7938
|
}] } });
|
|
7807
7939
|
|
|
7808
7940
|
class SpinnerModule {
|
|
@@ -7822,7 +7954,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7822
7954
|
class TableModule {
|
|
7823
7955
|
constructor() { }
|
|
7824
7956
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7825
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.1", ngImport: i0, type: TableModule, declarations: [
|
|
7957
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.1", ngImport: i0, type: TableModule, declarations: [CollapseMonitorDirective,
|
|
7958
|
+
TableDirective,
|
|
7826
7959
|
TableComponent,
|
|
7827
7960
|
ColumnHeadingComponent,
|
|
7828
7961
|
TableInjectComponentDirective,
|
|
@@ -7836,7 +7969,8 @@ class TableModule {
|
|
|
7836
7969
|
SpinnerModule,
|
|
7837
7970
|
BadgeModule,
|
|
7838
7971
|
BrandingModule,
|
|
7839
|
-
NgbDropdownModule
|
|
7972
|
+
NgbDropdownModule,
|
|
7973
|
+
NgbCollapseModule], exports: [ButtonModule,
|
|
7840
7974
|
TableDirective,
|
|
7841
7975
|
ColumnHeadingComponent,
|
|
7842
7976
|
TableBulkActionsComponent,
|
|
@@ -7855,7 +7989,8 @@ class TableModule {
|
|
|
7855
7989
|
SpinnerModule,
|
|
7856
7990
|
BadgeModule,
|
|
7857
7991
|
BrandingModule,
|
|
7858
|
-
NgbDropdownModule,
|
|
7992
|
+
NgbDropdownModule,
|
|
7993
|
+
NgbCollapseModule, ButtonModule,
|
|
7859
7994
|
PaginationModule,
|
|
7860
7995
|
IconModule,
|
|
7861
7996
|
BrandingModule] }); }
|
|
@@ -7873,9 +8008,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7873
8008
|
SpinnerModule,
|
|
7874
8009
|
BadgeModule,
|
|
7875
8010
|
BrandingModule,
|
|
7876
|
-
NgbDropdownModule
|
|
8011
|
+
NgbDropdownModule,
|
|
8012
|
+
NgbCollapseModule
|
|
7877
8013
|
],
|
|
7878
8014
|
declarations: [
|
|
8015
|
+
CollapseMonitorDirective,
|
|
7879
8016
|
TableDirective,
|
|
7880
8017
|
TableComponent,
|
|
7881
8018
|
ColumnHeadingComponent,
|
|
@@ -7976,6 +8113,10 @@ class ModalComponent {
|
|
|
7976
8113
|
* Shows a backdrop behind the Modal.
|
|
7977
8114
|
*/
|
|
7978
8115
|
this.backdrop = true;
|
|
8116
|
+
/**
|
|
8117
|
+
* When `true`, Modal will not automatically render a fallback "accept" button in the footer.
|
|
8118
|
+
*/
|
|
8119
|
+
this.noFallback = false;
|
|
7979
8120
|
/**
|
|
7980
8121
|
* Event emitted when the Modal content is dismissed.
|
|
7981
8122
|
*/
|
|
@@ -8117,7 +8258,7 @@ class ModalComponent {
|
|
|
8117
8258
|
this._closed$.next();
|
|
8118
8259
|
}
|
|
8119
8260
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: ModalComponent, deps: [{ token: InteractionService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8120
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", 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" }, host: { attributes: { "tabindex": "-1" }, properties: { "class.fade": "fade", "class.in": "fade && shown", "class.show": "shown", "class.dismissable": "dismissable" }, classAttribute: "impdc modal" }, viewQueries: [{ propertyName: "_dialogElementRef", first: true, predicate: ["dialogElement"], descendants: true }, { 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 #dialogElement\n *ngIf=\"valid\"\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 <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", styles: [":host{-webkit-user-select:none;user-select:none}:host .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}:host .modal-icon .fa,:host .modal-icon .fa-brands,:host .modal-icon .fa-duotone,:host .modal-icon .fa-light,:host .modal-icon .fa-regular,:host .modal-icon .fa-solid,:host .modal-icon .fa-thin,:host .modal-icon .fab,:host .modal-icon .fad,:host .modal-icon .fal,:host .modal-icon .far,:host .modal-icon .fas,:host .modal-icon .fat{line-height:var(--impartner-hex-modal-title-line-height)}:host.fade.in{background-color:transparent}:host.show{display:block;opacity:1}:host:not(.show),:host.hide,:host .hide{display:none}:host.dismissable{cursor:pointer}:host.dismissable .modal-dialog{cursor:default}:host .modal-dialog{cursor:default;-webkit-user-select:auto;user-select:auto}:host .modal-theme-simple .modal-header,:host .modal-theme-destructive .modal-header{border:0;padding-bottom:0}:host .modal-theme-simple .modal-body,:host .modal-theme-destructive .modal-body{padding:calc(var(--impartner-hex-modal-padding) * .5) var(--impartner-hex-modal-padding) var(--impartner-hex-modal-padding)}:host .modal-theme-simple .modal-footer,:host .modal-theme-destructive .modal-footer{border:0;padding-top:0}:host .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)}:host .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}:host .modal-theme-destructive .modal-content>.modal-icon{grid-area:modal-icon;margin:var(--impartner-hex-modal-header-padding);margin-right:0;margin-bottom:0}:host .modal-theme-destructive .modal-content>.modal-header{grid-area:modal-header;padding-left:16px;margin-top:8px;justify-content:unset}:host .modal-theme-destructive .modal-content>.modal-body{grid-area:modal-body;padding-left:16px}:host .modal-theme-destructive .modal-content>.modal-footer{grid-area:modal-footer}:host .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"] }] }); }
|
|
8261
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", 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", noFallback: "noFallback" }, outputs: { dismiss: "dismiss", deny: "deny", accept: "accept" }, host: { attributes: { "tabindex": "-1" }, properties: { "class.fade": "fade", "class.in": "fade && shown", "class.show": "shown", "class.dismissable": "dismissable" }, classAttribute: "impdc modal" }, viewQueries: [{ propertyName: "_dialogElementRef", first: true, predicate: ["dialogElement"], descendants: true }, { 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 #dialogElement\n *ngIf=\"valid\"\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 <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=\"!noFallback && !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", styles: [":host{-webkit-user-select:none;user-select:none}:host .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}:host .modal-icon .fa,:host .modal-icon .fa-brands,:host .modal-icon .fa-duotone,:host .modal-icon .fa-light,:host .modal-icon .fa-regular,:host .modal-icon .fa-solid,:host .modal-icon .fa-thin,:host .modal-icon .fab,:host .modal-icon .fad,:host .modal-icon .fal,:host .modal-icon .far,:host .modal-icon .fas,:host .modal-icon .fat{line-height:var(--impartner-hex-modal-title-line-height)}:host.fade.in{background-color:transparent}:host.show{display:block;opacity:1}:host:not(.show),:host.hide,:host .hide{display:none}:host.dismissable{cursor:pointer}:host.dismissable .modal-dialog{cursor:default}:host .modal-dialog{cursor:default;-webkit-user-select:auto;user-select:auto}:host .modal-theme-simple .modal-header,:host .modal-theme-destructive .modal-header{border:0;padding-bottom:0}:host .modal-theme-simple .modal-body,:host .modal-theme-destructive .modal-body{padding:calc(var(--impartner-hex-modal-padding) * .5) var(--impartner-hex-modal-padding) var(--impartner-hex-modal-padding)}:host .modal-theme-simple .modal-footer,:host .modal-theme-destructive .modal-footer{border:0;padding-top:0}:host .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)}:host .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}:host .modal-theme-destructive .modal-content>.modal-icon{grid-area:modal-icon;margin:var(--impartner-hex-modal-header-padding);margin-right:0;margin-bottom:0}:host .modal-theme-destructive .modal-content>.modal-header{grid-area:modal-header;padding-left:16px;margin-top:8px;justify-content:unset}:host .modal-theme-destructive .modal-content>.modal-body{grid-area:modal-body;padding-left:16px}:host .modal-theme-destructive .modal-content>.modal-footer{grid-area:modal-footer}:host .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"] }] }); }
|
|
8121
8262
|
}
|
|
8122
8263
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: ModalComponent, decorators: [{
|
|
8123
8264
|
type: Component,
|
|
@@ -8128,7 +8269,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
8128
8269
|
'[class.show]': 'shown',
|
|
8129
8270
|
'[class.dismissable]': 'dismissable',
|
|
8130
8271
|
tabindex: '-1'
|
|
8131
|
-
}, template: "<div\n #dialogElement\n *ngIf=\"valid\"\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 <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", styles: [":host{-webkit-user-select:none;user-select:none}:host .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}:host .modal-icon .fa,:host .modal-icon .fa-brands,:host .modal-icon .fa-duotone,:host .modal-icon .fa-light,:host .modal-icon .fa-regular,:host .modal-icon .fa-solid,:host .modal-icon .fa-thin,:host .modal-icon .fab,:host .modal-icon .fad,:host .modal-icon .fal,:host .modal-icon .far,:host .modal-icon .fas,:host .modal-icon .fat{line-height:var(--impartner-hex-modal-title-line-height)}:host.fade.in{background-color:transparent}:host.show{display:block;opacity:1}:host:not(.show),:host.hide,:host .hide{display:none}:host.dismissable{cursor:pointer}:host.dismissable .modal-dialog{cursor:default}:host .modal-dialog{cursor:default;-webkit-user-select:auto;user-select:auto}:host .modal-theme-simple .modal-header,:host .modal-theme-destructive .modal-header{border:0;padding-bottom:0}:host .modal-theme-simple .modal-body,:host .modal-theme-destructive .modal-body{padding:calc(var(--impartner-hex-modal-padding) * .5) var(--impartner-hex-modal-padding) var(--impartner-hex-modal-padding)}:host .modal-theme-simple .modal-footer,:host .modal-theme-destructive .modal-footer{border:0;padding-top:0}:host .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)}:host .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}:host .modal-theme-destructive .modal-content>.modal-icon{grid-area:modal-icon;margin:var(--impartner-hex-modal-header-padding);margin-right:0;margin-bottom:0}:host .modal-theme-destructive .modal-content>.modal-header{grid-area:modal-header;padding-left:16px;margin-top:8px;justify-content:unset}:host .modal-theme-destructive .modal-content>.modal-body{grid-area:modal-body;padding-left:16px}:host .modal-theme-destructive .modal-content>.modal-footer{grid-area:modal-footer}:host .modal-theme-destructive .modal-icon{color:var(--impd-color-red-600);background:var(--impd-color-red-100)}\n"] }]
|
|
8272
|
+
}, template: "<div\n #dialogElement\n *ngIf=\"valid\"\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 <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=\"!noFallback && !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", styles: [":host{-webkit-user-select:none;user-select:none}:host .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}:host .modal-icon .fa,:host .modal-icon .fa-brands,:host .modal-icon .fa-duotone,:host .modal-icon .fa-light,:host .modal-icon .fa-regular,:host .modal-icon .fa-solid,:host .modal-icon .fa-thin,:host .modal-icon .fab,:host .modal-icon .fad,:host .modal-icon .fal,:host .modal-icon .far,:host .modal-icon .fas,:host .modal-icon .fat{line-height:var(--impartner-hex-modal-title-line-height)}:host.fade.in{background-color:transparent}:host.show{display:block;opacity:1}:host:not(.show),:host.hide,:host .hide{display:none}:host.dismissable{cursor:pointer}:host.dismissable .modal-dialog{cursor:default}:host .modal-dialog{cursor:default;-webkit-user-select:auto;user-select:auto}:host .modal-theme-simple .modal-header,:host .modal-theme-destructive .modal-header{border:0;padding-bottom:0}:host .modal-theme-simple .modal-body,:host .modal-theme-destructive .modal-body{padding:calc(var(--impartner-hex-modal-padding) * .5) var(--impartner-hex-modal-padding) var(--impartner-hex-modal-padding)}:host .modal-theme-simple .modal-footer,:host .modal-theme-destructive .modal-footer{border:0;padding-top:0}:host .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)}:host .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}:host .modal-theme-destructive .modal-content>.modal-icon{grid-area:modal-icon;margin:var(--impartner-hex-modal-header-padding);margin-right:0;margin-bottom:0}:host .modal-theme-destructive .modal-content>.modal-header{grid-area:modal-header;padding-left:16px;margin-top:8px;justify-content:unset}:host .modal-theme-destructive .modal-content>.modal-body{grid-area:modal-body;padding-left:16px}:host .modal-theme-destructive .modal-content>.modal-footer{grid-area:modal-footer}:host .modal-theme-destructive .modal-icon{color:var(--impd-color-red-600);background:var(--impd-color-red-100)}\n"] }]
|
|
8132
8273
|
}], ctorParameters: () => [{ type: InteractionService }, { type: i0.ElementRef }], propDecorators: { _dialogElementRef: [{
|
|
8133
8274
|
type: ViewChild,
|
|
8134
8275
|
args: ['dialogElement']
|
|
@@ -8152,6 +8293,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
8152
8293
|
type: Input
|
|
8153
8294
|
}], backdrop: [{
|
|
8154
8295
|
type: Input
|
|
8296
|
+
}], noFallback: [{
|
|
8297
|
+
type: Input
|
|
8155
8298
|
}], dismissEl: [{
|
|
8156
8299
|
type: ViewChild,
|
|
8157
8300
|
args: ['dismissEl', { static: false }]
|
|
@@ -8265,6 +8408,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
8265
8408
|
* To use, import `ProgressBarModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
8266
8409
|
*/
|
|
8267
8410
|
class ProgressBarComponent {
|
|
8411
|
+
get textClass() {
|
|
8412
|
+
return this.darkText ? 'dark-progress-text' : 'light-progress-text';
|
|
8413
|
+
}
|
|
8268
8414
|
constructor() {
|
|
8269
8415
|
/**
|
|
8270
8416
|
* The left/subject text of the Progress Bar.
|
|
@@ -8274,21 +8420,33 @@ class ProgressBarComponent {
|
|
|
8274
8420
|
* The right/status text of the Progress Bar.
|
|
8275
8421
|
*/
|
|
8276
8422
|
this.statusText = '';
|
|
8423
|
+
/**
|
|
8424
|
+
* The color of the progress bar
|
|
8425
|
+
*/
|
|
8426
|
+
this.barColor = '';
|
|
8427
|
+
/**
|
|
8428
|
+
* The color of the label and status
|
|
8429
|
+
*/
|
|
8430
|
+
this.darkText = true;
|
|
8277
8431
|
/**
|
|
8278
8432
|
* The current value of the Progress Bar represented as a number between 0 and 100.
|
|
8279
8433
|
*/
|
|
8280
8434
|
this.progressPercentage = 0;
|
|
8281
8435
|
}
|
|
8282
8436
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8283
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: ProgressBarComponent, selector: "impdc-progress-bar", inputs: { labelText: "labelText", statusText: "statusText", progressPercentage: "progressPercentage" }, ngImport: i0, template: "<div class=\"progress-container\">\n <div class=\"progress-text\">\n <div class=\"text-left\">\n {{ labelText }}\n </div>\n <div class=\"text-right\">\n {{ statusText }}\n </div>\n </div>\n <div class=\"bar-bg\">\n <div\n class=\"bar\"\n role=\"progressbar\"\n [style.width.%]=\"progressPercentage\"\n [attr.aria-valuenow]=\"progressPercentage\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"></div>\n </div>\n</div>\n", styles: [".progress-container{
|
|
8437
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: ProgressBarComponent, selector: "impdc-progress-bar", inputs: { labelText: "labelText", statusText: "statusText", barColor: "barColor", darkText: "darkText", progressPercentage: "progressPercentage" }, ngImport: i0, template: "<div class=\"progress-container\">\n <div class=\"progress-text\" [ngClass]=\"textClass\">\n <div class=\"text-left\">\n {{ labelText }}\n </div>\n <div class=\"text-right\">\n {{ statusText }}\n </div>\n </div>\n <div class=\"bar-bg\">\n <div\n [ngStyle]=\"{ 'background-color': barColor }\"\n class=\"bar\"\n role=\"progressbar\"\n [style.width.%]=\"progressPercentage\"\n [attr.aria-valuenow]=\"progressPercentage\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"></div>\n </div>\n</div>\n", styles: [".progress-container{width:100%;display:flex;flex-direction:column}.progress-container .progress-text{color:#000;display:flex;flex-direction:row;font-size:1.4rem;padding:0 .2rem .5rem}.progress-container .dark-progress-text{color:var(--impartner-hex-gray-900)}.progress-container .light-progress-text{color:var(--impartner-hex-gray-600)}.progress-container .text-left{flex-grow:1}.progress-container .bar-bg{height:1rem;overflow:hidden;border-bottom-right-radius:.6rem;background-color:#e5e7eb;border-radius:6rem}.progress-container .bar{height:1rem;overflow:hidden;background-color:#1d4ed8;border-radius:6rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
8284
8438
|
}
|
|
8285
8439
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
8286
8440
|
type: Component,
|
|
8287
|
-
args: [{ selector: 'impdc-progress-bar', template: "<div class=\"progress-container\">\n <div class=\"progress-text\">\n <div class=\"text-left\">\n {{ labelText }}\n </div>\n <div class=\"text-right\">\n {{ statusText }}\n </div>\n </div>\n <div class=\"bar-bg\">\n <div\n class=\"bar\"\n role=\"progressbar\"\n [style.width.%]=\"progressPercentage\"\n [attr.aria-valuenow]=\"progressPercentage\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"></div>\n </div>\n</div>\n", styles: [".progress-container{
|
|
8441
|
+
args: [{ selector: 'impdc-progress-bar', template: "<div class=\"progress-container\">\n <div class=\"progress-text\" [ngClass]=\"textClass\">\n <div class=\"text-left\">\n {{ labelText }}\n </div>\n <div class=\"text-right\">\n {{ statusText }}\n </div>\n </div>\n <div class=\"bar-bg\">\n <div\n [ngStyle]=\"{ 'background-color': barColor }\"\n class=\"bar\"\n role=\"progressbar\"\n [style.width.%]=\"progressPercentage\"\n [attr.aria-valuenow]=\"progressPercentage\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"></div>\n </div>\n</div>\n", styles: [".progress-container{width:100%;display:flex;flex-direction:column}.progress-container .progress-text{color:#000;display:flex;flex-direction:row;font-size:1.4rem;padding:0 .2rem .5rem}.progress-container .dark-progress-text{color:var(--impartner-hex-gray-900)}.progress-container .light-progress-text{color:var(--impartner-hex-gray-600)}.progress-container .text-left{flex-grow:1}.progress-container .bar-bg{height:1rem;overflow:hidden;border-bottom-right-radius:.6rem;background-color:#e5e7eb;border-radius:6rem}.progress-container .bar{height:1rem;overflow:hidden;background-color:#1d4ed8;border-radius:6rem}\n"] }]
|
|
8288
8442
|
}], ctorParameters: () => [], propDecorators: { labelText: [{
|
|
8289
8443
|
type: Input
|
|
8290
8444
|
}], statusText: [{
|
|
8291
8445
|
type: Input
|
|
8446
|
+
}], barColor: [{
|
|
8447
|
+
type: Input
|
|
8448
|
+
}], darkText: [{
|
|
8449
|
+
type: Input
|
|
8292
8450
|
}], progressPercentage: [{
|
|
8293
8451
|
type: Input
|
|
8294
8452
|
}] } });
|
|
@@ -8508,6 +8666,10 @@ class AlertComponent {
|
|
|
8508
8666
|
* Removes the Alert icon provided by the theme or projected into the icon area using the `icon` directive.
|
|
8509
8667
|
*/
|
|
8510
8668
|
this.hideIcon = false;
|
|
8669
|
+
/**
|
|
8670
|
+
* Removes the Alert border and background colors to only style icon and text according to theme.
|
|
8671
|
+
*/
|
|
8672
|
+
this.borderless = false;
|
|
8511
8673
|
/**
|
|
8512
8674
|
* Allows the Alert to be dismissed.
|
|
8513
8675
|
*/
|
|
@@ -8529,7 +8691,8 @@ class AlertComponent {
|
|
|
8529
8691
|
: '';
|
|
8530
8692
|
const inlineClass = this.inline ? ' alert-inline' : '';
|
|
8531
8693
|
const dismissibleClass = this.dismissible ? ' alert-dismissible' : '';
|
|
8532
|
-
|
|
8694
|
+
const borderless = this.borderless ? ' borderless' : '';
|
|
8695
|
+
return themeClass + inlineClass + dismissibleClass + borderless;
|
|
8533
8696
|
}
|
|
8534
8697
|
get themeIconName() {
|
|
8535
8698
|
return this.theme === 'warning'
|
|
@@ -8550,11 +8713,11 @@ class AlertComponent {
|
|
|
8550
8713
|
this.dismiss.emit();
|
|
8551
8714
|
}
|
|
8552
8715
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8553
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: AlertComponent, selector: "impdc-alert, [impdc-alert]", inputs: { theme: "theme", show: "show", headingText: "headingText", bodyText: "bodyText", inline: "inline", hideIcon: "hideIcon", dismissible: "dismissible" }, outputs: { dismiss: "dismiss" }, ngImport: i0, template: "<div *ngIf=\"show\" class=\"impdc alert\" [ngClass]=\"componentClasses\">\n <ng-container *ngIf=\"!hideIcon\">\n <span #alertIcon [hidden]=\"!alertIcon.children.length\" class=\"alert-icon\">\n <ng-content select=\"[icon]\"></ng-content>\n </span>\n <span *ngIf=\"!alertIcon.children.length\" class=\"alert-icon\">\n <span impdc-icon [name]=\"themeIconName\"></span>\n </span>\n </ng-container>\n\n <div\n class=\"alert-content\"\n [ngClass]=\"{\n 'alert-content-heading-only':\n !bodyText &&\n !projectedBody.children.length &&\n !projectedBody.innerHTML &&\n !alertActions.children.length\n }\">\n <div class=\"alert-heading\">\n <ng-content select=\"[heading]\"></ng-content>\n <span *ngIf=\"headingText\">{{ headingText }}</span>\n </div>\n <div\n #bodyContent\n class=\"alert-body\"\n [hidden]=\"!bodyContent.children.length\">\n <div *ngIf=\"bodyText\">{{ bodyText }}</div>\n\n <div\n #projectedBody\n [hidden]=\"!projectedBody.children.length && !projectedBody.innerHTML\">\n <ng-content></ng-content>\n </div>\n\n <div\n #alertActions\n [hidden]=\"!alertActions.children.length\"\n class=\"alert-actions\">\n <ng-content select=\"[action]\"></ng-content>\n </div>\n </div>\n </div>\n\n <a\n *ngIf=\"dismissible\"\n class=\"close-icon\"\n (click)=\"closeAlert()\"\n data-bs-dismiss=\"alert\"\n aria-label=\"Close\">\n <span impdc-icon name=\"times\" theme=\"regular\"></span>\n </a>\n</div>\n", styles: [".impdc.alert{display:flex;gap:1.2rem}.impdc.alert .alert-icon,.impdc.alert .close-icon{display:flex;width:2rem;height:2rem;font-size:1.6rem;line-height:2rem;align-items:center;justify-content:center}.impdc.alert .alert-content{flex:1;display:flex;flex-direction:column;gap:.8rem}.impdc.alert .alert-content .alert-heading{display:flex;align-items:center;gap:1.2rem}.impdc.alert .alert-content .alert-body{display:flex;flex-direction:column;gap:1.6rem;font-size:1.4rem;font-weight:400;line-height:2rem}.impdc.alert .alert-content .alert-body .alert-actions{display:flex;gap:2.8rem}.impdc.alert .alert-content .alert-body .alert-actions ::ng-deep a{font-size:1.4rem;font-weight:500;line-height:2rem;text-decoration-line:underline;color:var(--impartner-hex-alert-action-color)}.impdc.alert .alert-content-heading-only{gap:0}.impdc.alert .close-icon{cursor:pointer;color:var(--impartner-hex-btn-close-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }] }); }
|
|
8716
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: AlertComponent, selector: "impdc-alert, [impdc-alert]", inputs: { theme: "theme", show: "show", headingText: "headingText", bodyText: "bodyText", inline: "inline", hideIcon: "hideIcon", borderless: "borderless", dismissible: "dismissible" }, outputs: { dismiss: "dismiss" }, ngImport: i0, template: "<div *ngIf=\"show\" class=\"impdc alert\" [ngClass]=\"componentClasses\">\n <ng-container *ngIf=\"!hideIcon\">\n <span #alertIcon [hidden]=\"!alertIcon.children.length\" class=\"alert-icon\">\n <ng-content select=\"[icon]\"></ng-content>\n </span>\n <span *ngIf=\"!alertIcon.children.length\" class=\"alert-icon\">\n <span impdc-icon [name]=\"themeIconName\"></span>\n </span>\n </ng-container>\n\n <div\n class=\"alert-content\"\n [ngClass]=\"{\n 'alert-content-heading-only':\n !bodyText &&\n !projectedBody.children.length &&\n !projectedBody.innerHTML &&\n !alertActions.children.length\n }\">\n <div class=\"alert-heading\">\n <ng-content select=\"[heading]\"></ng-content>\n <span *ngIf=\"headingText\">{{ headingText }}</span>\n </div>\n <div\n #bodyContent\n class=\"alert-body\"\n [hidden]=\"!bodyContent.children.length\">\n <div *ngIf=\"bodyText\">{{ bodyText }}</div>\n\n <div\n #projectedBody\n [hidden]=\"!projectedBody.children.length && !projectedBody.innerHTML\">\n <ng-content></ng-content>\n </div>\n\n <div\n #alertActions\n [hidden]=\"!alertActions.children.length\"\n class=\"alert-actions\">\n <ng-content select=\"[action]\"></ng-content>\n </div>\n </div>\n </div>\n\n <a\n *ngIf=\"dismissible\"\n class=\"close-icon\"\n (click)=\"closeAlert()\"\n data-bs-dismiss=\"alert\"\n aria-label=\"Close\">\n <span impdc-icon name=\"times\" theme=\"regular\"></span>\n </a>\n</div>\n", styles: [".impdc.alert{display:flex;gap:1.2rem}.impdc.alert .alert-icon,.impdc.alert .close-icon{display:flex;width:2rem;height:2rem;font-size:1.6rem;line-height:2rem;align-items:center;justify-content:center}.impdc.alert .alert-content{flex:1;display:flex;flex-direction:column;gap:.8rem}.impdc.alert .alert-content .alert-heading{display:flex;align-items:center;gap:1.2rem}.impdc.alert .alert-content .alert-body{display:flex;flex-direction:column;gap:1.6rem;font-size:1.4rem;font-weight:400;line-height:2rem}.impdc.alert .alert-content .alert-body .alert-actions{display:flex;gap:2.8rem}.impdc.alert .alert-content .alert-body .alert-actions ::ng-deep a{font-size:1.4rem;font-weight:500;line-height:2rem;text-decoration-line:underline;color:var(--impartner-hex-alert-action-color)}.impdc.alert .alert-content-heading-only{gap:0}.impdc.alert .close-icon{cursor:pointer;color:var(--impartner-hex-btn-close-color)}.impdc.alert.borderless{border:none;background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }] }); }
|
|
8554
8717
|
}
|
|
8555
8718
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: AlertComponent, decorators: [{
|
|
8556
8719
|
type: Component,
|
|
8557
|
-
args: [{ selector: 'impdc-alert, [impdc-alert]', template: "<div *ngIf=\"show\" class=\"impdc alert\" [ngClass]=\"componentClasses\">\n <ng-container *ngIf=\"!hideIcon\">\n <span #alertIcon [hidden]=\"!alertIcon.children.length\" class=\"alert-icon\">\n <ng-content select=\"[icon]\"></ng-content>\n </span>\n <span *ngIf=\"!alertIcon.children.length\" class=\"alert-icon\">\n <span impdc-icon [name]=\"themeIconName\"></span>\n </span>\n </ng-container>\n\n <div\n class=\"alert-content\"\n [ngClass]=\"{\n 'alert-content-heading-only':\n !bodyText &&\n !projectedBody.children.length &&\n !projectedBody.innerHTML &&\n !alertActions.children.length\n }\">\n <div class=\"alert-heading\">\n <ng-content select=\"[heading]\"></ng-content>\n <span *ngIf=\"headingText\">{{ headingText }}</span>\n </div>\n <div\n #bodyContent\n class=\"alert-body\"\n [hidden]=\"!bodyContent.children.length\">\n <div *ngIf=\"bodyText\">{{ bodyText }}</div>\n\n <div\n #projectedBody\n [hidden]=\"!projectedBody.children.length && !projectedBody.innerHTML\">\n <ng-content></ng-content>\n </div>\n\n <div\n #alertActions\n [hidden]=\"!alertActions.children.length\"\n class=\"alert-actions\">\n <ng-content select=\"[action]\"></ng-content>\n </div>\n </div>\n </div>\n\n <a\n *ngIf=\"dismissible\"\n class=\"close-icon\"\n (click)=\"closeAlert()\"\n data-bs-dismiss=\"alert\"\n aria-label=\"Close\">\n <span impdc-icon name=\"times\" theme=\"regular\"></span>\n </a>\n</div>\n", styles: [".impdc.alert{display:flex;gap:1.2rem}.impdc.alert .alert-icon,.impdc.alert .close-icon{display:flex;width:2rem;height:2rem;font-size:1.6rem;line-height:2rem;align-items:center;justify-content:center}.impdc.alert .alert-content{flex:1;display:flex;flex-direction:column;gap:.8rem}.impdc.alert .alert-content .alert-heading{display:flex;align-items:center;gap:1.2rem}.impdc.alert .alert-content .alert-body{display:flex;flex-direction:column;gap:1.6rem;font-size:1.4rem;font-weight:400;line-height:2rem}.impdc.alert .alert-content .alert-body .alert-actions{display:flex;gap:2.8rem}.impdc.alert .alert-content .alert-body .alert-actions ::ng-deep a{font-size:1.4rem;font-weight:500;line-height:2rem;text-decoration-line:underline;color:var(--impartner-hex-alert-action-color)}.impdc.alert .alert-content-heading-only{gap:0}.impdc.alert .close-icon{cursor:pointer;color:var(--impartner-hex-btn-close-color)}\n"] }]
|
|
8720
|
+
args: [{ selector: 'impdc-alert, [impdc-alert]', template: "<div *ngIf=\"show\" class=\"impdc alert\" [ngClass]=\"componentClasses\">\n <ng-container *ngIf=\"!hideIcon\">\n <span #alertIcon [hidden]=\"!alertIcon.children.length\" class=\"alert-icon\">\n <ng-content select=\"[icon]\"></ng-content>\n </span>\n <span *ngIf=\"!alertIcon.children.length\" class=\"alert-icon\">\n <span impdc-icon [name]=\"themeIconName\"></span>\n </span>\n </ng-container>\n\n <div\n class=\"alert-content\"\n [ngClass]=\"{\n 'alert-content-heading-only':\n !bodyText &&\n !projectedBody.children.length &&\n !projectedBody.innerHTML &&\n !alertActions.children.length\n }\">\n <div class=\"alert-heading\">\n <ng-content select=\"[heading]\"></ng-content>\n <span *ngIf=\"headingText\">{{ headingText }}</span>\n </div>\n <div\n #bodyContent\n class=\"alert-body\"\n [hidden]=\"!bodyContent.children.length\">\n <div *ngIf=\"bodyText\">{{ bodyText }}</div>\n\n <div\n #projectedBody\n [hidden]=\"!projectedBody.children.length && !projectedBody.innerHTML\">\n <ng-content></ng-content>\n </div>\n\n <div\n #alertActions\n [hidden]=\"!alertActions.children.length\"\n class=\"alert-actions\">\n <ng-content select=\"[action]\"></ng-content>\n </div>\n </div>\n </div>\n\n <a\n *ngIf=\"dismissible\"\n class=\"close-icon\"\n (click)=\"closeAlert()\"\n data-bs-dismiss=\"alert\"\n aria-label=\"Close\">\n <span impdc-icon name=\"times\" theme=\"regular\"></span>\n </a>\n</div>\n", styles: [".impdc.alert{display:flex;gap:1.2rem}.impdc.alert .alert-icon,.impdc.alert .close-icon{display:flex;width:2rem;height:2rem;font-size:1.6rem;line-height:2rem;align-items:center;justify-content:center}.impdc.alert .alert-content{flex:1;display:flex;flex-direction:column;gap:.8rem}.impdc.alert .alert-content .alert-heading{display:flex;align-items:center;gap:1.2rem}.impdc.alert .alert-content .alert-body{display:flex;flex-direction:column;gap:1.6rem;font-size:1.4rem;font-weight:400;line-height:2rem}.impdc.alert .alert-content .alert-body .alert-actions{display:flex;gap:2.8rem}.impdc.alert .alert-content .alert-body .alert-actions ::ng-deep a{font-size:1.4rem;font-weight:500;line-height:2rem;text-decoration-line:underline;color:var(--impartner-hex-alert-action-color)}.impdc.alert .alert-content-heading-only{gap:0}.impdc.alert .close-icon{cursor:pointer;color:var(--impartner-hex-btn-close-color)}.impdc.alert.borderless{border:none;background-color:transparent}\n"] }]
|
|
8558
8721
|
}], propDecorators: { theme: [{
|
|
8559
8722
|
type: Input
|
|
8560
8723
|
}], show: [{
|
|
@@ -8567,6 +8730,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
8567
8730
|
type: Input
|
|
8568
8731
|
}], hideIcon: [{
|
|
8569
8732
|
type: Input
|
|
8733
|
+
}], borderless: [{
|
|
8734
|
+
type: Input
|
|
8570
8735
|
}], dismissible: [{
|
|
8571
8736
|
type: Input
|
|
8572
8737
|
}], dismiss: [{
|
|
@@ -8981,7 +9146,10 @@ class FileUploadModule {
|
|
|
8981
9146
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8982
9147
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.1", ngImport: i0, type: FileUploadModule, declarations: [FileDropDirective,
|
|
8983
9148
|
FileUploadComponent,
|
|
8984
|
-
HumanReadableByteSizePipe], imports: [CommonModule, FormsModule, ButtonModule, IconModule], exports: [IconModule,
|
|
9149
|
+
HumanReadableByteSizePipe], imports: [CommonModule, FormsModule, ButtonModule, IconModule], exports: [IconModule,
|
|
9150
|
+
FileDropDirective,
|
|
9151
|
+
FileUploadComponent,
|
|
9152
|
+
HumanReadableByteSizePipe] }); }
|
|
8985
9153
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FileUploadModule, imports: [CommonModule, FormsModule, ButtonModule, IconModule, IconModule] }); }
|
|
8986
9154
|
}
|
|
8987
9155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FileUploadModule, decorators: [{
|
|
@@ -8993,7 +9161,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
8993
9161
|
FileUploadComponent,
|
|
8994
9162
|
HumanReadableByteSizePipe
|
|
8995
9163
|
],
|
|
8996
|
-
exports: [
|
|
9164
|
+
exports: [
|
|
9165
|
+
IconModule,
|
|
9166
|
+
FileDropDirective,
|
|
9167
|
+
FileUploadComponent,
|
|
9168
|
+
HumanReadableByteSizePipe
|
|
9169
|
+
]
|
|
8997
9170
|
}]
|
|
8998
9171
|
}], ctorParameters: () => [] });
|
|
8999
9172
|
|
|
@@ -9308,7 +9481,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
9308
9481
|
}]
|
|
9309
9482
|
}] } });
|
|
9310
9483
|
|
|
9311
|
-
const
|
|
9484
|
+
const DEFAULT_USE_24HR_TIME_LABEL = 'Use 24-hour format';
|
|
9312
9485
|
const DEFAULT_MIN_DATE = {
|
|
9313
9486
|
year: 1900,
|
|
9314
9487
|
month: 1,
|
|
@@ -9456,7 +9629,7 @@ class DatetimePickerComponent extends _DatetimePickerComponentBase {
|
|
|
9456
9629
|
this.formGroup = inject(FormBuilder).group({
|
|
9457
9630
|
date: new FormControl(null),
|
|
9458
9631
|
time: new FormControl(null),
|
|
9459
|
-
|
|
9632
|
+
use24hrTime: new FormControl(false, { nonNullable: true })
|
|
9460
9633
|
});
|
|
9461
9634
|
this.cvaOnChange = (_) => { };
|
|
9462
9635
|
this.cvaOnTouched = () => { };
|
|
@@ -9466,7 +9639,7 @@ class DatetimePickerComponent extends _DatetimePickerComponentBase {
|
|
|
9466
9639
|
/**
|
|
9467
9640
|
* Label to be displayed with time controls to allow the user to input 24-hour or meridian-based (AM, PM) time.
|
|
9468
9641
|
*/
|
|
9469
|
-
this.meridianToggleLabel =
|
|
9642
|
+
this.meridianToggleLabel = DEFAULT_USE_24HR_TIME_LABEL;
|
|
9470
9643
|
/**
|
|
9471
9644
|
* Set whether to display controls for selecting a time value in addition to the date.
|
|
9472
9645
|
*/
|
|
@@ -9608,11 +9781,11 @@ class DatetimePickerComponent extends _DatetimePickerComponentBase {
|
|
|
9608
9781
|
return this._focused;
|
|
9609
9782
|
}
|
|
9610
9783
|
/* Internals */
|
|
9611
|
-
get
|
|
9612
|
-
return this.formGroup.getRawValue().
|
|
9784
|
+
get use24hrTime() {
|
|
9785
|
+
return this.formGroup.getRawValue().use24hrTime;
|
|
9613
9786
|
}
|
|
9614
|
-
get
|
|
9615
|
-
return this.meridianToggleLabel?.trim() ||
|
|
9787
|
+
get use24hrTimeLabelText() {
|
|
9788
|
+
return this.meridianToggleLabel?.trim() || DEFAULT_USE_24HR_TIME_LABEL;
|
|
9616
9789
|
}
|
|
9617
9790
|
handleFocusOut(evt) {
|
|
9618
9791
|
if (!evt.relatedTarget ||
|
|
@@ -9659,7 +9832,7 @@ class DatetimePickerComponent extends _DatetimePickerComponentBase {
|
|
|
9659
9832
|
provide: ImpdcFormFieldControl,
|
|
9660
9833
|
useExisting: DatetimePickerComponent
|
|
9661
9834
|
}
|
|
9662
|
-
], viewQueries: [{ propertyName: "ngbDatepicker", first: true, predicate: NgbDatepicker, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<impdc-datepicker-template-host #templateHost></impdc-datepicker-template-host>\n<div\n [formGroup]=\"formGroup\"\n class=\"d-flex\"\n [ngClass]=\"{\n 'flex-column': withTime && timeLayout.layout === 'stacked'\n }\"\n (focusout)=\"handleFocusOut($event)\">\n <ngb-datepicker\n class=\"impdc-datetime-picker--datepicker\"\n formControlName=\"date\"\n [dayTemplate]=\"templateHost.dayTemplateRef\"\n [contentTemplate]=\"templateHost.contentTemplateRef\"\n [showWeekNumbers]=\"false\"\n outsideDays=\"visible\"\n [weekdays]=\"NgTranslationWidth.Abbreviated\"\n [markDisabled]=\"markDateDisabledFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\" />\n @if (withTime) {\n <div\n class=\"impdc-datetime-picker--timepicker d-flex flex-column gap-4 p-4 w-100\"\n [ngClass]=\"{\n 'border-0': !timeLayout.border,\n 'border-gray-200': timeLayout.border,\n 'mt-2': timeLayout.layout === 'stacked',\n 'border-top': timeLayout.border && timeLayout.layout === 'stacked',\n 'ms-2': timeLayout.layout === 'inline',\n 'border-start': timeLayout.border && timeLayout.layout === 'inline'\n }\">\n <impdc-checkbox\n [label]=\"
|
|
9835
|
+
], viewQueries: [{ propertyName: "ngbDatepicker", first: true, predicate: NgbDatepicker, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<impdc-datepicker-template-host #templateHost></impdc-datepicker-template-host>\n<div\n [formGroup]=\"formGroup\"\n class=\"d-flex\"\n [ngClass]=\"{\n 'flex-column': withTime && timeLayout.layout === 'stacked'\n }\"\n (focusout)=\"handleFocusOut($event)\">\n <ngb-datepicker\n class=\"impdc-datetime-picker--datepicker\"\n formControlName=\"date\"\n [dayTemplate]=\"templateHost.dayTemplateRef\"\n [contentTemplate]=\"templateHost.contentTemplateRef\"\n [showWeekNumbers]=\"false\"\n outsideDays=\"visible\"\n [weekdays]=\"NgTranslationWidth.Abbreviated\"\n [markDisabled]=\"markDateDisabledFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\" />\n @if (withTime) {\n <div\n class=\"impdc-datetime-picker--timepicker d-flex flex-column gap-4 p-4 w-100\"\n [ngClass]=\"{\n 'border-0': !timeLayout.border,\n 'border-gray-200': timeLayout.border,\n 'mt-2': timeLayout.layout === 'stacked',\n 'border-top': timeLayout.border && timeLayout.layout === 'stacked',\n 'ms-2': timeLayout.layout === 'inline',\n 'border-start': timeLayout.border && timeLayout.layout === 'inline'\n }\">\n <impdc-checkbox\n [label]=\"use24hrTimeLabelText\"\n formControlName=\"use24hrTime\"\n [isSwitch]=\"true\"\n layout=\"check-end\" />\n <ngb-timepicker\n formControlName=\"time\"\n [meridian]=\"!use24hrTime\"\n [seconds]=\"false\"\n [spinners]=\"false\"\n size=\"medium\"></ngb-timepicker>\n </div>\n }\n</div>\n", styles: [":host{display:block}ngb-datepicker{border:0}ngb-timepicker{font-size:var(--impd-font-size-sm)}::ng-deep .ngb-dp-header{display:none}::ng-deep .ngb-tp-spacer{width:var(--impd-size-4)}.impdc-datetime-picker--datepicker,.impdc-datetime-picker--timepicker{max-width:312px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NgbDatepickerModule }, { kind: "component", type: i3.NgbDatepicker, selector: "ngb-datepicker", inputs: ["contentTemplate", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "maxDate", "minDate", "navigation", "outsideDays", "showWeekNumbers", "startDate", "weekdays"], outputs: ["navigate", "dateSelect"], exportAs: ["ngbDatepicker"] }, { kind: "ngmodule", type: NgbTimepickerModule }, { kind: "component", type: i3.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"], exportAs: ["ngbTimepicker"] }, { kind: "component", type: DatepickerTemplateHostComponent, selector: "impdc-datepicker-template-host" }, { kind: "ngmodule", type: ImpdcFormsModule }, { kind: "directive", type: RootFormGroupDirective, selector: "[formGroup]" }, { kind: "component", type: CheckboxComponent, selector: "impdc-checkbox", inputs: ["tabIndex", "id", "label", "description", "isSwitch", "switchIcons", "inline", "layout", "checked", "indeterminate", "disabled", "errorStateMatcher", "required"], outputs: ["change", "indeterminateChange"], exportAs: ["impdcCheckControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9663
9836
|
}
|
|
9664
9837
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DatetimePickerComponent, decorators: [{
|
|
9665
9838
|
type: Component,
|
|
@@ -9689,7 +9862,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
9689
9862
|
provide: ImpdcFormFieldControl,
|
|
9690
9863
|
useExisting: DatetimePickerComponent
|
|
9691
9864
|
}
|
|
9692
|
-
], template: "<impdc-datepicker-template-host #templateHost></impdc-datepicker-template-host>\n<div\n [formGroup]=\"formGroup\"\n class=\"d-flex\"\n [ngClass]=\"{\n 'flex-column': withTime && timeLayout.layout === 'stacked'\n }\"\n (focusout)=\"handleFocusOut($event)\">\n <ngb-datepicker\n class=\"impdc-datetime-picker--datepicker\"\n formControlName=\"date\"\n [dayTemplate]=\"templateHost.dayTemplateRef\"\n [contentTemplate]=\"templateHost.contentTemplateRef\"\n [showWeekNumbers]=\"false\"\n outsideDays=\"visible\"\n [weekdays]=\"NgTranslationWidth.Abbreviated\"\n [markDisabled]=\"markDateDisabledFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\" />\n @if (withTime) {\n <div\n class=\"impdc-datetime-picker--timepicker d-flex flex-column gap-4 p-4 w-100\"\n [ngClass]=\"{\n 'border-0': !timeLayout.border,\n 'border-gray-200': timeLayout.border,\n 'mt-2': timeLayout.layout === 'stacked',\n 'border-top': timeLayout.border && timeLayout.layout === 'stacked',\n 'ms-2': timeLayout.layout === 'inline',\n 'border-start': timeLayout.border && timeLayout.layout === 'inline'\n }\">\n <impdc-checkbox\n [label]=\"
|
|
9865
|
+
], template: "<impdc-datepicker-template-host #templateHost></impdc-datepicker-template-host>\n<div\n [formGroup]=\"formGroup\"\n class=\"d-flex\"\n [ngClass]=\"{\n 'flex-column': withTime && timeLayout.layout === 'stacked'\n }\"\n (focusout)=\"handleFocusOut($event)\">\n <ngb-datepicker\n class=\"impdc-datetime-picker--datepicker\"\n formControlName=\"date\"\n [dayTemplate]=\"templateHost.dayTemplateRef\"\n [contentTemplate]=\"templateHost.contentTemplateRef\"\n [showWeekNumbers]=\"false\"\n outsideDays=\"visible\"\n [weekdays]=\"NgTranslationWidth.Abbreviated\"\n [markDisabled]=\"markDateDisabledFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\" />\n @if (withTime) {\n <div\n class=\"impdc-datetime-picker--timepicker d-flex flex-column gap-4 p-4 w-100\"\n [ngClass]=\"{\n 'border-0': !timeLayout.border,\n 'border-gray-200': timeLayout.border,\n 'mt-2': timeLayout.layout === 'stacked',\n 'border-top': timeLayout.border && timeLayout.layout === 'stacked',\n 'ms-2': timeLayout.layout === 'inline',\n 'border-start': timeLayout.border && timeLayout.layout === 'inline'\n }\">\n <impdc-checkbox\n [label]=\"use24hrTimeLabelText\"\n formControlName=\"use24hrTime\"\n [isSwitch]=\"true\"\n layout=\"check-end\" />\n <ngb-timepicker\n formControlName=\"time\"\n [meridian]=\"!use24hrTime\"\n [seconds]=\"false\"\n [spinners]=\"false\"\n size=\"medium\"></ngb-timepicker>\n </div>\n }\n</div>\n", styles: [":host{display:block}ngb-datepicker{border:0}ngb-timepicker{font-size:var(--impd-font-size-sm)}::ng-deep .ngb-dp-header{display:none}::ng-deep .ngb-tp-spacer{width:var(--impd-size-4)}.impdc-datetime-picker--datepicker,.impdc-datetime-picker--timepicker{max-width:312px}\n"] }]
|
|
9693
9866
|
}], ctorParameters: () => [{ type: ErrorStateMatcher }, { type: undefined, decorators: [{
|
|
9694
9867
|
type: Optional
|
|
9695
9868
|
}, {
|