@impartner/design-components 2.1.1 → 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/form-field/controls/select/select.component.mjs +4 -1
- 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/esm2022/lib/text-highlight/text-highlight.component.mjs +9 -4
- package/fesm2022/impartner-design-components.mjs +226 -45
- 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 = [
|
|
@@ -3177,9 +3177,14 @@ class TextHighlightComponent {
|
|
|
3177
3177
|
this.result = [];
|
|
3178
3178
|
}
|
|
3179
3179
|
ngOnChanges() {
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3180
|
+
if (this.search) {
|
|
3181
|
+
const escapedText = this._escapeTextForRegExp(this.search);
|
|
3182
|
+
const regEx = new RegExp(`(${escapedText})`, `g${this.exact ? '' : 'i'}`);
|
|
3183
|
+
this.result = this.text.split(regEx);
|
|
3184
|
+
}
|
|
3185
|
+
else {
|
|
3186
|
+
this.result = [this.text];
|
|
3187
|
+
}
|
|
3183
3188
|
}
|
|
3184
3189
|
_escapeTextForRegExp(text) {
|
|
3185
3190
|
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
|
|
@@ -3525,7 +3530,6 @@ const ROWS_PER_PAGE_GROUP = [
|
|
|
3525
3530
|
label: '100'
|
|
3526
3531
|
}
|
|
3527
3532
|
];
|
|
3528
|
-
const SORT_COLUMN_INDEX = 0;
|
|
3529
3533
|
const DEBOUNCE_TIME = 500;
|
|
3530
3534
|
|
|
3531
3535
|
const IS_SELECTED_PROPERTY = 'isSelected';
|
|
@@ -5252,6 +5256,8 @@ class _SelectComponentBase extends __SelectComponentBase {
|
|
|
5252
5256
|
if (this.ngControl) {
|
|
5253
5257
|
this.ngControl.valueAccessor = this;
|
|
5254
5258
|
}
|
|
5259
|
+
// idempotent assignment - respects arbitrary ID set via attr if present, otherwise falls back to auto UUID;
|
|
5260
|
+
// also triggers stateChanges pulse for parent form-field component
|
|
5255
5261
|
this.id = this.id;
|
|
5256
5262
|
this.tabIndex = parseInt(tabIndex ?? '') || 0;
|
|
5257
5263
|
}
|
|
@@ -5405,6 +5411,7 @@ class _SelectComponentBase extends __SelectComponentBase {
|
|
|
5405
5411
|
clearSelection() {
|
|
5406
5412
|
this.value = null;
|
|
5407
5413
|
this.focus();
|
|
5414
|
+
this._propagateChanges();
|
|
5408
5415
|
}
|
|
5409
5416
|
handleSearchSubmit(evt) {
|
|
5410
5417
|
evt.preventDefault();
|
|
@@ -7261,6 +7268,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7261
7268
|
type: Output
|
|
7262
7269
|
}] } });
|
|
7263
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
|
+
*/
|
|
7264
7276
|
class TableBulkActionsComponent {
|
|
7265
7277
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TableBulkActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7266
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"] }); }
|
|
@@ -7342,9 +7354,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7342
7354
|
type: Input
|
|
7343
7355
|
}] } });
|
|
7344
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
|
+
|
|
7345
7395
|
/**
|
|
7346
|
-
*
|
|
7347
|
-
* 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.
|
|
7348
7397
|
*/
|
|
7349
7398
|
class TableDirective {
|
|
7350
7399
|
constructor() {
|
|
@@ -7352,13 +7401,24 @@ class TableDirective {
|
|
|
7352
7401
|
* Stripes every other row in a slightly darker background color.
|
|
7353
7402
|
*/
|
|
7354
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';
|
|
7355
7412
|
this.classTable = true;
|
|
7356
7413
|
}
|
|
7357
7414
|
get classTableStriped() {
|
|
7358
7415
|
return this.striped;
|
|
7359
7416
|
}
|
|
7417
|
+
get classTableHover() {
|
|
7418
|
+
return this.hover;
|
|
7419
|
+
}
|
|
7360
7420
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
7361
|
-
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 }); }
|
|
7362
7422
|
}
|
|
7363
7423
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TableDirective, decorators: [{
|
|
7364
7424
|
type: Directive,
|
|
@@ -7367,12 +7427,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7367
7427
|
}]
|
|
7368
7428
|
}], propDecorators: { striped: [{
|
|
7369
7429
|
type: Input
|
|
7430
|
+
}], hover: [{
|
|
7431
|
+
type: Input
|
|
7432
|
+
}], layout: [{
|
|
7433
|
+
type: HostBinding,
|
|
7434
|
+
args: ['style.table-layout']
|
|
7435
|
+
}, {
|
|
7436
|
+
type: Input
|
|
7370
7437
|
}], classTable: [{
|
|
7371
7438
|
type: HostBinding,
|
|
7372
7439
|
args: ['class.table']
|
|
7373
7440
|
}], classTableStriped: [{
|
|
7374
7441
|
type: HostBinding,
|
|
7375
7442
|
args: ['class.table-striped']
|
|
7443
|
+
}], classTableHover: [{
|
|
7444
|
+
type: HostBinding,
|
|
7445
|
+
args: ['class.table-hover']
|
|
7376
7446
|
}] } });
|
|
7377
7447
|
|
|
7378
7448
|
class TableInjectComponentDirective {
|
|
@@ -7461,9 +7531,14 @@ class TableComponent {
|
|
|
7461
7531
|
}
|
|
7462
7532
|
/** @ignore */
|
|
7463
7533
|
get tableSpan() {
|
|
7464
|
-
|
|
7465
|
-
|
|
7466
|
-
|
|
7534
|
+
let cols = this.columnDefs.length;
|
|
7535
|
+
if (this.canSelectRows) {
|
|
7536
|
+
cols++;
|
|
7537
|
+
}
|
|
7538
|
+
if (this.collapsibleTemplate) {
|
|
7539
|
+
cols++;
|
|
7540
|
+
}
|
|
7541
|
+
return cols;
|
|
7467
7542
|
}
|
|
7468
7543
|
constructor(_datePipe, _percentPipe, _decmialPipe, _changeDetectorRef, _branded) {
|
|
7469
7544
|
this._datePipe = _datePipe;
|
|
@@ -7487,6 +7562,14 @@ class TableComponent {
|
|
|
7487
7562
|
* Whether the table is striped.
|
|
7488
7563
|
*/
|
|
7489
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';
|
|
7490
7573
|
/**
|
|
7491
7574
|
* The placeholder text and empty value display text for `<impdc-select>` instances in cells with a `ITableColumnDef` `columnType` = `SingleSelect` or `MultiSelect`.
|
|
7492
7575
|
*/
|
|
@@ -7494,7 +7577,7 @@ class TableComponent {
|
|
|
7494
7577
|
/**
|
|
7495
7578
|
* The `columnDefs` index of the currently sorted column.
|
|
7496
7579
|
*/
|
|
7497
|
-
this.sortColumnIndex =
|
|
7580
|
+
this.sortColumnIndex = 0;
|
|
7498
7581
|
/**
|
|
7499
7582
|
* The direction of the currently sorted column.
|
|
7500
7583
|
*/
|
|
@@ -7503,6 +7586,18 @@ class TableComponent {
|
|
|
7503
7586
|
* The table row data as an array of `ITableRowItem`.
|
|
7504
7587
|
*/
|
|
7505
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';
|
|
7506
7601
|
/**
|
|
7507
7602
|
* Event emitted when one or multiple rows are selected. Emits `(string | number)[]` payload.
|
|
7508
7603
|
*/
|
|
@@ -7519,15 +7614,19 @@ class TableComponent {
|
|
|
7519
7614
|
* Event emitted when a row action is clicked. Emits an `ITableRowActionPayload` payload.
|
|
7520
7615
|
*/
|
|
7521
7616
|
this.rowActionClick = new EventEmitter();
|
|
7522
|
-
/** @ignore */
|
|
7523
|
-
this.paginationComponent = undefined;
|
|
7524
|
-
/** @ignore */
|
|
7525
|
-
this.bulkActions = undefined;
|
|
7526
7617
|
/**
|
|
7527
|
-
* 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`.
|
|
7528
7619
|
* Not emitted if column definition property `disabled` = `true`. Emits `ITableEventPayload` payload.
|
|
7529
7620
|
*/
|
|
7530
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;
|
|
7531
7630
|
/** @ignore */
|
|
7532
7631
|
this.cellType = TableColumnType;
|
|
7533
7632
|
/** @ignore */
|
|
@@ -7556,6 +7655,7 @@ class TableComponent {
|
|
|
7556
7655
|
}
|
|
7557
7656
|
}
|
|
7558
7657
|
}
|
|
7658
|
+
/** @ignore */
|
|
7559
7659
|
getMailToValue(columnIndex, currentRow) {
|
|
7560
7660
|
const { columnType, truncated: truncated } = this._getColumnDefByIndex(columnIndex);
|
|
7561
7661
|
let value = this._getValue(columnIndex, currentRow);
|
|
@@ -7565,6 +7665,7 @@ class TableComponent {
|
|
|
7565
7665
|
value = value ? `mailto:${value}` : value;
|
|
7566
7666
|
return String(value);
|
|
7567
7667
|
}
|
|
7668
|
+
/** @ignore */
|
|
7568
7669
|
getStringValue(columnIndex, currentRow) {
|
|
7569
7670
|
const value = this.getValue(columnIndex, currentRow);
|
|
7570
7671
|
if (Array.isArray(value)) {
|
|
@@ -7572,6 +7673,7 @@ class TableComponent {
|
|
|
7572
7673
|
}
|
|
7573
7674
|
return String(value);
|
|
7574
7675
|
}
|
|
7676
|
+
/** @ignore */
|
|
7575
7677
|
getValue(columnIndex, currentRow) {
|
|
7576
7678
|
const { columnType, truncated: truncated } = this._getColumnDefByIndex(columnIndex);
|
|
7577
7679
|
let value = this._getValue(columnIndex, currentRow);
|
|
@@ -7633,6 +7735,7 @@ class TableComponent {
|
|
|
7633
7735
|
}
|
|
7634
7736
|
return String(value);
|
|
7635
7737
|
}
|
|
7738
|
+
/** @ignore */
|
|
7636
7739
|
getRawValue(columnIndex, currentRow) {
|
|
7637
7740
|
const { field } = this._getColumnDefByIndex(columnIndex);
|
|
7638
7741
|
if (!field) {
|
|
@@ -7640,19 +7743,24 @@ class TableComponent {
|
|
|
7640
7743
|
}
|
|
7641
7744
|
return currentRow[field] || '';
|
|
7642
7745
|
}
|
|
7746
|
+
/** @ignore */
|
|
7643
7747
|
getCellColor(columnDefinition, item) {
|
|
7644
7748
|
return TableThemeHelper.getCellColor(columnDefinition, item);
|
|
7645
7749
|
}
|
|
7750
|
+
/** @ignore */
|
|
7646
7751
|
getTheme(columnDefinition, item) {
|
|
7647
7752
|
return (TableThemeHelper.getTheme(columnDefinition, item) ||
|
|
7648
7753
|
ComponentTheme.Primary);
|
|
7649
7754
|
}
|
|
7755
|
+
/** @ignore */
|
|
7650
7756
|
isSortedColumn(columnIndex) {
|
|
7651
7757
|
return columnIndex === this.sortColumnIndex;
|
|
7652
7758
|
}
|
|
7759
|
+
/** @ignore */
|
|
7653
7760
|
isRowSelected(id) {
|
|
7654
7761
|
return this.selectedRowIds.includes(id);
|
|
7655
7762
|
}
|
|
7763
|
+
/** @ignore */
|
|
7656
7764
|
handleSelectAll(event) {
|
|
7657
7765
|
if (!this.canSelectAllRows || !this.tableData) {
|
|
7658
7766
|
return;
|
|
@@ -7667,6 +7775,7 @@ class TableComponent {
|
|
|
7667
7775
|
this.allSelected = this.selectedRowIds.length >= this.tableData.length;
|
|
7668
7776
|
this.rowSelect.emit(this.selectedRowIds);
|
|
7669
7777
|
}
|
|
7778
|
+
/** @ignore */
|
|
7670
7779
|
handleSort(columnIndex) {
|
|
7671
7780
|
if (columnIndex === this.sortColumnIndex) {
|
|
7672
7781
|
this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';
|
|
@@ -7682,6 +7791,7 @@ class TableComponent {
|
|
|
7682
7791
|
direction: this.sortDirection
|
|
7683
7792
|
});
|
|
7684
7793
|
}
|
|
7794
|
+
/** @ignore */
|
|
7685
7795
|
handleRowSelect(event, rowId) {
|
|
7686
7796
|
if (!this.canSelectRows) {
|
|
7687
7797
|
return;
|
|
@@ -7701,6 +7811,7 @@ class TableComponent {
|
|
|
7701
7811
|
this.allSelected = this.selectedRowIds.length >= this.tableData.length;
|
|
7702
7812
|
this.rowSelect.emit(this.selectedRowIds);
|
|
7703
7813
|
}
|
|
7814
|
+
/** @ignore */
|
|
7704
7815
|
handleCellValueChange(columnIndex, rowIndex, value) {
|
|
7705
7816
|
const { field, columnType } = this._getColumnDefByIndex(columnIndex);
|
|
7706
7817
|
let currentValue = value;
|
|
@@ -7716,12 +7827,16 @@ class TableComponent {
|
|
|
7716
7827
|
});
|
|
7717
7828
|
this._changeDetectorRef.detectChanges();
|
|
7718
7829
|
}
|
|
7719
|
-
|
|
7830
|
+
/** @ignore */
|
|
7831
|
+
handleLinkClick(columnIndex, item, event) {
|
|
7832
|
+
event.preventDefault();
|
|
7833
|
+
event.stopPropagation();
|
|
7720
7834
|
this.linkClick.emit({
|
|
7721
7835
|
item,
|
|
7722
7836
|
columnIndex
|
|
7723
7837
|
});
|
|
7724
7838
|
}
|
|
7839
|
+
/** @ignore */
|
|
7725
7840
|
handleActionClick(columnIndex, item, actionApiName) {
|
|
7726
7841
|
this.rowActionClick.emit({
|
|
7727
7842
|
item,
|
|
@@ -7732,6 +7847,21 @@ class TableComponent {
|
|
|
7732
7847
|
columnDefIsActions(columnDef) {
|
|
7733
7848
|
return columnDef.columnType === TableColumnType.Actions;
|
|
7734
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
|
+
}
|
|
7735
7865
|
_getColumnDefByIndex(columnIndex) {
|
|
7736
7866
|
return this.columnDefs[columnIndex];
|
|
7737
7867
|
}
|
|
@@ -7748,11 +7878,11 @@ class TableComponent {
|
|
|
7748
7878
|
}
|
|
7749
7879
|
}
|
|
7750
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 }); }
|
|
7751
|
-
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"] }] }); }
|
|
7752
7882
|
}
|
|
7753
7883
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TableComponent, decorators: [{
|
|
7754
7884
|
type: Component,
|
|
7755
|
-
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"] }]
|
|
7756
7886
|
}], ctorParameters: () => [{ type: i1.DatePipe }, { type: i1.PercentPipe }, { type: i1.DecimalPipe }, { type: i0.ChangeDetectorRef }, { type: BrandedDirective, decorators: [{
|
|
7757
7887
|
type: Optional
|
|
7758
7888
|
}, {
|
|
@@ -7763,6 +7893,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7763
7893
|
type: Input
|
|
7764
7894
|
}], striped: [{
|
|
7765
7895
|
type: Input
|
|
7896
|
+
}], hover: [{
|
|
7897
|
+
type: Input
|
|
7898
|
+
}], layout: [{
|
|
7899
|
+
type: Input
|
|
7766
7900
|
}], canSelectRows: [{
|
|
7767
7901
|
type: Input
|
|
7768
7902
|
}], canSelectAllRows: [{
|
|
@@ -7779,6 +7913,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7779
7913
|
type: Input
|
|
7780
7914
|
}], customCellComponents: [{
|
|
7781
7915
|
type: Input
|
|
7916
|
+
}], collapsibleTemplate: [{
|
|
7917
|
+
type: Input
|
|
7918
|
+
}], collapsibleTrigger: [{
|
|
7919
|
+
type: Input
|
|
7782
7920
|
}], rowSelect: [{
|
|
7783
7921
|
type: Output
|
|
7784
7922
|
}], sortBy: [{
|
|
@@ -7787,14 +7925,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7787
7925
|
type: Output
|
|
7788
7926
|
}], rowActionClick: [{
|
|
7789
7927
|
type: Output
|
|
7928
|
+
}], inputChange: [{
|
|
7929
|
+
type: Output
|
|
7930
|
+
}], rowCollapseChange: [{
|
|
7931
|
+
type: Output
|
|
7790
7932
|
}], paginationComponent: [{
|
|
7791
7933
|
type: ContentChild,
|
|
7792
7934
|
args: [PaginationComponent]
|
|
7793
7935
|
}], bulkActions: [{
|
|
7794
7936
|
type: ContentChild,
|
|
7795
7937
|
args: [TableBulkActionsComponent]
|
|
7796
|
-
}], inputChange: [{
|
|
7797
|
-
type: Output
|
|
7798
7938
|
}] } });
|
|
7799
7939
|
|
|
7800
7940
|
class SpinnerModule {
|
|
@@ -7814,7 +7954,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7814
7954
|
class TableModule {
|
|
7815
7955
|
constructor() { }
|
|
7816
7956
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7817
|
-
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,
|
|
7818
7959
|
TableComponent,
|
|
7819
7960
|
ColumnHeadingComponent,
|
|
7820
7961
|
TableInjectComponentDirective,
|
|
@@ -7828,7 +7969,8 @@ class TableModule {
|
|
|
7828
7969
|
SpinnerModule,
|
|
7829
7970
|
BadgeModule,
|
|
7830
7971
|
BrandingModule,
|
|
7831
|
-
NgbDropdownModule
|
|
7972
|
+
NgbDropdownModule,
|
|
7973
|
+
NgbCollapseModule], exports: [ButtonModule,
|
|
7832
7974
|
TableDirective,
|
|
7833
7975
|
ColumnHeadingComponent,
|
|
7834
7976
|
TableBulkActionsComponent,
|
|
@@ -7847,7 +7989,8 @@ class TableModule {
|
|
|
7847
7989
|
SpinnerModule,
|
|
7848
7990
|
BadgeModule,
|
|
7849
7991
|
BrandingModule,
|
|
7850
|
-
NgbDropdownModule,
|
|
7992
|
+
NgbDropdownModule,
|
|
7993
|
+
NgbCollapseModule, ButtonModule,
|
|
7851
7994
|
PaginationModule,
|
|
7852
7995
|
IconModule,
|
|
7853
7996
|
BrandingModule] }); }
|
|
@@ -7865,9 +8008,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
7865
8008
|
SpinnerModule,
|
|
7866
8009
|
BadgeModule,
|
|
7867
8010
|
BrandingModule,
|
|
7868
|
-
NgbDropdownModule
|
|
8011
|
+
NgbDropdownModule,
|
|
8012
|
+
NgbCollapseModule
|
|
7869
8013
|
],
|
|
7870
8014
|
declarations: [
|
|
8015
|
+
CollapseMonitorDirective,
|
|
7871
8016
|
TableDirective,
|
|
7872
8017
|
TableComponent,
|
|
7873
8018
|
ColumnHeadingComponent,
|
|
@@ -7968,6 +8113,10 @@ class ModalComponent {
|
|
|
7968
8113
|
* Shows a backdrop behind the Modal.
|
|
7969
8114
|
*/
|
|
7970
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;
|
|
7971
8120
|
/**
|
|
7972
8121
|
* Event emitted when the Modal content is dismissed.
|
|
7973
8122
|
*/
|
|
@@ -8109,7 +8258,7 @@ class ModalComponent {
|
|
|
8109
8258
|
this._closed$.next();
|
|
8110
8259
|
}
|
|
8111
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 }); }
|
|
8112
|
-
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"] }] }); }
|
|
8113
8262
|
}
|
|
8114
8263
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: ModalComponent, decorators: [{
|
|
8115
8264
|
type: Component,
|
|
@@ -8120,7 +8269,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
8120
8269
|
'[class.show]': 'shown',
|
|
8121
8270
|
'[class.dismissable]': 'dismissable',
|
|
8122
8271
|
tabindex: '-1'
|
|
8123
|
-
}, 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"] }]
|
|
8124
8273
|
}], ctorParameters: () => [{ type: InteractionService }, { type: i0.ElementRef }], propDecorators: { _dialogElementRef: [{
|
|
8125
8274
|
type: ViewChild,
|
|
8126
8275
|
args: ['dialogElement']
|
|
@@ -8144,6 +8293,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
8144
8293
|
type: Input
|
|
8145
8294
|
}], backdrop: [{
|
|
8146
8295
|
type: Input
|
|
8296
|
+
}], noFallback: [{
|
|
8297
|
+
type: Input
|
|
8147
8298
|
}], dismissEl: [{
|
|
8148
8299
|
type: ViewChild,
|
|
8149
8300
|
args: ['dismissEl', { static: false }]
|
|
@@ -8257,6 +8408,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
8257
8408
|
* To use, import `ProgressBarModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
8258
8409
|
*/
|
|
8259
8410
|
class ProgressBarComponent {
|
|
8411
|
+
get textClass() {
|
|
8412
|
+
return this.darkText ? 'dark-progress-text' : 'light-progress-text';
|
|
8413
|
+
}
|
|
8260
8414
|
constructor() {
|
|
8261
8415
|
/**
|
|
8262
8416
|
* The left/subject text of the Progress Bar.
|
|
@@ -8266,21 +8420,33 @@ class ProgressBarComponent {
|
|
|
8266
8420
|
* The right/status text of the Progress Bar.
|
|
8267
8421
|
*/
|
|
8268
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;
|
|
8269
8431
|
/**
|
|
8270
8432
|
* The current value of the Progress Bar represented as a number between 0 and 100.
|
|
8271
8433
|
*/
|
|
8272
8434
|
this.progressPercentage = 0;
|
|
8273
8435
|
}
|
|
8274
8436
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8275
|
-
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"] }] }); }
|
|
8276
8438
|
}
|
|
8277
8439
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
8278
8440
|
type: Component,
|
|
8279
|
-
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"] }]
|
|
8280
8442
|
}], ctorParameters: () => [], propDecorators: { labelText: [{
|
|
8281
8443
|
type: Input
|
|
8282
8444
|
}], statusText: [{
|
|
8283
8445
|
type: Input
|
|
8446
|
+
}], barColor: [{
|
|
8447
|
+
type: Input
|
|
8448
|
+
}], darkText: [{
|
|
8449
|
+
type: Input
|
|
8284
8450
|
}], progressPercentage: [{
|
|
8285
8451
|
type: Input
|
|
8286
8452
|
}] } });
|
|
@@ -8500,6 +8666,10 @@ class AlertComponent {
|
|
|
8500
8666
|
* Removes the Alert icon provided by the theme or projected into the icon area using the `icon` directive.
|
|
8501
8667
|
*/
|
|
8502
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;
|
|
8503
8673
|
/**
|
|
8504
8674
|
* Allows the Alert to be dismissed.
|
|
8505
8675
|
*/
|
|
@@ -8521,7 +8691,8 @@ class AlertComponent {
|
|
|
8521
8691
|
: '';
|
|
8522
8692
|
const inlineClass = this.inline ? ' alert-inline' : '';
|
|
8523
8693
|
const dismissibleClass = this.dismissible ? ' alert-dismissible' : '';
|
|
8524
|
-
|
|
8694
|
+
const borderless = this.borderless ? ' borderless' : '';
|
|
8695
|
+
return themeClass + inlineClass + dismissibleClass + borderless;
|
|
8525
8696
|
}
|
|
8526
8697
|
get themeIconName() {
|
|
8527
8698
|
return this.theme === 'warning'
|
|
@@ -8542,11 +8713,11 @@ class AlertComponent {
|
|
|
8542
8713
|
this.dismiss.emit();
|
|
8543
8714
|
}
|
|
8544
8715
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8545
|
-
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
|
|
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"] }] }); }
|
|
8546
8717
|
}
|
|
8547
8718
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: AlertComponent, decorators: [{
|
|
8548
8719
|
type: Component,
|
|
8549
|
-
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
|
|
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"] }]
|
|
8550
8721
|
}], propDecorators: { theme: [{
|
|
8551
8722
|
type: Input
|
|
8552
8723
|
}], show: [{
|
|
@@ -8559,6 +8730,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
8559
8730
|
type: Input
|
|
8560
8731
|
}], hideIcon: [{
|
|
8561
8732
|
type: Input
|
|
8733
|
+
}], borderless: [{
|
|
8734
|
+
type: Input
|
|
8562
8735
|
}], dismissible: [{
|
|
8563
8736
|
type: Input
|
|
8564
8737
|
}], dismiss: [{
|
|
@@ -8973,7 +9146,10 @@ class FileUploadModule {
|
|
|
8973
9146
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8974
9147
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.1", ngImport: i0, type: FileUploadModule, declarations: [FileDropDirective,
|
|
8975
9148
|
FileUploadComponent,
|
|
8976
|
-
HumanReadableByteSizePipe], imports: [CommonModule, FormsModule, ButtonModule, IconModule], exports: [IconModule,
|
|
9149
|
+
HumanReadableByteSizePipe], imports: [CommonModule, FormsModule, ButtonModule, IconModule], exports: [IconModule,
|
|
9150
|
+
FileDropDirective,
|
|
9151
|
+
FileUploadComponent,
|
|
9152
|
+
HumanReadableByteSizePipe] }); }
|
|
8977
9153
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FileUploadModule, imports: [CommonModule, FormsModule, ButtonModule, IconModule, IconModule] }); }
|
|
8978
9154
|
}
|
|
8979
9155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FileUploadModule, decorators: [{
|
|
@@ -8985,7 +9161,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
8985
9161
|
FileUploadComponent,
|
|
8986
9162
|
HumanReadableByteSizePipe
|
|
8987
9163
|
],
|
|
8988
|
-
exports: [
|
|
9164
|
+
exports: [
|
|
9165
|
+
IconModule,
|
|
9166
|
+
FileDropDirective,
|
|
9167
|
+
FileUploadComponent,
|
|
9168
|
+
HumanReadableByteSizePipe
|
|
9169
|
+
]
|
|
8989
9170
|
}]
|
|
8990
9171
|
}], ctorParameters: () => [] });
|
|
8991
9172
|
|
|
@@ -9300,7 +9481,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
9300
9481
|
}]
|
|
9301
9482
|
}] } });
|
|
9302
9483
|
|
|
9303
|
-
const
|
|
9484
|
+
const DEFAULT_USE_24HR_TIME_LABEL = 'Use 24-hour format';
|
|
9304
9485
|
const DEFAULT_MIN_DATE = {
|
|
9305
9486
|
year: 1900,
|
|
9306
9487
|
month: 1,
|
|
@@ -9448,7 +9629,7 @@ class DatetimePickerComponent extends _DatetimePickerComponentBase {
|
|
|
9448
9629
|
this.formGroup = inject(FormBuilder).group({
|
|
9449
9630
|
date: new FormControl(null),
|
|
9450
9631
|
time: new FormControl(null),
|
|
9451
|
-
|
|
9632
|
+
use24hrTime: new FormControl(false, { nonNullable: true })
|
|
9452
9633
|
});
|
|
9453
9634
|
this.cvaOnChange = (_) => { };
|
|
9454
9635
|
this.cvaOnTouched = () => { };
|
|
@@ -9458,7 +9639,7 @@ class DatetimePickerComponent extends _DatetimePickerComponentBase {
|
|
|
9458
9639
|
/**
|
|
9459
9640
|
* Label to be displayed with time controls to allow the user to input 24-hour or meridian-based (AM, PM) time.
|
|
9460
9641
|
*/
|
|
9461
|
-
this.meridianToggleLabel =
|
|
9642
|
+
this.meridianToggleLabel = DEFAULT_USE_24HR_TIME_LABEL;
|
|
9462
9643
|
/**
|
|
9463
9644
|
* Set whether to display controls for selecting a time value in addition to the date.
|
|
9464
9645
|
*/
|
|
@@ -9600,11 +9781,11 @@ class DatetimePickerComponent extends _DatetimePickerComponentBase {
|
|
|
9600
9781
|
return this._focused;
|
|
9601
9782
|
}
|
|
9602
9783
|
/* Internals */
|
|
9603
|
-
get
|
|
9604
|
-
return this.formGroup.getRawValue().
|
|
9784
|
+
get use24hrTime() {
|
|
9785
|
+
return this.formGroup.getRawValue().use24hrTime;
|
|
9605
9786
|
}
|
|
9606
|
-
get
|
|
9607
|
-
return this.meridianToggleLabel?.trim() ||
|
|
9787
|
+
get use24hrTimeLabelText() {
|
|
9788
|
+
return this.meridianToggleLabel?.trim() || DEFAULT_USE_24HR_TIME_LABEL;
|
|
9608
9789
|
}
|
|
9609
9790
|
handleFocusOut(evt) {
|
|
9610
9791
|
if (!evt.relatedTarget ||
|
|
@@ -9651,7 +9832,7 @@ class DatetimePickerComponent extends _DatetimePickerComponentBase {
|
|
|
9651
9832
|
provide: ImpdcFormFieldControl,
|
|
9652
9833
|
useExisting: DatetimePickerComponent
|
|
9653
9834
|
}
|
|
9654
|
-
], 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 }); }
|
|
9655
9836
|
}
|
|
9656
9837
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DatetimePickerComponent, decorators: [{
|
|
9657
9838
|
type: Component,
|
|
@@ -9681,7 +9862,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
9681
9862
|
provide: ImpdcFormFieldControl,
|
|
9682
9863
|
useExisting: DatetimePickerComponent
|
|
9683
9864
|
}
|
|
9684
|
-
], 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"] }]
|
|
9685
9866
|
}], ctorParameters: () => [{ type: ErrorStateMatcher }, { type: undefined, decorators: [{
|
|
9686
9867
|
type: Optional
|
|
9687
9868
|
}, {
|